You are on page 1of 21

50410159 Computer Programming for Engineering

Lecture 5 ภาควิชาวิศวกรรมไฟฟา คณะวิศวกรรมศาสตร มหาวิทยาลัยบูรพา

Computer Programming for


Engineering
• STRUCTURE PROGRAMMING

อาจารยสัญชัย เอียดปราบ
sanchaie@buu.ac.th
Structure Programming
• การโปรแกรมแบบมีโครงสรา ง หรือ การโปรแกรมโครงสราง คือ การ
กําหนดขั้นตอนใหเครื่องคอมพิวเตอรทํางานโดยมีโครงสรางการควบคุม
พื้นฐาน 3 หลักการ ไดแก

• การทํางานแบบตามลําดับ (Sequence)

• การเลือกกระทําตามเงื่อนไข(Decision)

• การทําซ้ํา(Loop)
Structure Programming
• การทํางานแบบตามลําดับ (Sequence)
• รูปแบบการเขียนโปรแกรมที่งายที่สดุ คือ
• เขียนใหทํางานจากบนลงลาง
• เขียนคําสั่งเปนบรรทัด และทําทีละบรรทัดจาก
บรรทัดบนสุดลงไปจนถึงบรรทัดลางสุด
• สมมติใหมกี ารทํางาน 3 กระบวนการคือ อานขอมูล
คํานวณ และพิมพ
Structure Programming
• การเลือกกระทําตามเงื่อนไข(Decision)
• การตัดสินใจหรือเลือกเงื่อนไข คือ เขียนโปรแกรมเพื่อนําคาไป
เลือกกระทํา
• โดยปกติจะมีเหตุการณใหทํา 2 กระบวนการ
• เงื่อนไขเปนจริงจะกระทํากระบวนการหนึ่ง
• และเปนเท็จจะกระทําอีกกระบวนการหนึ่ง
• แตถาซับซอนมากขึ้น จะตองใชเงื่อนไขหลายชั้น
เชนการตัดเกรดนักศึกษา เปนตน
• ตัวอยางผังงานนี้ จะแสดงผลการเลือกอยางงาย
เพื่อกระทํากระบวนการเพียงกระบวนการเดียว
Structure Programming
• การทําซ้ํา(Loop)
• การทํากระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม
หมายถึงการทําซ้ําเปนหลักการที่ทําความเขาใจไดยากกวา 2 รูปแบบแรก
เพราะการเขียนโปรแกรมแตละภาษา จะไมแสดงภาพอยางชัดเจนเหมือน
การเขียนผังงาน ผูเขียนโปรแกรมตองจินตนาการดวยตนเอง
Structure Programming in C
if
if… else
for
while
if
Flowchart ั อนไข if
รูปแบบของคําสงเงื
if(เงือนไขทีต้องการตรวจสอบ){
คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง
ไม่จริ ง }
เงือนไข คําสังที 2;

จริ ง

คําสังที 1

คําสังที 2
ั อนไข if
Example คําสงเงื
เขียนโปรแกรมเพือหาผลสอบของนิสิตแต่ละคน โดยมีเงือนไขคือ
◦ ถ้าคะแนนสอบมีค่าน้อยกว่า 40 คะแนนถือว่าไม่ผ่านเกณฑ์

int point = 55;


if(point > 40){
ไม่จริ ง printf("Your points more than 40\n");
เงือนไข printf("Congratulation!!\n");
}
จริ ง printf("End Program\n");
คําสังที 1

คําสังที 2
ั อนไข if-else
คําสงเงื
Flowchart ั อนไข if-else
รูปแบบของคําสงเงื

if(เงือนไขทีต้องการตรวจสอบ){
คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง
ไม่จริ ง }
เงือนไข
else{
จริ ง คําสังที 2; //สามารถมีได้มากกว่า 1 คําสัง
}
คําสังที 1 คําสังที 2
คําสังที 3;

คําสั งที3
ั อนไข if-else
Example คําสงเงื
เขียนโปรแกรมเพือหาผลสอบของนิสิตแต่ละคน โดยมีเงือนไขคือ
◦ ถ้าคะแนนสอบมีค่าน้อยกว่า 40 คะแนนถือว่าไม่ผ่านเกณฑ์

int point = 55;


