งานในหนังสือ

posted on 14 Sep 2011 20:25 by premkakna
1.มัลติมีเดีย คือ อะไรเกี่ยวข้องกับการนำเสนอข้อมูลอย่างไร 
 = คือ การใช้คอมพิวเตอร์ สื่อความหมายโดยการผสมผสานสื่อหลายชนิด เพื่อส่งเสริมการรับรู้และความเข้าใจของผู้รับข้อมูล ทำให้สามารถทำสื่อได้ง่ายขึ้น
2.การนำเสนอข้อมูลในรูปแบบเว็บไซต์ดีกว่าเอกสารสิ่งพิมพ์อย่างไร
 = สามารถส่งถึงผู้รับได้รวดเร็ว ไม่เปลืองทรัพยากรจากธรรมชาติ ถ้าข้อมูลผิดพลาดก็สามารถแก้ไขได้ง่ายไม่ต้องทำออกมาใหม่
3.Microsoft PowerPoint สามารถนำเสนอข้อมูลในรูปแบบใดได้บ้าง
= กราฟ เสียง วีดิโอ ภาพเคลื่อนไหว ข้อมูลฐาน(ตัวหนังสือ,ตัวเลข)
4.การเชื่อมโยงภายในและภายนอก Microsoft PowerPoint แตกต่างกันอย่างไร
= แตก ต่างกันโดยการสร้างจุดเชื่อมโยงไปที่จุดเชื่อมโยงต่างๆ ในไฟล์เดียวกัน ส่วนการเชื่อมโยงภายนอก คือ การเชื่อมโยงไปที่แหล่งข้อมูลอื่นๆนอกไฟล์งานนำเสนอ
5.นอกจากคอมพิวเตอร์แล้วยังมีเทคโนโลยีที่ช่วยส่งเสริมการนำเสนอข้อมูลบ้าง
 = จอทีวี , ipad , galaxy tab
6.นักเรียนคิดว่าการนำเสนอข้อมูลในรูปแบบใดสามารถทำได้ง่ายที่สุด เพราะเหตุใด
= การนำเสนอแบบใช้ซอฟแวร์ เพราะ เราไม่ต้องเปลืองเงินค่าปริ้นหรือเปลืองกระดาษมาก
7.การตกแต่งเพิ่มเติมด้วยแม่แบบในMicrosoft Powerpoint สามารถทำได้อย่างไร
= สามารถทำได้โดยเริ่มจากคลิกขวาตรงไหนก็ได้ในงาน แล้วเลือกออกเเบบภาพนิ่ง จะมีแม่แบบขึ้นมาให้เลือกเยอะแยะ
8.การกำหนดกล่องข้อความหรือวัตถุให้เคลื่อนไหวในMicrosoft Powerpoint สามารถตั้งค่าได้ที่ใด
=  *คลิกแทรกแล้วเลือกกล่องข้อความจากนั้นก็เลือกเค้าโครงกล่องข้อความ
     *วัตถุที่ต้องการให้เคลื่อนไหวคลิกขวาเลือกการเคลื่อนไหวแบบกำหนดเองเลือกลักษณะพิเศษแล้วตั้งค่า
9.ยกตัวอย่างซอฟต์แวร์ที่ใช้สำหรับนำเสนอข้อมูลตัวหนังสือหรือตัวอักษรมาอย่างน้อย 3 โปรแกรม
= Micosoft powerpoint , Micosoft Word , Movie maker
10.ถ้าไม่มีกล่องข้อความใน Microsoft PowerPoint จะสามารถสร้างงานนำเสนอข้อมูลได้หรือไม่อย่างไร
= ได้ เพราะโปรแกรมนี้สามารถนำเสนอได้หลากหลาย เช่น นำเสนอในรูปแบบคลิปวีดิโอ เสียง หรือภาพ
11.เครื่องพิมพ์ที่เป็นฮาร์ดแวร์ที่จำเป็นสำหรับการนำเสนอข้อมูลด้วย Microsoft PowerPoint หรือไม่อย่างไร
= เครื่องพิมพ์ไม่จำเป็นสำหรับโปรแกรม Micosoft powerpoint เพราะโปรแกรมนี้ใช้นำเสนอข้อความผ่านจอคอมพิวเตอร์
12.Microsoft PowerPoint สามารถแทรกรูปภาพ ภาพยนตร์ และเสียงได้หรือไม่ ถ้าได้มีวิธีการอย่างไร
= ได้ คลิกที่แทรกขึ้นแถบข้อมูล เลือกรูปภาพหรือเลือกเสียงและภาพยนต์
13.การนำเสนอข้อมูลด้วยแผนภูมิ แผนผัง และกราฟดีกว่าการนำเสนอข้อมูลด้วยตัวหนังสือหรือตัวอักษรอย่างไร
= การนำเสนอแบบแผนภูมิ แผนผังและกราฟ จะทำให้ผู้ที่ได้รับข้อมูลมองเห็นภาพได้มากกว่าการนำเสนอแบบตัวอักษร
14.การสร้างงานนำเสนอด้วย Microsoft PowerPoint สำหรับผู้รับข้อมูล 20 คนพร้อมกันจะต้องใช้ฮาร์ดแวร์และซอฟต์แวร์ใดบ้าง
= โปรแกรม Micosoft powerpoint มีโปรแกรมที่ใช้ช่วยในการ เปิดเพลง คลิปวีดีโอ ฮาดร์แวร์ คือ คอมพิวเตอร์ ลำโพง จอฉาย เป็นต้น
15.ยกตัวอย่างเทคโนโลยีที่ ส่งเสริมการนำเสนอข้อมูลในรูปแบบตัว หนังสือหรือตัวอักษรรูปภาพหรือภาพนิ่ง แผนภูมิ แผนผัง กราฟ เสียง และภาพเคลื่อนไหวได้พร้อมกัน
= dreamweaver , Micosoft powerpoint , flash player

การเขียนโปรแกรมภาษา C

posted on 14 Sep 2011 20:24 by premkakna
การเขียนโปรแกรมภาษา C
Introduction to C Programming


การพัฒนาโปรแกรมคอมพิวเตอร์ บางคนก็ว่ายาก บางคนก็ว่าเป็นเรื่องสนุก หลายคนบอกว่า ขอเป็นแค่ผู้ใช้สนุกที่สุด แต่จะมีซักกี่คนที่จะมีใจรักที่จะก้าวไปบนถนนแห่งการพัฒนาฝีมือและฝึกฝนการ เขียนโปรแกรมด้วยตัวเอง เพื่อให้มีผู้ที่สนใจนำไปใช้งาน และเพิ่มประสิทธิ์ภาพในการทำงาน และ ความสะดวกสบายๆ ต่างๆมากขึ้น ว่าไปแล้วนักโปรแกรมเมอร์เหล่านี้ ก็ไม่แตกต่างจากผู้ที่ปิดทองหลังพระมากนัก เพราะหลายๆ โปรแกรมที่มีให้ใช้งานกันในปัจจุบัน จะมีใครทราบบ้างไหมว่า ผู้เขียนโปรแกรมเหล่านั้นมีใครกันบ้าง ดังนั้น ผู้ที่คิดจะก้าวมาเป็นนักพัฒนาโปรแกรมมืออาชีพ คงต้องอาศัยใจรักที่จะอยากจะพัฒนา และฝึกฝนฝืมือในการเป็นโปรแกมเมอร์มืออาชีพมาเป็นอันดับหนึ่ง สำหรับบทความนี้จะเริ่มต้นด้วยการสอนให้เข้าใจในหลักการพื้นฐานของการการ พัฒนาโปรแกรมในภาษา C ความรู้และความเข้าใจที่จำเป็นต่อการเป็นโปรแกรมเมอร์มืออาชีพในอนาคต เราลองเริ่มมาเรียนรู้กันอย่างคร่าวๆ กันเลยล่ะกัน โดยผู้เขียนจะอธิบายเป็นตอนๆ ทั้งหมด 8 ตอนด้วยกันได้แก่

1. พื้นฐานโปรแกรมภาษา C (Introduction to C Programming)
2. การเขียนโปรแกรมทางเลือก (Selection Structures)
3. การเขียนโปรแกรมแบบ วนซ้ำ (Repetition & Loop)
4. ฟังก์ชัน และการเขียนโปรแกรมแยกเป็นโมดูล (Functions & Modular Programming)
5. ตารางอาเรย์ (Arrays)
6. ตัวแปรพอยเตอร์ (Pointers)
7. ตัวแปรสตริง (String)
8. โครงสร้างสตักเจอร์ (Structure)


1. พื้นฐานโปรแกรมภาษา C (Introduction to C Programming)

