|
|
|
|
|
|
|
| คำแนะนำ
1. แบบทดสอบแบ่งเป็น 2 ตอน ได้แก่ ตอนที่ 1 แบบทดสอบเป็นแบบปรนัย 4 ตัวเลือก มีจำนวน 10 ข้อ 10 คะแนน 2. ตอนที่ 2 ภาคปฏิบัติ
แบบอัตนัย 2 ข้อ 10 คะแนน 3. ตอนที่ 1 ให้นักเรียนคลิกตัวเลือกที่เห็นว่าถูกที่สุดเพียงข้อเดียว และเมื่อทำแบบทดสอบครบ ทุกข้อแล้ว ให้คลิกที่ปุ่ม "ตรวจคำตอบ" จะทราบคะแนนทันที
|
| ตอนที่ 2 : ภาคปฏิบัติ แบบทดสอบนี้เป็นแบบอัตนัย ให้นักเรียนปฏิบัติตามคำสั่งต่อไปนี้ ให้ถูกต้อง ( 2 ข้อ ข้อละ 5 คะแนน รวม 10 คะแนน )
| 1. จงเขียนแผนผังแสดงขั้นตอนคอมไพล์โปรแกรม และลิงค์โปรแกรมภาษาซี 2. จงเขียนคำสั่งโปรแกรมภาษาซี แสดงข้อความว่า "Good norning teacher" และใส่หมายเหตุแบบหลายบรรทัดว่า This my first program โดยให้ถูกต้องตามโครงสร้างโปรแกรมภาษาซี
|
|
|
|
|
|
4.1 คำสั่งคำนวณ
|
4.2 คำสั่งรับและแสดงผลข้อมูล
|
| 4.2.1 คำสั่งแสดงผลข้อมูล | 4.2.2 คำสั่งรับค่าข้อมูล |
4.2.1 คำสั่งแสดงผลข้อมูล
คำสั่ง printf()
คำสั่ง printf() เป็นคำสั่งที่ใช้ในการแสดงผลข้อมูลที่อยู่ในตัวแปร ค่าคงตัว นิพจน์ ออกมาทางจอภาพ ซึ่งคำสั่ง printf() นี้ถูกเก็บไว้ใน I/O Library เวลาจะใช้คำสั่งต้องบอกให้ตัวแปลชุดคำสั่งภาษาซี
รับรู้ก่อน
โดยใช้คำสั่งตัวประมวลผลก่อนซี #include <stdio.h> เข้ามาก่อน โดยเอาไว้ส่วนหัวของโปรแกรม
รูปแบบคำสั่ง printf(control , argument-list);
argument-list
| ตัวแปร ค่าคงตัว หรือนิพจน์ ที่ต้องการนำมาแสดงผล ถ้ามีมากกว่า 1 ค่า จะต้องแยกกันโดยใช้เครื่องหมายคอมม่า ( , )
|
|
|
control
| จะต้องเขียนอยู่ภายใต้เครื่องหมาย "" ภายในเครื่องหมายประกอบด้วย ข้อความ รหัสควบคุมการแสดงผล และรหัสรูปแบบข้อมูล รายละเอียดดังนี้ 1. ข้อความที่เป็นคำอธิบาย ที่ต้องการให้แสดงผลออกมา ส่วนมากจะใช้เพื่อแต่งรูปแบบของรายงานให้อ่านเข้าใจและสวยงาม
2. รหัสควบคุมการแสดงผล ที่ใช้ในการควบคุมการแสดงผลจะต้องอยู่หลังเครื่องหมาย \ 3. รหัสรูปแบบข้อมูล ที่ใช้ในการกำหนดการแสดงผลของข้อมูลจะต้องอยู่ตามหลังเครื่องหมาย % จำนวนรหัสรูปแบบข้อมูล ต้องสอดคล้องกับจำนวนค่าข้อมูลใน argument-list
|
|
|
|
ตารางแสดง รหัสควบคุมการแสดงผล
|
รหัสควบคุมการแสดงผล (escape character)
| ใช้สำหรับ
| \n
| ขึ้นบรรทัดใหม่ 1 บรรทัด
| \t
| tab เว้นวรรค 1 tab (8 อักขระ)
| \a
| ส่งเสียงปี๊บเตือน 1 ครั้ง
| \'
| แสดงอักขระ ' 1 ตัว
| \"
| แสดงอักขระ " 1 ตัว
| \\
| แสดงอักขระ \ 1 ตัว
|
|
|
|
ตารางแสดง รหัสรูปแบบข้อมูล
|
รหัสรูปแบบข้อมูล
| ใช้สำหรับข้อมูลหรือตัวแปรแบบ
| %c
| char และ unsigned char
| %f
| float และ double
| %d
| int และ unsigned int
| %s
| char[] หรือ สายอักขระ
| %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 ให้ผู้ใช้ป้อนข้อมูล
|
|
|
ตัวอย่างผลการรันโปรแกรม
|
|
|
|