Issuu on Google+

ใบความรู้ ท่ ี 6 (Information Sheet) เรื่อง คาสั่งรับข้ อมูล วิชา การเขียนโปรแกรมบนระบบปฏิบตั กิ ารเท็กซ์โหมด C++ รหัสวิชา 2201-2411 อาจารย์ หนึง่ ธิดา บุตรครุฑ ฟั งก์ ชัน getchar() เป็ นฟั งก์ชนั ที่ใช้ รับข้ อมูลเป็ นตัวอักขระจานวน 1 ตัวจากแป้นพิมพ์และอักขระนันจะปรากฏบน ้ จอภาพ ด้ วยและต้ องเคาะแป้น enter เพื่อแสดงว่าป้อน ข้ อมูลแล้ ว แต่ในการกาหนดตัวแปรมารับค่าถ้ าใช้ เป็ น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจานวนเต็มที่รับจากการเคาะแป้นพิมพ์จะเป็ น รหัส ASCII ของ ตัวอักษรนัน้ เช่น A จะเป็ น 65 แต่ถ้าตัวแปรที่มารับค่าเป็ น char จะมี warning ในเรื่ องการเปลี่ยน ประเภทตัวแปร แต่คา่ ที่จะแสดงออกมาจะตรง ตามที่มีการเคาะแป้น และจะมีปัญหาเมื่อมีการใช้ ฟังก์ชนั นี ้ มากกว่า 1 ครัง้ ตัวอย่างโปรแกรม #include<stdio.h> main() { char word; word=getchar( ); printf(“You key Character is = %c”,word); } ฟั งก์ ชัน getch() ใช้ รับตัวอักขระ 1 ตัวจากแป้นพิมพ์ แต่ขณะรับไม่แสดงทางจอภาพและไม่ต้องเคาะแป้น enter แล้ ว แต่ในการกาหนดตัวแปรมารับค่าถ้ าใช้ เป็ น int จะไม่มีการฟ้องการผิดพลาด โดยค่าจานวนเต็มที่ตวั แปรได้ รับมาเป็ นค่ารหัส ASCII ของตัวอักขระที่เคาะแป้นพิมพ์ เช่น C เป็ น 67 แต่ถ้าตัวแปรที่มารับค่าเป็ น char จะมี warning ในเรื่ องการเปลี่ยนประเภทตัวแปร แต่คา่ ที่ได้ จะแสดงออกมาได้ ถกู ต้ อง ตัวอย่างโปรแกรม #include<stdio.h> main() { char word; word=getch( ); printf(“You key Character is = %c”,word); }


ฟั งก์ ชัน getche() รับตัวอักขระจากแป้นพิมพ์ 1 ตัว โดยแสดงออกทางจอภาพด้ วยและไม่ต้องเคาะแป้น enter ลักษณะการทางานเป็ นไปในลักษณะเดียวกับ getche() ต่างกันที่แสดงออกทางจอภาพหรื อไม่เท่านัน้ ตัวอย่างโปรแกรม #include<stdio.h> main() { char word; word=getche( ); printf(“You key Character is = %c”,word); } ฟั งก์ ชัน gets() ใช้ รับข้ อความจากแป้นพิมพ์ มาเก็บไว้ ในชื่อตัวแปรที่กาหนด โดยเคาะแป้น enter แสดงการจบ การป้อนข้ อมูล มีรูปแบบ คือgets(string_var);โดย string_var คือ ชื่อตัวแปรที่ใช้ เก็บข้ อมูลที่ รับมาจากการ ป้อนทางแป้นพิมพ์ เป็ นตัวแปรประเภทข้ อความ และสามารถแยกเป็ นตัวอักขระ ได้ ทังหมดนี ้ ้ให้ พิจารณา จากใบงาน ตัวอย่างโปรแกรม #include<stdio.h> main() { char word[40]; printf(“Key your name = ”); gets(word); printf(“Your name is %s”,word); } ฟั งก์ ชัน scanf() เป็ นฟั งก์ชนั ที่ใช้ รับข้ อมูลประเภทต่าง ๆ จากแป้นพิมพ์ได้ กว้ างขวางกว่าฟั งก์ชนั อื่น ๆ ที่ผ่านมา ข้ อมูลที่รับ เช่น จา นวนเต็ม จานวนจริ ง ข้ อความอักขระ รู ปแบบของฟั งก์ชนั คือ scanf(control string ,variable list); control string เป็ นรหัสสาหรับรูปแบบของข้ อมูลที่จะรับเข้ า โดยรหัสรูปแบบนี ้เป็ นทานอง เดียวกับฟั งก์ชนั printf() โดยรหัสนี ้ทังหมดจะต้ องอยู่ภายในเครื่ องหมายพูด รหัสแต่ละตัวจะแทนข้ อมูลแต่ ละค่า โดยสามารถมีรหัสของข้ อมูล หลายค่าได้ ในครัง้ เดียวกันโดยไม่จาเป็ นต้ องมีเครื่ องหมายอื่นใดมาคัน่ variable list คือรายการของชื่อตัวแปรที่จะมารับค่าของข้ อมูลที่ป้อนจากแป้นพิมพ์ โดยตัวแปรต้ องประเภท