ก่อนอื่นของแนะนำพื้นฐานเกี่ยวกับคอมพิวเตอร์กันซักนิด ก่อนที่จะเริ่มเรียนรู้ภาษา C กัน หน่วยสำคัญที่สุดของคอมพิวเตอร์ก็คือ หน่วยประมวลผลหรือที่เรียกกันว่า CPU โดยปกติ CPU จะมีภาษาของตัวเองที่เรียกว่า ภาษาเครื่อง (Machine Language) ซึ่งจะเป็นภาษาที่ประกอบไปด้วยเลขฐานสองมากมาย ดังนั้นการที่จะเขียนโปรแกรมควบคุมการทำงานของคอมพิวเตอร์ โดยใช้ภาษาเครื่องโดยตรงนั้นจึงทำได้ยาก จึงได้มีการพัฒนาตัวแปรภาษาเครื่องที่เรียกว่า โปรแกรมภาษาระดับสูงขึ้นมา หรือที่เรียกว่า High Level Languages โดยภาษาในระดับสูงเหล่านี้ จะมีลักษณะรูปแบบการเขียน (Syntax) ที่ทำให้เข้าใจได้ง่ายต่อการสื่อสารกับผู้พัฒนา และถูกออกแบบมาให้ง่ายต่อการใช้งาน และจะเปลี่ยนคำสั่งจากผู้ใช้งาน ไปเป็นเป็นภาษาเครื่อง เพื่อที่จะควบคุมการทำงานของคอมพิวเตอร์ต่อไป ตัวอย่างของโปรแกรมภาษาระดับสูง ได้แก่ COBOL ใช้กันมากสำหรับโปรแกรมทางด้านธุรกิจ, Fortran ใช้กันมากสำหรับการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ เพราะง่ายต่อการคำนวณ, Pascal มีใช้กันทั่วไป แต่เน้นสำหรับการพัฒนาเครื่องมือสำหรับการเรียนการสอน, C & C++ ใช้ทั่วไป ปัจจุบันมีผู้เลือกที่จะใช้กันอย่างแพร่หลาย, PROLOG เน้นหนักไปทางด้านงานประเภท AI และ JAVA ใช้ได้ทั่วไป ปัจจุบันเริ่มมีผู้หันมาสนใจกันมากและเพิ่มขึ้นอย่างรวดเร็ว
คราวนี้เราลองมาเตรียมตัวกันซักนิก ก่อนที่จะลงมือพัฒนาโปรแกรมคอมพิวเตอร์ ขั้นแรก เราต้องศึกษารูปแบบความต้องการของโปรแกรมที่จะพัฒนา จากนั้นก็วิเคราะห์ถึงปัญหาตลอดจนวิธีการแก้ปัญหา จากนั้นจึงนำเอาความคิดในการแก้ปัญหาอย่างเป็นขั้นตอน ไปเขียนในรูปแบบของโปรแกรมภาษาในระดับสูง ซึ่งจะอยู่ในรูปแบบของ Source Program หรือ Source Code จากนั้นเราก็จะใช้ Complier ของภาษาที่เราเลือก มาทำการ Compile Source code หรือกล่าวง่ายๆ คือแปลง Source code ของเราให้เป็นภาษาเครื่องนั่นเอง ซึ่งในขั้นตอนนี้ ผลที่ได้ เราจะเรียกว่า Object code จากนั้น Complier ก็จะทำการ Link หรือเชื่อม Object code เข้ากับฟังก์ชันการทำงานใน Libraries ต่างๆ ที่จำเป็นต่อการใช้งาน แล้วนำไปไว้ในหน่วยความจำ แล้วเราก็จะสามารถ Run เพื่อดูผลของการทำงานโปรแกรมได้ หากโปรแกรมมีข้อผิดพลาด เราก็จะทำการแก้ หรือที่เรียกกันในภาษาคอมพิวเตอร์ว่า การ Debug นั่นเอง
ภาษา C เป็นโปรแกรมภาษาระดับสูง ถูกพัฒนาขึ้นในปี 1972 ที่ AT&T Bell Lab เราสามารถใช้ภาษา C มาเขียนเป็นคำสั่งต่างๆ ที่คอมพิวเตอร์สามารถเข้าใจได้ และกลุ่มของคำสั่งเหล่านี้ เราก็เรียกกันว่า อัลกอริธึม ได้มีผู้ให้คำจำกัดความของคำว่า อัลกอริธึม ว่าเป็น “A precise description of a step-by-step process that is guaranteed to terminate after a finite number of steps with a correct answer for every particular instance of an algorithmic problem that may occur.” สำหรับ Compiler ภาษา C ที่มีในปัจจุบัน มี 2 ค่ายใหญ่ๆ ที่มีผู้คนสนใจใช้กันมากได้แก่ Microsoft และ Borland การใช้งาน Compiler ทั้งสองตัวนี้ สามารถเรียนรู้ได้ไม่ยากนัก เราจึงจะมาเริ่มต้นที่การเขียนโปรแกรมในภาษา C กันเลย เราลองมาเริ่มจากตัวอย่างการเขียน ภาษา C แบบ ง่ายๆ กันก่อนกับโปรแกรม Hello World

#include
main()
{
printf("Hello World !! ");
}

บรรทัดแรก #include เป็นการบอกว่าให้ทำการรวม Header file ที่ชื่อว่า stdio.h (.h = header) ซึ่งเป็น header ที่เกี่ยวข้องกับการรับและให้ข้อมูล (Standard Input Output) นอกจาก stdio.h แล้ว ก็ยังมี Header อื่นๆ ที่ผู้พัฒนาสามารถที่จะเรียกใช้งาน Function ที่จำเป็นจาก Header นั้นๆ ได้ อาทิเช่น

5519

รู้จัก Header File กันไปล่ะ คราวนี้ เราลองมาดูบรรทัดถัดไปกัน ก็คือ ฟังก์ชัน main() จะเป็นจุดเริ่มต้นของโปรแกรม และโปรแกรมทุกโปรแกรมในภาษา C จะต้องมี Function main() นี้ โดยส่วนมาก เราจะใช้ Function main() ในการกำหนดค่าเริ่มต้นต่างๆ ของโปรแกรม จากนั้นจึงเข้าสู่ Function ต่างๆ ที่ผู้พัฒนา ได้กำหนดขึ้นไว้

บรรทัดถัดมาจะเป็นเครื่องหมาย { ซึ่งเป็นเครื่องหมายบ่งบอกขอบเขตของ Function โดยขอบเขตของฟังก์ชัน จะเปิดและปิดโดยใช้เครื่องหมายเปิด { และเครื่องหมายปิด } ตามลำดับ ภายใน Function main() จะมีคำสั่ง (Statement) printf("Hello World !! "); ซึ่ง printf เป็น Function ในภาษา C ทำหน้าที่ให้โปรแกรม ทำการแสดงผลออกทางหน้าจอว่า Hello World !! และทุกครั้ง ผู้พัฒนาจะต้องทำการจบคำสั่งหรือ Statement ด้วยเครื่องหมาย semi-colon ;

ดังนั้นรูปแบบของการเขียนโปรแกรม จึงเขียนออกมาในรูปแบบดังนี้

// ข้อความที่อยู่ข้างหลังเครื่องหมาย // จะเป็นคำอธิบายโปรแกรม
#include
void main()
{
constant declarations; // การกำหนดค่าคงที่ต่างๆ
variable declarations; // การกำหนดตัวแปรต่างๆ
executable statements; // คำสั่งการทำงานของโปรแกรม
}

การอ่านข้อมูลและการแสดงผล (Input & Output)

รูปแบบการใช้งานฟังก์ชัน printf จะทำการพิมพ์ในรูปแบบที่ เริ่มต้นด้วย Format ที่ต้องการจะพิมพ์ และตามด้วยตัวแปรที่ต้องการพิมพ์ ดังนี้

printf( const char *format [, argument]... );

สำหรับการนำข้อมูลเข้าก็เช่นกัน จะใช้ฟังก์ชัน scanf ซึ่งจะเป็นฟังก์ชันสำหรับอ่านข้อมูลจากคีย์บอร์ด และจะนำข้อมูลที่ User ทำการพิมพ์ไปเก็บไว้ใน argument โดยแต่ละ argument จะต้องเป็นตัวแปรที่เรียกว่า pointer (รายละเอียดจะได้กล่าวต่อไป) และมีชนิดที่ตัวแปรที่สัมพันธ์กับที่ได้กำหนดไว้ใน Format รูปแบบการใช้งานของฟังก์ชัน scanf สามารถเขียนได้ดังนี้

scanf( const char *format [,argument]... );
 
ตัวแปร (Variables)

ตัวแปรจะเป็นชื่อที่ใช้ในการบอกจำนวนหรือปริมาณ ซึ่งสามารถที่จะทำการเปลี่ยนแปลงจำนวนได้ด้วยโปรแกรมคอมพิวเตอร์ การตั้งชื่อตัวแปร จะต้องตั้งชื่อให้แตกต่างไปจากชื่อของตัวแปรอื่นๆ ยกตัวอย่างชื่อของตัวแปร ได้แก่ x, y, peter, num_of_points และ streetnum เป็นต้น โดยปกติการเขียนโปรแกรมที่ดี ควรจะตั้งชื่อตัวแปรให้สอดคล้องกับการทำงานหรือหน้าที่ของตัวแปรนั้นๆ เพราะเมื่อถึงเวลาต้องมาทำการปรับปรุงแก้ไขโปรแกรม จะสามารถทำได้โดยไม่ยากนัก

ในภาษา C หรือ C++ ได้มีกฏในการตั้งชื่อตัวแปรที่สามารถใช้งานได้ดังนี้
- ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษร
- ชื่อตัวแปรจะประกอบไปด้วย ตัวอักษร ตัวแลข และ _ ได้เท่านั้น
- ชื่อตัวแปรจะต้องไม่ใช่ชื่อ reserved word (ชื่อที่มีการจองไว้แล้ว)

ตัวอย่างของชื่อตัวแปรที่สามารถนำมาใช้ตั้งชื่อได้ ได้แก่
length, days_in_year, DataSet1, Profit95, Pressure, first_one

และตัวอย่างของชื่อ ที่ไม่สามารถนำมาใช้เป็นชื่อตัวแปรได้ ยกตัวอย่างเช่น
day-in-year, 1data, int, first.val เป็นต้น

reserved word (ชื่อที่มีการจองไว้แล้ว)

Reserved words หรือตัวแปรที่ได้จองไว้แล้วนั้น จะประกอบไปด้วยตัวอักษรตัวเล็กทั้งหมด และจะมีความสำคัญสำหรับภาษา C++ และจะไม่นำมาใช้ด้วยวัตถุประสงค์อื่นๆ ตัวอย่างของ Reserved words ได้แก่ and, bool, break, case, catch, char, class, continue, default, delete, do, double, if , else, enum, export, extern เป็นต้น

นอกจากนี้ในภาษา C หรือ C++ ชื่อตัวแปร ที่ประกอบไปด้วยอักษรเล็ก หรือใหญ่ ก็มีความแตกต่างกัน หรือที่เรียกว่า Case sensitive ยกตัวอย่างเช่น

‘X’ และ ‘x’ เป็นตัวแปรต่างกัน
‘peter’ และ ‘Peter’ เป็นตัวแปรต่างกัน
‘bookno1’ และ ‘bookNo1’ เป็นตัวแปรต่างกัน
‘XTREME’ และ ‘xtreme’ เป็นตัวแปรต่างกัน
‘X1’ และ ‘x1’ เป็นตัวแปรต่างกัน
‘int’ และ ‘Int’ เป็นตัวแปรต่างกัน

การกำหนดชนิดของตัวแปร (Declaration of Variables)

ในภาษา C หรือ C++ (และโปรแกรมในภาษาอื่นๆ) ตัวแปรทุกตัวที่จะมีการเรียกใช้ในโปรแกรมจำเป็นต้องมีการกำหนดชนิดของตัวแปร นั้นๆ ก่อนที่จะทำการเรียกใช้ตัวแปร

การกำหนดชนิดของตัวแปรมีวัตถุประสงค์หลัก 2 ประการได้แก่
- เป็นการบอกชนิด และตั้งชื่อตัวแปรที่จะเรียกใช้ ชนิดของตัวแปรจะทำให้คอมไพเลอร์สามารถแปลคำสั่งได้อย่างถูกต้อง (ยกตัวอย่างเช่น ใน CPU คำสั่งที่ใช้ในการบวกตัวเลขจำนวนเต็ม 2 จำนวน ย่อมแตกต่างจากคำสั่งที่จะบวกจำนวนจริง 2 จำนวนเข้าด้วยกัน)
- ชนิดของตัวแปร ยังเป็นบ่งบอกคอมไพเลอร์ให้ทราบว่าจะต้องจัดเตรียมเนื้อที่ให้กับตัวแปรตัว นั้นมากน้อยเท่าใด และจะจัดวางตัวแปรนั้นไว้แอดเดรส (Address) ไหนที่สามารถเรียกมาใช้ใน code ได้

สำหรับในบทความนี้จะพิจารณาชนิดตัวแปร 4 ชนิดที่ใช้กันมากได้แก่ int, float, bool และ char

int ชนิดตัวแปรที่สามารถแทนค่าจำนวนเต็มได้ทั้งบวกและลบ โดยปกติสำหรับคอมพิวเตอร์ทั่วไป คอมไพเลอร์ จะจองเนื้อที่ 2 ไบต์ สำหรับตัวแปรชนิด int จึงทำให้ค่าของตัวแปรมีค่าตั้งแต่ -32768 ถึง +32768
ตัวอย่างของค่า int ได้แก่ 123 -56 0 5645 เป็นต้น

floatชนิด ของตัวแปรที่เป็นตัวแทนของจำนวนจริง หรือตัวเลขที่มีค่าทศนิยม ความละเอียดของตัวเลขหลังจุดทศนิยมขึ้นอยู่กับระบบคอมพิวเตอร์ โดยปกติแล้ว ตัวแปรชนิด float จะใช้เนื้อที่ 4 ไบต์ นั่นคือจะให้ความละเอียดของตัวเลขหลังจุดทศนิยม 6 ตำแหน่ง และมีค่าอยู่ระหว่าง -1038 ถึง +1038
ตัวอย่างของค่า float ได้แก่ 16.315 -0.67 31.567

bool ชนิดของตัวแปรที่สามารถเก็บค่าลอจิก จริง (True) หรือ เท็จ (False) ตัวแปรชนิดนี้ เป็นที่รู้จักกันอีกชื่อคือ ตัวแปรบูลีน (Boolean)
ตัวอย่างของตัวแปรชนิด bool ได้แก่ 1 0 true false (เมื่อ 1 = true และ 0 = false)

char เป็นชนิดตัวแปรที่เป็นตัวแทนของ ตัวอักษรเพียงตัวเดียว อาจเป็นตัวอักษร ตัวเลข หรือตัวอักขระพิเศษ โดยปกติตัวแปรชนิดนี้จะใช้เนื้อที่เพียง 1 ไบต์ ซึ่งจะให้ตัวอักษรในรูปแบบที่แตกต่างกันได้ถึง 256 ค่า การเขียนรูปแบบของ char หลายๆ ตัว โดยปกติ จะอ้างอิงกับ American Standard Code for Information Interchange (ASCII)
ตัวอย่างของตัวแปรชนิด char ได้แก่ '+' 'A' 'a' '*' '7'

การกำหนดชนิดของตัวแปร สามารถเขียนได้อยู่ในรูป type identifier-list;
เมื่อ type บ่งบอกชนิดของตัวแปร ส่วน identifier-list เป็นการกำหนดชื่อของตัวแปร ซึ่งอาจจะมีมากกว่า 1 ตัวแปร และจะแยกตัวแปรแต่ละตัวออกจากกันด้วยเครื่องหมาย comma (,)
ตัวอย่าง รูปแบบของการกำหนดชนิดของตัวแปร ได้แก่
int i, j, count;
float sum, product;
char ch;
bool passed_exam;


มาถึงตอนนี้ เราก็จะสามารถปรับปรุงการเขียนโปรแกรมแบบง่ายๆ ได้ดังนี้

#include 
main()
{
int its_price;
printf("How much is that ? ");
scanf("%d", &its_price);
printf("oh! %d ?, hmmm...., too expensivenn",its_price);
}

จาก code ข้างบน ผู้อ่านจะเห็น %d เมื่อมีการเรียกใช้ฟังก์ชัน scanf และ printf ทั้งนี้ %d จะเป็น format ที่ใช้บ่งบอกชนิดของตำแหน่ง (Place Holders) ที่จะมีการส่งข้อมูล โดยในที่นี้ %d หมายถึงตำแหน่งของจำนวนเต็ม หรือ int นั่นเอง ตัวอย่างของ Place Holders อื่นๆ สามารถแสดงได้ดังตาราง

คราวนี้ลองมาดูตัวอย่างของการใช้ Place Holders

printf("C=%f, F=%f",cel,fah);
printf("He wants to score %d goals today",9);


เมื่อ % เป็นการบ่งบอกตำแหน่งเริ่มต้นของ Place Holder จากนั้น
ตัวอักษร f ตัวแรก จะบ่งบอกถึง ตัวแปรcel ว่ามีค่าเป็นจำนวนจริง (Float)
ส่วน f ตัวทีสอง จะบ่งบอกคอมไพเลอร์ว่า ตัวแปร fah ก็มีค่าเป็นจำนวนจริงเช่นกัน

นอกจากนี้ Place holder %d และ %f ยังสามารถใช้กับการกำหนดตำแหน่งตัวเลขตามต้องการได้ ยกตัวอย่างเช่น สมมุติให้ x=235; และ y=6.54321;

5520

การให้กำหนดค่าตัวแปร (Variable Assignment)

เราสามารถกำหนดค่าให้กับตัวแปรได้ ด้วยเครื่องหมาย = ยกตัวอย่างเช่น

int name; // กำหนดตัวแปร name ที่เก็บค่าจำนวนเต็ม
name = 23; // กำหนดให้ตัวแปร name มีค่าเป็น 23

ในขณะเดียวกัน เราสามารถใช้เครื่องหมาย = ระหว่างตัวแปรกับตัวแปร หรือตัวแปรกับจำนวนใดๆ ได้ อาทิเช่น

change = x1 - x2;
mean = (x1 + x2)/2;
x = x + 1;


ตอนนี้เราลองมาเขียนโปรแกรมอย่างง่าย เพื่อทำการแก้ปัญหาทางคณิตศาสตร์ ด้วยการแปลงค่า อุณหภูมิ ในหน่วยของ ฟาเรนไฮต์ เป็น เซลเซียส เมื่ออุณหภูมิในหน่วยฟาเรนไฮต์ มีค่า = 85 และเป็นที่ทราบกันดีว่า ความสัมพันธ์ระหว่าง องศาฟาเรนไฮต์ และ เซลเซียส สามารถเขียนได้อยู่ในรูปของสมการ

5521

การเขียนโปรแกรม เพื่อแก้ปัญหา การแปลงค่า 85 ฟาเรนไฮต์ให้เป็นเซลเซียส สามารถเขียนได้ดังนี้

#include 
void main()
{
float F;
float C;

F = 85;
C = 5*(F-32)/9;
printf("the result is %f",C);
}


อีกตัวอย่าง ของโปรแกรม การบวกค่าจำนวนเต็ม 2 จำนวนเข้าด้วยกัน แล้วแสดงผลลัพธ์ออกทางหน้าจอ การเขียนโปรแกรมเพื่อแก้ปัญหานี้ สามารถเขียนได้ดังนี้

#include 
void main()
{
int N1, N2, Sum;

printf("please input an integer number : ");
scanf("%d",&N1);
printf("please input another integer number : ");
scanf("%d",&N2);

Sum = N1 + N2;
printf("so, %d + %d = %d",N1,N2,Sum);
}


จากตัวอย่างการเขียนโปรแกรมข้างต้น จะเห็นว่ามีการคำนวณทางคณิตศาสตร์เข้ามาเกี่ยวข้อง คราวนี้เราลองมาดู การคำนวณในภาษา C กันว่าจะเขียนกันได้อย่างไรบ้าง

5522

2.การเขียนโปรแกรมแบบมีทางเลือก (Selection Structures)

การเขียนโปรแกรมแบบมีทางเลือก จะสามารถทำให้โปรแกรมสามารถตัดสินใจหรือเปรียบเทียบ จากนั้นก็จะเลือกดำเนินการไปในทิศทางหนึ่งจากสองทิศทาง ขึ้นอยู่กับผลที่ได้จากการเปรียบเทียบนั้น

เงื่อนไข (Condition)
- เป็นตัวกำหนดเงื่อนไขที่ผู้พัฒนาโปรแกรมได้สร้างขึ้นมา
- ผลลัพธ์ที่ได้จากเงื่อนไข จะมีค่า จริงหรือ เท็จ

โครงสร้างของเงื่อนไข (Condition Control Structures)

ประโยคเงื่อนไขสามารถที่จะเขียนให้อยู่ในรูปภาษา C จะเขียนได้ดังนี้

if condition then A else B

ซึ่งหมายความว่า ถ้าเงื่อนไข (condition) มีค่าเป็นจริง ก็จะดำเนินการทำคำสั่ง A มิเช่นนั้นก็จะทำคำสั่ง B
ตัวอย่างของการเขียนโครงสร้างทางเลือกในภาษา C สามารถเขียนได้ดังนี้


if (x < y)
a = x * 2;
else
a = x + y;


ความหมายของ code ดังกล่าว หมายความว่า ถ้า ค่า x มีค่าน้อยกว่า y แล้ว a = x*2
แต่ถ้า x มีค่ามากกว่าหรือเท่ากับ y แล้ว a = x+y นั่นเอง

รูปแบบของเงื่อนไข ส่วนใหญ่จะอยู่ในรูป “ตัวแปร โอเปอเรเตอร์ ตัวแปร” โอเปอเรเตอร์ที่กล่าวถึงนี้จะมีอยู่ 2 แบบ ด้วยกันคือ โอเปอเรเตอร์สัมพันธ์ (Relational Operator) และ โอเปอเรเตอร์ลอจิก (Logical Operator)

โอเปอเรเตอร์สัมพันธ์ที่ใช้ในภาษา C มีดังต่อไปนี้

5523


if ( condition1 )
statement1 ;
else
if ( condition2 )
statement2 ;
. . .
else if ( condition-n )
statement-n ;
else
statement-e ;


ยกตัวอย่างของโปรแกรม Nested if สามารถเขียนได้ดังนี้


if (x < 0.25)
count1++;
else if (x < 0.5)
count2++;
else if (x < 0.75)
count3++;
else
count4++;


นอกจากรูปแบบของ if-else แล้ว เรายังสามารถใช้เครื่องหมาย ? มาประยุกต์ในการเขียน code เพื่อให้ได้ความหมายเดียวกันกับ if-else ดังแสดงให้เห็นดังนี้


if (x < y)
a = x * 2;
else
a = x + y;


สามารถเขียนได้ในอีกรูปแบบหนึ่งคือ a = x < y ? x*2: x+y ; // ซึ่งจะให้ความหมายเดียวกันกับ code ข้างบนนั่นเอง

ในบางครั้งที่เราต้องเขียนโปรแกรมแบบมีทางเลือก โดยบางครั้งเราต้องการให้มีทางเลือกมากว่า 2 ทาง Nested if เป็นวิธีหนึ่งที่สามารถใช้แก้ปัญหาได้ แต่เพื่อให้ง่ายขึ้น ในภาษา C เราจึงสามารถใช้คำสั่ง switch ได้ โดยรูปแบบการเขียน คำสั่ง switch สามารถเขียนให้อยู่ในรูป


switch (selector)
{
case label1: statement1;
break;
case label2: statement2;
break;
...
case labeln: statementn;
break;
default: statementd; // optional
break;
}


โดยที่ selector จะต้องเป็นจำนวนเต็ม ตัวอักษร หรือผลลัพธ์ของการกระทำที่ให้เลขจำนวนเต็มหรือตัวอักษร ตัวอย่างของการเขียน code โดยมีการเรียกใช้คำสั่ง switch สามารถเขียนได้ดังนี้

switch (i)
{
case 1 : grade = 'A';
break;
case 2 : grade = 'B';
break;
case 3 : grade = 'c';
break;
default : printf("%c not in range", i);
break;
}

โดยหลักการของ switch คือ compiler จะทำการเปรียบเทียบค่าของ selector เทียบกับ label ถ้าไม่ตรงกับ label ใดๆ ก็จะเข้าไปทำในคำสั่งของ default นอกจากนี้ การใส่คำสั่ง break หรือไม่มีคำสั่ง break ก็จะให้ผลลัพธ์ที่แตกต่างกัน ดังแสดงให้เห็นดังตัวอย่างต่อไปนี้ (ทดลอง Run แล้วจะเห็นความแตกต่าง)

5524

5525

การเปรียบเทียบตัวอักษร

คุณผู้อ่านทราบกันหรือไม่ว่า ตัวอักษรสามารถเปรียบเทียบค่ากันได้ เบื้องต้นเราต้องทราบก่อนว่า ตัวอักษรมีค่าอย่างไรกันบ้าง

 ตัวอักษรตัวเล็ก ‘a’ มีค่า 97 ไปจนถึง ‘z’ มีค่า 122
 ตัวอักษรตัวใหญ่ ‘A’ มีค่า 65 ไปจนถึง ‘Z’ มีค่า 90

ตัวอย่างของการเปรียบเทียบตัวอักษร สามารถแสดงให้เห็นได้ดังนี้

 ‘9’ >= ‘0’ มีค่าเป็นจริง (1)
 ‘a’ < ‘e’ มีค่าเป็นจริง (1)
 ‘B’ <= ‘A’ มีค่าเป็นเท็จ (0)
 ‘a’ <= ‘A’ ขึ้นอยู่กับระบบ แต่ส่วนใหญ่ เป็นเท็จ
 ‘a’ <= ‘c’ && ‘c’ <= ‘z’ มีค่าเป็นจริง

คราวนี้เราลองมาดูโจทย์กัน สมมุติว่า เราจะเขียนโปรแกรม เพื่ออ่านค่าตัวอักษร 4 ตัว แล้ว เราต้องการที่จะเปลี่ยนตัวอักษรแต่ละตัว ให้เป็นตัวอักษรใหญ่ หรือเล็กที่ตรงข้ามกับค่าที่รับเข้าไป ยกตัวอย่างเช่น PooH ให้เปลี่ยนเป็น pOOh เราจะเขียนโปรแกรมอย่างไร

คำตอบ วิธีหนึ่งที่สามารถทำได้ คือใช้ Nested-if ดังนี้

#include
void main()
{
char A, B, C, D;
printf("Input 4 charactersn");
scanf("%c %c %c %c", &A, &B, &C, &D);

if((A <= 90)&&(A >= 65)) A = (A - 65) + 97;
else if ((A >= 97)&&(A <= 122)) A = (A-97) + 65;
else A = A;
if((B <= 90)&&(B >= 65)) B = (B - 65) + 97;
else if ((B >= 97)&&(B <= 122)) B = (B-97) + 65;
else B = B;
if((C <= 90)&&(C >= 65)) C = (C - 65) + 97;
else if ((C >= 97)&&(C <= 122)) C = (C-97) + 65;
else C = C;
if((D <= 90)&&(D >= 65)) D = (D - 65) + 97;
else if ((D >= 97)&&(D <= 122)) D = (D-97) + 65;
else D = D;
printf("The answer is %c %c %c %cn", A, B, C, D);

3.การเขียนโปรแกรมแบบ วนซ้ำ (Repetition & Loop)

กระบวนการหนึ่งที่สำคัญในการออกแบบอัลกอริทึม ก็คือความสามารถในการวนลูปของการทำงานของกลุ่มคำสั่งตามที่นักพัฒนาต้องการ ดังนั้นสำหรับตอนนี้ ก็จะนำเสนอการพัฒนาโปรแกรมเพื่อให้บางส่วนของคำสั่งสามารถมีการวนซ้ำได้หลาย ครั้ง สำหรับคำสั่งที่สามารถใช้ในการเขียนโปรแกรมแบบวนซ้ำในภาษา C ได้แก่ While, Do-while และ For

ตัวอย่างของการใช้คำสั่ง while, for และ do-while สามารถเขียนให้เห็นได้ดังตาราง


ซึ่งผลลัพทธ์ของโปรแกรมทั้ง 3 ข้างต้นจะให้ผลลัพท์ที่เหมือนกัน คือจะแสดงผลบนหน้าจอเป็น
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6

คราวนี้เราลองมาดูโครงสร้างของการใช้งานแต่ละคำสั่งกัน

while ( condition ) // เมื่อ เงื่อนไข (condition) เป็นจริง ก็จะทำการวนซ้ำ ใน statement ถัดไป
statement

ยกตัวอย่างเช่น

sum = 0.0;
x = 5;
while (x > 0.0)
{
sum += x;
x = x – 1;
}


ในที่นี้จะเห็นว่า ค่า x มีค่าเริ่มต้นเท่ากับ 5 ซึ่ง 5 > 0 เงื่อนไขของคำสั่ง while เป็นจริง จึงทำคำสั่งถัดมาคือ sum += x; หมายความว่า sum = sum + x = 5 จากนั้นค่า x ก็มีค่าลดลงไป 1 เหลือ 4 ก็จะทำการ check เงื่อนไขว่า 4 > 0 หรือไม่ เมื่อเงื่อนไขเป็นจริง ก็จะทำการวนซ้ำ sum ก็จะมีค่าเป็น 5 + 4 = 9 และ x ก็จะมีค่าลดลงเหลือ 3 และดำเนินการวนซ้ำเช่นนี้จนกระทั่ง x มีค่าเป็น 0 ซึ่งค่า 0 ไม่ได้มีค่ามากกว่า 0.0 เงื่อนไขจึงเป็นเท็จ โปรแกรมจึงจะจบการวนซ้ำ

คราวนี้เราลองมาดูตัวอย่างของการใช้คำสั่ง while ในการเขียนโปรแกรมแบบวนซ้ำ และผลลัพท์ที่ได้

x=0;
while( x <=2 ){
printf("%d %dn",x, x*2);
}

ผลลัพท์ที่ได้จะได้ดังนี้
0 0
0 0
0 0
: :
0 0 (infinite loop)


การที่ผลลัพท์ออกมาเช่นนี้ ก็เนื่องจากว่า x มีค่าเริ่มต้น 0 และเงื่อนไข x <= 2 เป็นจริงตลอด โปรแกรมจึงทำการพิมพ์ค่า 0 0 ออกมา และเนื่องจากค่า x ไม่มีการเปลี่ยนแปลง เงื่อนไขจึงเป็นจริงตลอด โปรแกรมจึงแสดงผลบนหน้าจอโดยไม่หยุดนั่นเอง อีกตัวอย่างของการใช้งาน while ในการเขียนโปรแกรมแบบวนซ้ำ แสดงได้ดังนี้

scanf(“%d”,&n);
a = 10;
while (a > n) {
printf(“%dn”,a);
a = a-1;
}


ผลลัพท์ของโปรแกรมจะสามารถแสดงให้เห็นได้ดังนี้
10
9
8
7


คราวนี้เราลองมาแก้โจทย์ปัญหา การหาค่า ห.ร.ม (หารร่วมมาก) ของตัวเลข 2 ตัวใดๆ โดยอัลกอริทึม Euclidean โดยอัลกอริทึมดังกล่าว จะทำการแปลงค่าตัวเลข 2 ตัวเลขบวกใดๆ (m, n) เป็นค่า (d, 0) โดยการนำตัวเลขที่มีค่ามาก นำมาหารด้วยตัวเลขที่มีค่าน้อยกว่า นำค่าเศษที่หารได้มาแทนตัวเลขที่มีค่ามากกว่า ทำเช่นนี้จนกระทั่งได้ค่าเศษจากการหารมีค่าเป็น 0 ตัวเลขอีกตัวก็จะเป็นค่า ห.ร.ม. ยกตัวอย่างเมื่อเราทำการ Run โปรแกรม จะได้ผลดังนี้

Enter two positive integers: 532 112
The g.c.d. of 532 and 112 is 28

คราวนี้เราลองมาดูการเขียนโปรแกรมเพื่อแก้ปัญหาดังกล่าวข้างต้น สามารถเขียนได้ดังนี้

#include 
void main()
{
int A, B, start;
printf("Enter two positive intergers: ");
scanf("%d %d", &A, &B);
if(A < B) start = A;
else start = B;
while(((A%start) != 0)||((B%start) != 0))
{
start = start-1;
}
printf("The g.c.d of %d and %d is %dn", A, B, start);
}


การดำเนินการทางคณิตศาสตร์ สามารถเขียนให้อยู่ในรูปแบบสั้นๆ ได้ ดังตัวอย่างในตารางดังนี้

5526

ความแตกต่างระหว่าง i++ และ ++i

i++ และ ++i จะมีความหมายใกล้เคียงกันมาก จะแตกต่างเพียง การจัดลำดับในการคำนวณ เมื่อต้องนำไปใช้กับตัวแปรตัวอื่น

A = 10;
C = A++; // A= 11, C = 10

A = 10;
C = ++A; // A = 11, C = 11

A = 10;
C = A--; // A = 9, C = 10

A = 10;
C = --A; // A = 9, C = 9

โครงสร้างการเขียนโปรแกรมแบบวนซ้ำโดยใช้คำสั่ง For

คำสัง for สามารถเขียนให้อยู่ในรูปแบบได้ดังนี้

for ( เริ่มต้น ; เงื่อนไข ; เปลี่ยนแปลง )
statement;

เมื่อเริ่มต้น เป็นการกำหนดค่าตัวแปรเริ่มต้นที่ต้องการ ส่วนเงื่อนไขหากค่าลอจิกมีค่าเป็นจริง ก็จะทำตามในโครงสร้างของการวนซ้ำคือ run คำสั่ง statement แต่ถ้าเป็นเท็จก็จะออกจากโครงสร้างการวนซ้ำ ส่วนเปลี่ยนแปลง จะทำการปรับค่าของตัวแปรที่ต้องการ ยกตัวอย่างเช่น

for ( count=0 ; count < 10 ; count++)
{
printf(“count = %dn”,count);
}


ใน code ข้างต้น ตัวแปร count จะเริ่มต้นจากค่า 0 ซึ่งค่า 0 มีค่าน้อยกว่า 10 ก็จะทำคำสั่ง print ค่าของตัวแปร count จากนั้นค่า count ก็จะเพิ่มค่าเป็น 1 เงื่อนไข count < 10 ก็ยังคงเป็นจริง ก็จะทำการพิมพ์ ค่าของตัวแปร count วนซ้ำเช่นนี้ จนกระทั่ง count มีค่าเพิ่มขึ้นจนเป็น 10 เงื่อนไขก็จะเป็นเท็จ และจบโครงสร้างของการวนซ้ำ

การเปลี่ยนแปลงค่าของตัวแปร อาจจะมีการเปลี่ยนแปลงมากกว่า 1 ค่า ยกตัวอย่างเช่น

for ( count=0 ; count < 10 ; count += 2)  // ตัวแปร count มีค่าเปลี่ยนแปลงเพิ่มขึ้นครั้งละ 2
{
printf(“count = %dn”,count);
}
for ( count=10 ; count > 5 ; count -= 2) // ตัวแปร count มีค่าเปลี่ยนแปลงลดลงครั้งละ 2
{
printf(“count = %dn”,count);
}


นอกจากนี้เรายังสามารถใช้ตัวแปร เป็นการกำหนด ค่าเริ่มต้น เงื่อนไข และ เปลี่ยนแปลงได้ ยกตัวอย่างเช่น

start = 0; end = 20; step=3;
for ( count=start ; count < end ; count += step)
{
printf(“count = %dn”,count);
}


คราวนี้ เราลองมาทดลองเขียนโปรแกรม โดยให้โปรแกรม สามารถรับค่าตัวเลขใดๆ และแสดงค่าในรูปแบบดังตัวอย่างต่อไปนี้

5527

Input the number > 4

0
0 1
0 1 2
0 1 2 3
0 1 2
0 1
0



เราสามารถแก้ปัญหาข้างต้น โดยใช้โครงสร้างการเขียนโปรแกรมแบบวนซ้ำดังต่อไปนี้

#include 
void main()
{
int number, i, j;
printf("Enter number: ");
scanf("%d", &number);
for(j= 0; j< number; j++)
{
for(i=0; i<= j; i++)
{
printf("%d ", i);
}
printf("n");
}
for(j= number-1; j>= 0; j--)
{
for(i=0; i< j; i++)
{
printf("%d ", i);
}
printf("n");
}
}


โครงสร้างการเขียนโปรแกรมแบบวนซ้ำโดยใช้คำสั่ง do-while

รูปแบบของการเขียน code สำหรับโปรแกรมแบบวนซ้ำที่ใช้ do-while สามารถเขียนให้อยู่ในรูปทั่วไปได้ดังนี้

do
statement
while ( เงื่อนไข );

ตัวอย่างของโครงสร้าง do-while สามารถเขียนได้ดังนี้

sum = 0.0;
scanf(“%f”, &x);
do {
sum += x;
scanf(“%f”, &x);
}
while (x > 0.0);


โปรแกรมข้างต้นจะทำการอ่านค่าจะ keyboard เมื่อ User พิมพ์ค่าที่มีค่ามากกว่าศูนย์ ก็จะทำการบวกค่าเหล่านี้ไปที่ตัวแปร sum จนกระทั่ง User พิมพ์ ตัวเลข 0 หรือค่าที่น้อยกว่า ศูนย์ ทำให้เงื่อนไขเป็นเท็จ และโปรแกรมจึงจะออกจากโครงสร้าง do-while

คราวนี้เราลองมาเขียนโปรแกรมที่ใช้โครงสร้าง do-while โดยโจทย์กำหนดให้ว่า ให้โปรแกรมสามารถรับค่าตัวเลขใดๆ (X) และ แสดงผลของตัวเลข ระหว่าง 0 ถึง X ที่สามารถหารด้วย 4 ลงตัว

#include 
void main()
{
int number, i;
printf("enter the numbern");
scanf("%d", &number);
i = 0;
do
{
if((i % 4) == 0) printf("%d ", i);
i++;
}
while(i <= number);
}


ตอนนี้ผู้อ่านก็คงจะรู้จัก การเขียนโปรแกรมแบบวนซ้ำกันแล้วนะ ต่อไป เราก็จะไปเรียนรู้เกี่ยวกับการเขียนโปรแกรมแบบแยกเป็นโมดูลกัน

 
4.ฟังก์ชัน และการเขียนโปรแกรมแยกเป็นโมดูล (Functions & Modular Programming)

สำหรับนักพัฒนา ที่ได้ทำการพัฒนาโปรแกรมมามากๆ บางครั้ง จำเป็นต้องเขียนโปรแกรมที่มีขนาดใหญ่และมีความสลับซับซ้อน จึงจำเป็นต้องหาวิธีในการพัฒนาโปรแกรมที่ดี ซึ่งสามารถทำได้ด้วยการ แตกปัญหาใหญ่ออกเป็นปัญหาย่อยๆ แล้วแก้ปัญหาย่อยออกไปที่ละส่วนจนกว่าจะหมด ซึ่งจะช่วยให้แก้ปัญหาใหญ่ๆ ได้สำเร็จนั่นเอง ซึ่งเราเรียกกันว่า วิธีแบ่งแยกแล้วพิชิต (Divide and Conquer) ซึ่งจะเป็นแนวการแก้ปัญหาแบบจากบนลงล่าง (Top down approach) ดังแสดงให้เห็นดังภาพที่ 4.1

5529

การแตกปัญหาออกเป็นฟังก์ชันย่อยๆ มีข้อดีดังนี้
1) การแยกปัญหาที่จะใช้ในการเขียนโปรแกรมออกเป็นฟังก์ชันย่อยๆ จะช่วยให้เขียนโปรแกรมได้ง่ายขึ้นเพราะปัญหามีความซับซ้อนน้อยลง
2) การแยกปัญหาที่จะใช้ในการเขียนโปรแกรมออกเป็นฟังก์ชันย่อยๆ สามารถแก้ปัญหาตามที่โปรแกรมต้องทำ โดยมีโอกาสที่จะผิดพลาดน้อยลงเนื่องจากได้ทดสอบแก้ไขข้อผิดพลาดภายใน ฟังก์ชันย่อยๆ ก่อนรวมกันเป็นโปรแกรมใหญ่แล้ว
3) การแยกปัญหาออกเป็นฟังก์ชันย่อยนั้นมีประโยชน์ ที่ทำให้เราสามารถใช้ฟังกชันย่อยๆ เหล่านี้กลับไปใช้กับโปรแกรมอื่นๆ ได้ด้วย
4) การนำฟังกชันย่อยๆ เหล่านี้กลับมาใช้อีก จะช่วยลดขนาดของโปรแกรมลง และยังช่วยลดเวลาและค่าใช้จ่ายในการพัฒนาและการซ่อมบำรุงโปรแกรมได้อีกด้วย เพราะไม่ต้องเสียเวลาในการเขียนฟังก์ชันซ้ำ นอกจากฟังก์ชันย่อยที่ยังไม่ได้เขียนมาก่อน

