| | | 4.2.1 คำสั่งแสดงผลข้อมูลคำสั่ง printf() คำสั่ง printf() เป็นคำสั่งที่ใช้ในการแสดงผลข้อมูลที่อยู่ในตัวแปร ค่าคงตัว นิพจน์ ออกมาทางจอภาพ ซึ่งคำสั่ง printf() นี้ถูกเก็บไว้ใน I/O Library เวลาจะใช้คำสั่งต้องบอกให้ตัวแปลชุดคำสั่งภาษาซี
รับรู้ก่อน โดยใช้คำสั่งตัวประมวลผลก่อนซี Show include <stdio.h> เข้ามาก่อน โดยเอาไว้ส่วนหัวของโปรแกรมรูปแบบคำสั่ง printf(control , argument-list); argument-list ตัวแปร ค่าคงตัว หรือนิพจน์ ที่ต้องการนำมาแสดงผล ถ้ามีมากกว่า 1 ค่า จะต้องแยกกันโดยใช้เครื่องหมายคอมม่า ( , )control จะต้องเขียนอยู่ภายใต้เครื่องหมาย "" ภายในเครื่องหมายประกอบด้วย ข้อความ รหัสควบคุมการแสดงผล และรหัสรูปแบบข้อมูล รายละเอียดดังนี้ 1. ข้อความที่เป็นคำอธิบาย ที่ต้องการให้แสดงผลออกมา ส่วนมากจะใช้เพื่อแต่งรูปแบบของรายงานให้อ่านเข้าใจและสวยงาม 2. รหัสควบคุมการแสดงผล ที่ใช้ในการควบคุมการแสดงผลจะต้องอยู่หลังเครื่องหมาย \ 3. รหัสรูปแบบข้อมูล ที่ใช้ในการกำหนดการแสดงผลของข้อมูลจะต้องอยู่ตามหลังเครื่องหมาย % จำนวนรหัสรูปแบบข้อมูล ต้องสอดคล้องกับจำนวนค่าข้อมูลใน argument-listตารางแสดง รหัสควบคุมการแสดงผล รหัสควบคุมการแสดงผล (escape character) ใช้สำหรับ \nขึ้นบรรทัดใหม่ 1 บรรทัด \ttab เว้นวรรค 1 tab (8 อักขระ) \aส่งเสียงปี๊บเตือน 1 ครั้ง \'แสดงอักขระ ' 1 ตัว \"แสดงอักขระ " 1 ตัว \\แสดงอักขระ \ 1 ตัวตารางแสดง รหัสรูปแบบข้อมูล รหัสรูปแบบข้อมูล ใช้สำหรับข้อมูลหรือตัวแปรแบบ %cchar และ unsigned char %ffloat และ double %dint และ unsigned int %schar[] หรือ สายอักขระ %oข้อมูลแบบตัวเลขฐานแปด %xข้อมูลแบบตัวเลขฐานสิบหก %eข้อมูลในรูป e ยกกำลัง ตัวอย่างที่ 6 การใช้คำสั่งแสดงข้อความ "My First Program" ทางจอภาพ ( ex4-06.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/printf("My First Program"); /* แสดงข้อความ "My First Program" ทางจอภาพ */ /*4*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*5*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ คำสั่ง printf เป็นคำสั่งแสดงผลข้อมูลที่รวมอยู่ในแฟ้ม stdio.h ใช้สั่งให้แสดงข้อความในเครื่องหมาย "" ออกทางจอภาพผลการรันโปรแกรม ตัวอย่างที่ 7 การใช้คำสั่งแสดงข้อความ 2 บรรทัด ดังภาพ โดยใช้ printf เพียงครั้งเดียว ( ex4-07.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/printf("\tName : Natthachai\n\tSurname : Chalat"); /* เว้นช่องว่าง 1 tab แล้วแสดงข้อความ "Name : Natthachai" แล้วขึ้นบรรทัดใหม่ 1 บรรทัด แล้วเว้นช่องว่าง 1 tab แล้วแสดงข้อความ "Surname : Chalat" ทางจอภาพ */ /*4*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*5*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุคำสั่ง printf จะไม่แสดง \t และ \n ออกมา แต่จะเว้นช่องว่าง 1 tab และ ขึ้นบรรทัดใหม่ 1 บรรทัด แทน ผลการรันโปรแกรม ตัวอย่างที่ 8 การใช้คำสั่งแสดงข้อความ "The sum is " และจำนวน 15 ที่เก็บในตัวแปร sum โดยใช้คำสั่ง printf เพียงครั้งเดียว ( ex4-08.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int sum = 15; /* ประกาศตัวแปร sum เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร sum เป็น 15 */ /*4*/printf("The sum is %d" , sum"); /* แสดงข้อความ "The sum is %d" ทางจอภาพ โดยแสดงค่าของ sum ใน %d แทน */ /*5*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*6*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ คำสั่ง printf จะไม่แสดง %d ออกมา แต่จะแสดงค่าของข้อมูลออกมาแทน ผลการรันโปรแกรม ตัวอย่างที่ 9 การใช้คำสั่งแสดงข้อความและการประมวลผลนิพจน์ทางคณิตศาสตร์( ex4-09.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/ include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int x = 8 , y = 4; /* ประกาศตัวแปร x และ y เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร x และ y เป็น 8 และ 4 ตามลำดับ */ /*4*/printf("%d + %d = %d" , x , y , x+y); /* แสดงข้อความ "%d + %d = %d" ทางจอภาพ โดยแสดงค่าของ x ใน %d ตัวแรก แสดงค่า y ใน %d ตัวที่ 2 และแสดงค่าผลบวก x + y ใน %d ตัวที่ 3 แทน */ /*5*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*6*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ การแสดงผลนิพจน์ ในคำสั่ง printf จะประมวลผลนิพจน์นั้นก่อน แล้วจึงนำผลลัพธ์ไปแสดงในรหัสรูปแบบข้อมูลที่กำหนด ผลการรันโปรแกรม ตัวอย่างที่ 10 จงเขียนโปรแกรมคำนวณพื้นที่วงกลม รัศมีเท่ากับ 5 ( ex4-10.c )จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ จากผังงาน เขียนโปรแกรมได้ดังนี้ บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int r = 5; /* ประกาศตัวแปร r เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร r เป็น 5 */ /*4*/float area; /* ประกาศตัวแปร area เป็นชนิดจำนวนจริง /*5*/area = 22.0/7.0*r*r; /* ประมวลผล 22.0/7.0*r*r ก่อน จะได้ (22.0/7.0) x 5 x 5 เป็น 78.571429 แล้วจึงนำ 78.571429 ไปเก็บใน area */ /*6*/printf("radius : %3d ,Area of Circle : %7.2f" , r ,area); /* แสดงข้อความ "radius : %3d ,Area of Circle : %7.2f" ทางจอภาพ โดยแสดงค่า r ใน %3d และแสดงค่า area ใน %7.2f */ /*7*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*8*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ %3d หมายถึง จองช่องไว้แสดงผลจำนวนเต็ม ได้ 3 ช่อง%7.2f หมายถึง จองช่องไว้แสดงผลทั้งหมด 7 ช่อง แบ่งเป็น แสดงจำนวนเต็ม ได้ 4 ช่อง แสดงทศนิยมได้ 2 ตำแหน่ง และจุด 1 ช่อง ผลการรันโปรแกรม ตัวอย่างที่ 11 การใช้รหัสรูปแบบข้อมูลแสดงข้อมูลชนิดจำนวนเต็มและอักขระ ( ex4-11.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int asc = 65; /* ประกาศตัวแปร asc เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร asc เป็น 65 */ /*4*/char ch = 'A'; /* ประกาศตัวแปร ch เป็นชนิดอักขระ พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร ch เป็น 'A' */ /*5*/printf("Character : %c ASCII-Code : %d\n" , ch , ch); /* แสดงข้อความ "Character : %c ASCII-Code : %d" โดยแสดงค่า ch ใน %c และแสดงค่า ch ใน %d แล้วขึ้นบรรทัดใหม่ */ /*6*/printf("Character : %c ASCII-Code : %d\n" , asc , asc); /* แสดงข้อความ "Character : %c ASCII-Code : %d" โดยแสดงค่า asc ใน %c และแสดงค่า asc ใน %d แล้วขึ้นบรรทัดใหม่ */ /*7*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*8*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุจะเห็นว่าผลที่ได้ทั้ง 2 บรรทัดเหมือนกัน แสดงว่า 65 เป็นเลขจำนวนเต็มที่ เมื่อนำมาแสดงผลด้วยรูปแบบของข้อมูล %c จะได้ 'A' และเมื่อนำอักขระ 'A' มาแสดงผลด้วยรูปแบบของข้อมูล %d จะได้ 65 (ในคอมพิวเตอร์จะเก็บอักขระไว้เป็นตัวเลข โดยตัวเลขที่ใช้แทนอักขระ เรียกว่า รหัสแอสกี) ผลการรันโปรแกรม 4.2.2 คำสั่งรับค่าข้อมูลคำสั่ง scanf()คำสั่ง scanf() เป็นคำสั่งที่ใช้ในการรับข้อมูลจากแป้นพิมพ์ (Keyboard) เข้ามาเก็บไว้ในตัวแปร รูปแบบคำสั่ง scanf(control , argument-list); argument-list ตัวแปรสำหรับไว้เก็บค่าข้อมูลที่รับจากแป้นพิมพ์ ถ้ามีตัวแปรมากกว่าหนึ่งตัว ให้แยกกันด้วยเครื่องหมายคอมม่า ( , ) และต้องนำหน้าตัวแปรด้วยเครื่องหมาย & ทุกตัว ยกเว้นตัวแปรชุดcontrol จะต้องเขียนอยู่ภายใต้เครื่องหมาย "" ภายในเครื่องหมายประกอบด้วย รหัสรูปแบบข้อมูล (รหัสเหมือนกับที่ใช้ในคำสั่ง printf) หากต้องการรับข้อมูลมากกว่าหนึ่งตัว ให้แยกกันด้วยเว้นวรรค (space bar) หรือจะกำหนดเป็นรูปแบบอื่นก็ได้ แต่ตอนรับค่าต้องป้อนรูปแบบให้ตรงกัน โดยจำนวนรหัสรูปแบบข้อมูล ต้องสอดคล้องกับจำนวนตัวแปรใน argument-list ตัวอย่างที่ 12 การรับค่าจำนวนเต็ม 1 จำนวน จากแป้นพิมพ์ ( ex4-12.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int x; /* ประกาศตัวแปร x เป็นชนิดจำนวนเต็ม */ /*4*/scanf("%d" , &x); /* รับค่าเลขจำนวนเต็ม จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร x เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*5*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*6*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ เมื่อคำสั่ง scanf ทำงาน เครื่องจะหยุดรอรับค่า (เคอร์เซอร์กระพริบ)เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป ตัวอย่างที่ 13 การรับค่าจำนวนเต็ม 2 จำนวน จากแป้นพิมพ์ ( ex4-13.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/ include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int x , y; /* ประกาศตัวแปร x และ y เป็นชนิดจำนวนเต็ม */ /*4*/scanf("%d %d" , &x , &y); /* รับค่าเลขจำนวนเต็ม 2 จำนวน จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร x และ y ตามลำดับ คั่นจำนวนสองจำนวนด้วยเว้นวรรค เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*5*/printf("x = %d y = %d" , x , y); /* แสดงข้อความ "x = %d y = %d" โดยแสดงค่า x ใน %d ตัวแรก และแสดงค่า y ใน %d ตัวที่ 2 */ /*6*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*7*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ คำสั่ง scanf("%d %d" , &x , &y); เป็นคำสั่งรับค่าจำนวนเต็ม 2 จำนวน จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร x และ y ตามลำดับ โดยป้อนค่าที่ 1 แล้วเว้นวรรค (space bar) แล้วจึงป้อนค่าที่ 2 เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป ตัวอย่างผลการรันโปรแกรม ตัวอย่างที่ 14 การจัดรูปแบบอื่น ๆ ในการรับค่าจำนวนเต็ม 2 จำนวน จากแป้นพิมพ์( ex4-14.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/ include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/int x , y; /* ประกาศตัวแปร x และ y เป็นชนิดจำนวนเต็ม */ /*4*/scanf("%d, %d" , &x , &y); /* รับค่าเลขจำนวนเต็ม 2 จำนวน จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร x และ y ตามลำดับ คั่นจำนวนสองจำนวนด้วยเครื่องหมายคอมม่า ( , ) ตามที่กำหนดไว้ในรูปแบบคำสั่ง เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*5*/printf("x = %d y = %d" , x , y); /* แสดงข้อความ "x = %d y = %d" โดยแสดงค่า x ใน %d ตัวแรก และแสดงค่า y ใน %d ตัวที่ 2 */ /*6*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*7*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ ตัวอย่างผลการรันโปรแกรม ตัวอย่างที่ 15 การรับค่า 3 ค่า ต่างชนิดกัน จากแป้นพิมพ์ วิธีที่ 1 ( ex4-15.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/char x; /* ประกาศตัวแปร x เป็นชนิดอักขระ */ /*4*/int y; /* ประกาศตัวแปร y เป็นชนิดจำนวนเต็ม */ /*5*/float z; /* ประกาศตัวแปร z เป็นชนิดจำนวนจริง */ /*6*/scanf("%c" , &x); /* รับค่าอักขระ จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร x เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*7*/scanf("%d" , &y); /* รับค่าเลขจำนวนเต็ม จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร y เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*8*/scanf("%f" , &z); /* รับค่าเลขจำนวนจริง จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร z เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*9*/printf("x = %c y = %d z = %f" , x , y , z ); /* แสดงข้อความ "x = %c y = %d z = %f" โดยแสดงค่า x ใน %c แสดงค่า y ใน %d และแสดงค่า z ใน %f */ /*10*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*11*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ ตัวอย่างผลการรันโปรแกรม ตัวอย่างที่ 16 การรับค่า 3 ค่า ต่างชนิดกัน จากแป้นพิมพ์ วิธีที่ 2 ( ex4-16.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/char x; /* ประกาศตัวแปร x เป็นชนิดอักขระ */ /*4*/int y; /* ประกาศตัวแปร y เป็นชนิดจำนวนเต็ม */ /*5*/float z; /* ประกาศตัวแปร z เป็นชนิดจำนวนจริง */ /*6*/scanf("%c %d %f" , &x , &y , &z); /* รับค่า อักขระ จำนวนเต็ม และจำนวนจริง จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร xy และ z ตามลำดับ แต่ละค่าคั่นด้วยเว้นวรรค (space bar) เมื่อป้อนข้อมูลเสร็จทั้ง 3 ค่าแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*7*/printf("x = %c y = %d z = %f" , x , y , z ); /* แสดงข้อความ "x = %c y = %d z = %f" โดยแสดงค่า x ใน %c แสดงค่า y ใน %d และแสดงค่า z ใน %f */ /*8*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*9*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ ตัวอย่างผลการรันโปรแกรม ตัวอย่างที่ 17 จงเขียนโปรแกรมคำนวณพื้นที่สามเหลี่ยม ( ex4-17.c )จากโจทย์ เขียนผังงาน แสดงการแก้ปัญหา ได้ดังนี้ จากผังงาน เขียนโปรแกรมได้ดังนี้ บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง /*1*/include <stdio.h> /* เป็นคำสั่งของตัวประมวลผลก่อนซี จะมีผลให้แฟ้ม stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งเกี่ยวกับการรับและแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรมนี้ */ /*2*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */ /*3*/float b , h; /* ประกาศตัวแปร b และ h เป็นชนิดจำนวนจริง */ /*4*/printf("Area of Triangle\n"); /* แสดงข้อความ "Area of Triangle" แล้วขึ้นบรรทัดใหม่ */ /*5*/printf("Base : "); /* แสดงข้อความ "Base : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ /*6*/scanf("%f" , &b); /* รับค่าจำนวนจริง จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร b เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*7*/printf("Height : "); /* แสดงข้อความ "Height : " เพื่อแจ้งให้ผู้ใช้โปรแกรมทราบว่า ต้องป้อนข้อมูลอะไร */ /*8*/scanf("%f" , &h); /* รับค่าจำนวนจริง จากแป้นพิมพ์ ไปเก็บไว้ในตัวแปร h เมื่อป้อนข้อมูลเสร็จแล้ว ต้องกดแป้น Enter เพื่อยืนยันข้อมูลและทำคำสั่งถัดไป */ /*9*/printf("Triangle :Base =%.2f Height =%.2f Area =%.2f", b,h,0.5*b*h); /* แสดงข้อความ "Triangle :Base =%.2f Height =%.2f Area =%.2f" โดยแสดงค่า b ใน %.2f ตัวแรก แสดงค่า h ใน %.2f ตัวที่ 2 และแสดงค่า 0.5*b*h ใน %.2f ตัวที่ 3 (%.2f คือ แสดงผลเป็นจุดทศนิยม 2 ตำแหน่ง) */ /*10*/return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */ /*11*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */ หมายเหตุ แสดงการใช้คำสั่ง printf กับ scanf คู่กัน โดยใช้คำสั่ง printf เพื่อแสดงข้อความ ให้ผู้ใช้โปรแกรมทราบว่า ถึงขั้นตอนไหนและต้องทำอะไร (เป็นการสื่อสารกับผู้ใช้โปรแกรม) แล้วจึงใช้คำสั่ง scanf ให้ผู้ใช้ป้อนข้อมูล ตัวอย่างผลการรันโปรแกรมหลักการเขียนโปรแกรมภาษาซี มีอะไรบ้างกฎเกณฑ์ในการเขียนภาษา C ที่ควรคำนึง มีดังนี้. จะต้องกำหนดพรีโปรเชสเชอร์ที่ต้นโปรแกรมก่อน เช่น include<stdio.h>,include<conio.h>.คำสั่งต่างๆจะใช้อักษรพิมพ์เล็ก. ตัวแปรที่ใช้งานในโปรแกรมต้องประกาศไว้เสมอ. ภายในโปรแกรมต้องมีอย่างน้อยหนึ่งฟังก์ชั่น คือ main ( ). โปรแกรมภาษาซีคืออะไรC - Programming Language หรือ ภาษาซี คือ ภาษาที่ใช้สำหรับพัฒนาโปรแกรมทั่วไป เพราะมีความยืดหยุ่นสูง ออกแบบมาให้สามารถทำงานกับคำสั่งพื้นฐานของคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ เรียนภาษา C แล้วจะสามารถทำอะไรได้บ้างคอร์สเรียนภาษา C สามารถต่อยอดกับภาษาอะไรได้อีกบ้าง ภาษา C++ เป็นส่วนเสริมของภาษา C โดยเพิ่มคุณสมบัติการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming-OOP) เนื่องจาก C++ สร้างจากไวยากรณ์และแนวคิดของ C นิยมใช้ในการพัฒนาเกม การเขียนโปรแกรมระบบ และแอปพลิเคชันที่เน้นประสิทธิภาพ ตัวแปรในภาษาซี มีอะไรบ้างภาษาซีมีตัวชี้หรือที่เรียกว่า ตัวแปรพอยน์เตอร์(Pointer) ที่สามารถเข้าถึง หรือชี้ไป ยังที่อยู่ของหน่วยความจาที่ใช้จัดเก็บข้อมูลได้โดยตรง ซึ่งหาพบได้ยากในภาษาระดับสูงทั่วไป โดย ตัวแปรพอยน์เตอร์สามารถถูกกาหนดให้ใช้งานบนชนิดข้อมูลหลายประเภทได้อีกด้วย |