วันเสาร์ที่ 27 ธันวาคม พ.ศ. 2557

คำสั่งในการแสดงผลและการรับข้อมูล

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


คำสั่งในการแสดงผลออกทางหน้าจอ
คำสั่งในการรับข้อมูลจากคีย์บอร์ด
1. คำสั่ง printf()1. คำสั่ง scanf()
2. คำสั่ง putchar()2. คำสั่ง getchar() และ getch()
3. คำสั่ง puts()3. คำสั่ง gets()

แสดงผลออกทางหน้าจอ 
     การแสดงผลข้อมูลออกทางหน้าจอสามารถทำได้ง่าย โดย

เรียกใช้คำสั่งหรือฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ใช้

คำสั่ง printf() 
     
     คำสั่ง printf ถือว่าเป็นคำสั่งพื้นฐานที่สุดในการแสดงผล

ข้อมูลทุกชนิดออกทางหน้าจอ ไม่ว่าจะเป็นจำนวนเต็ม(int) , 

ทศนิยม ( float ) , ข้อความ ( string ) หรืออักขระ 

นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง โดยเราสามาถกำหนดหรือจัด

รูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้

อีกด้วย รูปแบบการเรียกใช้คำสั่ง printf แสดงได้ดังนี้


printf(“ format ” , variable);

format : ข้อมูลที่ต้องการแสดงออกทางหน้าจอโดยข้อมูลนี้ต้อง

เขียนไว้ในเครื่องหมาย “ ” ข้อมูลที่สามารถแสดงผลได้มีอยู่ 2 

ประเภท คือ ข้อความธรรมดา และค่าที่เก็บไว้ในตัวแปร ซึ่งถ้าเป็น

ค่าที่เก็บไว้ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของ

ข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วย


variable : ตัวแปรหรือนิพจน์ที่ต้องการนำค่าไปแสดงผลให้

ตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้


รหัสควบคุมรูปแบบการแสดงผลค่าของตัวแปรออกทางหน้าจอ แสดงได้ดังนี้

รหัสควบคุมรูปแบบ
การนำไปใช้งาน
%d
สำหรับแสดงผลค่าของตัวแปรชนิดจำนวนเต็ม ( int, short, unsigned short, long, unsigned long)
%u
สำหรับแสดงผลตัวเลขจำนวนเต็มบวก ( unsigned short, unsigned long )
%o
สำหรับแสดงผลออกมาในรูปแบบของเลขฐานแปด
%x
สำหรับแสดงผลออกมาในรูปแบบของเลขฐานสิบหก
%f
สำหรับแสดงผลค่าของตัวแปรชนิดจำนวนทศนิยม ( float, double, long double )
%e
สำหรับแสดงผลตัวเลขทศนิยมออกมาในรูปแบบของ ( E หรือ e ) ยกกำลัง ( float, double, long double )
%c
สำหรับแสดงผลอักขระ 1 ตัว ( char )
%s
สำหรับแสดงผลข้อความ ( string หรืออักขระมากกว่า 1 ตัว)
%p
สำหรับแสดงผลตัวชี้ตำแหน่ง ( pointer )


ตัวอย่างการใช้คำสั่ง printf แสดงผลข้อความธรรมดาออกทางหน้าจอ


ส่วนตัวอย่างการใช้คำสั่ง printf แสดงผลจากค่าของตัวแปรหรือ

นิพจน์การคำนวณออกทางหน้าจอ แสดงได้ดังนี้
โดยกำหนดให้




แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล
 
     นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็น

ระเบียบมากขึ้น เช่น การขึ้นบรรทัดใหม่หลังแสดงข้อความ หรือเว้น

ระยะแท็บระหว่างข้อความ โดยใช้อักขระควบคุมการแสดงผลร่วมกับ

คำสั่ง printf ในภาษาซีมี อักขระควบคุมการแสดงผลหลาย

รูปแบบด้วยกัน ดังแสดงต่อไปนี้

อักขระควบคุมการแสดงผล
ความหมาย
\n
ขึ้นบรรทัดใหม่
\t
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)
\r
กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด
\f
เว้นช่องว่างเป็นระยะ 1 หน้าจอ
\b
ลบอักขระสุดท้ายออก 1 ตัว

การนำอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุม

การแสดงผลไว้ภายในเครื่องหมาย “ ” ดังแสดงตัวอย่างต่อไปนี้ 


ควบคุมขนาดพื้นที่แสดงผล 

     ตามปกติในการแสดงผลโปรแกรมจะเตรียมพื้นที่ให้พอดีกับ


ข้อความ เช่น ถ้าจะแสดงข้อความ HELLO ซึ่งมี 5 ตัวอักษร 


