-1-
2
บทที ่ 7
คําสังรั ่ บค่าและแสดงผล เนื้ อหา
1. การเขียนโปแกรมโดยใช้คาํ สังแสดงผลบนหน้ ่ าจอได้ 2. การเขียนโปรแกรมโดยใช้คาํ สังรั ่ บค่าทางแป้นพิมพ์
ผลการเรียนรูท้ ่ีคาดหวัง
1. เขียนโปรแกรมโดยใช้คาํ สังรั ่ บและแสดงผลบนหน้าจอได้
2
แหล่งทีม่ า :: http://stupidbeaver.com/top-10-excuses-made-by-programmers
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ภาคเรียนที ่ 1/2552
-2-
1. คําสังแสดงผลโปแกรมภาษาซี ่ (Output Function) 2
1.1 การส่งข้อความ หรือค่าในตัวแปร ให้แสดงผลบนจอภาพเรามีคาํ สังพื ่ น้ ฐานทีใ่ ช้ในโปแกรม ภาษาซีคอื printf() มีรแู บบคําสังคื ่ อ
int printf (<control>, <argument list>); ฟงั ก์ชนั printf() จะส่งค่าข้อมูลออกไปยังจอภาพ พร้อมทัง้ ส่งผลการทํางานกลับมา เนื่องจาก ฟงั ก์ชนในภาษาซี ั่ ไม่จาํ เป็ นต้องมีตวั แปรมารับค่าผลในการทํางาน โดยทัวไป ่ เราจึงเห็นฟงั ก์ชนั นี้อยู่ ในรูปทีไ่ ม่ตอ้ งมีตวั แปรมารับค่า ซึง่ อยูใ่ นรูปของคําสัง(Statements) ่ นันเอง ่ 2
Argument list Control
เป็ นค่าตัวแปร ค่าคงที่ หรือนิพจน์ทต่ี อ้ งการนํามาแสดงผลถ้ามีมากกว่า 1 ค่า จะแยกกันโดยใช้เครือ่ งหมายคอมม่า ( , ) จะต้องเขียนอยูภ่ ายใต้เครือ่ งหมาย “ “ ซึง่ สามารถเขียนได้ 2 ลักษณะคือ 1. เป็ นข้อความทีต่ อ้ งการให้แสดงออกมา เช่น print(“ Sum of X = “); 2. เป็ นรหัสรูปแบบ (Format Code) ทีใ่ ช้ในการแสดงผลซึง่ ทุกรหัส รูปแบบจะต้องอยูต่ ามหลังเครือ่ งหมาย % รหัสรูปแบบ ข้อมูลที่ นิยมใช้ได้แก่ รหัส ความหมาย % c ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นตัวอักษรเพียงตัวเดียว % s ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นข้อความทีเ่ ก็บในตัวแปรชุด % d ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นเลขจํานวนเต็ม % u ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นเลขจํานวนเต็มบวก % f ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นเลขทศนิยม % e ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นเลขทศนิยมในรูป e ยกกําลัง % x ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นค่าเลขฐานสิบหก % o ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นค่าเลขฐานแปด % p ใช้กบั ตัวแปรทีเ่ ก็บค่าทีเ่ ป็ นตัวชีต้ าํ แหน่ ง (pointer)
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ภาคเรียนที ่ 1/2552
-3ตัวอย่างที่ 1.1 แสดงการใช้คาํ สัง่ printf() ทีม่ ขี อ้ ความทีเ่ ป็ นคําอธิบายอยูใ่ นรูปคําสัง่ main( ) { int sum = 3; printf(“ The sum is %d ”,sum); }
ผลลัพธ์ The sum is 3
ตัวอย่างที่ 1.2 แสดงการใช้คาํ สัง่ printf() รหัสรูปแบบ % d และ % u main( ) { int num = -3, tot = 5; printf(“ num = %d tot = %u ”,num, tot); }
ผลลัพธ์ Num = -3 tot = 5
ตัวอย่างที่ 1.3 แสดงการใช้คาํ สัง่ printf() รหัสรูปแบบ % f และ % e โดยมีทศนิยม 2 ตําแหน่ง main( ) { float num = 22.75; printf(“ %.2f %.2e ”,num,num); }
ผลลัพธ์ 22.75
2.28e+01
1.2 การส่งตัวอักษร หรือค่าในตัวแปรประเภทตัวอักษร ให้แสดงผลบนจอภาพเรามีคาํ สัง่ พืน้ ฐานทีใ่ ช้ในโปแกรมภาษาซีคอื putc() มีรแู บบคําสังคื ่ อ
int putchar (<character>); ฟงั ก์ชนั putchar() จะส่งค่าข้อมูลออกไปยังจอภาพ พร้อมทัง้ ส่งผลการทํางานกลับมา เนื่องจาก ฟงั ก์ชนในภาษาซี ั่ ไม่จาํ เป็ นต้องมีตวั แปรมารับค่าผลในการทํางาน โดยทัวไป ่ เราจึงเห็น ฟงั ก์ชนั นี้อยูใ่ นรูปทีไ่ ม่ตอ้ งมีตวั แปรมารับค่า ซึง่ อยูใ่ นรูปของคําสัง(Statements) ่ นันเอง ่ 2
ตัวอย่างที่ 1.4 แสดงการใช้คาํ สัง่ putchar() ทีม่ ขี อ้ ความทีเ่ ป็ นคําอธิบายอยูใ่ นรูปคําสัง่ main( ) { int a = 65; putchar(a); putchar(‘a’); }
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ผลลัพธ์ Aa
ภาคเรียนที ่ 1/2552
-4-
2. คํารับค่าทางแป้นพิมพ์โปแกรมภาษาซี (Input Function) โปรแกรมภาษาซีมใี ห้เราเลือกใช้งานได้หลาย รูปแบบ เช่น 2
2.1 ฟงั ก์ชนั scanf() เป็ นฟงั ก์ชนั ทีใ่ ช้ในการรับข้อมูลจากแป้นพิมพ์ (key board) เข้ามาเก็บไว้ ในตัวแปร 2
int scanf (<control>, <argument list>);
Argument list
Control
เป็ นตัวแปรที่จะรับค่าจากแป้ นพิมพ์มาเก็บไว้ถา้ มีมากกว่าหนึ่งค่า จะต้อง แยกกันด้วยเครื่ องหมายคอมม่า ( , ) และตัวแปรทุกตัวที่ใช้จะต้องนําหน้าด้วย เครื่ องหมาย & ทุกตัว ยกเว้นตัวแปรชุด เป็ นรหัสรู ปแบบที่ใช้ในการรับข้อมูลซึ่งจะต้องเขียนอยูภ่ ายในเครื่ องหมาย “ “ และจะมีรหัสรู ปแบบเหมือนกับรหัสรู ปแบบที่ใช้ในคําสัง่ printf
ตัวอย่างที่ 2.1 แสดงการใช้คาํ สัง่ scanf main( ) { int num; scanf( “ %d ” ,&num); }
ตัวอย่าง 2.2 แสดงการใช้คาํ สัง่ scanf main( ) { int num; char ch; scanf( “ %c ” ,&ch); scanf( “ %d ” ,&num); printf(“ %d %c ” ,num, ch); }
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
หมายความว่ า เครื่ องจะรอรับค่าที่เป็ นจํานวนเต็ม 1 ค่าที่จะป้ อนเข้ามาทางแป้ นพิมพ์มาเก็บไว้ในตัวแปร num
หมายความว่ า เครื่ องจะรอรับค่าที่เข้ามา 2 ค่า คือ ค่าที่หนึ่งเป็ นจํานวนเต็ม 1 ค่าที่จะป้ อนเข้ามาทาง แป้ นพิมพ์มาเก็บไว้ในตัวแปร num และค่าที่สอง เป็ นอักขระ 1 ตัวที่จะป้ อนเข้ามาทางแป้ นพิมพ์มาเก็บ ไว้ในตัวแปร ch
ภาคเรียนที ่ 1/2552
-5-
2.2 ฟงั ก์ชนั getchar ( ) เป็ นฟงั ก์ชนั ทีใ่ ช้ในการรับข้อมูลจากแป้นพิมพ์ทลี ะ 1 ตัวอักขระ โดยต้องกด enter ทุกครัง้ เมือ่ สิน้ สุดข้อมูล และข้อมูลทีป่ ้ อนจะปรากฎให้เห็นบนหน้าจอภาพ รู ปแบบ
getchar ( );
2.3 ฟงั ก์ชนั getch ( ) เป็ นฟงั ก์ชนั ทีใ่ ช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามาทางแป้นพิมพ์ โดยเมือ่ ป้อนข้อมูลเสร็จไม่ตอ้ งกดปุม่ enter และข้อมูลทีป่ ้ อนจะไม่ปรากฎบนหน้าจอภาพ รู ปแบบ
getch ( );
2.4 ฟงั ก์ชนั getche ( ) เป็ นฟงั ก์ชนั ทีใ่ ช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามาทาง แป้นพิมพ์โดยเมือ่ ป้อนข้อมูลเสร็จไม่ตอ้ งกดปุม่ enter และข้อมูลทีป่ ้ อนจะปรากฎบนหน้าจอภาพ รู ปแบบ
getche ( );
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ภาคเรียนที ่ 1/2552
-6-
ตัวอย่างโปรแกรม การใช้ คําสั่ งรับ – แสดงผล #include <stdio.h> main() { int x_value = 9; printf("x = %d\n",x_value); return(0); }
#include <stdio.h> main() { int x,y,sum; x = 7; y = 2; sum = x + y; printf("Total = %d\n",sum); return(0); }
#include <stdio.h> main() { int x, y; x = 7; y = 4; --x; ++y; printf("x = %2d\n",x); printf("y = %6d\n",y); return(0); }
#include <stdio.h> main( ) { int profits, employees; profits = 9; employees = 2 ; printf("Each employee gets %.2f.", (float) profits/employees); return(0); }
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ภาคเรียนที ่ 1/2552
-7include <stdio.h> main() { char any_char; printf("Please type a character: "); scanf("c%",&any_char); printf("Thank you, your character are %c",any_char); return(0); }
#include <stdio.h> void main(void) { clrscr(); printf("\n****Using .1f****\n"); printf("%.1f%.1f%.1f\n", 4.0, 16.5, 589.3); printf("%.1f%.1f%.1f", 400.0, 1600.5, 58900.3); printf("\n\n****Using 8.1f****\n"); printf("%8.1f%8.1f%8.1f\n", 4.0, 16.5, 589.3); printf("%8.1f%8.1f%8.1f", 400.0, 1600.5, 58900.3); printf("\n\n**** Using -8.1f****\n"); printf("%-8.1f%-8.1f%-8.1f\n", 4.0, 16.5, 589.3); printf("%-8.1f%-8.1f%-8.1f", 400.0, 1600.5, 58900.3); }
#include <stdio.h> void main(void) { clrscr(); printf("\n"); printf("\xC9\xCD\xBB\n"); printf("\xC8\xCD\xBC\n"); }
#include <stdio.h> #include <ctype.h> main() { char any_char; printf("Please type a lowercase letter:"); scanf("%c", &any_char); if(any_char >= 'a') printf("In uppercase: %c \n", toupper(any_char)); return(0); }
รายวิชา ง40101 เทคโนโลยีสารสนเทศและการเขียนโปรแกรมขัน้ ต้น
ภาคเรียนที ่ 1/2552