Upload
-
View
65
Download
1
Embed Size (px)
DESCRIPTION
ดแเ้กป่ผกำ
Citation preview
การท างานตามล าดับ
การท างานแบบล าดับ
ในการเขียนโปรแกรมนั้น หลังจากที่ผ่านขั้นตอนการวิเคราะห์ปัญหา
มาแล้ว ขั้นตอนต่อไปคือการเขียนผังงานและซูโดโค้ดอธิบาย
หลักการแก้ไขปัญหา ผู้ที่เขียนโปรแกรมจะต้องเปลี่ยนผังงานให้เป็น
การอธิบายขั้นตอนการท างานในลักษณะข้อความก่อน จากนั้นจึง
เปลี่ยนข้อความนั้น ๆ ให้เป็นซูโดโค้ดแล้วจึงเขียนเป็นโปรแกรม
คอมพิวเตอร์ล าดับต่อไป รูปแบบของโปรแกรมนั้นมีหลายรูปแบบ
ส าหรับหัวข้อนี้จะกล่าวถึงรายละเอียดและตัวอย่างการท างานแบบ
ล าดับซึ่งถือว่าเป็นพื้นฐานในการเขียนโปรแกรมทั่ว ๆ ไป ลักษณะ
การท างานของโปรแกรมแบบล าดับนี้จะกระท าตามล าดับกิจกรรม
ก่อนหลัง โดยไม่มีการเปลี่ยนแปลงทิศทางไปในลักษณะอื่น
START
READ Base, HIGH
ANS = 0.5*Base*high
WRITE ANS
END
รปูแสดงตัวอยา่งผงังานการหาพืน้ทีส่ามเหลีย่ม
2006
2007
2008
2009
จากผังงานในรูปเป็นการท างานแบบล าดับ ถ้าหากเขยีนเป็นค าอธิบาย
โปรแกรมในลักษณะของข้อความภาษาไทยจะเขียนได้ดังนี้
หาพื้นที่สามเหลี่ยม
เริ่มต้น
1. รบัค่าฐาน Base, รบัค่าส่วนสูง High
2. ค านวณหาพื้นที่โดยใช้ตวัแปร ANS เท่ากับ 0.5*Base*High
3. แสดงค่าพื้นที่ ANS
จบ
ซึ่งจะเห็นว่าการท างานจะท างานเป็นล าดับต่อเนื่องกันไป ถ้าหากต้องการให้ค่า
ฐานของสามเหลี่ยมและส่วนสูงเปน็เลขจ านวนเต็ม จะเขียนเป็นซูโดโค้ดที่ใช้ค า
ภาษาองักฤษได้ดังนี้
START
INT Base, High : INTEGER
INT ANS : REAL
READ Base, High
ANS = 0.5*Base*High
WRITE ANS
END
และจากซูโดโค้ดที่ได้นี้จะท าให้สามารถเขียนเปน็โปรแกรมคอมพวิเตอร์ได้ง่าย โดย
เปลี่ยนซูโดโคด้แต่ละบรรทัดให้เปน็ไปตามหลักการเขียนโปนแกรมภาษานั้น ๆ ตาม
ตัวอย่างต่อไป
#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;
}
เมื่อคีย์โปรแกรมลงในโปรแกรม DEV – C++ แล้วทดลองแล้วรันโปรแกรมผลลัพธ์ที่
ได้จะเป็นดังรูป โดยคอมพิวเตอร์จะให้ป้อนค่าฐานและความสูงของสามเหลี่ยมเข้าไปทางอินพุต
จากนั้นจะแสดงผลเป็นพื้นที่ของสามเหลี่ยมออกมา โดยในตัวอย่างจะป้อนความยาวฐานเท่ากับ
17 และส่วนสูงเท่ากับ 12
ป้อนความยาวฐาน
และความสูง
วิธที า จากที่โจทย์ก าหนดสามารถวิเคราะห์ปัญหาได้หลายแบบ เช่น
ข้อมูลอินพุต ก าหนดค่าข้อมูลโดยตรงหรือรบัจากคีย์บอร์ด
ข้อมูลเอาต์พตุ ต้องเป็นเลขจ านวนเต็มเนื่องจากข้อมูลทั้งสี่ค่าเป็นจ านวนเต็ม
วิธีการประมวลผล ประกาศตวัแปรข้ึนมา 4 ตวั ส าหรับเก็บจ านวนเต็ม
เก็บตวัเลขในตวัแปร
น าตัวเลขทั้งสี่ค่ามารวมกันแล้วเก็บไว้ในตัวแปร
จากโจทย์ถ้าหากมีการรับข้อมูลก็ต้องประกาศตัวแปรส าหรับเก็บข้อมูล
และโจทย์บอกว่าหาผลรวมของเลขจ านวนเต็ม ดังนั้นตัวแปรควรเป็นตัวแปรที่
เก็บเลขจ านวนเต็ม
จงเขียนโปรแกรมหา
ค่าผลรวมของตัวเลข
จ านวนเต็ม 4 ค่า
วิธีที่ 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
ประกาศตวัแปร
เก็บจ านวนเต็ม
และผลรวม
สญัลักษณข์องผัง
งานแสดงขอ้มลู
ทางจอภาพ
วิธีที่ 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
วิธีที่ 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
สญัลักษณก์ารรับ
ข้อมลูทางคีย์บอร์ด
การแสดงล าดับการประมวลผลทางคณิตศาสตร์ของนิพจน์ต่างๆ
#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);
ผลลัพธท์ีไ่ด้
โปรแกรมค านวณหาผลลัพธ์จากการหาร
#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); /*หารเอาเฉพาะเศษ*/
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;
}
ผลลัพธท์ีไ่ด้
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา ส านักพิมพ์ IDC PREMIER