ชิ้นงานรายวิชา
ngampae
วันพฤหัสบดีที่ 21 กุมภาพันธ์ พ.ศ. 2556
ผลงานรายวิชา
วิชา โครงการ
วิชา เสริมการใช้โปรแกรม Captivate
วิชา การสนทนาภาษาอังกฤษ 2
วิชา การประยุกต์คอมพิวเตอร์กับงานสถิติ
วิชา การใช้โปรแกรมฐานข้อมูล
ฮาร์ดแวร์และยูทิลิตึ้เบื้องต้น
วันจันทร์ที่ 7 มกราคม พ.ศ. 2556
ประวัติส่วนตัว
ประวัติส่วนตัว
ชื่อ นางสาวอภิชญา นามสกุล ไวยฤทธิ์
ชื่อเล่น "งาม"
เกิดวันพฤหัสบดีที่ 17 เดือน พฤศจิกายน พ.ศ.2537
ที่อยู่อาศัย : 35/60 หมู่ 3 หมู่บ้านศุธาวัลย์ ตำบลบางเลน อำเภอบางใหญ่ จังหวัดนนทบุรี 11140
การศึกษา : ระดับอนุบาลและประถมศึกษา - ศึกษาที่ โรงเรียนสวนบัว จังหวัดกรุงเทพมหานคร (อ.1-ป.6)
ระดับมัธยมศึกษา - ศึกษาที่ โรงเรียนเตรียมอุดมศึกษาพัฒนาการบางใหญ่ จังหวัดนนทบุรี
(ม.1-ม.3)
ระดับอาชีวศึกษา - ศึกษาที่ วิทยาลัยเทคโนโลยีพงษ์สวัสดิ์ (ปัจจุบัน)
คติประจำใจ : ต้องสำเร็จได้ด้วยตัวเราเอง ^___^
อาจารย์ที่ฉันรัก
อาจารย์ศรันย์ จิตโสภา.
เป็นอาจารย์ที่มีให้ทั้งคำปรึกษาที่ดี และความรักที่ดีกับลูกศิษย์คนนี้มาตลอด
คือ... ไม่มีอะไรมาก ฮ่าๆๆ (รักป๊ามากนะ อิอิ) <3 <3
วันอาทิตย์ที่ 21 สิงหาคม พ.ศ. 2554
อาเรย์ (Array)
อาเรย์ (Array)
ตัวแปรอาเรย์สามารถเก็บข้อมูลหลายๆข้อมูลไว้ได้โดยไม่ต้องใช้ตัวแปรหลายตัว เช่นถ้าต้องการเก็บอายุของเพื่อนทั้ง 20 คน ถ้าเราใช้ตัวแปรแบบ int เราจะต้องประกาศตัวแปร age1, age2, age3,.....,age20 ให้เป็นแบบ int ซึ่งเป็นการประกาศตัวแปรถึง 20 ตัวด้วยกัน แต่ถ้าใช้อาเรย์เราประกาศตัวแปร age ให้เป็นอาเรย์แบบ int เพียงตัวเดียวก็สามารถเก็บค่าทั้ง 20 ค่าได้แล้ว
อาเรย์ 1 มิติ (One-Dimensional Array)
เราสามารถสร้างตัวแปรอาเรย์ของข้อมูลชนิดต่างๆได้ไม่ว่าจะเป็นอาเรย์แบบ int, char, float ดังตัวอย่างต่อไปนี้
void main()
{
int age [5];
double grade [5];
char s [5];
....
}
จากตัวอย่างเป็นการประกาศตัวแปรชื่อ age ให้เป็นอาเรย์ของข้อมูลชนิด int ที่มีขนาดเท่ากับ 5 ดังนั้นตัวแปร age จะสามารถเก็บเลขจำนวนเต็มได้ถึง 5 จำนวน สำหรับตัวแปร grade ถูกประกาศเป็นอาเรย์ของข้อมูลชนิด double และมีขนาดเท่ากับ 5 เช่นเดียวกัน เราจึงสามารถเก็บเลขทศนิยมไว้ในตัวแปร grade ได้ 5 จำนวน และการประกาศตัวแปร s ให้เป็นอาเรย์ของข้อมูลชนิด char ที่มีขนาด 5 ตัวอักษร จึงเก็บตัวอักษรได้ 5 ตัว
เมื่อเราประกาศตัวแปรอาเรย์ทั้ง 3 ตัวคือ age, grade และ s แล้ว ในหน่วยความจำจะมีการจองพื้นที่เอาไว้ตามจำนวนที่กำหนด โดยตัวแปร age และ grade นั้นจะมีการเตรียมพื้นที่ว่างในหน่วยความจำสำหรับเก็บค่าตัวแปรละ 5 ค่า และตัวแปร s ก็มีการเตรียมพื้นที่เอาไว้เก็บตัวอักษร 5 ตัว
การนำค่าใส่ลงไปในตัวแปรอาเรย์
ตัวแปรอาเรย์นั้นสามารถเก็บค่าได้หลายๆค่า โดยแต่ละค่าก็จะเหมือนกับเป็นตัวแปร 1 ตัว เช่นถ้าเราประกาศตัวแปร int age [5] ก็เหมือนกับว่าเรามีตัวแปร age ถึง 5 ตัว ซึ่งแต่ละตัวนี้เราเรียกว่าสมาชิกของอาเรย์ การอ้างถึงสมาชิกของอาเรย์จะต้องใช้หมายเลขลำดับ โดยเริ่มจาก 0,1,2,...ไปเรื่อยๆจนถึง” ขนาดของอาเรย์ลบด้วย 1” เช่นถ้าเราสร้างอาเรย์ int age [5] การอ้างถึงสมาชิกของอาเรย์จะใช้หมายเลข 0 ถึง 4 ถ้าเรานำเอาค่า 20, 21, 23, และ 26 มากำหนดให้กับสมาชิกลำดับที่ 0, 1, 2 และ 3 ของอาเรย์ age ตามลำดับ เราจะเขียนโปรแกรมดังนี้
int age [5];
age [0] = 20;
age [1] = 21;
age [2] = 23;
age [3] = 26;
จะเห็นว่าตัวแปร age เป็นอาเรย์แบบ int ซึ่งเก็บเลขจำนวนเต็มได้ 5 ค่า แต่จากตัวอย่างเรากำหนดค่าให้กับสมาชิกลำดับที่ 0 ถึง 3 โดยไม่ได้กำหนดค่าให้กับสมาชิกลำดับที่ 4 เพราะว่าการใส่ข้อมูลลงในอาเรย์นั้นไม่จำเป็นจะต้องใส่ทุกๆช่องให้ครบจึงจะใช้งานได้ ช่องใดไม่ได้ใส่ค่าลงไป มันก็ไม่เก็บค่าอะไรไว้จะเป็นช่องว่างๆไปโดยอัตโนมัติ
อาเรย์ของข้อมูลชนิด char คือตัวแปรสตริง
ตัวแปรอาเรย์ของข้อมูลชนิด char อีกนัยหนึ่งก็คือตัวแปรแบบข้อความหรือตัวแปรสตริง
(String) ตัวแปรสตริงคือการนำเอาตัวแปรแบบ char มาเรียงต่อๆกัน ซึ่งตัวแปร char ที่เรียงต่อกันก็เรียกได้ว่าเป็นตัวแปรอาเรย์ของข้อมูลชนิด char นั่นเอง จึงสรุปได้ว่า ”สตริง” กับ “อาเรย์ของ ข้อมูลชนิด char” คือสิ่งเดียวกัน
ตัวแปรอาเรย์ของข้อมูลชนิด char จะแตกต่างจากอาเรย์ของ int, double หรือแบบอื่นๆ เพราะว่าสมาชิกตัวสุดท้ายของอาเรย์แบบ char จะใช้เก็บรหัสสิ้นสุดข้อความ ด้วยเหตุนี้ถ้าเราประกาศตัวแปรอาเรย์แบบ char เพื่อเก็บข้อความ เราจะต้องประกาศอาเรย์ให้มีขนาดมากกว่าจำนวนตัวอักษรของข้อความที่ต้องการเก็บอย่างน้อย 1 ตัวอักษร
สมมติว่าเราประกาศตัวแปรอาเรย์แบบ char เพื่อที่จะเก็บคำว่า “Computer” ซึ่งมีทั้งหมด 8 ตัวอักษร เราจะต้องประกาศตัวแปรอาเรย์แบบ char ที่มีขนาด 9 ตัวอักษร นอกจากนี้การกำหนดค่าให้กับตัวแปรอาเรย์แบบ char หรือตัวแปรสตริงนี้ยังสามารถทำไปพร้อมกับการประกาศตัวแปรได้เลย ดังนี้
char s[5] = “GIRL”;
หรือ
char s[5] = { ‘G’, ‘I’, ‘R’, ‘L’ }
การนำค่าในอาเรย์ไปใช้
การใช้งานตัวแปรอาเรย์แบบ char นั้น โดยมากจะใช้รับค่าที่เป็นข้อความ เช่นชื่อ, เบอร์โทรศัพท์, ที่อยู่, อีเมล์, ชื่อเว็ปไซท์ เป็นต้น ดังตัวอย่างต่อไปนี้
#include
void main()
{
char s[10];
printf (“What is your name?n”);
scanf (“%s”, s);
printf (“You are %s. n”, s);
}
ผลการรันโปรแกรม
What is your name?
robert
You are robert.
จากตัวอย่างเราได้ประกาศอาเรย์ s เอาไว้ 10 ช่อง เพื่อให้เพียงพอต่อการเก็บชื่อโดยประมาณเอาไว้ 10
อาเรย์ 2 มิติ (Two-Dimensional Array)
อาเรย์ 2 มิติจะเก็บข้อมูลไว้ในลักษณะของตาราง
การสร้างอาเรย์ 2 มิตินั้นเราจะเขียนโค้ดภาษาซีดังนี้
int a[3][3];
int b[2][3];
การนำค่าที่ต้องการเก็บในอาเรย์เราจะต้องอ้างถึงลำดับของสมาชิกช่องนั้นๆ ทั้งลำดับในแนวนอนและลำดับในแนวตั้ง หรือจะมองในลักษณะของคู่ลำดับก็ได้ดังรูปต่อไปนี้
int a[3][3];
a[0][0] a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] a[1][2] a[2][2]
จะเห็นว่าหมายเลขลำดับของอาเรย์ในแต่ละแนวเริ่มต้นจาก 0 จนถึง “ขนาดในแนวนั้นลบด้วย 1” เช่น ถ้าประกาศอาเรย์ 2 มิติขนาด 3x3 ลำดับในแนวนอนก็จะเริ่มจาก 0 ถึง 2 รวมทั้งหมด 3 ช่อง และในแนวตั้งก็จะเริ่มจาก 0 ถึง 2 รวมทั้งหมด 3 ช่องเช่นกัน
สำหรับวิธีการนำเอาข้อมูลใส่ลงในตัวแปรอาเรย์ 2 มิตินี้ก็จะใช้หลักการเดียวกันกับอาเรย์ 1 มิติ โดยระบุช่องที่ต้องการใส่ค่าลงไป เช่นถ้าจะใส่ค่า 10 ลงในช่อง a[1][2] เราจะเขียนโปรแกรมดังนี้
int a[3][3];
a[1][2] = 10;
int a[3][3];
a[0][0] a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] 10 a[2][2]
การอ้างอิงสมาชิกของอาเรย์ 2 มิติ จะใช้การระบุเลขลำดับสองตัวเรียงกัน คือ [x][y] โดย x เป็นเลขที่บอกว่าอยู่ช่องที่เท่าไหร่ในแนวนอนและ y บอกว่าอยู่ช่องที่เท่าไหร่ในแนวตั้ง
อาเรย์ 3 มิติ (Three-Dimensional Array)
ลักษณะของอาเรย์ 3 มิติจะมีความลึกมาเกี่ยวข้องด้วย การประกาศอาเรย์ 3 มิติทำได้โดย
เพิ่มมิติที่ 3 เข้าไปเช่น
int a[3][3][4];
จากโค้ดตัวอย่างเป็นการประกาศอาเรย์ 3 มิติที่มีขนาด 3x3x4 โดยเลข 2 ตัวแรกคือ 3 กับ 3 จะหมายถึงอาเรย์ 2 มิติขนาด 3x3 ดังนั้นพอมีมิติที่ 3 เพิ่มเข้ามาซึ่งมีขนาดเป็น 4 ก็จะเหมือนกับมีอาเรย์ 2 มิติขนาด 3x3 เรียงกันอยู่ 4 ชุดนั่นเอง
การนำข้อมูลไปเก็บไว้ในอาเรย์ 3 มิติจะใช้เลขลำดับ 3 ค่าเพื่ออ้างถึงตำแหน่งในแนวตั้ง, แนวนอน และแนวลึกของอาเรย์ ดังตัวอย่างต่อไปนี้
a[1][0][0] = 8;
a[1][1][0] = 14;
a[2][1][0] = 17;
a[2][0][1] = 9;
a[2][1][1] = 8;
a[2][2][1] = 13;
a[1][0][2] = 9;
a[1][1][2] = 8;
a[2][1][2] = 13;
โดยทั่วไปเราไม่ค่อยพบเห็นการใช้งานอาเรย์ 3 มิติบ่อยนักเพราะจะใช้ในการแก้ไขปัญหาเฉพาะด้าน เช่นการวาดกราฟิกที่มีความลึกเป็นต้น เรามักจะเห็นการใช้งานอาเรย์ 2 มิติมากกว่า แต่อย่างไรก็ตามหลักการในการกำหนดค่าและการเข้าถึงข้อมูลสามารถทำได้เช่นเดียวกัน
วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2554
คำสั่งวนลูป
ความหมายของลูป(loop)
ลูป(loop)ในที่นี้มีความหมายว่า การวนซ้ำซึ่งการวนซ้ำในทางภาษาคอมพิวเตอร์ คือ การทำคำสั่งหรือชุดคำสั่งนั้นซ้ำกันหลายๆครั้ง
รูปแบบของลูป
ในการตรวจสอบว่าจะให้ลูปนั้นจบการทำงานเมื่อไรนั้น จะมีรูปแบบของการตรวจสอบเงือนไขอยู่ 2 แบบ
1.Pretest Loop ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็นเท็จถ้าเป็นจริงก็ให้เข้าไปทำคำสั่งหรือชุดคำส่งต่อไป และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้วก็จะกลับมาทำการตรวจสอบเงื่อนไขอีกครั้ง แลดะจะทำเช่นนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ ก็จบการทำงานของลูป
2.post-Test loop ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิมอีกครั้งแลดะจะทำจนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
การกำหนดและปรับปรุง
ในการใช้ลูป จะมีการกระทำที่สำคัญอยู่ 2 อย่าง ที่จะขาดไม่ได้เลยซึ่งถ้าขาดไปจะทำให้ลูปนั้นไม่ทำงาน หรือลูปทำงานแบบไม่มีวันจบ
1.การกำหนดค่า ก่อนที่เริ่มใช้ลูปจะต้องมีการกำหนดค่าที่นะใช้เป็นตัวควบคุมลูปก่อนซึ่งตัวควบคุมนี้จะทำหน้าที่ในการตรวจอบว่าลูปนั้นได้ทำงานจนจบ
2.การปรับปรุง หลังจากที่ทำคำสั่งหรือชุดคำสั่งไปแล้วไม่มีการปับปรุงค่าของตัวควบคุมลูปก็จะทำให้ลูปนั้นกลายเป็นลูปไม่มีวันจบได้เพราะฉะนั้นจะต้องทำการปรับปรุงค่าของตัวควบคุมลูปทุกครั้งเพื่อจะได้นำค่าของตัวควบคุมไปตรวจสอบกับเงื่อนไขเพื่อจบการทำงานของลูป
n คือ จำนวนของการวนซ้ำ
คำสั่งวนลูปในภาษา C
คำสั่งลูปในภาษา C นั้นจะมีอยู่ 3 คำสั่ง คือ คำสั่ง While คำสั่ง for และคำสั่ง do…while ซึ่งสองคำสั่งแรกเป็นลูปแบบ Pretest loop ส่วนคำสั่งสุดท้ายจะเป็นแบบ Post-test loop
For loop
คำสั่ง For นั้นจะเป็นลูปแบบ pretest loop ที่ใช้นิพจน์ 3 นิพจน์ นิพจน์แรกเป็นการกำหนดค่า นิพจน์ที่ 2 เป็นเงื่อนไขในการตรวจสอบตัวควบคุมลูป และส่วนที่ 3 เป็นการปรับปรุงค่าของตัวควบคุมลูป
จะพบว่าในตัวของคำสั่ง for สามารถมีคำสั่งได้เพียงหนึ่งคำสั่งเท่านั้นจะต้องใช้ชุดคำสั่งแบบ compound statement และจะพบอีกว่าคำสั่ง for นั่นมีการทำงานเหมือน while แต่คำสั่ง for นั้นจะรวมการกระทำทั้งสามอย่างไว้ในบรรทัดเดียวกันเลย
การเปรียบเทียบการเขียนโปรแกรมโดยใช้คำสั่ง for และคำสั่ง while โดยโจทย์มีอยู่ว่าให้รับตัวเลขทางคีย์บอร์ด 20 ตัว แล้วนำตัวเลขทั้งหมาดมารวมกัน ซึ่งจากโปรแกรมข้างต้นด้านล่างจะเห็นได้ว่า คำสั่ง for จะช่วยให้ผู้ใช้เขียนโปรแกรมได้สั้นลง
โปรแกรมที่ 7-2 โปรแกรมแสดงตัวเลขที่เรียงตัวเลขจากศูนย์ถึงตัวเลขที่รับเข้ามา
จากโปรแกรมที่ 7-2 ถ้าต้องการให้พิมพ์เฉพาะเลขคี่ก็สามารถทำได้ โดยการเปลี่ยนที่คำสั่ง for เป็นดังนี้
For(i=1;i<=limit;i+=2)
แต่ถ้าต้องการให้พิมพ์ตัวเลขเรียงจากตัวเลยที่ราบเข้ามาถอยหลังไปจนถึง 1 ก็สามารถทำได้ดังนี้
For (I = limit; I <= 1;I++)
ในโปรแกรมที่ 7-3 เป็นการใช้คำสั่ง for ซ้อนกัน ซึ่งการใช้คำสั่ง for ซ้อนกันจะช่วยให้ในการเขียนโปรแกรมบางอย่างได้ง่ายขึ้น
โปรแกรมที่ 7-3 การใช้คำสั่ง for ซ้อนกัน
Do…while loop
คำสั่ง do…while เป็นลูปแบบ Post-Test Loop ดังที่ได้กล่าวไปแล้วในข้างต้น ว่าลูปแบบนี้จะมีคำสั่งก่อนทีจะไปทำการตรวจสอบตัวควบคุมลูป ซึ่งผังการทำงานและชุดคำสั่งเบื้องต้นได้แสดงในรูปที่ 7-10
คำสั่งอื่นๆที่ใช้ในลูป
ในการวนลูปนั้น บางครั้งการทำงานของลูปอาจจะทำให้ตัวควบคุมนั้น มี่มีค่าที่นำตรวจสอบเพื่อจบการทำงานได้ หรือเมื่อพบกรณีใดกรณีหนึ่งขึ้นมา ผู้ใช้ไม่ต้องการให้ทำคำสั่งต่อไปแลกะต้องการให้ข้ามคำสั่งนั้นไปเลย เพราะฉะนั้นภาษาC จึงมีคำสั่งที่ช่วยการทำงานในลักษณะนี้ขึ้น
การทำงานของโปรแกรมนี้คือ รับตัวเลขเข้ามา แล้วทำการตรวจสอบโดยมีเงื่อนไขว่าถ้าตัวเลขไม่เท่ากับ 0 ให้ทำการบวกค่าในตัวแปร Count ขึ้น 1 จากนั้นให้ตัวแปร sum เท่ากับ sum + (number หารเอาเศษด้วย 10) ซึ่งบรรทัดเผลของการหารเอาเศษจะได้เลขหลักสุดท้ายออกมา บรรทัดต่อไปให้ number หารด้วย 10 ก็ตัดเลขตัวสุดท้ายที่บวกเป็นแล้วออกไปทำจนกว่า number จะเท่ากับ 02
ลูป(loop)ในที่นี้มีความหมายว่า การวนซ้ำซึ่งการวนซ้ำในทางภาษาคอมพิวเตอร์ คือ การทำคำสั่งหรือชุดคำสั่งนั้นซ้ำกันหลายๆครั้ง
รูปแบบของลูป
ในการตรวจสอบว่าจะให้ลูปนั้นจบการทำงานเมื่อไรนั้น จะมีรูปแบบของการตรวจสอบเงือนไขอยู่ 2 แบบ
1.Pretest Loop ลูปประเภทนี้จะทำการตรวจสอบเงื่อนไขก่อนว่าเป็นจริง หรือเป็นเท็จถ้าเป็นจริงก็ให้เข้าไปทำคำสั่งหรือชุดคำส่งต่อไป และเมื่อทำคำสั่งหรือชุดคำสั่งเสร็จแล้วก็จะกลับมาทำการตรวจสอบเงื่อนไขอีกครั้ง แลดะจะทำเช่นนี้ไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ ก็จบการทำงานของลูป
2.post-Test loop ลูปประเภทนี้จะทำคำสั่งหรือชุดคำสั่งก่อน เมื่อเสร็จแล้วถึงจะมาตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทำคำสั่งหรือชุดคำสั่งเดิมอีกครั้งแลดะจะทำจนกว่าเงื่อนไขจะเป็นเท็จเช่นเดียวกัน
การกำหนดและปรับปรุง
ในการใช้ลูป จะมีการกระทำที่สำคัญอยู่ 2 อย่าง ที่จะขาดไม่ได้เลยซึ่งถ้าขาดไปจะทำให้ลูปนั้นไม่ทำงาน หรือลูปทำงานแบบไม่มีวันจบ
1.การกำหนดค่า ก่อนที่เริ่มใช้ลูปจะต้องมีการกำหนดค่าที่นะใช้เป็นตัวควบคุมลูปก่อนซึ่งตัวควบคุมนี้จะทำหน้าที่ในการตรวจอบว่าลูปนั้นได้ทำงานจนจบ
2.การปรับปรุง หลังจากที่ทำคำสั่งหรือชุดคำสั่งไปแล้วไม่มีการปับปรุงค่าของตัวควบคุมลูปก็จะทำให้ลูปนั้นกลายเป็นลูปไม่มีวันจบได้เพราะฉะนั้นจะต้องทำการปรับปรุงค่าของตัวควบคุมลูปทุกครั้งเพื่อจะได้นำค่าของตัวควบคุมไปตรวจสอบกับเงื่อนไขเพื่อจบการทำงานของลูป
รูปที่7-3 แสดงการกำหนดค่าและการปรับปรุง
ตารางที่ 7-1 ความแตกต่างระหว่าง Pretest Loop และ Post – Test Loop
ตารางที่ 7-1 ความแตกต่างระหว่าง Pretest Loop และ Post – Test Loop
Pretest Loop | Post-Test loop |
| การกระทำ การกำหนดค่า 1 จำนวนครั้งในการตรวจสอบ n+1 จำนวนครั้งในการทำคำสั่ง n จำนวนครั้งในการปรับปรุง n จำนวนครั้งที่น้อยที่สุดในการวน 0 | การกระทำ การกำหนดค่า 1 จำนวนครั้งในการตรวจสอบ n จำนวนครั้งในการทำคำสั่ง n จำนวนครั้งในการปรับปรุง n จำนวนครั้งที่น้อยที่สุดในการวน 1 |
n คือ จำนวนของการวนซ้ำ
คำสั่งวนลูปในภาษา C
คำสั่งลูปในภาษา C นั้นจะมีอยู่ 3 คำสั่ง คือ คำสั่ง While คำสั่ง for และคำสั่ง do…while ซึ่งสองคำสั่งแรกเป็นลูปแบบ Pretest loop ส่วนคำสั่งสุดท้ายจะเป็นแบบ Post-test loop
รูปที่ 7-4 แสดงคำสั่งวนลูปในภาษา C
While loop
คำสั่ง While จะใช้เงื่อนไขเป็นตัวควบคุมลูป ซึ่งลูป while นี้จะเป็นลูปแบบ pretest loop ซึ่งจะทำการตรวจสอบเงื่อนไขก่อนที่จะเข้าไปทำคำสั่งในลูป ผังการทำงานและชุดคำสั่งเบื้องต้นของ while ได้แสดงในรูปที่ 7-5]
รูปที่ 7-5 แสดงผังการทำงานและชุดคำสั่งเบื้องต้นของคำสั่ง while
ชุดคำสั่งเบื้องต้นที่แสดงในรูปที่ 7-5 ข จะเห็นได้ว่าในตัวลูปที่มีคำสั่งได้เพียงคำสั่งเดียวซึ่งถ้าต้องการให้มีหลายคำสั่ง ก็สามารถทำได้โดยเขียนชุดคำสั่งแบบ compound statement
ชุดคำสั่งเบื้องต้นที่แสดงในรูปที่ 7-5 ข จะเห็นได้ว่าในตัวลูปที่มีคำสั่งได้เพียงคำสั่งเดียวซึ่งถ้าต้องการให้มีหลายคำสั่ง ก็สามารถทำได้โดยเขียนชุดคำสั่งแบบ compound statement
โปรแกรมที่ 7-1 โปรแกรมแสดงตัวเลขที่เรียงจากตัวเลขที่รับเข้ามาจนถึงศูนย์
For loop
คำสั่ง For นั้นจะเป็นลูปแบบ pretest loop ที่ใช้นิพจน์ 3 นิพจน์ นิพจน์แรกเป็นการกำหนดค่า นิพจน์ที่ 2 เป็นเงื่อนไขในการตรวจสอบตัวควบคุมลูป และส่วนที่ 3 เป็นการปรับปรุงค่าของตัวควบคุมลูป
จะพบว่าในตัวของคำสั่ง for สามารถมีคำสั่งได้เพียงหนึ่งคำสั่งเท่านั้นจะต้องใช้ชุดคำสั่งแบบ compound statement และจะพบอีกว่าคำสั่ง for นั่นมีการทำงานเหมือน while แต่คำสั่ง for นั้นจะรวมการกระทำทั้งสามอย่างไว้ในบรรทัดเดียวกันเลย
การเปรียบเทียบการเขียนโปรแกรมโดยใช้คำสั่ง for และคำสั่ง while โดยโจทย์มีอยู่ว่าให้รับตัวเลขทางคีย์บอร์ด 20 ตัว แล้วนำตัวเลขทั้งหมาดมารวมกัน ซึ่งจากโปรแกรมข้างต้นด้านล่างจะเห็นได้ว่า คำสั่ง for จะช่วยให้ผู้ใช้เขียนโปรแกรมได้สั้นลง
I = 1; Sum = 0; While(I<=20) { scanf(“%d”,&a); Sum+=a; I++; }/*while*/ | Sum= 0; For (I = 1;I<=20;I++) { scanf(“%d”,&a); Sum +=a; } |
โปรแกรมที่ 7-2 โปรแกรมแสดงตัวเลขที่เรียงตัวเลขจากศูนย์ถึงตัวเลขที่รับเข้ามา
จากโปรแกรมที่ 7-2 ถ้าต้องการให้พิมพ์เฉพาะเลขคี่ก็สามารถทำได้ โดยการเปลี่ยนที่คำสั่ง for เป็นดังนี้
For(i=1;i<=limit;i+=2)
แต่ถ้าต้องการให้พิมพ์ตัวเลขเรียงจากตัวเลยที่ราบเข้ามาถอยหลังไปจนถึง 1 ก็สามารถทำได้ดังนี้
For (I = limit; I <= 1;I++)
ในโปรแกรมที่ 7-3 เป็นการใช้คำสั่ง for ซ้อนกัน ซึ่งการใช้คำสั่ง for ซ้อนกันจะช่วยให้ในการเขียนโปรแกรมบางอย่างได้ง่ายขึ้น
โปรแกรมที่ 7-3 การใช้คำสั่ง for ซ้อนกัน
Do…while loop
คำสั่ง do…while เป็นลูปแบบ Post-Test Loop ดังที่ได้กล่าวไปแล้วในข้างต้น ว่าลูปแบบนี้จะมีคำสั่งก่อนทีจะไปทำการตรวจสอบตัวควบคุมลูป ซึ่งผังการทำงานและชุดคำสั่งเบื้องต้นได้แสดงในรูปที่ 7-10
ซึ่งในตัวของคำสั่ง do….while นั้นจะมีคำสั่งได้เพียงคำสั่งเดียว ซึ่งถ้าต้องการเขียนเป็นชุดคำสั่งจะต้องเขียนชุดคำสั่งแบบ Compound Statement ดังแสดงในรูปที่ 7-10
รูปที่ 7-10 แสดงผังการทำงานและชุดคำสั่งเบื้องต้นของคำสั่ง do….while
จากรูปจะเห็นได้วาคำสั่ง do…while นั้นจะมีการทำคำสั่งในลูปอย่างน้อยหนึ่งครั้ง ถึงแม้จะตรวจสอบตัวควบคุมลูปแล้วเป็นเท็จก็ตาม คำสั่ง do…while นี้จะเหมาะสำหรับงานที่ต้องมีการทำคำสั่งอย่างน้อยหนึ่งครั้ง
ในโปรแกรมที่ 7-4 เป็นการใช้คำสั่ง do…while ในการรับค่าตัวเลขแล้ว เมื่อต้องการจะหยุดให้กดปุ่ม Ctrl + Z จากนั้นนำตัวเลขทั้งหมาดมารวมกัน
โปรแกรมที่ 7-4 โปรแกรมบวกตัวเลข โดยใช้คำสั่ง do…while
จากรูปจะเห็นได้วาคำสั่ง do…while นั้นจะมีการทำคำสั่งในลูปอย่างน้อยหนึ่งครั้ง ถึงแม้จะตรวจสอบตัวควบคุมลูปแล้วเป็นเท็จก็ตาม คำสั่ง do…while นี้จะเหมาะสำหรับงานที่ต้องมีการทำคำสั่งอย่างน้อยหนึ่งครั้ง
ในโปรแกรมที่ 7-4 เป็นการใช้คำสั่ง do…while ในการรับค่าตัวเลขแล้ว เมื่อต้องการจะหยุดให้กดปุ่ม Ctrl + Z จากนั้นนำตัวเลขทั้งหมาดมารวมกัน
โปรแกรมที่ 7-4 โปรแกรมบวกตัวเลข โดยใช้คำสั่ง do…while
คำสั่งอื่นๆที่ใช้ในลูป
ในการวนลูปนั้น บางครั้งการทำงานของลูปอาจจะทำให้ตัวควบคุมนั้น มี่มีค่าที่นำตรวจสอบเพื่อจบการทำงานได้ หรือเมื่อพบกรณีใดกรณีหนึ่งขึ้นมา ผู้ใช้ไม่ต้องการให้ทำคำสั่งต่อไปแลกะต้องการให้ข้ามคำสั่งนั้นไปเลย เพราะฉะนั้นภาษาC จึงมีคำสั่งที่ช่วยการทำงานในลักษณะนี้ขึ้น
Break
คำสั่งนี้จะพบแล้วในบทที่ 6 ในคำสั่ง switch เป็นคำสั่งในการกระโดดออกจากชุดคำสิ่ง switch และมันก็สามารถนำมาใช้ในคำสั่งวนลูปได้เหมือนกัน เพื่อให้กระโดดออกจากลูปในกรณีต่างได้Continue
คำสั่งนี้จะไม่ได้กระโดดออกจากลูปเลย แต่จะกระโดดคำสั่งอื่นๆในลูปไปทำการตรวจสอบตามนิพจน์เลย ได้แสดงการทำงานของคำสั่ง Continue ในคำสั่งลูปทั้ง 3 คำสั่ง
โปรแกรมที่ 7-5 เป็นโปรแกรมที่แสดงการใช้คำสั่ง Continue ซึ่งเมื่อรับค่าเข้ามาจะใช้คำสั่ง continue เพื่อกระโดดข้ามคำสั่งที่เหลือไป แล้วจะกลับไปรับค่าตัวต่อไปเลย
ตัวอย่างโปรแกรมที่ 7-5 แสดงการใช้งานคำสั่ง Continue
โปรแกรมที่ 7-5 เป็นโปรแกรมที่แสดงการใช้คำสั่ง Continue ซึ่งเมื่อรับค่าเข้ามาจะใช้คำสั่ง continue เพื่อกระโดดข้ามคำสั่งที่เหลือไป แล้วจะกลับไปรับค่าตัวต่อไปเลย
ตัวอย่างโปรแกรมที่ 7-5 แสดงการใช้งานคำสั่ง Continue
ตัวอย่างการใช้คำสั่งวนลูป
โปรเกรมที่ 7-6เป็นโปรแกรมคำนวณหาเงินลงทุน ซึ่งค่าที่ต้องกำหนดให้คือ จำนวน เงินที่ลงทุน ดอกเบี้ย และจำนวนปีที่ต้องการ
โปรแกรมที่ 7-6 พิมพ์สามเหลี่ยมขวา
โปรเกรมที่ 7-6เป็นโปรแกรมคำนวณหาเงินลงทุน ซึ่งค่าที่ต้องกำหนดให้คือ จำนวน เงินที่ลงทุน ดอกเบี้ย และจำนวนปีที่ต้องการ
โปรแกรมที่ 7-6 พิมพ์สามเหลี่ยมขวา
โปรแกรมที่ 7-7 โปรแกรมบวกทุกตัวเลขทุกหลัก
การทำงานของโปรแกรมนี้คือ รับตัวเลขเข้ามา แล้วทำการตรวจสอบโดยมีเงื่อนไขว่าถ้าตัวเลขไม่เท่ากับ 0 ให้ทำการบวกค่าในตัวแปร Count ขึ้น 1 จากนั้นให้ตัวแปร sum เท่ากับ sum + (number หารเอาเศษด้วย 10) ซึ่งบรรทัดเผลของการหารเอาเศษจะได้เลขหลักสุดท้ายออกมา บรรทัดต่อไปให้ number หารด้วย 10 ก็ตัดเลขตัวสุดท้ายที่บวกเป็นแล้วออกไปทำจนกว่า number จะเท่ากับ 02
โปรแกรมที่ 7-8 โปรแกรมบวกทุกตัวเลขทุกหลัก
สมัครสมาชิก:
ความคิดเห็น (Atom)