ตัวอย่างการเขียนโปรแกรมออกเป็นโมดูลต่างๆ จะแสดงให้เป็นดังผังในภาพที่ 4.2 ซึ่งในภาพดังกล่าวได้แยกโปรแกรม Main ออกเป็นส่วนๆ คือ

5530

1) ส่วนรับข้อมูล (Input) ซึ่งจะเป็นไปตามความต้องการของผู้ใช้ เช่นการป้อนข้อมุล หรือ การอ่านไฟล์ข้อมูล
2) ส่วนการคำนวณ (CAL) ซึ่งประกอบด้วยฟังก์ชันที่ใช้กับการคำนวณ ได้แก่
i. AVG สำหรับคำนวณค่าเกรดเฉลี่ยสำหรับเทอมปัจจุบัน
ii. GPA สำหรับคำนวณเกรดเฉลี่ยสะสม
3) ส่วนการแสดงผล (Display) ซึ่งเป็นการแสดงผลบนจอภาพ หรือจะพิมพ์ผลออกมาก็ได้ตามความต้องการของผู้ใช้โปรแกรม ที่กำหนดให้ผู้เขียนโปรแกรมทำให้สำเร็จตามเป้าหมาย

วันเเม่เเห่งชาติ

posted on 04 Jul 2011 21:40 by premkakna
                            
                                            
 
