การแสดงผลข้อมูล
บทความนี้จะกล่าวถึงวิธีการรับข้อมูลผ่านทางคีย์บอร์ดเข้ามาใน program(input) เพื่อนำมาประมวลผลรวมทั้งวิธีการแสดงผลข้อความหรือผลลัพธ์ของโปรแกรมออกทางจอภาพ(output)การแสดงผลข้อมูล(output)
ฟังก์ชั่นที่ใช้ในการแสดงผลข้อมูลอกทางจอภาพ คือ printf(print formetted)หน้าที่มันคือ แปลงข้อมูลในลักษณะของเลขฐานสอง(binary)ที่คอมพิวเตอร์ประมวลผลได้ให้อยู่ในรูปแบบที่มนุษยืเข้าใจ ก่อนการแสดงผลข้อมูลออกทางจอภาพ printf(“string_format”,data_list); | |||
รูปแบบ | |||
ต่างๆซึ่งจะถูกแทนด้วย ค่าคงที่, ตัวแปร หรือ นิพจน์ใดๆที่กำหนดมาเป็นพารามิเตอร์(ในส่วนของ data_list)ตั้งแต่
ตัวที่2เป็นต้นไป เช่น %d ใช้แทนข้อมูลขนิดเลขจำนวนเต็ม เป็นต้น
data list: ข้อมูลที่จะแสดงผลซึ่ง อาจเป็นค่าคงที่, ตัวแปร หรือนิพจน์ใดๆ
ตารางแสดงชนิดข้อมูลแต่ละประเภท
ชนิดข้อมูล | ตัวแทนชนิดข้อมูล |
char | %c |
string | %s |
short int | %hd |
unsigned short int | %hu |
int | %d |
unsigned int | %u |
long int | %Ld |
unsigned long int | %Lu |
foat | %f |
double | %Lf |
long double | %LF |
ตัวอย่างการใช้งาน ฟังก์ชั่น printf()
ตัวอย่างที่1
ผลลัพธ์โปรแกรม | ||
hello Ulike |
การใช้งานฟังก์ชั่น printf()ในลักษณะนี้เป็นการแสดงข้อความที่กำหนดออกทางจอภาพเท่านั้นไม่ได้ต้องการแสดงข้อมูลอื่นเพิ่มเติม ดังนั้นจึงรับค่าพารามิเตอร์เพียงตัวเดียวเท่านั้น คือ รับค่า string format ไม่จำเป็นต้องรับพารามิเตอร์ data list
ตัวอย่างที่2
ผลลัพธ์โปรแกรม | ||
3+1=4 |
ฟังก์ชั่น printf()ในข้อนี้มีการใช้ string format ในรูปแบบของข้อความธรรมดาผสมกับตัวแทน ชนิดข้อมูลดังนั้น เป็นที่แน่นอนว่าเมื่อมีตัวแทนชนิดข้อมูลแล้ว จะต้องมีการรับค่าพารามิเตอร์อีกตัว สำหรับเป็นข้อมูลที่จะนำมาแทนที่ลงในตัวแทนชนิดข้อมูลนั้น ซึ่งในที่นี้ทำการรับค่าพารามิเตอร์ data list เป็นข้อมูลค่าคงที่เข้ามา
ตัวอย่างที่3
ผลลัพธ์โปรแกรม | ||
hello xyz |
ข้อนี้เหมือกับข้อที่แล้ว แต่มีข้อแตกต่างที่ data list ในข้อนี้เป็นตัวแปร แต่ข้อที่ผ่านมาเป็นค่าคงที่
ตัวอย่างที่4
ผลลัพธ์โปรแกรม | ||
2 - 1=one |
จากตัวอย่างที่ผ่านมาจะเห็นได้ว่าฟังก์ชั่น printf()รับค่าพารามิเตอร์ได้หลายตัวซึ่งขอบเขตของพารามิเตอร์ string format จะถูกกำหนดอยู่ภายในเครื่องหมาย " " แต่สำหรับพารามิเตอร์ data list นั้นจะอยู่นอกเครื่องหมาย " "และต้องมีเครื่องหมาย , อย่ข้างน่าพารามิเตอร์ตัวแรกเสมอ
function printf() จะจับคู่ข้อมูลที่แสดงกับตัวแทนชนิดข้อมูลเรียงตามลำดับเสมอ เช่น จากตัวอย่าง
- จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับค่าคงที่ (ค่า2)
- จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับตัวแปร a ซึ่งเป็นข้อมูลชนิดเลขจำนวนเต็ม (เก็บค่า1ไว้ในตัวแปร)
- จับคู่ตัวแทนชนิดข้อมูล %s เข้ากับตัวแปร ch ซึงเป็นข้อมูลชนิด string
1: | printf("%d\n",987); | |
2: | printf("%05d\n"987); | |
3: | printf("%f\n",344.44); | |
4: | printf("%.2f\n",344.44); |
ผลลัพธ์โปรแกรม | ||
987 00987 344.440000 344.44 |
- บรรทัดที่ 1 :เป็นการพิมพ์เลขจำนวนเต็มโดยไม่ใส่ส่วนขยายใดๆให้กับตัวแทนชนิดข้อมูลจึงได้ผลลัพธ์
ออกทางจอภาพเป็น 987
- บรรทัดที่ 2 :เป็นการพิมพ์เลขจำนวนเต็ม แต่มีการใส่ส่วนขยายเข้าไปที่ตัวแทนชนิดข้อมูล โดยที่ %05
หมายความว่าจะต้องมีเลขจำนวน5หลัก ถ้าไม่ถึง5ให้เติม 0 เข้าข้างหน้าตัวเลขนั้นให้ครบ5หลัก
- บรรทัดที่ 3 :เป็นการพิมพ์เลขทศนิยม ซึ่งการสั่งพิมพ์โดยไม่ใส่ส่วนขยายใดๆให้กับตัวแทนชนิดข้อมูลเลข
ทศนิยมนี้ จะทำให้ได้ผลลัพธ์เป็นเลขทศนิยม 6 ต่ำแหน่งเสมอ เพราะเป็นรูปแบบของ float
เช่นเลขที่นำมาแสดงคือ 344.44 ก็จะได้ 344.440000(xxx.xxxxxx)
- บรรทัดที่ 4 :เหมือบรรทัดที่ 3 แต่มีการใส่ส่วนขยายเข้าไป คือ %.2f อ่านว่า เปอร์เซนต์ จุด สองเอฟ ตัวนี้
หมายความว่า ให้มีจุดทศนิยมได้แค่สองตำแหน่ง ผลลัพธ์ในข้อนี้เลยเป็น 344.44 ครับ
1: | printf("0123456789\n"); | |
2: | printf("%-10.2f\n"44444.33); | |
3: | printf("%10.2f\n",44444.33); |
ผลลัพธ์โปรแกรม | ||
0123456789 44444.33 44444.33 |
บรรทัดที่1 : พิมพ์ 0123456789 ออกทางหน้าจอ เพื่อเป็นตัวเปรียบเทียบกับ ผลลัพธ์ของบรรทัดที่2และ3 ให้ดูออกแบบง่ายๆ(สังเกตุจากหลัก ของเลขแต่ละตัวที่แสดง) บรรทัดที่2 :พิมพ์เลขทศนิยม โดยใส่ส่วนขยย –10.2 ให้กับตัวแทนชนิดข้อมูล โดยที่เครื่องหมาย - คือการให้แสดงข้อมูลชิดซ้าย สำหรับ 10.2 หมายความว่า ทีเลขอยู่ 10หลัก(รวมเครื่องหมาย . กับ ทศนิยมด้วย)และมีเลขทศนิยม 2 ตำแหน่ง ท่าช่องที่ไม่มีตัวเลขก็จะไม่มีเลข0 เข้ามาแทน จะเว้นเป็น ว่าง ครับ บรรทัดที่3 :บรรทัดนี้ได้ใส่ส่วนขยาย 10.2 ซึ่งรายละเอียมเหมือนบรรทัดที่สองทุกอย่างเว้นแต่ไม่ได้ใส่ เครื่องหมาย - เพื่อให้มันชิดซ้ายนั้นเอง มันเลยเว้นว่างไว้ข้างหน้าข้อความท่าท่านใดยังไม่เข้าใจดู ตารางนี้นะครับเพื่อจะให้การเข้าใจยิ่งขึ้น
บรรทัดที่1: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
บรรทัดที่2:-10.2 | 4 | 4 | 4 | 4 | 4 | . | 3 | 3 | ว่าง | ว่าง |
บรรทัดที่3:10.2 | ว่าง | ว่าง | 4 | 4 | 4 | 4 | 4 | . | 3 | 3 |
รหัส | ความหมาย |
\0 | คำว่าง(null character) |
\a | ส่งเสียง 1 ครั้ง(ball) |
\b | ถอยหลัง 1 ช่องตัวอักษร(backspace) |
\f | ขึ้นหน้าใหม่(new feed) |
\n | ขึ้นบรรทัดใหม่(new line) |
\r | เลื่อนเคอร์เซอร์ไปทางซ้ายสุด(carriage return) |
\t | เว้นแท็บแนวนอน(horizontal tab) |
\v | เว้นแท็บแนวตั้ง(vertical tab) |
\' | พิมพ์เครื่องหมาย ' |
\" | พิมพ์เครื่องหมาย " |
\\ | พิมพ์เครื่องหมาย \ |
1: | #include<stdio.h> | |
2: | #define SIDE 10 | |
4: | ||
5: | main(){ | |
6: | int Quadrate, Long_border; | |
7: | Quadrate = SIDE*SIDE; | |
8: | Long_border = SIDE*4; | |
9: | printf("Side of Quadrate is %d\n",SIDE); | |
10: | Printf("\tArea of Quadratef is %d\n",Quadrate); | |
11: | Pribtf("\t\t Long border of Quadratef is %d\n"Long_border); | |
12: | } |
ผลลัพธ์โปรแกรม | ||
Side of Quadrate is 10 Area of Quadratef is 20 Long border of Quadratef is 40 |
บรรทัดที่ 9 : ใช้ \n เพื่อเป็ฯการเว้นบรรณทัด บรรทัดที่ 10 : ใช้\t 1 ตัวเพื่อเว้นวรรก 1 ครั้งมีปัญหาสังสัยอะไรก็สอบถามได้เลยในบทความนะครับ
>> การรับและการแสดงผลของข้อมูล 2
0 ความคิดเห็น:
แสดงความคิดเห็น