db680468a1313f252660e8a8586aeca5.ppt
- Количество слайдов: 28
หนวยท 2 การแปลง Algorithm เปนโปรแกรมภาษาซ กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร คณะวทยาศาสตรและเทคโนโลย
การแปลง Algorithm เปนโปรแกรมภาษาซ n คำสง : ประเดน I/O พนฐาน n การแปลง Algorithm เปนโปรแกรมภาษาซ n ตวอยางปญหา ของภาษาซ กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การแสดงผล : n ฟงกชน n printf ( control , argument list; ( สวน control สวนของ control จะตองเขยนภายใตเครองหมาย “” ซงสามารถเขยนได 2 ลกษณะ คอ เปนขอความทตองการใหแสดงผลออกมา เชน printf ( “sum of x; (” = คอ เปนการสงใหพมพขอความวา sum of x = ออกมาทหนาจอ กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน n เปนรหสรปแบบ (Format Code) ทใชในการแสดงผลซงทกรหสรปแบบจะตองอยตามหล งเครองหมาย % รหสรปแ ชนดตวแปรรหสรปแบบทนยมใชไดแก ลกษณะการแสดงผลออกจอภาพ บบ %d int ใชแสดงขอมลทเปนเลขจำนวนเตมฐานสบ %ld long int ใชแสดงขอมลทเปนเลขจำนวนเตมฐานสบ แบบ long %u unsigned int ใชแสดงขอมลทเปนเลขจำนวนเตมฐานสบ แบบ unsigned %c char ใชแสดงขอมลทเปนตวอกษร %s string ใชแสดงขอมลทเปนตวแปรสตรงหรอชด ตวอกษร %o int (octal( ใชแสดงขอมลทเปนเลขฐานแปด %x int (hexa( ใชแสดงขอมลทเปนเลขฐานสบหก %f float ใชแสดงขอมลทเปนเลขทศนยม ทไมมเลขยกกำลง
คำสง I/O พนฐาน สวน argument list สวนของ argument list เปนชดตวแปร คาคงท นพจนทตองการนำมาแสดงผล ถามมากกวา 1 คาจะแยกออกจากกน โดยใชเครองหมายคอมมา (, ) หรอ #include<stdio. h< main( ) } int sum=5; float e=11. 55; printf(“This is the test Program; (“. printf(“The result is %d n”, sum; ( printf(“The result is %f %e “, e, e; ( { กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การรบขอมล : n ฟงกชน scanf n scanf ( control , argument list ); สวน control สวนของ control เปนรหสรปแบบทใชในการรบขอมลซงจะตอ งเขยนอยภายใตเครองหมาย “” และจะมรหสรปแบบเหมอนกบรหสรปแบบทใชใ นคำสง printf **หมายเหต หามมขอความใดๆ ในสวน control ของ ฟงกชน scanf กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน n สวน argument list สวนของ argument list เปนตวแปรทจะรบคาจากแปนพมพมาเกบ ไวถามมากกวาหนงคา จะตองแยกกนดวยเครองหมายคอมมา (, ) และ เนองจากเปนการรบขอมลมาเกบในหนวยคว ามจำแทนการรบคาจากหนวยความจำไปแสดง ดงนนการใช scanf จงตองมอกขระ & นำหนาตวแปรเสมอ ยกเวน การรบขอความ (string) จะไมตองใชเครองหมายน กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน char a; int b; char name[22]; มเนอท ใชเกบอกขระได /*กำหนดตวแปรชอ name 22 ชอง 21 ตว และปดทายขอความดวยอกขระ อกหนงตวรวมเปน 22 ตว /* scanf( %c %d , &a, &b); /* scan ขอมลจากคยบอรดเปนชนด char เกบในตวแปร a และ scan ขอมลจากคยบอรดเปนชนด int เกบ ในตวแปร b/* scanf( %s , name); /* scan ขอมลจากคยบอรดเปนชนด string เกบในตวแปร name/* กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การรบขอมล : n ฟงกชน n getchar( ) getchar ( ) เปนฟงกชนทใชรบขอมลเขามาทางแปนพ มพทละ 1 ตวอกษร โดยตองกด enter ทกครงเมอสนสดขอมล และขอมลทปอนจะปรากฏใหเหนบนหนาจอภาพด วย n รปแบบ n ตวอยาง #include<stdio. h< main( ) } char ch; getchar; ( ) กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การรบขอมล n ฟงกชน : getch( ) n getch ( ) เปนฟงกชนทใชรบขอมลทเปนตวอกษร 1 ตว เขามาทางแปนพมพ โดยเมอปอน ขอมลเสรจไมตองกดปม enter และอกษรทปอนเขามาจะไมปรากฏบนจอภาพ n รปแบบ n ตวอยาง #include <stdio. h< main( ) } char x; x = getch ; ( ) { getch; ( ) กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การรบขอมล n ฟงกชน n : gets( ) gets ( ) เปนฟงกชนทใชรบขอมลทเปนขอความ (ตวอกษรจำนวนหนง ) จากแปนพมพเขามาเกบไวในตวแปร วา gets = get string( n รปแบบ n ตวอยาง #include <stdio. h< main( ) } char name[10; [ gets(name ; ( { (จำงายๆ gets ( n; ( กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การแสดงผล : n ฟงกชน n putchar( ) เปนฟงกชนทใชใหคอมพวเตอรแสดงผลบนจอ ภาพทละ 1 ตวอกษร n รปแบบ putchar; ( ) n ตวอยาง #include<stdio. h< main( ) } char x; x=getch; ( ) printf (“Here is the output n; (” putchar ( x; ( กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
คำสง I/O พนฐาน การแสดงผล n ฟงกชน n : puts( ) puts ( ) เปนฟงกชนทใชแสดงผลขอมลทเปนขอค วามทเกบไวในตวแปรชดออกมาบนจอภาพ n รปแบบ puts ( n; ( n ตวอยาง #include <stdio. h< main( ) } char name [10; [ gets (name; ( puts (name; ( { กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
การแปลง Algorithm เปนโปรแกรม Pseudo-code Flowchart start Read num 1, num 2 total = num 1+num 2 Print total num 1, num 2 total=num 1+num 2 total Program printf(“Enter Num 1 : “); scanf(“%d”, &num 1); printf(“Enter Num 2 : “); scanf(“%d”, &num 2); total = num 1+num 2; printf(“%d“, total); stop กอนใชงานตวแปรตองมการประกาศตวแปรกอน รปแบบของโปรแกรมตองสมบรณ กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
การแปลง Algorithm เปนโปรแกรม Pseudo-code Flowchart start Get max, min average = (max+min)/2 Display average max, min average=(max+min)/2 average Program printf(“Enter Max : “); scanf(“%d”, &max); printf(“Enter Min : “); scanf(“%d”, &min); average=(max+min)/2; printf(“%d“, average); stop กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
การแปลง Algorithm เปนโปรแกรม Pseudo-code Flowchart start Get lw, ll, hw, hl la = lw * ll ha = hw * hl ya = la – ha Display ya lw, ll, hw, hl la = lw * ll ha = hw * hl ya = la - ha ya stop Program printf(“Enter Land Width : “); scanf(“%d”, &lw); printf(“Enter Land Length : “); scanf(“%d”, &ll); printf(“Enter House Width : “); scanf(“%d”, &hw); printf(“Enter House Length : “); scanf(“%d”, &hl); la = lw * ll; ha = hw * hl; ya = la – ha; printf(“%d“, ya); กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
แบบฝก n โปรแกรมทำการอานอตราภาษเปนเปอร เซนต พรอมราคาสนคาทขาย 5 ชนด โปรแกรมทำการหาผลรวมราคาขายกอนคด ภาษ การคดภาษใหนำอตราภาษคณดวย ยอดขายรวมใหพมพยอดขายรวม ภาษ และยอดขายรวมภาษ n จงหาคาจางทงสนตอสปดาห โดยทโปรแกรมทำการอานจำนวนชว
โครงสรางแบบทางเลอก n Single Selection (if … Structure) จะตรวจสอบเงอนไข ถาเงอนไขเปนจรง (True) จะทำกจกรรมแลวออกจากโครงสราง ถาเงอนไขเปนเทจ (false) จะออกจากโครงสรางเลย if (condition( statement 1; statement 2; Condition False True Process
โครงสรางแบบทางเลอก n Double Selection (if / else … Structure) จะตรวจสอบเงอนไข ถาเงอนไขเปนจรงกจะไปทำกจกรรม 1 แลวออกจากโครงสราง False แตถาเงอนไขเปนเทจจะไปทำกจกรรม True 2 Condition if (condition( แลวออกจากโครงสราง statement 1; Process 2 Process 1 else statement 2;
โครงสรางแบบทางเลอก if (condition 1( n Multi-Selection statement 1 else n แบบใชโครงสราง if / else if if (condition 2( statement 2 / else … Structure. . หลายชน. เปนแบบตรวจสอบเงอนไขห if (condition. N( statement. N ลายชน else statement. N+1 การตรวจสอบแตละชนจะได False Condition True ผลการตรวจสอบเชนเดยวก False บแบบ Double Selection Condition. True Process 1 False Condition True Process 4 Process 2 Process 3
ตวอยางโครงสรางแบบทางเลอ ก Start READ(SC) SC < 50 N SC < 60 N SC < 70 N SC < 80 N GR = ‘A’ Print(SC, GR) Y GR = ‘F’ Y GR = ‘D’ Y GR = ‘C’ Y GR = ‘B’ scanf(“%d”, &sc); if (sc<=50) GR=‘F’; else if (sc<=60) GR=‘D’; else if (sc<=70) GR=‘C’; else if (sc<=80) GR=‘B’; else GR=‘A’; printf(“%d %c”, sc, GR); กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
โครงสรางแบบทางเลอก n Multi-Selection (Cont. ) n แบบใชโครงสราง case or switch … Structure เปนการตรวจสอบเงอนไขวาตวแปรตรวจสอบม คาตรงกบคา (Value) ใด True Case 1. Process False True Case 2. Process False True Case n. Process False Process switch (selector) { case 1: statement 1; break; case 2: statement 2; break; . . . case n: statementn; break; default: statementd; //optional break; }
โครงสรางแบบทางเลอก n ตวอยาง การใช switch-case switch (selector) { case 1: statement 1; break; case 2: statement 2; break; . . . case n: statementn; break; default: statementd; //optional break; } switch (i) { case 1 : grade = 'A'; break; case 2 : grade = 'B'; break; case 3 : grade = 'c'; break; default : printf("%c not in range", i); break; }
โครงสรางแบบทางเลอก n ตวอยาง if (x == 0. 0( printf ("x is equal to 0. n; (" else printf ("x is greater or less than 0. n; (" if (x == 0. 0( } printf ("x is equal to 0. n; (" y = 0; { else { printf ("x is greater or less than 0. n"); y = 1; } กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
โครงสรางแบบทางเลอก n เขยนโปรแกรมเพอหาคามากสดขอ งเลข 2 จำนวน n รบคา num 1, num 2 n เปรยบเทยบ num 1>num 2 หรอไม n ใช แสดง num 1 n ไมใช แสดง num 2 n Get num 1, num 2 n If num 1>num 2 then n Print num 1 n Else print num 2 กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
โครงสรางแบบทางเลอก if (x < 0. 0( } range = 0; { else if (x < 10. 0( } range = 1; { else if (x < 100. 0( } range = 2; { else range = 3; กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
โครงสรางแบบทางเลอก n เขยนโปรแกรมเพอหาคามากสดขอ งเลข 3 จำนวน n รบคา num 1, num 2, num 3 n เปรยบเทยบ num 1>num 2 หรอไม n ใช เปรยบเทยบ num 1>num 3 n ใช แสดง num 1 n ไมใช แสดง num 3 n ไมใช เปรยบเทยบ num 2>num 3 n n ใช แสดง num 2 ไมใช แสดง num 3 n Get num 1, num 2, num 3 n If num 1>num 2 then n If num 1>num 3 then n Print num 1 Else print num 3 Else if num 2>num 3 then n n Print num 2 Else print num 3 กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร
โครงสรางแบบทางเลอก n เขยนโปรแกรมเพอรบคาตวเลข 2 จำนวน โดยรหสทำการคอ และรหสทำการจากหนาจอ 1, 2, 3 และ 4 โดย n ถารหสทำการเปน 1 ใหทำการบวกเลข 2 จำนวนเขาดวยกน n ถารหสทำการเปน 2 ใหทำการลบเลข 2 จำนวน (จำนวนแรกเปนตวตง ( n ถารหสทำการเปน 3 ใหทำการคณเลข 2 จำนวนเขาดวยกน n ถารหสทำการเปน 4 ใหทำการหารเลข 2 จำนวน (จำนวนแรกเปนตวตง ( n เขยนโปรแกรมรบยอดขาย แลวคำนวณคาคอมมสชนโดยมเงอนไขการจาย คอมมสชนดงน n ถายอดขายนอยกวา 5000 ให 10% กาญจนา ทองบญนาค สาขาวชาคอมพวเตอร n ถายอดขายอยในชวง 5001 ถง 10000 ให 15%
db680468a1313f252660e8a8586aeca5.ppt