พระราชประวัติ สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ

สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ ทรงเป็นสมเด็จพระบรมราชินีนาถในรัชกาลที่ 9 พระนามเดิม หม่อมราชวงศ์สิริกิติ์ กิติยากร เป็นพระธิดาองค์ใหญ่ของหม่อมเจ้านักขัตรมงคล (ภายหลังได้รับพระกรุณาโปรดเกล้าฯ สถาปนาขึ้นเป็น พลเอกพระวรวงศ์เธอ กรมหมื่นจันทบุรีสุรนาถ) กับ หม่อมหลวงบัว กิติยากร เสด็จพระราชสมภพเมื่อวันศุกร์ที่ 12 สิงหาคม พ.ศ. 2475 ณ บ้านของพลเอกเจ้าพระยาวงศานุประพัทธ์ (ม.ร.ว.สท้าน สนิทวงศ์) และท้าววนิดาพิจาริณี บิดาและมารดาของหม่อมหลวงบัว กิติยากร ตั้งอยู่ที่ 1808 ถนนพระรามที่ 6 อำเภอปทุมวัน จ.พระนคร ได้รับพระราชทานนามจากพระบาทสมเด็จพระปกเกล้าเจ้าอยู่หัวว่า "สิริกิติ์" มีความหมายว่า "ผู้เป็นศรีแห่งกิติยากร"

สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ ทรงมีพระภาดา (พี่ชาย) 2 องค์ และและพระขนิษฐภคินี (น้องสาว) 1 องค์ ดังนี้ หม่อมราชวงศ์ กัลยาณกิติ์ กิติยากร (ชาตะ พ.ศ. 2472) หม่อมราชวงศ์ อดุลยกิติ์ กิติยากร (ชาตะ พ.ศ. 2473) และ หม่อมราชวงศ์หญิง บุษบา กิติยากร (ชาตะ พ.ศ. 2477)

ในระหว่างยังทรงพระเยาว์ สถานการณ์บ้านเมืองไม่สู้สงบนัก เนื่องจากเพิ่งพ้นจากช่วงการเปลี่ยนแปลงการปกครองไม่นาน เมื่อ พ.ศ. 2476 ขณะที่หม่อมราชวงศ์หญิงสิริกิติ์มีอายุเพียง 1 ขวบ ก็ต้องอยู่ไกลจากพระบิดามารดา โดยได้ตามเสด็จพระบาทสมเด็จพระปกเกล้าเจ้าอยู่หัว ไปประทับอยู่ที่จังหวัดสงขลา

