1 / 36

การโปรแกรมภาษา C

การโปรแกรมภาษา C. โปรแกรมแปลภาษา. การเขียนโปรแกรมคอมพิวเตอร์ทุกครั้ง จะต้องแปลงภาษาเหล่านั้นให้เป็นรหัสภาษาเครื่องที่คอมพิวเตอร์เข้าใจก่อนทุกครั้ง ก่อนที่คอมพิวเตอร์จะทำงานได้ การเขียนชุดคำสั่ง จะเรียกว่า โปรแกรมต้นฉบับ ( source program ) หรือ รหัสต้นฉบับ ( source code )

Download Presentation

การโปรแกรมภาษา C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การโปรแกรมภาษา C

  2. โปรแกรมแปลภาษา • การเขียนโปรแกรมคอมพิวเตอร์ทุกครั้ง จะต้องแปลงภาษาเหล่านั้นให้เป็นรหัสภาษาเครื่องที่คอมพิวเตอร์เข้าใจก่อนทุกครั้ง ก่อนที่คอมพิวเตอร์จะทำงานได้ • การเขียนชุดคำสั่ง จะเรียกว่า โปรแกรมต้นฉบับ (source program)หรือ รหัสต้นฉบับ (source code) • ภาษาเครื่องที่คอมพิวเตอร์ทำงานได้เรียกว่า executable program โปรแกรมต้นฉบับ Interpreter รหัสภาษาเครื่อง แปลทีละบรรทัด โปรแกรมต้นฉบับ Compiler รหัสภาษาเครื่อง แปลทั้งโปรแกรม

  3. ขั้นตอนการพัฒนาโปรแกรมขั้นตอนการพัฒนาโปรแกรม • การกำหนดและวิเคราะห์ปัญหา (Problem definition and problem analysis) • การเขียนผังงานและซูโดโค้ด (pseudocoding) • การเขียนโปรแกรม (programming) • การทดสอบและแก้ไขโปรแกรม (program testing and debuggin) • การทำเอกสารและบำรุงรักษาโปรแกรม (documentation and maintenance) วิเคราะห์ปัญหา ซูโดโค้ด และผังงาน การเขียนโปรแกรม การทำเอกสาร และ บำรุงรักษาโปรแกรม การทดสอบและแก้ไข

  4. โครงสร้างโปรแกรม # include “stdio.h” # include “conio.h” int cola = 10 ; main( ) { int pepsi = 20 ; total = cola + pepsi ; printf (“This result is : %d”,total) ; } Preprocessor directives global declarations int main (void) { } local definitions statements

  5. โปรแกรมภาษาซีเบื้องต้นโปรแกรมภาษาซีเบื้องต้น # include “stdio.h” main() { } # include “stdio.h” main( ) { printf (“COMPUTER”) ; } หรือ หรือ # include “stdio.h” main(){ } # include “stdio.h” main( ){ printf (“COMPUTER”) ; }

  6. ประเภทของข้อมูล (Data type) • ข้อมูลประเภทอาจจะมี คำว่า short หรือ long หรือ unsigned ซึ่งหมายความว่า • short int : จะใช้เนื้อที่หน่วยความจำน้อยกว่าหรือเท่ากับ int • long int : จะใช้เนื้อที่หน่วยความจำมากกว่าหรือเท่ากับ int • unsigned : จะเก็บข้อมูลที่ไม่มีค่าลบ เพราะจะใช้ทุกๆบิตแทนค่าตัวเลข ดังนั้น unsigned int จะเก็บข้อมูลเลขบวก ได้มากกว่า int 2 เท่า

  7. การประกาศตัวแปรและค่าคงที่การประกาศตัวแปรและค่าคงที่ # include "stdio.h" const float taxrate = 0.07 ; float itemcost,salestax; main( ) { printf("Please enter cost of item: "); scanf("%f",&itemcost); salestax = taxrate * itemcost; printf("Item cost is = %f \n",itemcost); printf("Sales tax is %f\n",salestax); getch(); } การประกาศค่าคงที่ การประกาศตัวแปร

  8. ตัวดำเนินการเลขคณิต • ลำดับการทำงานของตัวดำเนินการ คือ ( ) , * , / , + , - เช่น • 5 % 2 + 14 / 3 – 6 ผลลัพธ์คือ –1 • 7.5 – 10.0 / 4.0 * (2 + 3) ผลลัพธ์คือ –5.0

  9. ผลลัพธ์จากการดำเนินการกับข้อมูลต่างประเภทผลลัพธ์จากการดำเนินการกับข้อมูลต่างประเภท #include "stdio.h" main(){ char aChar = 'A'; int intNum = 200; double fltNum = 245.3; printf("aChar contains: %c\n",aChar); printf("aChar numeric: %d\n",aChar); printf("intNum contains: %d\n",intNum); printf("fltNum contains: %f\n",fltNum); intNum = intNum + aChar; fltNum = fltNum + aChar; printf("\nAfter additions....\n"); printf("aChar numaric: %d\n",aChar); printf("intNum contains: %d\n",intNum); printf("fltNum contains: %f\n",fltNum); } ผลลัพธ์ คือ aChar contains : A aChar numeric : 65 intNum contains : 200 After additions… aChar numeric : 65 intNum contains : 265 fltNum contains : 310.300000

  10. การพิมพ์ข้อมูลเบื้องต้น : ฟังก์ชัน printf ( ) • ฟังก์ชัน printf( ) เป็นฟังก์ชันที่ใช้พิมพ์ข้อความต่างๆออกทางจอภาพ มีลักษณะโครงสร้างดังนี้ • control string : เป็นส่วนที่ใช้แสดงข้อความออกทางจอภาพ • variable list : เป็นส่วนของค่าคงที่ หรือตัวแปรที่จะให้แสดงผล printf (“control string”,variable list,…………..) ; # include “stdio.h” main( ){ int fanta = 22 ; printf (“Value is : %d and %d\n”,fanta,500) ; }

  11. การพิมพ์ข้อมูลเบื้องต้น : ฟังก์ชัน printf ( ) printf (“Computer\n”); printf (“\\Computer”); printf (“\nComputer”); printf (“\aComputer\n”); printf (“\nComputer\n”); printf (“\tComputer”);

  12. การพิมพ์ข้อมูลเบื้องต้น : ฟังก์ชัน printf ( )

  13. การพิมพ์ข้อมูลเบื้องต้น : ฟังก์ชัน printf ( ) printf (“%s %d %f %c \n”,”Sam”,14,-8.76,’X’) ; Sam 14 –8.760000 X printf (“%f %.3f %.2f %.1f”,4.5678,4.5678,4.5678,4.5678) ; 4.567800 4.568 4.57 4.6 # include “stdio.h” main( ){ int x,y; x = 5; y = 6; printf (“%d\n”,x); printf (“%c\n”,x); printf (“%d %d\n”,x,y); printf (“%d\n”,125); printf (“%c\n”,125); printf (“The total is $ %6.2f\n”,12.5); printf (“The total is $ %6.3f\n”,12.5); }

  14. การรับข้อมูลเบื้องต้น : ฟังก์ชัน scanf ( ) • ฟังก์ชัน scanf( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากการกดคีย์บอร์ดที่อยู่ในรูปรหัส ASCII ไปเก็บไว้ในตัวแปรที่กำหนด และสามารถระบุชนิดข้อมูลที่เก็บได้ • control string : เป็นการกำหนดชนิดของข้อมูลที่จะเก็บในตัวแปร • &variable list : เป็นการชี้ไปที่แอดเดรสหน่วยความจำของตัวแปร scanf (“control string”,&variable list,…………..) ; # include “stdio.h” main( ){ int num ; scanf (“%d”,&num) ; }

  15. การรับข้อมูลเบื้องต้น : ฟังก์ชัน scanf ( ) • ฟังก์ชัน scanf( ) สามารถระบุประเภทของข้อมูลที่จะรับเข้าได้อีกด้วย เช่น เมื่อ run โปรแกรม และทดลองป้อนค่า abcdtye และกด Enter ผลลัพธ์ที่ได้จะเป็น abcd เท่านั้น ส่วน tye จะไม่ถูกจัดเก็บในตัวแปร str เนื่องจาก มีการระบุว่าให้รับเพียงแค่ abcd เท่านั้น # include “stdio.h” main( ){ int i ; char str[80] ; scanf (“%[abcdefg]”,str) ; }

  16. ตัวอย่างโปรแกรมอินเทอร์แอกทีฟตัวอย่างโปรแกรมอินเทอร์แอกทีฟ # include “stdio.h” main(){ int feet,inches; printf(“Enter number of feet “); scanf(“%d”,&feet); inches = feet * 12; printf(“%d inches”,inches); } ผลรันของโปรแกรมคือ Enter number of feet 5 60 inches feet 5 inches 60

  17. ฟังก์ชันอื่นๆที่ใช้ในการรับข้อมูลเข้าฟังก์ชันอื่นๆที่ใช้ในการรับข้อมูลเข้า • getchar( ) : ใช้สำหรับป้อนตัวอักษร 1 ตัวผ่านทางแป้นพิมพ์และแสดงตัวอักษรบนจอภาพพร้อมทั้งต้องกด Enter เพื่อทำงานต่อ เช่น ch = getchar( ); • getche( ) : ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์และแสดงตัวอักษรบนจอภาพ แต่เมื่อป้อนข้อมูลแล้วไม่ต้องกด Enter เช่น ch = getche( ); • getch( ): ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์และไม่แสดงตัวอักษรบนจอภาพ แต่เมื่อป้อนข้อมูลแล้วไม่ต้องกด Enter เช่น ch = getch( ); • gets( ) : ใช้สำหรับข้อมูลชนิด String ซึ่งป้อนทางแป้นพิมพ์โดยมีรูปแบบดังนี้ • gets(str); • เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนข้อความ เมื่อป้อนเสร็จแล้วกด Enter ข้อความทั้งหมดจะถูกเก็บไว้ในอาร์เรย์สตริงก์ str

  18. การใส่หมายเหตุ(Comment) • หมายเหตุ (Comment) : เป็นข้อความที่ใส่ไว้ตามส่วนต่าง ๆ ของโปรแกรม เพื่ออธิบายหรือบันทึกข้อความให้ผู้พัฒนาโปรแกรมมีความเข้าใจในส่วนต่าง ๆ ของโปรแกรม โดยมีวิธีการใส่หมายเหตุดังนี้ • //ใช้กำหนดบรรทัดที่จะเป็นหมายเหตุทั้งบรรทัด เช่น // This is my Program • /*…*/ ใช้กำหนดหมายเหตุเป็นช่วง ๆ โดยหมายเหตุจะอยู่ระหว่างเครื่องหมาย /* กับ */ เช่น /* This is my Program */

  19. การใส่หมายเหตุ (Comment) // เป็นโปรแกรมที่ใช้ในการคำนวณหาหน่วยที่เป็นนิ้ว # include “stdio.h” main(){ int feet,inches; printf(“Enter number of feet “);//สั่งให้แสดงข้อความออกทางจอภาพ scanf(“%d”,&feet);/* สั้งให้โปรแกรมรับค่าจากผู้ใช้ */ inches = feet * 12; printf(“%d inches”,inches); } /* ตัวอย่างนี้เป็นวิธีการใส่หมายเหตุ ให้กับโปรแกรม */

  20. การเลือกทำ • ข้อมูลทางลอจิก (logical data) จะมีอยู่ 2 ค่าคือ ค่าที่เป็นจริง (true)และเป็นเท็จ(false) • ในภาษาซีจะใช้ 1แทนค่าที่เป็น จริง และ 0 แทนค่าที่เป็น เท็จ

  21. การเลือกทำ # include "stdio.h" int main(void){ int a = 5; int b = -3; int c = 0; printf(“ %2d && %2d is %2d\n”,a,b, a &&b ); printf(“ %2d && %2d is %2d\n”,a,c, a &&c ); printf(“ %2d && %2d is %2d\n”,c,a, c && a); printf(“ %2d || %2d is %2d\n”,a,c, a || c); printf(“ %2d || %2d is %2d\n”,c,a, c || a); printf(“ %2d || %2d is %2d\n”,c,c, c || c); printf(“!%2d && !%2d is %2d\n”a,c, !a && !c); printf(“!%2d && !%2d is %2d\n”a,c, !a && c); printf(“%2d && !%2d is %2d\n”,a,c, a && !c); return 0; } ผลลัพธ์ คือ 5 && -3 is 1 5 && 0 is 0 0 && 5 is 0 5 | | 0 is 1 0 | | 5 is 1 0 | | 0 is 0 !5 && !0 is 0 !5 && 0 is 0 5 && !0 is 1

  22. การเลือกทำแบบทางเดียว (if) if(condition){…action statement….} ตัวอย่าง if (age >=18) printf(“of age\n”); printf(“good luck”); เท็จ เงื่อนไข if (age >=18) { printf(“of age\n”); } printf(“good luck”); จริง สเตตเมนด์ ผลลัพธ์ age = 14 age = 18 age = 25 of age good luck good luck of age good luck

  23. การเลือกทำแบบทางเดียว (if) โปรแกรมที่ 4.3 โปรแกรมที่ 4.2 #include “stdio.h” main( ){ int magic = 123; //กำหนดค่า123ให้ตัวแปร int guess; printf(“Enter your guess : “); scanf(“%d”,&guess); if(guess == magic) printf(“*** Right ***”); } #include “stdio.h” #include “conio.h” main( ){ int answer; clrscr( ); printf(“What is 3+4 = “); scanf(“%d”,&answer); if(answer == 3+4) printf(“OK”); printf(“Error”); getch( ); }

  24. การเลือกทำแบบสองทิศทาง (if-else) if(condition){….statement1….} else {….statement 2….} ตัวอย่าง if (score >= 60) printf(“You pass”); else printf (“Your fail”); printf(“Have a nice day”); if (score >= 60) { printf(“You pass”); } else { printf (“Your fail”); } printf(“Have a nice day”); เงื่อนไข จริง เท็จ สเตตเมนด์ 1 สเตตเมนด์ 2 ผลลัพธ์ score = 54 score = 73 You fail Have a nice day You pass Have a nice day

  25. การเลือกทำแบบสองทิศทาง (if-else) โปรแกรมที่ 4.6 โปรแกรมที่ 4.5 #include “stdio.h” #include “conio.h” main( ){ int num; clrscr( ); printf(“enter a number”); scanf(“%d”,&num); if (num<0) printf(“number is negative”); else printf(“number is positive”); getch( ); } #include “stdio.h” int Number; float cost; main( ){ printf(“Enter number …..”); scanf(“%d”,&Number); if (Number >= 10) cost = Number * 6.5; else cost = Number * 7; printf(“Cost = %2.2f\n”,cost); }

  26. การใช้คำสั่ง if หลาย ๆคำสั่งซ้อนกัน(nested if statement) if (expression 1) if (expression 2) statement 1; else statement 2; else statement 3; Expression 1 Expression 2 Statement 3 Statement 2 Statement 1

  27. การใช้คำสั่ง if หลาย ๆคำสั่งซ้อนกัน(nested if statement) โปรแกรมที่ 4.13 โปรแกรมที่ 4.12 #include “stdio.h” main( ){ int a,b; printf(“Please enter two integer : “); scanf(“%d%d”,&a,&b); if(a<=b) if(a<b) printf(“%d < %d\n”,a,b); else printf(“%d == %d\n”,a,b); else printf(“%d > %d\n”,a,b); } #include “stdio.h” int x; main( ){ clrscr( ); printf(“Enter Score(0..100) :”); scanf(“%d”,&x); if (x >= 90) printf(“EXCELLENT”); else if(x >= 80) printf(“Good ”); else if(x >= 70) printf(“FAIR ”); else printf(“FAIL “); }

  28. การเลือกทำแบบหลายทาง (switch) switch (expression) { case constant1 : statement sequence break; case constant2 : statement sequence break; case constant3 : statement sequence break; .......... .......... [ default : statement sequence ] } จริง constant 1 ชุดคำสั่ง 1 จริง constant 2 ชุดคำสั่ง 2 จริง constant 3 ชุดคำสั่ง 3 default • คำสั่ง switch นี้จะกระทำค่าใน expression ถ้าผลลัพธ์ที่ได้เท่ากับค่าคงที่ค่าใดหลัง case โปรแกรมก็จะไปทำ statement sequence หลังค่าคงที่นั้น ถ้าไม่เท่ากับค่าใดเลยโปรแกรมจะไปทำ statment sequence หลัง default • ค่าคงที่หลัง case จะต้องเป็น int หรือ char เท่านั้น

  29. การเลือกทำแบบหลายทาง (switch) โปรแกรมที่ 4.15 โปรแกรมที่ 4.16 #include “stdio.h” #include “conio.h” main( ){ int i; clrscr( ); printf(“Enter a number between 1 and 4: “); scanf(“%d”,&i); switch(i) { case 1 : printf(“one”); break; case 2 : printf(“two”); break; case 3 : printf(“three”); break; case 4 : printf(“four”); break; default: printf(“unrecognized number”); } getch( ); } #include “stdio.h” #include “conio.h” main( ){ char ch; clrscr(); printf(“Enter the letter: “); ch = getche( ); switch(ch) { case ‘a’ : case ‘e’ : case ‘i’ : case ‘o’ : case ‘u’ : printf(“is a vowel\n”); break; default : printf(“is a consonant”); } getch(); }

  30. การทำซ้ำ (for) for (expr1;expr2;expr3) { <statement>; } expr1 : เป็นส่วนที่ใช้ในการกำหนดค่าเริ่มต้น expr2 : เป็นส่วนที่ใช้ในการตรวจสอบเงื่อนไข expr3 : เป็นส่วนที่ใช้ในการเพิ่มค่าหรือลดค่าให้กับตัวแปรเริ่มต้น for (counter=1 ; counter <= 10 ; counter++) { printf(“%d”,counter); } counter = 1 จริง counter <= 10 printf(“%d”,counter); เท็จ counter ++

  31. การทำซ้ำ (for) โปรแกรมที่ 5.1 โปรแกรมที่ 5.2 #include “stdio.h” int i; main( ){ for (i = 1 ; i <= 5 ; i++ ) printf(“number %d\n”,i); } #include “stdio.h” #include “conio.h” int x,y; main( ){ clrscr( ); for (i=1 ; i<= 12 ; i++) printf(“ 2 x %d = %d\n”,i,2*i); } ตัวอย่างการลดค่าให้กับตัวแปร โปรแกรมที่ 5.3 int x; for (x = 100 ; x > 0 ; x--) printf(“%d ”,x); #include “stdio.h” int SUM , Num , i; main( ){ SUM = 0; printf(“Input Number = “); scanf(“%d”,&Num); for(i = 1 ; i<Num ; i++) SUM = SUM + i; printf(“SUM = %d\n”,SUM); } ตัวอย่างการเพิ่มค่าหรือลดค่าครั้งละหลาย ๆค่า int x; for (x = 0 ; x <= 100 ; x = x+5) printf(“%d ”,x);

  32. การทำซ้ำ (for) โปรแกรมที่ 5.6 โปรแกรมที่ 5.7 #include “stdio.h” #include “conio.h” main( ){ int i; char ch; ch = ‘a’; clrscr( ); for (i=0;ch!=‘q’;i++){ printf(“pass: %d\n”,i); ch = getch(); } } #include “stdio.h” #include “conio.h” main( ){ int i; clrscr( ); printf(“Enter an integer: “); scanf(“%d”,&i); for(;i;i--) printf(“%d “,i); getch( ); } โปรแกรมที่ 5.10 #include “stdio.h” #include “conio.h” main( ){ int i; clrscr(); for(i=1;i<100;i++) { printf(“%d “,i); if (i==10) break; } } คำสั่ง breakเป็นคำสั่งที่ใช้ใน การบังคับให้โปรแกรมออกจากลูป ทันที

  33. การทำซ้ำ (while) while (test condition) { <statement>; } while n = 7 ; while (n >= 0) { printf (“%d\n”,n); n = n – 5; printf(“Hi %d\n”,n); } char ch ; ch = “\0” ; while (ch != ‘A’) ch = getche(); no test condition yes statement

  34. การทำซ้ำ (while) โปรแกรมที่ 5.14 โปรแกรมที่ 5.15 #include “stdio.h” #include “conio.h” main( ){ char ch; clrscr( ); ch = getche(); while (ch!=‘q’) ch = getche(); printf(“\n found the q”0; getch( ); } #include “stdio.h” #include “conio.h” main( ){ clrscr(); n = 0 ; sum = 0 ; while (sum <= 1000) { n = n + 1; sum = sum + (n * n) ; } printf(“Sum first goes over 1000 when you add %d squared \n”,n); printf(“Sum is %d\n”,sum); }

  35. การทำซ้ำ (do while) do { <statement>; }while (test condition) ; โปรแกรมที่ 5.17 โปรแกรมที่ 5.16 do #include “stdio.h” main( ) { int counter = 1 ; do { printf(“%d “,counter); }while (++counter <= 10); } #include “stdio.h” main( ){ int num; do { scanf(“%d”,&num); }while(num > 100); } statement no test condition yes

  36. คำสั่ง continue • คำสั่ง continue: เป็นคำสั่งที่ตรงข้ามกับคำสั่ง break ซึ่งคำสั่ง continue สามารถใช้ได้ใน while , for , do/while มีลักษณะการทำงานคือ เมื่อโปรแกรมทำงานมาถึงคำสั่ง continue จะทำลูปต่อไปโดยไม่ทำสเตดเมนต์ที่ตามหลัง continue โปรแกรมที่ 5.20 #include “stdio.h” main( ) { int x; for (x=1; x<=10 ; x++) { if (x==5) continue; printf(“%d “,x); } printf(“\nUsed continue to skip printing the value 5\n”); }

More Related