เดียวกับข้ อมูลที่ตวั แปรนันรั ้ บ และจานวนตัวแปรจะต้ องมีจานวนเท่ากับจานวนรหัสรูปแบบของข้ อมูล โดย ชื่อตัวแปรนันอยู ้ ่หลังจากเครื่ องหมายคาพูดที่ล้อมรหัสข้ อมูล โดยมีการคัน่ ด้ วยเครื่ องหมายคอมม่า (,)และ หากมีตวั แปรหลายตัวแต่ละตัว จะคัน่ ด้ วยเครื่ องหมายคอมม่า เช่นกัน และหน้ าชื่อตัวแปรแต่ละตัวจะต้ อง นาด้ วยเครื่ องหมาย & ยกเว้ นตัวแปรของข้ อมูลประเภทข้ อความ(string ตัวอย่างโปรแกรม #include<stdio.h> #include<conio.h> main() { clrscr(); int num1,num2,sum; printf("NUMBER 1="); scanf("%d",&num1); printf("NUMBER 2="); scanf("%d",&num2); sum=num1+num2; printf("SUM = %d",sum); getch(); } ตัวอย่ าง (ให้ นักเรียนศึกษาโปรแกรมดังต่ อไปนี)้ โจทย์ : บริษัทแห่ งหนึ่งต้ องการคานวณยอดขายเฉลี่ยของพนักงานขายแต่ ละราย และ กาหนดการแสดงผลทางจอภาพดังนี ้


1. การวิเคราะห์ ระบบงานเบือ้ งต้ น สิงที่โจทย์ต้องการ ค่าเฉลี่ยของยอดขาย สมการคานวณ ค่าเฉลี่ยยอดขาย = ยอดขาย / จานวนสินค้ า ข้ อมูลนาเข้ า รหัสพนักงาน ชื่อพนักงาน ยอดขาย จานวนสินค้ า การแสดงผล ตามโจทย์กาหนด กาหนดคุณสมบัตติ วั แปร ข้ อมูล

ชื่อหน่ วยความจา

รหัสพนักงาน ชื่อพนักงาน ยอดขาย จานวนสินค้ า ค่าเฉลี่ยยอดขาย

code name sum num avg

ลาดับการทางานด้ ายผังงานโปรแกรม 1) พิมพ์หวั ข้ อรายงาน 2) ป้อนข้ อมูลรหัสพนักงาน ชื่อพนักงาน ยอดขาย จานวน สินค้ า 3) คานวณค่าเฉลี่ยยอดขาย avg=sum/num 4) พิมพ์ avg 5) จบการทางาน #include<stdio.h> #include<conio.h> main() { clrscr(); char name[30]; int code,sum,num; float avg; printf(“*********************”); printf(“\nReport Average \n”);

ชนิดข้ อมูล กลุม่ อักขระ กลุม่ อักขระ ตัวเลขจานวนเต็ม ตัวเลขจานวนเต็ม ตัวเลขทศนิยม


printf(“*****************\n\n”); printf(“Code =>”); scanf(“%d”,&code); printf(“Name =>”); scanf(“%s”,name); printf(“Summit =>”): scanf(“%d”,&sum); printf(“Number =>”); scanf(“%d”,&num); avg=sum/num; printf(“*************************\n”); printf(“ * Average = %.2f \n”,avg); printf(“*************************\n”); getch(); }


6 คำสั่งรับข้อมูล