เมื่อหม่อมเจ้านักขัตรมงคลทรงลาออกจากราชการและกลับมาจากวอชิงตัน ดี.ซี. ในปี พ.ศ. 2477 หม่อมราชวงศ์สิริกิติ์ซึ่งขณะนั้นอายุได้ 2 ปี 6 เดือน จึงได้กลับมาอยู่รวมพร้อมหน้ากันทั้งครอบครัว

การศึกษา
พ.ศ. 2479 เมื่อหม่อมราชวงศ์หญิงสิริกิติ์มีอายุได้ 4 ขวบ ก็ได้เข้ารับการศึกษาครั้งแรกในชั้นอนุบาลที่โรงเรียนราชินี ทว่าในขณะนั้น แม้เหตุการณ์ด้านการเมืองภายในประเทศไทยจะสงบลง แต่สถานการณ์ระหว่างประเทศก็ไม่สงบ กล่าวคือ สงครามมหาเอเชียบูรพาเริ่มแผ่ขยายมาถึงประเทศไทย กรุงเทพมหานครถูกโจมตีทางอากาศหลายครั้งจนการคมนาคมไม่สะดวก พระบิดาจึงให้หม่อมราชวงศ์สิริกิติ์ย้ายไปเรียนที่โรงเรียนเซนต์ฟรังซี สซาเวียร์คอนแวนต์ เพราะอยู่ใกล้วังพระบิดา ได้เรียนที่นั่นตั้งแต่ชั้นประถมศึกษาปีที่ 2 จนจบชั้นมัธยมศึกษา หม่อมราชวงศ์หญิงสิริกิติ์ได้เรียนเปียโน ซึ่งเรียนได้ดีและเร็วเป็นพิเศษ นอกจากนี้ยังได้ศึกษาภาษาอังกฤษและภาษาฝรั่งเศสด้วย

พ.ศ. 2489 ครั้นเมื่อสงครามโลกครั้งที่สองสงบลง หม่อมเจ้านักขัตรมงคลต้องเสด็จไปดำรงตำแหน่งเอกอัครราชทูตประจำสำนักเซนต์ เยมส์ ประเทศอังกฤษ ทั้งนี้โดยได้ทรงพาครอบครัวทั้งหมดไปอยู่ด้วย ในเวลานั้นหม่อมราชวงศ์หญิงสิริกิติ์ มีอายุได้ 13 ปีเศษ และเรียนจบชั้นมัธยมศึกษาปีที่ 3 แล้ว

ขณะที่อยู่ในประเทศอังกฤษ หม่อมราชวงศ์หญิงสิริกิติ์ได้ศึกษาต่อทั้งวิชาภาษาอังกฤษและฝรั่งเศส และวิชาเปียโนกับครูพิเศษ หลังจากนั้นไม่นาน พระบิดาย้ายไปดำรงตำแหน่งเอกอัครราชทูตประจำประเทศเดนมาร์กและประเทศ ฝรั่งเศส ตามลำดับ หม่อมราชวงศ์สิริกิติ์ก็ยังคงเรียนเปียโน และตั้งใจจะศึกษาต่อในวิทยาลัยการดนตรีที่มีชื่อเสียงของกรุงปารีส

ระหว่างที่อยู่ในประเทศฝรั่งเศส หม่อมราชวงศ์หญิงสิริกิติ์ได้มีโอกาสเข้าเฝ้าพระบาทสมเด็จพระเจ้าอยู่หัว ภูมิพลอดุลยเดช (ขณะนั้นทรงศึกษาต่อที่สวิตเซอร์แลนด์หลังจากเสด็จขึ้นครองราชย์) ซึ่งพระองค์เสด็จประพาสกรุงปารีส โดยทางรถยนต์จากสวิตเซอร์แลนด์ เพราะประสงค์จะเลือกซื้อรถยนต์พระที่นั่งแทนคันเดิม และยังได้รับชมการแสดงดนตรีของคณะที่มีชื่อเสียงด้วย ในระหว่างที่เสด็จพระราชดำเนินมายังกรุงปารีส ก็ได้ประทับที่สถานทูตไทยประจำประเทศฝรั่งเศสเช่นเดียวกันกับนักเรียนไทยคน อื่นในสมัยนั้น ทั้งนี้เนื่องจากพระบาทสมเด็จพระเจ้าอยู่หัวฯ ทรงโปรดการดนตรีเป็นพิเศษ ขณะที่หม่อมราชวงศ์หญิงสิริกิติ์ก็สนใจศิลปะเช่นกัน ทำให้เกิดความความสัมพันธ์ขึ้น

ทรงหมั้น
วันที่ 3 ตุลาคม พ.ศ. 2491 พระบาทสมเด็จพระเจ้าอยู่หัวฯ ทรงประสบอุบัติเหตุทางรถยนต์ ณ ประเทศสวิตเซอร์แลนด์ ทรงเข้ารับการรักษาในโรงพยาบาลแห่งหนึ่งโดยมีหม่อมหลวงบัวและหม่อมราชวงศ์ หญิงสิริกิติ์ เข้าเฝ้าฯ ถวายการพยาบาลอย่างใกล้ชิดตลอดเวลา และในช่วงระยะเวลาที่หม่อมราชวงศ์สิริกิติ์อยู่เฝ้าฯ ถวายพระบาทสมเด็จพระเจ้าอยู่หัวที่สวิตเซอร์แลนด์นั้น สมเด็จพระราชชนนีศรีสังวาลย์ (พระนามในเวลานั้น) ได้ทรงรับเป็นธุระจัดการให้หม่อมราชวงศ์สิริกิติ์เข้าศึกษาในโรงเรียน Pensionnat Riante Rive ซึ่งเป็นโรงเรียนประจำแห่งหนึ่งของโลซาน ประเทศสวิตเซอร์แลนด์ ครั้นเมื่อพระบาทสมเด็จพระเจ้าอยู่หัวทรงหายจากอาการประชวรแล้ว ก็ได้ทรงหมั้นหม่อมราชวงศ์สิริกิติ์เป็นการภายในเมื่อวันที่ 19 กรกฎาคม พ.ศ. 2492

หลังจากทรงหมั้นแล้ว หม่อมราชวงศ์หญิงสิริกิติ์ยังคงศึกษาต่อ กระทั่ง พ.ศ. 2493 เมื่อพระบาทสมเด็จพระเจ้าอยู่หัวเสด็จพระราชดำเนินนิวัตพระนครเพื่อร่วมพระ ราชพิธีถวายพระเพลิงพระบาทสมเด็จพระเจ้าอยู่หัวอานันทมหิดล พระองค์ท่านโปรดฯ ให้หม่อมราชวงศ์หญิงสิริกิติ์ตามเสด็จพระราชดำเนินกลับมาด้วย
 
 
 
พระ บาทสมเด็จพระเจ้าอยู่หัวและสมเด็จพระบรมราชินีนาถทรงสายสะพายนพรัตน์ราช วราภรณ์เมื่อวันที่ 28 เมษายน พ.ศ. 2493 พระบาทสมเด็จพระเจ้าอยู่หัวโปรดเกล้าฯ ให้จัดการพระราชพิธีราชาภิเษกสมรสขึ้น ณ วังสระปทุม และโปรดเกล้าฯ สถาปนาหม่อมราชวงศ์สิริกิติ์ขึ้นเป็น สมเด็จพระราชินีสิริกิติ์

หลังจากครองราชย์สมบัติอย่างกะทันหัน พระบาทสมเด็จพระหัวอยู่หัวภูมิพลอดุลยเดช ได้โปรดเกล้าฯ ให้มีพระราชพิธีบรมราชาภิเษกขึ้นในวันที่ 5 พฤษภาคม 2493 และโปรดฯ ให้เฉลิมพระนามาภิไธย สมเด็จพระราชินีสิริกิติ์ เป็น สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินี หลังจากนั้นทั้งสองพระองค์ได้เสด็จฯ กลับไปยังสวิตเซอร์แลนด์เพื่อทรงรักษาพระองค์และทรงศึกษาต่อ แล้วเสด็จฯ กลับมาอีกครั้งในปี พ.ศ. 2495

พระราชโอรสธิดา
สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ ทรงมีพระราชโอรส และพระราชธิดา 4 พระองค์ ดังนี้

           สมเด็จพระเจ้าลูกเธอ เจ้าฟ้าหญิงอุบลรัตนราชกัญญา สิริวัฒนาพรรณวดี ประสูติ ณ สถานพยาบาลมองซัวซี นครโลซาน ประเทศสวิตเซอร์แลนด์ เมื่อวันที่ 5 เมษายน พ.ศ. 2494 ต่อมาได้ทรงลาออกจากฐานันดรศักดิ์ (ปัจจุบัน ทรงพระนามว่า ทูลกระหม่อมหญิงอุบลรัตน์ราชกัญญา สิริโสภาพรรณวดี) เพื่อสมรสกับนายปีเตอร์ เลด เจนเซ่น ชาวอเมริกัน ทรงมีพระโอรส 1 องค์ และพระธิดา 2 องค์
            สมเด็จพระเจ้าลูกยาเธอ เจ้าฟ้าวชิราลงกรณ บรมจักราดิศรสันตติวงศ์ เทเวศรธำรงสุรบริบาล อภิคุณูประการมหิตลาดุลเดชภูมิพลนเรศวรางกูร กิติสิริสมบูรณ์ สวางควัฒน์ บรมขัตติยราชกุมาร ประสูติ ณ พระที่นั่งอัมพรสถาน เมื่อวันที่ 28 กรกฎาคม 2495 ต่อมา ทรงได้รับการสถาปนา ขึ้นเป็น สมเด็จพระบรมโอรสาธิราช เจ้าฟ้ามหาวชิราลงกรณ สยามมุฏราชกุมาร เมื่อ พ.ศ. 2515
             สมเด็จพระเจ้าลูกเธอ เจ้าฟ้าสิรินธรเทพรัตนสุดา กิติวัฒนาดุลโสภาคย์ ประสูติ ณ พระที่นั่งอัมพรสถาน เมื่อวันที่ 2 เมษายน พ.ศ. 2498 ต่อมาทรงได้รับพระราชทานโปรดเกล้าฯ ให้เฉลิมพระอิสริยยศ เป็น สมเด็จพระเทพรัตนราชสุดา เจ้าฟ้ามหาจักรีสิรินธร รัฐสีมาคุณากรปิยชาติ สยามบรมราชกุมารี เมื่อ พ.ศ. 2520
             สมเด็จพระเจ้าลูกเธอ เจ้าฟ้าจุฬาภรณวลัยลักษณ์ อัครราช กุมารี ประสูติ ณ พระที่นั่งอัมพรสถาน เมื่อวันที่ 4 กรกฏาคม 2500 ทรงอภิเษกสมรสกับ เรืออากาศโท (ยศในขณะนั้น) วีระยุทธ ดิษยะศริน ทรงมีพระธิดา 2 พระองค์ อ้างอิงจาก เว็บไซต์กองทัพอากาศ
 
 

 พระราชภารกิจใน 3 จังหวัดชายแดนภาคใต้ 

