3.8 การทำงานแบบลำดับ
DESCRIPTION
3.8 การทำงานแบบลำดับTRANSCRIPT
![Page 1: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/1.jpg)
การท างานตามล าดับ
![Page 2: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/2.jpg)
การท างานแบบล าดับ
ในการเขียนโปรแกรมนั้น หลังจากที่ผ่านขั้นตอนการวิเคราะห์ปัญหา
มาแล้ว ขั้นตอนต่อไปคือการเขียนผังงานและซูโดโค้ดอธิบาย
หลักการแก้ไขปัญหา ผู้ที่เขียนโปรแกรมจะต้องเปลี่ยนผังงานให้เป็น
การอธิบายขั้นตอนการท างานในลักษณะข้อความก่อน จากนั้นจึง
เปลี่ยนข้อความนั้น ๆ ให้เป็นซูโดโค้ดแล้วจึงเขียนเป็นโปรแกรม
คอมพิวเตอร์ล าดับต่อไป รูปแบบของโปรแกรมนั้นมีหลายรูปแบบ
ส าหรับหัวข้อนี้จะกล่าวถึงรายละเอียดและตัวอย่างการท างานแบบ
ล าดับซึ่งถือว่าเป็นพื้นฐานในการเขียนโปรแกรมทั่ว ๆ ไป ลักษณะ
การท างานของโปรแกรมแบบล าดับนี้จะกระท าตามล าดับกิจกรรม
ก่อนหลัง โดยไม่มีการเปลี่ยนแปลงทิศทางไปในลักษณะอื่น
![Page 3: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/3.jpg)
START
READ Base, HIGH
ANS = 0.5*Base*high
WRITE ANS
END
รปูแสดงตัวอยา่งผงังานการหาพืน้ทีส่ามเหลีย่ม
![Page 4: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/4.jpg)
2006
2007
2008
2009
จากผังงานในรูปเป็นการท างานแบบล าดับ ถ้าหากเขยีนเป็นค าอธิบาย
โปรแกรมในลักษณะของข้อความภาษาไทยจะเขียนได้ดังนี้
หาพื้นที่สามเหลี่ยม
เริ่มต้น
1. รบัค่าฐาน Base, รบัค่าส่วนสูง High
2. ค านวณหาพื้นที่โดยใช้ตวัแปร ANS เท่ากับ 0.5*Base*High
3. แสดงค่าพื้นที่ ANS
จบ
![Page 5: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/5.jpg)
ซึ่งจะเห็นว่าการท างานจะท างานเป็นล าดับต่อเนื่องกันไป ถ้าหากต้องการให้ค่า
ฐานของสามเหลี่ยมและส่วนสูงเปน็เลขจ านวนเต็ม จะเขียนเป็นซูโดโค้ดที่ใช้ค า
ภาษาองักฤษได้ดังนี้
START
INT Base, High : INTEGER
INT ANS : REAL
READ Base, High
ANS = 0.5*Base*High
WRITE ANS
END
และจากซูโดโค้ดที่ได้นี้จะท าให้สามารถเขียนเปน็โปรแกรมคอมพวิเตอร์ได้ง่าย โดย
เปลี่ยนซูโดโคด้แต่ละบรรทัดให้เปน็ไปตามหลักการเขียนโปนแกรมภาษานั้น ๆ ตาม
ตัวอย่างต่อไป
![Page 6: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/6.jpg)
#include<stdio.h>
#<conio.h>
main()
{
int Base, High; /*ประกาศตัวแปร Base และ High เป็นเลขจ านวนเต็ม*/
float ANS; /*ประกาศตัวแปร ANS เป็นเลขทศนิยม*/
printf(“Input Base”);
scanf(“%d”,&Base); /*รับค่าความยาวฐาน*/
printf(“Input Base”);
scanf(“%d”,&Base); /*รับค่าความสูง*/
ANS = 0.5*Base*High; /*ค านวณหาพื้นที่สามเหลี่ยม*/
printf(“ANS : %.2f\n”,ANS); /*แสดงผลออกทางจอภาพเป็นทศนิยมสองต าแหน่ง*/
getch ();
return 0;
}
![Page 7: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/7.jpg)
เมื่อคีย์โปรแกรมลงในโปรแกรม DEV – C++ แล้วทดลองแล้วรันโปรแกรมผลลัพธ์ที่
ได้จะเป็นดังรูป โดยคอมพิวเตอร์จะให้ป้อนค่าฐานและความสูงของสามเหลี่ยมเข้าไปทางอินพุต
จากนั้นจะแสดงผลเป็นพื้นที่ของสามเหลี่ยมออกมา โดยในตัวอย่างจะป้อนความยาวฐานเท่ากับ
17 และส่วนสูงเท่ากับ 12
ป้อนความยาวฐาน
และความสูง
![Page 8: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/8.jpg)
วิธที า จากที่โจทย์ก าหนดสามารถวิเคราะห์ปัญหาได้หลายแบบ เช่น
ข้อมูลอินพุต ก าหนดค่าข้อมูลโดยตรงหรือรบัจากคีย์บอร์ด
ข้อมูลเอาต์พตุ ต้องเป็นเลขจ านวนเต็มเนื่องจากข้อมูลทั้งสี่ค่าเป็นจ านวนเต็ม
วิธีการประมวลผล ประกาศตวัแปรข้ึนมา 4 ตวั ส าหรับเก็บจ านวนเต็ม
เก็บตวัเลขในตวัแปร
น าตัวเลขทั้งสี่ค่ามารวมกันแล้วเก็บไว้ในตัวแปร
จากโจทย์ถ้าหากมีการรับข้อมูลก็ต้องประกาศตัวแปรส าหรับเก็บข้อมูล
และโจทย์บอกว่าหาผลรวมของเลขจ านวนเต็ม ดังนั้นตัวแปรควรเป็นตัวแปรที่
เก็บเลขจ านวนเต็ม
จงเขียนโปรแกรมหา
ค่าผลรวมของตัวเลข
จ านวนเต็ม 4 ค่า
![Page 9: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/9.jpg)
วิธีที่ 1 ถ้าหากเป็นการก าหนดค่าข้อมูลโดยตรงจะเขยีนผงังานและโปรแกรมภาษาซีได้ดังนี้
#include<stdio.h>
#include<conio.h>
main()
{
int x1, x2, x3, x4, SUM;
x1 = 32;
x2 = 14;
x3 = 25;
x4 = 10;
SUM = x1 + x2 + x3 + x4;
printf(“SUM = %d\n”,SUM);
getch ();
return 0;
}
รูปแสดงเปรียบเทยีบผงังานและโปรแกรมภาษาซี
START
x1 = 32
x2 = 14
x3 = 25
x4 = 10
SUM = x1 + x2 + x3 + x4
WRITE SUM
END
ประกาศตวัแปร
เก็บจ านวนเต็ม
และผลรวม
สญัลักษณข์องผัง
งานแสดงขอ้มลู
ทางจอภาพ
![Page 10: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/10.jpg)
วิธีที่ 2 ถ้าหากต้องการให้ก าหนดข้อมูลเพื่อหาผลรวมทันทีก็ท าได้โดยไม่ต้องประกาศตัวแปร สามารถ
เขียนผังงานและโปรแกรมได้ดังรูปด้านล่าง วิธีนี้จะท าให้โปรแกรมใช้หน่วยความจ าของคอมพิวเตอร์
น้อยลงด้วย เนื่องจากการประกาศตัวแปรหนึ่งตัวส าหรับเก็บเลขจ านวนเต็มคอมพิวเตอร์ต้องจอง
หน่วยความจ าให้กับตัวแปรนั้นจ านวน 4 ไบต์ (ส าหรบั DEV-C++)
#include<stdio.h>
#include<conio.h>
main()
{
int SUM;
SUM = x1 + x2 + x3 + x4;
printf(“SUM = %d\n”,SUM);
getch ();
return 0;
}
รปูแสดงการประมวลผลขอ้มลูโดยตรงโดยไม่ต้องมตีัวแปรทุกตวั
START
SUM = x1 + x2 + x3 + x4
END
WRITE SUM
![Page 11: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/11.jpg)
วิธีที่ 3 ถ้าหากต้องการรับข้อมูลทางแป้นพิมพ์ทีละตวัก็ท าได้ โดยจะต้องประกาศตวัแปรส าหรับรับข้อมูล
ทางแป้นพิมพ์ด้วย และการรับข้อมูลตัวเลขแต่ละตัวจะต้องใช้ฟังก์ชัน scanf() ดังผังงานและโปรแกรม
ในรูป #include<stdio.h>
#include<conio.h>
main()
{
int x1, x2, x3, x4, SUM;
scanf(“%d”&x1);
scanf(“%d”&x1);
scanf(“%d”&x1);
scanf(“%d”&x1);
SUM = x1 + x2 + x3 + x4;
printf(“SUM = %d\n”,SUM);
getch ();
return 0;
}
รปูแสดงผังงานและโปรแกรมส าหรบัรับขอ้มลูเข้าไปทลีะคา่
WRITE SUM
START
SUM = x1 + x2 + x3 + x4
END
READ x1
READ x2
READ x3
READ x4
สญัลักษณก์ารรับ
ข้อมลูทางคีย์บอร์ด
![Page 12: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/12.jpg)
การแสดงล าดับการประมวลผลทางคณิตศาสตร์ของนิพจน์ต่างๆ
#include<stdio.h>
#include<conio.h>
int main ()
{
int a, b, c, d, e;
a = (3+4)*5;
b = 3 + 4 *5;
c = (2 + 7)*4%10;
d = 2 + 7*4%10;
e = 10 + 2 *8/4*3-5;
printf(“3+4)*5=%d\n”,a);
printf(“3 + 4 *5 =%d\n”,b);
![Page 13: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/13.jpg)
การแสดงล าดับการประมวลผลทางคณิตศาสตร์ของนิพจน์ต่างๆ
printf(“(2 + 7)*4%10 =%d\n”,c);
printf(“2 + 7*4%10 =%d\n”,d);
printf(“10 + 2 *8/4*3-5 =%d\n”,e);
getch ();
return 0;
}
![Page 14: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/14.jpg)
ผลลัพธท์ีไ่ด้
![Page 15: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/15.jpg)
โปรแกรมค านวณหาผลลัพธ์จากการหาร
#include<stdio.h>
#include<conio.h>
int main ()
{
int a, b;
float c;
a = 20;
b = 6;
c = 6;
printf(“20/6 = %d\n”,a/b); /*หารเอาเฉพาะส่วน*/
printf(“20%6 = %d\n”,a%b); /*หารเอาเฉพาะเศษ*/
![Page 16: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/16.jpg)
printf(“20/6 = %f\n”,a/c); /*หารเอาทั้งเศษและส่วน*/
printf(“20%6 = %15f\n”,a%c); /*แสดงผลโดยจองพื้นที่ 15 ช่อง*/
printf(“20%6 = %.2f\n”,a%c); /*แสดงผลทศนิยม 2 ต าแหน่ง*/
getch ();
return 0;
}
![Page 17: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/17.jpg)
ผลลัพธท์ีไ่ด้
![Page 18: 3.8 การทำงานแบบลำดับ](https://reader035.vdocuments.net/reader035/viewer/2022062707/5581621ad8b42ac7228b4f0a/html5/thumbnails/18.jpg)
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER