หน่วยที่ 5

 โครงสร้างโปรแกรม


1. โครงสร้างโปรแกรมแบบเลือกทำ และตัดสินใจ
2. โครงสร้างโปรแกรมแบบวนรอบ หรือวนซ้ำ
3. โครงสร้างโปรแกรมแบบฟังก์ชั่น

1. โปรแกรมแบบเลือกทำ และตัดสินใจ


โปรแกรมแบบเลือกทำและตัดสินใจ if(1/4)




โปรแกรมเลือกทำ โดยใช้คำสั่ง if(2/4)



โปรแกรมเลือกทำ แบบสองทางเลือก if(3/4)




โปรแกรมเลือกทำแบบสามทางเลือก if(4/4)


2. โปรแกรมแบบวนรอบ หรือวนซ้ำ

คำสั่งในภาษา C ที่ควบคุมให้โปรแกรมทำงานแบบทำซ้ำ หรือวนรอบ มี 3คำสั่ง คือ
1. คำสั่ง while
2. คำสั่ง do - while
3. คำสั่ง for


1. คำสั่ง while
     - โปรแกรมทำซ้ำแบบจำกัดจำนวนรอบ ด้วยคำสั่ง while
     - โปรแกรมทำซ้ำแบบไม่จำกัดจำนวนรอบ ด้วยคำสั่ง while

โปรแกรมทำซ้ำ โปรแกรมแห่งพลัง และโปรแกรมแห่งความผิดพลาด
ปัญหาที่มักจะพบบ่อย ๆ ในการเขียนโปรแกรมแบบทำซ้ำ
     1) การทำซ้ำแบบไม่หยุด
     2) The “Off by One” Error

2. คำสั่ง do-while
        do-while โปรแกรมทำซ้ำที่มีการตรวจสอบเงื่อนไขในตอนท้ายของ loop
        do-while โปรแกรมจะทำงานอย่างน้อยหนึ่งรอบ ไม่ว่าผลการตรวจสอบเงื่อนไขจะเป็นอย่างไร(จริง หรือ เท็จ) ก็ตาม 
     - โปรแกรมทำซ้ำแบบจำกัดจำนวนรอบ ด้วยคำสั่ง do-while
     - โปรแกรมทำซ้ำแบบไม่จำกัดจำนวนรอบ ด้วยคำสั่ง do-while

คำถามที่น่าสนใจ
     1) โปรแกรมทำซ้ำแบบใช้คำสั่ง while กับ โปรแกรมทำซ้ำแบบใช้คำสั่ง do-while มีลักษณะสำคัญแตกต่างกันอย่างไร



3. คำสั่ง for
    คำสั่ง for จะใช้เมื่อเราสามารถนับจำนวนรอบได้ หรือรู้จำนวนรอบของการทำงาน (ด้วยวิธีการอย่างใดอย่างหนึ่ง)
     - โปรแกรมทำซ้ำด้วยคำสั่ง for
         - Syntax
              - initialization
              - loop condition
              - update statement
              for(initialization, loop condition, update statement)
         - initialization และ update statement อาจมีได้หลายตัว แต่ละตัวแยกออกจากกันด้วย comma               
              - for(int i=0, j=1; i<5; i++, j+=3)

     - โปรแกรมทำซ้ำด้วยคำสั่ง for แบบซ้อน


4.ฟังก์ชัน 

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

องค์ประกอบสำคัญในการใช้งานฟังก์ชั่น ประกอบด้วย

  1. การประกาศฟังก์ชั่น ชื่อฟังก์ชั่น และอธิบายรายละเอียดของฟังก์ชั่น (Definition a Function)
  2. การเรียกใช้ฟังก์ชั่น (Calling a Function)
  3. การส่งค่ากลับจากฟังก์ชั่น (Returning Function)
  4. การกำหนดรูปแบบวิธีการเรียกใช้ฟังก์ชั่น (Parameterized Function)



#include <stdio.h>
#include <stdlib.h>

void myFunction(){
printf("Welcome to my function.\n");
}


int main(int argc, char *argv[]) {
myFunction();
return 0;
}

ตัวอย่างที่ 1


//file name: x_fn_02.c
#include<stdio.h>
double trapzoid(double w, double l){
 double area= w * l;
 return area;
}
double circle(double r){
 printf("Your radius = %f\n",r);
 printf("My Area = %f\n",(3.14159 * r * r));
 return 3.14159 * r * r;
 //return area;
}
double triangle(double b, double h){
 return 0.5 * b * h;
}
double rectangle(double w, double l){
 return w*l;
}

void main(){
 printf("Please Choose menu for calculation.\n");
 printf("1 Circle Area.\n");
 printf("2 Triangle Area.\n");
 printf("3 Rectangle Area.\n");
 printf("4 Trapzoid Area.\n");
 printf("0 Exit.\n");
 printf(".......................\n");
 int c=99;
 scanf("%d",&c);
 printf("You put %d.\n",c);
 double a = 9.9;
 // a = c;
 printf("a = %f\n",a);
 switch(c){
  case 1 : printf("Circle Area.\n");
   a = circle(2.5); 
   printf("My Circle Area = %f", a); 
   break;
  case 2 : printf("Triangle Area.\n"); break;
  case 3 : printf("Rectangle Area.\n"); break;
  default: printf("Default.\n");
 }
 printf("\nEnd.\n");
}




references:

https://www.tutorialspoint.com/cprogramming/c_functions.htm