โครงการราษฎรอาสารักษาหมู่บ้าน

โครงการอันเนื่องมาจากพระราชดำริ ในสมเด็จพระนางเจ้าฯ พระบรมราชินีนาถ ใน 3 จังหวัดชายแดนภาคใต้โครงการหนึ่ง คือ โครงการราษฎรอาสารักษาหมู่บ้านเกิดจากเมื่อปี 2547 สมเด็จพระนางเจ้าฯพระบรมราชินีนาถเสด็จฯเยี่ยมราษฎร ราษฎรใน 5 หมู่บ้าน ได้ เข้ามาร้องไห้กับพระองค์ท่านแล้วบอกว่าอยู่ไม่ได้ แล้ว เพราะถูกรบกวนหนัก จนมีคนในตำบลตันหยงลิมอ ถูกตัดคอคามอเตอร์ไซด์ระหว่างไปกรีดยางตอนเช้ามืด ชาวบ้านบอกว่าเหตุการณ์อย่างนี้ไม่เคยเกิดขึ้น ชาวบ้านถามพระองค์ท่านว่าจะให้พวกฉันอยู่ที่นี่ หรือจะให้ไปจากที่นี่ สมเด็จพระบรมราชินีนาถรับสั่งว่าในเมื่อเราอยู่ที่นี่ เราทำมาหากินที่นี่มาตั้งแต่ปู่ย่าตายาย แล้วจะอพยพไปที่ไหนกัน

พระองค์ท่านก็ทรงพระกรุณาบอกทหารให้ส่งคนมาช่วยฝึกอาวุธให้ ตามที่ชาวบ้านได้ ถวายฎีกา และรับสั่งว่าที่ให้ฝึกนั้นเพื่อป้องกันตัวเอง ป้องกันทรัพย์สินพี่น้องเรากันเอง ไม่ได้ มีเจตนาให้พวกเธอเที่ยวเอาปืนไปไล่ฆ่าใครต่อใครเขา ขอให้ทำความเข้าใจกันให้ถ่องแท้ รับสั่งเสมอว่าผู้บริสุทธิ์มีสิทธิ์อยู่บนแผ่นดินนี้ มีทั้งพุทธ และมุสลิมไม่ได้ แยกเชื้อชาติศาสนา ใครขอมาก็ฝึกให้ ครูเองก็มาขอฝึก บอกว่าฝึกให้แต่ชาวบ้าน พวกครูยิ่งเสี่ยงอันตรายหนักเลย ฝึกลักษณะการรวมกลุ่มกัน ใช้อาวุธเข้าเวรยามในการรักษาหมู่บ้านซึ่งมีผลให้หมู่บ้านเกิดความปลอดภัย มากขึ้น ขณะนี้เป็นที่แน่ชัดว่ามีกลุ่มคนต้องการที่จะแบ่งแยกดินแดน เช่น มีการนำวิซีดีภำการตัดศีรษะไปแพร่ภาพในจังหวัดปัตตานี ซึ่งถือเป็นสิ่งที่น่าเป็นห่วง คนทำมีวัตถุประสงค์ให้ชาวบ้านหวาดกลัว และไม่อยากจะอยู่ในพื้นที่หากเราปล่อยเหตุการณ์ให้ลุกลามบายปลายบ้านเมืองก็ จะแย่

โครงการฟาร์มตัวอย่าง

จากการฝึกอาวุธ ทุกคนก็ระวังตัวหมด ไปไหนก็ไม่กล้าไป เมื่อก่อนเคยขายของในเมือง ไปรับจ้างในเมือง ตอนนี้จะไปคนเดียวก็ไม่กล้า เลยมีรับสั่งว่าจะช่วยเขาอย่างไรในเรื่องการทำมาหากินจึงได้ เกิดโครงการฟาร์มตัวอย่างขึ้นมา เพื่อจะสร้างงานให้กับชาวบ้าน คนไหนไม่กล้าไปทำงานในเมืองก็มาทำในฟาร์มทำการเกษตร ปลูกพืชผักสวนครัว เลี้ยงสัตว์ สัตว์ปีก เช่น เป็ด ไก่ และก็มีการทำประมงในครัวเรือน วันใดไม่มีกับข้าวก็สามารถช้อนปลาเป็นอาหาร นอกจากนั้นมีการเลี้ยงแพะนม ที่มีโปรตีนสูง ให้จ้างคนเข้ามาทำงาน เพื่อจะสอนให้เรียนรู้การทำเกษตรอย่างถูกหลักวิชาการ เมื่อทำเป็นแล้วก็จะได้ นำกลับไปทำในพื้นที่ของตัวเอง ได้ ผลผลิตเหลือจากรับประทานก็นำมาขายให้ฟาร์มรับซื้อ

การจัดตั้งฟาร์มนั้นอยู่ใกล้ๆกับแหล่งชุมชนเพื่อที่เขาจะได้ มาทำงานง่ายๆอย่างในบางแห่งเป็นกลุ่มของไทยพุทธอาศัยอยู่ท่ามกลางกลุ่มไทย มุสลิม ผู้ไม่หวังดีก็ใช้วิธียุยงให้ราษฎรแตกสามัคคีกัน พระองค์ท่านทรงลงไปช่วย 30 กว่าปี ช่วยให้เขาทำมาหากินได้ ทรงทำอย่างต่อเนื่อง เช่นเรื่องน้ำ บางบ้านน่าสงสานมาก เพราะขุดขึ้นมาน้ำเป็นสนิม ดีที่ช่วงนี้เป็นหน้าฝน จึงพอบรรเทาได้ บ้าง

พระองค์ท่านทรงยอมทำทุกอย่าง เหน็ดเหนื่อยพระวรกายเพื่อคนในชาติ ซึ่งเหมือนกับลูกของพระองค์ท่าน ไม่ว่าเดือดร้อนมีปัญหาอะไร เช่นโครงการปะการังเทียม อำเภอไม้แก่น จังหวัดปัตตานี ชาวบ้านร้องไห้ว่าทำมาหากินไม่ได้ เคยทำประมงอยู่ชายฝั่ง ตอนนี้ปลาไม่มีจากนั้นตี 3 พระองค์ท่านเรียกประชุม 2 ชั่วโมงว่าจะแก้ปัญหากันอย่างไร ซึ่งมีสาเหตุจากอวนลากอวนรุน ดร.ปลอดประสพ สุรัสวดี เสนอการกำหนดระยะของการทำประมง คือ ระยะ 5 กิโลเมตรจากชายฝั่งใช้เครื่องมือตกปลาขนาดเล็ก ระยะ 5 – 10 กิโลเมตร ให้ประมงปั่นไฟ และระยะ 10 – 15 กิโลเมตร อวนลากอวนรุนดำเนินการ แล้วก็ทิ้งปะการังเทียมเพื่อป้องกันการใช้อวนที่ระยะผิดประเภทไปในตัว และให้ปลาได้ อาศัยปะการังเทียมนี้เป็นที่หลบยามลมพายุแรงๆหรือใช้ชั้ง คือทางมะพร้ามถ่วงด้วยปูนซีเมนต์เพื่อให้ปลาเกาะอยู่ชายฝั่ง

พระองค์ท่านรับสั่งว่าอยากเห็นโครงการนี้เกิดขึ้นก่อนเสด็จฯกลับ ซึ่งตอนนั้นเป็นวันที่ 24 กันยายน พระองค์ท่านเสด็จฯกลับต้นตุลาคม ทุฝ่ายก็รีบดำเนินการ นี่คือการแก้ปัญหาให้ไทยมุสลิมโดยตรง ที่ปัตตานี ไม้แก่น สายบุรี หนองจิก อำเภอเมือง ปัตตานี จนถึงตากใบ นราธิวาสพอทิ้งไป 6เดือน ปลาก็มาวางไข่ ตอนนี้ปลาชุกมาก ชาวบ้านมีกินมีใช้ สามารถนำปลาไปขายได้ กฺโลกรัมละ 200 – 300 บาท นี่ก็ด้วยพระมหากรุณาธิคุณ

พระองค์ท่านรับสั่งว่าเขาขาดเสาหลัก ตอนเป็นข้าราชการชั้นผู้น้อยยังไม่ได้ สร้างหลักปักฐาน พอสามีตายก็บ้านแตกสาแหรกขาด ไม่รู้จะทำอย่างบางคนเป็นแม่บ้าน พระองค์ท่านก็ทรงเอื้อมพระหัตถ์ลงมาชุบชีวิตคนใกล้จมน้ำให้อยู่รอด ตัวอย่างอันนี้เป็นประจักษ์พยานอย่างเห็นได้ ชัด ประธานกลางมุสลิม OIC เห็นแล้วยังเทิดพระเกียรติว่าทรงช่วยเหลืออย่างเป็นธรรม ไม่เลือกชาติศาสนา

ทรงผ้าไทยเสด็จฯ ไปทั่วหล้า 

สมเด็จพระนางเจ้าสิริกิติ์ พระบรมราชินีนาถทรงสนพระราชหฤทัยในผ้าซิ่นที่ชาวบ้านนุ่งอยู่ครั้งทรงเสด็จ ไปเยี่ยยมราษฎร จังหวัดนครพนม และทรงจะจัดตั้งให้มีการทอผ้าเป็นอาชีพเสริมให้แก่ชาวบ้าน พระองค์ท่านเสด็จฯไปทรงเยี่ยมราษฎรในฉลองพระองค์ด้วยผ้าที่พวกชาวบ้านทอชาว บ้านต่างตกใจ ว่านี่หรือเป็นผ้าที่เขาทอกันเอง จึงเป็นกำลังใจในการทอให้แก่ชาวบ้านมากยิ่งขึ้น

 

 

จาก สมัยก่อนที่มีความคิดอยู่ว่า ผ้าไหม โดยเฉพาะผ้าไหมมัดหมี่ ใส่แล้วจะดูแก่ ซึ่งความจริงไม่ได้เป็นอย่างนั้นเลย พระองค์ท่านก็โปรดฯให้ตัดฉลองพระองค์ถวายสมเด็จพระเจ้าลูกเธอฯ ทรงบ้าง ซึ่งปรากฏว่าก็งดงาม ปัจจุบันนี้ แม้กระทั่งพระเจ้าหลานเธอฯ ก็ทรง เป็นที่ยอมรับกันว่า ไม่ได้เหมือนอย่างที่คิดเอาไว้ แล้วก็เลยออกมาแพร่หลายมากมายเหมือนอย่างปัจจุบันนี้