โปรแกรมจะจัดเตรียมพื้นที่ไว้ให้พอดีสำหรับ 5 ตัวอักษร ดังแสดง


รูปต่อไปนี้




H
E
L
L
O

     แต่เราสามารถเพิ่มพื้นที่ในการแสดงผลได้ตามต้องการ 

เช่น กำหนดให้แสดงข้อความ HELLO ในพื้นที่ขนาด 8 ตัว


อักษรโปรแกรมจะแสดงข้อความชิดด้านขวาของพื้นที่ที่จองไว้ โดย


จะเว้นพื้นที่ว่างทางด้านซ้ายอีก 3 ช่องที่เหลือเอาไว้ ดังรูป







H
E
L
L
O

     วิธีกำหนดขนาดพื้นที่การแสดงผล ให้ใส่ตัวเลขขนาดของ

พื้นที่ที่ต้องการไว้หลังเครื่องหมาย % ในรหัสควบคุมรูปแบบ ดัง


แสดง ตัวอย่างต่อไปนี้






     ในกรณีที่ต้องการเปลี่ยนจากการแสดงผลชิดขอบด้านขวาให้

ชิดขอบด้านซ้ายแทน สามารถทำได้ โดยใส่เครื่องหมาย   -   

ไว้หน้าตัวเลขระบุขนาดพื้นที่ ดังแสดง ตัวอย่างต่อไปนี้



ควบคุมตำแหน่งตัวเลขหลังจุดทศนิยม 
     นอกจากนี้ในการแสดงผลตัวเลขหลังจุดทศนิยม   ตาม

ปกติถ้าไม่ได้กำหนดค่าใด ๆ เพิ่มเติม  เมื่อใช้รหัสควบคุมรูปแบบ 

%f โปรแกรมจะแสดงตัวเลขทศนิยมทั้งหมด 6 ตำแหน่ง ในกรณี

ที่เราต้องการตัดให้แสดงตัวเลขหลังจุดทศนิยมเท่าที่จำเป็น (เช่น 

หรือ 3 ตำแหน่ง) ก็สามารถกำหนดค่าเพิ่มไปกับรหัสควบคุมรูป

แบบได้ ดังต่อไปนี้


% . nf
n : จำนวนตัวเลขหลังจุดทศนิยมที่ต้องการให้แสดงผล

ตัวอย่างการแสดงผลจำนวนทศนิยม โดยที่มีการกำหนดตำแหน่งทศนิยม แสดงได้ดังนี้ 



คำสั่ง putchar() 
      ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทาง

หน้าจอ นอกจากใช้คำสั่ง printf พร้อมกับกำหนดรหัสควบคุม

รูปแบบ %c แล้ว เราสามารถเรียกใช้คำสั่งสำหรับแสดงตัวอักษร

หรืออักขระโดยเฉพาะได้อีกด้วย โดยคำสั่งนั้นคือ คำสั่ง 

putchar() ซึ่งมีรูปแบบการเรียกใช้คำสั่ง ดังแสดงต่อไปนี้


putchar(ch);
ch : ตัวอักษรหรืออักขระเขียนอยู่ภายในเครื่องหมาย ‘c' หรือตัวแปรชนิด char

ตัวอย่างการใช้คำสั่ง putchar() ในการแสดงผลอักขระออกทางหน้าจอ แสดงได้ดังนี้ 



คำสั่ง puts() 
     เป็นคำสั่งสำหรับแสดงผลข้อความออกทางหน้าจอ มีรูปแบบ

การใช้คำสั่งดังนี้


puts(str);
str : ข้อความซึ่งเขียนอยู่ภายในเครื่องหมาย “ ” หรือตัวแปรที่เก็บข้อมูลชนิดข้อความ

ตัวอย่างการใช้งานคำสั่ง puts() ในการแสดงข้อความออกทางหน้าจอ แสดงได้ดังนี้ 



รับข้อมูลจากคีย์บอร์ด 
     การทำงานของโปรแกรมส่วนใหญ่มักจะเป็นการเชื่อมโยงกับ

ผู้ใช้แบบ 2 ทิศทาง นั่นก็คือ ทั้งภาคของแสดงผลการทำงานออก


ทางหน้าจอ และภาคของการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด 


เพื่อร่วมในการประมวลผลของโปรแกรม ซึ่งในภาคของการรับข้อมูล


จากผู้ใช้ ภาษาซีกำหนดคำสั่งและฟังก์ชันมาตรฐานเอาไว้ให้เรียกใช้


แล้ว เช่นเดียวกับภาคของการแสดงผล รายละเอียดของคำสั่งเหล่า


นี้ได้แก่ 


คำสั่ง scanf() 

     ในภาษาซี การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการ

เรียกใช้ฟังก์ชัน scanf() ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับรับ


ข้อมูลจากคีย์บอร์ด โดยสามารถรับข้อมูลได้ทุกประเภท ไม่ว่าจะ


เป็นจำนวนเต็ม(int),ทศนิยม(float),อักขระ(char) 


หรือข้อความก็ตาม รูปแบบการเรียกใช้คำสั่ง scanf() คล้ายกับ


การเรียกใช้คำสั่ง printf() ดังแสดงต่อไปนี้




scanf(“format” , &variable) ;
format : การใช้รหัสควบคุมรูปแบบ เพื่อกำหนดชนิดของข้อมูล

ที่จะรับเข้ามาจากคีย์บอร์ด โดยรหัสควบคุมรูปแบบจะใช้ชุดเดียวกับ

รหัสควบคุมรูปแบบของคำสั่ง printf()


variable : ตัวแปรที่จะใช้เก็บค่าข้อมูลที่รับเข้ามาจากคีย์บอร์ด 

โดยชนิดของตัวแปรจะต้องตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้ 

นอกจากนี้ หน้าชื่อของตัวแปรจะต้องนำหน้าด้วยเครื่องหมาย & 

ยกเว้นตัวแปรสตริงสำหรับเก็บข้อความเท่านั้นที่ไม่ต้องนำหน้าด้วย

เครื่องหมาย &


ตัวอย่างการใช้งานคำสั่ง scanf() เพื่อรับข้อมูลจากคีย์บอร์ด แสดงได้ดังนี้ 



คำสั่ง getchar() และ getch()      
     ทั้ง 2 คำสั่งนี้ใช้รับข้อมูลประเภทอักขระ( char ) โดยมี

รูปแบบการเรียกใช้คำสั่งดังนี้



ch = getchar();
ch = getch();
ch : ตัวแปรชนิด char เพื่อใช้เก็บค่าของอักขระหรือตัวอักษรที่รับเข้ามา

     ถึงแม้ว่าทั้งคำสั่ง getchar() และ getch() จะใช้

สำหรับรับข้อมูลชนิดอักขระเหมือนกัน แต่ทั้ง 2 คำสั่งนี้มีความแตก

ต่างกันอยู่ตรงที่ คำสั่ง getchar() เมื่อป้อนอักขระเข้ามาแล้ว 

ต้องกดปุ่ม <Enter> โปรแกรมจึงจะกลับไปทำงานต่อได้ และตัว

อักขระที่เราป้อนจะแสดงขึ้นมาให้เห็นบนหน้าจอด้วย ส่วนคำสั่ง 

getch()ไม่ต้องกดปุ่ม <Enter> เพียงแค่เราป้อนอักขระเข้ามา 

1 ตัว โปรแกรมจะกลับไปทำงานต่อทันที และตัวอักขระที่เราป้อน

จะไม่แสดงขึ้นมาให้เห็น

ตัวอย่างการเรียกใช้คำสั่ง getchar() รับตัวอักษรเข้ามาจากคีย์บอร์ด แสดงได้ดังนี้ 



      ผลการทำงานของโปรแกรมสังเกตได้ว่า เราต้องกดปุ่ม 

<Enter> หลังจากที่ป้อนตัวอักษรแล้ว นอกจากนี้ตัวอักษรที่ป้อน

จะแสดงขึ้นมาบนหน้าจอด้วย จากโปรแกรมเดิม เมื่อเปลี่ยนจาก 

คำสั่ง getchar() เป็น getch() ผลลัพธ์จากการทำงานแสดง

ได้ดังนี้



      จะสังเกตได้ว่า เมื่อใช้คำสั่ง getch()เราไม่ต้องกดปุ่ม 

<Enter> ตามหลังการป้อนตัวอักษร และจะไม่เห็นตัวอักษรที่เรา

ป้อนแสดงขึ้นมาบนหน้าจอ

คำสั่ง gets() 
     นอกจากคำสั่งในการรับข้อมูลชนิดอักขระหรือตัวอักษรแล้ว 

การรับข้อความจากคีย์บอร์ดก็มีคำสั่งให้เรียกใช้เช่นกัน คือ คำสั่ง 

gets() ซึ่งมีรูปแบบการเรียกใช้ดังต่อไปนี้


gets(str);
str : ตัวแปรสำหรับเก็บข้อความที่รับเข้ามาจากคีย์บอร์ด ซึ่งจะ

ต้องสร้างเตรียมไว้ก่อนที่จะเรียกใช้คำสั่ง gets()

ตัวอย่างการเรียกใช้คำสั่ง gets() รับข้อความมาจากคีย์บอร์ด แสดงได้ดังนี้












ไม่มีความคิดเห็น:

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