การรับและการแสดงผลของข้อมูล 1

 

การแสดงผลข้อมูล

ภาษา cบทความนี้จะกล่าวถึงวิธีการรับข้อมูลผ่านทางคีย์บอร์ดเข้ามาใน program(input) เพื่อนำมาประมวลผลรวมทั้งวิธีการแสดงผลข้อความหรือผลลัพธ์ของโปรแกรมออกทางจอภาพ(output)

การแสดงผลข้อมูล(output)

ฟังก์ชั่นที่ใช้ในการแสดงผลข้อมูลอกทางจอภาพ คือ printf(print formetted)หน้าที่มันคือ แปลงข้อมูลในลักษณะของเลขฐานสอง(binary)ที่คอมพิวเตอร์ประมวลผลได้ให้อยู่ในรูปแบบที่มนุษยืเข้าใจ ก่อนการแสดงผลข้อมูลออกทางจอภาพ
     
  printf(“string_format”,data_list);
รูปแบบ
     
String_format: สตริงที่ต้องการแสดงผล ซึ่งอาจเป็นข้อความธรรมดาๆ เช่น Hello, Ben,u like หรือเป็นสัญญาลักษณ์แทนชนิดข้อมูล
                        ต่างๆซึ่งจะถูกแทนด้วย ค่าคงที่, ตัวแปร หรือ นิพจน์ใดๆที่กำหนดมาเป็นพารามิเตอร์(ในส่วนของ 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
ภาษา c
 
ผลลัพธ์โปรแกรม
 
hello Ulike
อธิบายโปรแกรม
    การใช้งานฟังก์ชั่น printf()ในลักษณะนี้เป็นการแสดงข้อความที่กำหนดออกทางจอภาพเท่านั้นไม่ได้ต้องการแสดงข้อมูลอื่นเพิ่มเติม ดังนั้นจึงรับค่าพารามิเตอร์เพียงตัวเดียวเท่านั้น คือ รับค่า string format ไม่จำเป็นต้องรับพารามิเตอร์ data list
ตัวอย่างที่2
ภาษา c
 
ผลลัพธ์โปรแกรม
 
3+1=4
อธิบายโปรแกรม
ฟังก์ชั่น printf()ในข้อนี้มีการใช้ string format ในรูปแบบของข้อความธรรมดาผสมกับตัวแทน ชนิดข้อมูลดังนั้น เป็นที่แน่นอนว่าเมื่อมีตัวแทนชนิดข้อมูลแล้ว จะต้องมีการรับค่าพารามิเตอร์อีกตัว สำหรับเป็นข้อมูลที่จะนำมาแทนที่ลงในตัวแทนชนิดข้อมูลนั้น ซึ่งในที่นี้ทำการรับค่าพารามิเตอร์ data list เป็นข้อมูลค่าคงที่เข้ามา
ตัวอย่างที่3
ภาษา c
 
ผลลัพธ์โปรแกรม
 
hello xyz
อธิบายโปรแกรม
ข้อนี้เหมือกับข้อที่แล้ว แต่มีข้อแตกต่างที่ data list ในข้อนี้เป็นตัวแปร แต่ข้อที่ผ่านมาเป็นค่าคงที่
ตัวอย่างที่4
ภาษา c
 
ผลลัพธ์โปรแกรม
 
2 - 1=one
อธิบายโปรแกรม
จากตัวอย่างที่ผ่านมาจะเห็นได้ว่าฟังก์ชั่น printf()รับค่าพารามิเตอร์ได้หลายตัวซึ่งขอบเขตของพารามิเตอร์ string format จะถูกกำหนดอยู่ภายในเครื่องหมาย " " แต่สำหรับพารามิเตอร์ data list นั้นจะอยู่นอกเครื่องหมาย " "และต้องมีเครื่องหมาย , อย่ข้างน่าพารามิเตอร์ตัวแรกเสมอ
function printf() จะจับคู่ข้อมูลที่แสดงกับตัวแทนชนิดข้อมูลเรียงตามลำดับเสมอ เช่น จากตัวอย่าง
  • จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับค่าคงที่ (ค่า2)
  • จับคู่ตัวแทนชนิดข้อมูล %d เข้ากับตัวแปร a ซึ่งเป็นข้อมูลชนิดเลขจำนวนเต็ม (เก็บค่า1ไว้ในตัวแปร)
  • จับคู่ตัวแทนชนิดข้อมูล %s เข้ากับตัวแปร ch ซึงเป็นข้อมูลชนิด string
ตัวอย่างที่5
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
ที่ผ่านมาในฟังก์ชั่นpritf(); คุณอาจจะสังเกตุเห็นว่า ผมได้ใส่เครื่องหมาย / (backslash) ไว้หลังข้อความข้อมูลที่จะแสดงเสมอ ใช่ใหม่ ครับ นี้เป็นการจัดรูปแบการแสดงผลนะครับ เรียกว่า Escape Character ซึ่งมีหลายประเภท ส่วนมากเราจะใช้เจ้า Escape Character กำหนดไว้ในส่วนของ String format ของฟังก์ชั่นprintf(); ดังที่เห็นๆกันในแต่ละตัวอย่าง ประเภทของ Escape Character ดูได้ที่ตารางนี้
รหัส ความหมาย
\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 ความคิดเห็น:

แสดงความคิดเห็น