พระองค์ท่านทรงสนับสนุนให้เขาทอมากขึ้น เปลี่ยนผืนให้ใหญ่ขึ้น จากนั้นตั้งเป็นมูลนิธิแล้วเอาผ้าที่รับซื้อมาจากชาวบ้านออกเผยแพร่ให้คน รู้จัก ชักชวนให้ช่วยกันสนับสนุนฝีมือชาวบ้าน เป็นที่นิยมมาก สุภาพบุรุษ สุภาพสตรีทั้งหลาย ซื้อมาตัดใส่กัน แล้วก็แพร่หลายออกไปเรื่อยๆ ทรงใช้ช่างไทยในการตัดฉลองพระองค์ นอกเสียจากสมัยที่เสด็จฯ ต่างประเทศ อากาศหนาวต้องใช้เสื้อแบบตะวันตก ก็จะมีช่างชาวต่างประเทศมาช่วยออกแบบบ้าง แล้วอีกประการหนึ่งที่พระองค์ท่านทรงใช้ดีไซเนอร์ต่างประเทศบ้าง นอกจากที่จะให้เขาออกแบบเพื่อให้เหมาะสมกับประเทศนั้นๆ ที่จะเสด็จฯไปแล้ว อีกประการหนึ่งก็คือการที่ทรงให้ดีไซเนอร์ผู้นั้นได้มีโอกาสมาเลือกผ้าไหม ไทย แล้วก็เอาไปออกแบบตัดเย็บในห้องเสื้อของเขา ก็นับว่าเป็นการเผยแพร่ผ้าไทยให้ได้มีโอกาสไปอวดโฉมอยู่ที่นั่นให้เป็นที่ รู้จักกันมากขึ้น

การประกวดผ้าไหม จะมีดีไซเนอร์จากต่างประเทศขอเข้ามาชมมากขึ้นทุกปี อย่างเช่น มาดามฮานาเอะ มอริ หลายคนขอมาเพื่อที่จะมาสัมผัสกับผ้าด้วยตนเอง แล้วเขาก็ตื่นเต้น เอาไปตัดเย็บไว้ในห้องเสื้อของเขา พอลูกค้ามาเห็น ลูกค้าชอบใจก็จะสั่งตัด แล้วก็สั่งผ้าเข้ามาเพิ่มขึ้นเรื่อยๆ

พระองค์ท่านมิได้ทรงช่วยให้ชาวไร่ชาวนาไทยมีรายได้เพิ่มมากขึ้นเท่านั้น หากทรงเผยแพร่ให้ชาวโลกได้รู้จักประเทศไทยอย่างกว้างไกลในหลายๆ ด้าน ผ้าไหมไทยเป็นสิ่งสูงค่าที่ผู้คนชื่นชอบไปทั่วโลก ก็ด้วยพระบารมี

กำเนิดโครงการศิลปาชิพ

ทรงริเริ่มโครงการหัตถกรรมเพื่อช่วยเหลือราษฎรเป็นครั้งแรกที่หมู่บ้านเขา เต่า จังหวัด ประจวบคีรีขันธ์ เมื่อเดือนเมษายน 2508 ทรงกรุณาโปรดเกล้าฯ ให้พลโท หม่อมเจ้าประเสริฐศรี ชยางกูร ราชคงรักษ์ เป็นผู้ควบคุมโครงการ โดยทรงชักชวนให้หญิงชาวบ้านเขาเต่า หัดทอผ้าฝ้ายขาย เพื่อเป็นอาชีพเสริม

 

 

โดย ช่วงระหว่างที่ประทับอยู่ณ พระราชวังไกลกังวล ทรงได้มีพระราชเสาวนีย์ให้ไปขอครูทอผ้าจากโรงงานทอผ้าบ้านไร่ จังหวัดราชบุรี มาสอนการทอผ้าให้แก่ราษฎรบ้านเขาเต่า พร้อมทั้งสร้างกี่ทอผ้าขึ้นท้ายวังไกลกังวล ทรงส่งรถไปรับชาวบ้านมาหัดทอผ้า เริ่มจากการทอผ้าขาวม้าและผ้าซิ่นเป็นส่วนใหญ่ พร้อมทั้งพระราชทานอาหารกลางวัน และค่าแรงแก่ผู้ทอ และโปรดเกล้าฯ ให้นางสนองพระโอษฐ์ช่วยกันดูแลเด็กเล็กลูกของราษฎร จนกระทั้งพระราชชดำเนินกลับกรุงเทพมหานคร จึงบ้ายกิจการไปอยู่ใต้ถุนศาลาวัดเขาเต่า โดยเจ้าอาวาสวัดเขาเต่าและครูใหญ่โรงเรียนเขาเต่าช่วยดูแลต่อ

ปัจจุบันโครงการทอผ้าฝ้ายที่เขาเต่าได้เปลี่ยนแปลงเป็นกิจการของกรมการพัฒนา ชุมชน โดยพัฒนากรอำเภอหัวหิน เป็นผู้ดูแลโครงการตั้งแต่ พ.ศ. 2511 มีการสอนการทอผ้า ย้อมสี ตัดเย็บ และสอนการประดิษฐ์ผลิตภัณฑ์ป่านศรนารายณ์ 
 
การอนุรักษ์เต่าทะเล
 
สมเด็จ พระนางเจ้าสิริกิติ์ พระบรมราชินีนาถ มีน้ำพระราชหฤทัยห่วงใยที่เต่าทะเล ทรงตระหนักว่าทรัพยากรธรรมชาติ ทางทะเลของไทยนับวันมีแต่จะ ลดน้อยลง มีสัตว์หลายชนิดที่ใกล้จะ สูญพันธุ์ โดยเฉพาะเต่าทะเล เช่น เต่ามะเฟือง เต่าตนุ เต่ากระ เต่าหญ้า เต่าตาแดง ซึ่งในอดีตเคยมีเป็น จำนวนมาก บัดนี้ลดจำนวนลงอย่างรวดเร็ว เนื่องจากราษฎรนิยมเก็บไข่เต่าทะเลไปซื้อขายเพื่อประกอบอาหาร แม้กรมประมงจะ ขอแก้ไขกฎหมายประมง เมื่อ พ.ศ.2493 กำหนดให้ผู้ครอบครองเต่าทะเลมีความผิดตามกฎหมาย แต่สถานการณ์ก็ไม่ดีขึ้น

สมเด็จพระนางเจ้าฯ พระบรมราชินีนาถ จึงมีพระราชดำริให้ดำเนินโครงการอนุรักษ์เต่าทะเล โดยได้ พระราชทาน เกาะมันใน จังหวัดระยอง ซึ่งรัฐบาลในสมัยนั้นถวายให้เป็น ทรัพย์สินส่วนพระองค์ จัดเป็น ศูนย์กลางอนุรักษ์และ เพาะขยายพันธุ์เต่าทะเล พระราชทานชื่อว่า โครงการสมเด็จฯอนุรักษ์พันธุ์เต่าทะเล เริ่มเมื่อวันที่ 11 สิงหาคม พ.ศ.2522 ทรงพระกรุณาโปรดเกล้าฯให้ผู้แทนจากกรมประมง เข้าเฝ้าทูลละอองธุลีพระบาท รับพระราชทานพ่อพันธุ์แม่พันธุ์เต่าทะเล เพื่อนำไปใช้ในการแพร่ขยายพันธุ์ศูนย์อนุรักษ์และ เพาะขยายพันธุ์เต่าทะเลนี้

ต่อมาเมื่อโครงการสิ้นสุดลงได้ เปลี่ยนชื่อเป็น สถานีอนุรักษ์พันธุ์เต่าทะเล สังกัดกรมประมง กระทรวงเกษตรและ สหกรณ์ ตั้งอยู่ที่ตำบลกร่ำ อำเภอแกลง จังหวัดระยอง ห่างจากชายฝั่งอ่าวมะขามประมาณ 6 กิโลเมตร มีพื้นที่ประมาณ 137 ไร่ อันมีสภาพภูมิประเทศเป็น ชายฝั่งยาว 1,200 เมตร กว้าง 550 เมตร ประกอบด้วย หาดทรายและ โขดหินน้อยใหญ่จำนวนมาก เป็น แหล่งที่เต่าทะเลชอบขึ้นมาวางไข่ ทั้งเต่ากระและ เต่าตนุ ขณะเดียวกันก็ได้ มีการแก้ไขกฎหมายเพื่อการอนุรักษ์เต่าทะเล โดยห้ามการจับและ มีไว้ในครอบครองอีกด้วย
 
 

ศูนย์ฯ มีวัตถุประสงค์เพื่อศึกษาวิจัยชีววิทยาของเต่าทะเลอนุรักษ์ และ เพิ่มจำนวนโดยการเพาะขยายพันธุ์ปล่อยสู่ทะเลตามธรรมชาติ โดยวิธีนำไข่เต่าทะเล ซึ่งส่วนใหญ่ได้ จาก เกาะคราม อำเภอสัตหีบ จังหวัดชลบุรี ซึ่งเป็น พื้นที่ในความดูแลของกองทัพเรือ นำมาเพาะฟัก และ อนุบาล เมื่อลูกเต่ามีอายุประมาณ 6 เดือน จะ ติดเครื่องหมายเพื่อติดตามผล นำปล่อยลงสู่ทะเล ลูกเต่าส่วนหนึ่งนำไปเลี้ยงไว้เป็น แม่พันธุ์พ่อพันธุ์ต่อไป กรมประมงประกาศขอให้ผู้พบเต่าทะเลที่ติดเครื่องหมายนำส่งคืนศูนย์ เพื่อเป็น ข้อมูลศึกษาค้นคว้าวิจัย และ ยังทดลองเลี้ยงเต่าพ่อพันธุ์แม่พันธุ์ เพื่อให้ผสมพันธุ์และ วางไข่ ซึ่งประสบความสำเร็จ สามารถขยายพันธุ์ลูกเต่าให้มีจำนวนมากขึ้น นำมาอนุบาลแล้วปล่อยคืนสู่ท้องทะเล

สถานที่ดำเนินการอนุรักษ์เต่าทะเล มี 2 แห่ง คือ

1. เกาะมันใน ดำเนินการเลี้ยงเต่าทะเลตั้งแต่แรกเกิดจนโตขึ้น วัดขนาดตามที่กำหนดแล้วนำไปเลี้ยงไว้ในคอกในทะเลซึ่งมีเนื้อที่ขนาด 30 ไร่ แล้วศึกษาเก็บข้อมูล
2. เกาะคราม อยู่ในพื้นที่รับผิดชอบของกองทัพเรือ ศึกษาวิจัยเก็บข้อมูลความเปลี่ยนแปลงของเต่าทะเลตามธรรมชาติ โดยติดเครื่องหมายที่แม่เต่าทะเลที่ขึ้นมาวางไข่ประมาณเดือนพฤษภาคม-สิงหาคม พบว่าแม่เต่าตัวเดิมจะ กลับมาวางไข่ห่างกัน 2-3 ปี หรืออาจจะ ถึง 5 ปี และ เก็บข้อมูลแม่เต่าใหม่ที่ขึ้นมาวางไข่ และ ศึกษาพบว่ามีประชากรเต่าทดแทนกันพอสมควร

 

edit @ 4 Jul 2011 22:05:45 by Premkakna