if(point > 40){
printf("Your points more than 40\n");
ไม่จริ ง printf("Congratulation!!\n");
}
else{
printf("Your points less than 40\n“);
จริ ง printf("Fail!!!\n");
}

printf("End Program\n");
ั อนไข if-else
งาน#1 คําสงเงื
เขียนโปรแกรมเพือตรวจสอบตัวเลขว่าเป็ นเลขคู่หรือเลขคี

if( ){
ไม่จริ ง

จริ ง }
else{

}
ั อนไข Nested if
คําสงเงื
(if-else-if-else)
Flowchart ไม่จริ ง
เงือนไข

จริ ง
ไม่จริ ง
เงือนไข
จริ ง
ไม่จริ ง
เงือนไข
จริ ง

คําสังที 1 คําสั งที 2 คําสังที 3 คําสั งที 4

คําสังที 5
ั อนไข Nested if
คําสงเงื
(if-else-if-else)
ั อนไข nested if
รูปแบบของคําสงเงื

if(เงือนไขทีต้องการตรวจสอบ){
คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง
}
else if(เงือนไขทีต้องการตรวจสอบ) {
คําสังที 2; //สามารถมีได้มากกว่า 1 คําสัง
}
else if(เงือนไขทีต้องการตรวจสอบ) {
คําสังที 3; //สามารถมีได้มากกว่า 1 คําสัง
}
//หากมีเงือนไขเป็ นจํานวนมากทีต้องการตรวจสอบ สามารถใช้ else if ได้มากเท่าทีต้องการ
else{
คําสังที 4; //สามารถมีได้มากกว่า 1 คําสัง
}

คําสังที 5;
ั อนไข nested if
งาน#2 คําสงเงื
เขียนโปรแกรมเพือหาผลการเรียนของนิสิตแต่ละคน โดยมีเงือนไขคือ
◦ แบ่งช่วงคะแนนออกเป็ น 4 ช่วงสําหรับเกรด A B C D
if( ){
ไม่จริ ง
}
จริ ง else if( ) {
ไม่จริ ง

}
จริ ง
ไม่จริ ง else if( ) {
จริ ง
}
else{

}
while
ั าซํา while
• รูปแบบของคําสงทํ ั าซํา do-while
• รูปแบบของคําสงทํ
while(เงือนไขทีต้องการตรวจสอบ){ do{
คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง
} } while(เงือนไขทีต้องการตรวจสอบ);
คําสังที 2; //สามารถมีได้มากกว่า 1 คําสัง คําสังที 2; //สามารถมีได้มากกว่า 1 คําสัง

• Flowchart • Flowchart

เท็จ คําสั งที 1


เงือนไข
จริ ง จริ ง เท็จ
เงือนไข
คําสั งที 1 คําสั งที 2
คําสั งที 2
งาน#3
ให ้เขียน code นีใน repl.t โดยมีรายละเอียดดังนี

3.1 ใหเขียน Flowchart ของ code นี้ โดยใหเติม (1) = 10 และ (2) =20 จากนั้นกด Run แลวบันทึก
อธิบายผลที่เกิดขึ้น
3.2 เปลี่ยนการเติมให (1) = 20 และ (2) =20 จากนั้นกด Run แลวบันทึกอธิบายผลที่เกิดขึ้น
3.3 เปลี่ยนจากคําสั่ง while เปน do-while แลวทําตามขอ 3.1-3.2 ตามลําดับ
ใหแนบลิ้งค repl.it มาดวย (ทําอันเดียวก็พอ)
#include <stdio.h>
int main ()
{
int a = ___(1)____;
while( a < __ (2)______)
{ printf("value of a: %d\n", a);
a++;
}
return 0;
}
for
Flowchart กําหนดค่ าเริ มต้ นให้ ตัวแปร

เท็จ
ปรับค่ าของตัวแปร เงือนไข
จริ ง
คําสั งที 1 คําสั งที 2

ั าซํา for
รูปแบบของคําสงทํ
for(กําหนดค่าเริมต้นให้ตัวแปร; เงือนไขทีต้องการตรวจสอบ; ปรับค่าตัวแปร){
คําสังที 1; //สามารถมีได้มากกว่า 1 คําสัง
}
คําสังที 2; //สามารถมีได้มากกว่า 1 คําสัง
งาน#4
ให ้เขียน code นีใน repl.t โดยมีรายละเอียดดังนี

#include <stdio.h>
void main(){
for( int i = 0 ; i < 5 ; i++ ){
printf(“%d\n“, i);
}
}
3.1 ใหเขียน Flowchart ของ code นี้ จากนั้นกด Run แลวบันทึกอธิบายผลที่เกิดขึ้น
3.2 เปลีย่ นบรรทัดที่ไฮไลทตามที่กําหนดมาให จากนั้นกด Run แลวบันทึกอธิบายผลที่เกิดขึ้น
for(int i = 2; i < 5; i++)
for(int i = 1; i < 5; i = i * 2)
for(int i = 5; i > 0; i--)
for(int i = 5; i > 0; i = i/2)

ใหแนบลิ้งค repl.it มาดวย (ทําอันเดียวก็พอ)


งาน#5 ให้หาผลรวมของตัวเลข 1 -100 โดยใช้คาํ สัง for
#include <stdio.h>
int main(){

for( ; ; ){

}
printf(“ผลรวมตัวเลข 1-100 เท่ากับ % “, );
return(0);
}
Lab5#1

จงเขียนโปรแกรมสําหรับพิสูจนทฤษฎีของ
นักคณิตศาสตรชื่อ Eular คิดมานานแลววา
=
วาจริงหรือไม
Lab5#2
จงเขียนโปรแกรมสําหรับหาผลรวมของเลขคูในชวงตัวเลขที่
ตองการ
* เขียน Flow Chart
* ใหผูใช กําหนดเลขเริ่มตนและเลขสุดทาย
โดยการพิมพตัวเลขจากแปนพิมพ
* ถาผูใชตองการใหคํานวณใหมใหกด 1 จากแปนพิมพ

You might also like