ݺߣ

ݺߣShare a Scribd company logo
2
Most read
3
Most read
บทที่ 1
พื้นฐานโปรแกรมภาษาซี
ภาษาซี คิดค้นขึ้นเป็นครั้งแรกโดยเดนนิส ริทชี่ (Dennis Ritchie) ที่ห้องแล็บเบล (Bell
Labs) ในปี ค.ศ.1972 โดยได้แนวคิดมาจากภาษาBCPL พัฒนาขึ้นโดย มาร์ติน ริชาร์ด(Martin Richards)
และภาษา B ที่เขียนขึ้นโดย เคน ทอมพ์สัน(KenThompson) เพื่อนามาพัฒนาต่อจนได้ภาษาใหม่ที่มี
ประสิทธิภาพการทางานสูง หลังจากนั้นในปี ค.ศ.1978 ภาษาซีจึงได้รับการเผยแพร่อย่างเป็นทางการ
โดยเคอร์นิกแฮน(Kernighan) และเดนนิส ริทชี่ เป็นภาษาที่เก่าแก่ถือกาเนิดมายาวนาน โดยแต่เดิมนั้น
ภาษาซี ถูกพัฒนาขึ้นเพื่อให้เป็นภาษาสาหรับการสร้างระบบปฏิบัติการยูนิกซ์ เนื่องจากในขณะนั้น
ระบบปฏิบัติการยูนิกซ์เขียนด้วยภาษาแอสเซมบลี(Assembly) ซึ่งเป็นภาษาที่ยึดติดกับฮาร์ดแวร์ของ
เครื่อง ดังนั้นการที่จะย้ายระบบปฏิบัติการไปใช้กับเครื่องอื่นจึงเป็นเรื่องที่เป็นไปไม่ได้เลย ซึ่งนับเป็น
ข้อเสียใหญ่ของภาษาแอสเซมบลีดังนั้นภาษาซีซึ่งเป็นภาษาที่ไม่ยึดติดกับฮาร์ดแวร์จึงถูกพัฒนาขึ้นมา
ในปัจจุบันภาษาซีไม่ได้จากัดอยู่เพียงแค่งานสร้างระบบปฏิบัติการเท่านั้นแต่สามารถนาไปใช้
สร้างโปรแกรมเพื่องานในทุกประเภท เช่น งานเกี่ยวกับการคานวณ ควบคุมการทางานของอุปกรณ์/
ฮาร์ดแวร์ชนิดต่าง ๆ การจัดการฐานข้อมูลหรือสร้างโปรแกรมสาหรับจัดพิมพ์เอกสารเป็นต้น จุดกาเนิด
ของภาษาซีนั้น เกิดมาจากUNIX ผู้ออกแบบภาษา UNIX ต้องการให้ OS ของตัวเอง สามารถใช้งานได้บน
เครื่องต่างๆ กัน แต่การที่จะต้องImplement UNIX โดยใช้ภาษาAssembly ของแต่ละเครื่อง เป็นสิ่งที่
ยุ่งยากเกินไป ผู้ออกแบบUNIX จึงสร้างภาษากลางภาษาหนึ่ง ซึ่งUNIX ทั้งตัวเขียนจากภาษาดังกล่าว
ดังนั้นเมื่อต้องการ ให้UNIX ใช้ งานได้บนเครื่องใด ก็ให้สร้างคอมไพเลอร์ของภาษากลางบนเครื่องนั้น
ก่อน คอมไพเลอร์จะแปล โปรแกรมให้เป็นภาษาเครื่องทาให้ลดความซับซ้อนลงมาก ภาษากลาง
ดังกล่าวก็คือภาษาซีนั่นเอง
ประวัติภาษาซี
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 2 เอกสารประกอบการสอน ภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยโปรแกรมย่อย หรือเรียกว่าฟังก์ชัน
(function) อย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชันmain( ) ซึ่งมีรูปแบบดังนี้
ฟังก์ชัน main( ) ประกอบด้วย 3 ส่วนหลัก คือ
1) ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูลvoid ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ( และ )
ตามลาดับ
2) ส่วนการประกาศตัวแปร ใช้สาหรับประกาศตัวแปรชนิดต่าง ๆ เพื่อเก็บข้อมูลระหว่างการ
ประมวลผล
3) ส่วนคาสั่ง ประกอบด้วยคาสั่งที่เกี่ยวข้องกับการรับเข้า การแสดงผลข้อมูลและคาสั่งประมวลผลอื่น ๆ
ส่วนประกาศตัวแปรและส่วนคาสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย{ และ } เสมอ ทั้งสอง
ส่วนนี้ใช้สาหรับนิยามการทางานของฟังก์ชันmain() หรือในที่นี้เป็นการนิยามการทางานของโปรแกรม
นั่นเอง และคาสั่งทุกคาสั่งในภาษาซีจะต้องปิดท้ายด้วยเครื่องหมาย; เสมอ
ขั้นตอนการทางานของภาษาซี
main() { //ส่วนหัวของฟังก์ชัน
การประกาศตัวแปรท้องถิ่น; // ส่วนการประกาศตัวแปร
คาสั่งต่าง ๆ ; // ส่วนคาสั่ง
}
#include <stdio.h>
#include <conio.h>
main( )
{
int a;
printf(“Computer”);
getch( );
}
 ส่วนหัว
 ส่วนประกาศตัวแปร
ส่วนคาสั่ง
ขั้นที่ 1
เขียนคาสั่ง
.C
ขั้นที่ 2
คอมไพล์และลิงค์
.OBJ
ขั้นที่ 3
นาไปใช้งาน
.EXE
โครงสร้างพื้นฐานของโปรแกรม
ภาษาซี
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 3 เอกสารประกอบการสอน ภาษาซี
ขั้นตอนที่1 เขียนรายการคาสั่งของโปรแกรม(Write Source Code File)
เป็นการเขียนคาสั่งต่างๆ ของภาษาซีเพื่อดาเนินการกับข้อมูลโดยที่คาสั่งดังกล่าวนั้นอาจจะเป็น
คาสั่งเพื่อกาหนดค่าให้กับข้อมูลเปรียบเทียบค่าของข้อมูลรับข้อมูลเข้าแสดงผลข้อมูลและอื่นๆ โดยที่คาสั่ง
ต่างๆ จะถูกบันทึกเก็บไว้ในไฟล์ข้อมูลที่มีนามสกุลเป็น .C
ขั้นตอนที่2 คอมไพล์และลิงค์รหัสโปรแกรม(Compile and Link)
เป็นขั้นตอนของการนาคาสั่งในรหัสโปแกรมที่เขียนด้วยภาษาซีมาแปลให้เป็นภาษาที่เครื่อง
คอมพิวเตอร์เข้าใจโดยแบ่งการทางานเป็น2 ส่วนคือ
คอมไพล์(Compile) คือ การนารหัสโปรแกรมที่เขียนด้วยภาษาซีมาให้ตัวแปรภาษา(Compiler) ทา
การตรวจสอบโดยตัวแปรภาษาจะตรวจสอบคาสั่งต่างๆ ที่เขียนว่าถูกต้องตามหลักไวยากรณ์ของภาษาซี
หรือไม่ ถ้าพบข้อผิดพลาดจะต้องแก้ไขให้ถูกต้องแล้วคอมไพล์ใหม่จนกว่าจะถูกต้องไฟล์ที่คอมไพล์ผ่าน
ตัวแปรภาษาจะทาการสร้างให้เป็นObject file ซึ่งมีนามสกุล.OBJ
ลิงค์(Link) คือ การนา Object file ที่ได้จากการคอมไพล์ของภาษาซีมาทาการเชื่อมโยงเข้าด้วยกัน
ด้วยตัวเชื่อมโยงของภาษาซี(Linker) ซึ่งผลจากการเชื่อมโยงนี้ตัวเชื่อมโยงจะสร้างเป็นExecution file ที่มี
นามสกุล.EXE ซึ่งเป็นไฟล์ที่จะนาไปใช้งานนั่นเอง
ขั้นตอนที่3 การนาโปรแกรมไปใช้งาน(Execte Program)
เป็นขั้นตอนของการนาExecute file ที่ได้จากการคอมไพล์โปรแกรมไปใช้งาน
(กิติชัย ชีวาสุขถาวร. 2550 : 14)
ขั้นตอนการเขียนโปรแกรมภาษาซี
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 4 เอกสารประกอบการสอน ภาษาซี
พื้นที่สาหรับการพิมพ์รหัส
โปรแกรม
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 5 เอกสารประกอบการสอน ภาษาซี
โปรแกรมภาษาซีอย่างง่าย
ตัวอย่าง 1.1 โปรแกรมภาษาซีที่สั้นที่สุด
การแสดงผลลัพธ์เบื้องต้น
ตัวอย่างที่ 1.2 โปรแกรมพิมพ์ข้อความออกทางจอภาพ
ตัวอย่างที่ 1.3 โปรแกรมพิมพ์หัวรายงาน
ตัวอย่างที่ 1.4 โปรแกรมพิมพ์จานวนเต็ม
/* 1 */ //Program : First.c
/* 2 */ // แสดงการใช้ฟังก์ชัน main() ในโปรแกรม
/* 3 */
/* 4 */ main(){
/* 5 */ }
/*1*/ //Program : Output1.c
/*2*/ #include <stdio.h>
/*3*/ #include <conio.h>
/*4*/ int main(){
/*5*/ printf(“The first output from C.n”);
/*6*/ getch();
/*7*/ return 0;
/*8*/ }
/ * 1 */ //Program : Output2.c
/ * 2 */ #include <stdio.h>
/ * 3 */ #include <conio.h>
/ * 4 */ int main(){
/* 5*/ printf(“n--< Payroll Report >--”);
/* 6*/ printf(“n 31/01/2009 n”);
/* 7*/ getch();
/* 8*/ return 0;
/*9*/ }
/ * 1 */ //Program : Output3.c
/ * 2 */ #include <stdio.h>
/ * 3 */ #include <conio.h>
/ * 4 */ int main(){
/* 5*/ printf(“nFirst value is %d.”,5);
/* 6*/ printf(“nSecond value is %d.”,7);
/* 7*/ getch();
/* 8*/ return 0;
/*9*/ }
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 6 เอกสารประกอบการสอน ภาษาซี
printf (“format”,variable);
ตัวอย่างที่ 1.5 โปรแกรมพิมพ์จานวนเต็มหลายค่าในบรรทัดเดียวกัน
การแสดงผลข้อมูลออกทางจอภาพ ในภาษาC ใช้คาสั่งprintf คาสั่ง printf ถือได้ว่าเป็นคาสั่ง
พื้นฐานที่สุดในการแสดงผลข้อมูลทุกชนิดออกทางหน้าจอ ไม่ว่าจะเป็น จานวนเต็ม (int) ทศนิยม (float)
ข้อความ (string) หรืออักขระ(char) นอกจากนี้คาสั่งยังมีความยืดหยุ่นสูง โดยเราสามารถกาหนดหรือ
จัดรูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้
รูปแบบคาสั่งprintf
formatข้อมูลที่ต้องการแสดงผลออกทางหน้าจอ โดยข้อมูลนี้ต้องเขียนไว้ในเครื่องหมาย" " ข้อมูลที่
สามารถแสดงผลได้มีอยู่ 2 ประเภท คือ ข้อความธรรมดา และค่าที่เก็บไว้ในตัวแปรซึ่งถ้าเป็นค่าที่เก็บไว้
ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของ ข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วยvariable ซึ่ง
เป็นตัวแปรหรือนิพจน์ที่ต้องการนาค่าไปแสดงผลให้ตรงกับรหัสควบคุมรูปแบบที่กาหนดไว้
ตัวอย่างการใช้คาสั่งprintf แสดงผลข้อความธรรมดาออกทางหน้าจอ ดังนี้
printf(“Hello Program C”); แสดงข้อความ Hello Program C ออกทางจอภาพ
printf(“I love UBU”); แสดงข้อความ I love UBU ออกทางจอภาพ
/*1*/ //Program : Output4.c
/*2*/ // พิมพ์จานวนเต็มหลายค่าในบรรทัดเดียวกัน
/*3*/
/*4*/ #include <stdio.h>
/*5*/ #include <conio.h>
/*6*/ int main(){
/*7*/ printf(“nSum of %d and %d is %d.”,9,4,9+4);
/*8*/ printf(“nDifference of %d and %d is %d.”,9,4,9-4);
/*9*/ printf(“nMultiplication of %d by %d is %d.”,9,4,9*4);
/*10*/ printf(“nDivision of %d by %d is %d.n”,9,4,9/4);
/*11*/ getch();
/*12*/ return 0;
/*13*/ }
คาสั่งแสดงผลออกทางจอภาพ
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 7 เอกสารประกอบการสอน ภาษาซี
คาสั่ง printf() นอกจากจะใช้แสดงผลข้อความธรรมดาๆ แล้วยังสามารถจัดรูปแบบให้กับข้อความได้อีก
ด้วย ซึ่งชื่อเต็มๆของ printf ก็คือ print formatted นั่นเอง
อาร์กิวเมนต์ (Argrument) ของคาสั่งใดๆ คือสิ่งที่อยู่ระหว่าง ( และ ) ของคาสั่งนั้นๆ
โดยอาร์กิวเมนต์อาจมีได้มากกว่าหนึ่งตัว ใช้ , (Comma) คั่นระหว่างอาร์กิวเมนต์แต่ละตัว
คาสั่ง printf() ที่ผ่านๆมา มีเพียงอาร์กิวเมนต์เดียว นั่นคือข้อความที่ต้องการแสดงผลนั่นเอง
แต่คาสั่ง printf() ในตัวอย่างด้านบนมีหลายอาร์กิวเมนต์เราจะทาความเข้าใจความหมายของมันกัน
ถ้าสังเกตดี ๆ จะเห็นว่า ข้อความในคาสั่ง printf ด้านบน "2 + 2 = " แสดงผลออกมาตามปกติ มีเพียง %d
เท่านั้น ที่ถูกเปลี่ยนไปเป็น 4 แทน คาสั่ง printf จะนาอาร์กิวเมนต์ด้านหลัง มาแทนที่ %d ในอาร์กิวเมนต์
แรกตามลาดับ ทั้งนี้ ต้องใช้ให้ถูกประเภทด้วย ซึ่ง %d ใช้สาหรับ เลขจานวนเต็ม (Integer) ฐานสิบ หาก
เป็นเลขทศนิยมหรือเลขจานวนจริง (Floating number) ต้องใช้ %f แทน ซึ่งประเภทต่างๆ ดูได้ตามตาราง
ข้างล่างนี้
Code Format Example
%c ตัวอักษร หรือ อักขระ 1 ตัว a
%d เลขจานวนเต็มฐานสิบ 475
%e สัญกรทางวิทยาศาสตร์ (scientific notation) ใช้ตัว e 4.7523e+2
%E สัญกรทางวิทยาศาสตร์ (scientific notation) ใช้ตัว E 4.7523E+2
%f เลขทศนิยม หรือจานวนจริง 475.23
%g เป็น %e หรือ %f ตามความเหมาะสม 475.23
%G เป็น %E หรือ %f ตามความเหมาะสม 475.23
%o เลขจานวนเต็มฐานแปด 653
%x เลขจานวนเต็มฐานสิบหก ใช้ตัวอักษรตัวเล็ก 1ab
%X เลขจานวนเต็มฐานสิบหก ใช้ตัวอักษรตัวใหญ่ 1AB
%s ข้อความ หรือสายอักขระ (ตัวอักษรหลายตัวเรียงต่อกัน) ABCD
%u เลขจานวนเต็มบวก และศูนย์ (Unsigned integer) 385
%% เครื่องหมาย '%'
printf("2 + 2 = %d", 4);
printf("%d + %d = %d", 2, 3, 5);
2 + 2 = 4
2 + 3 = 5
โค้ด
ผลลัพธ์
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 8 เอกสารประกอบการสอน ภาษาซี
Text Formatting #2
ผลลัพธ์
Characters: a
Decimals: 1977 6500000000
Preceding with blanks: 1977
Preceding with zeros: 0001977
Base number: 427 1ab 653
Floats: 3.14 +3e+00 3.141600E+00
123 in this text is a String not a number
ข้อควรจา
ตัวอักษรหรืออักขระ1 ตัว (Character) ในภาษาC เราจะใช้เครื่องหมาย ' (Single qoute) คร่อม
ชุดตัวอักษร หรือสายอักขระ (String) ในภาษาC เราจะใช้เครื่องหมาย "(Double qoute) คร่อม
ตัวเลข สามารถใช้ได้เลยไม่ต้องมีตัวคร่อม
เพิ่มเติม
%7d หมายความว่า แสดงเลขฐานสิบโดยมีความกว้างอย่างน้อย7 ตัวอักษร
หากเลขนั้นมีจานวนหลักน้อยกว่า7 หลัก โปรแกรมจะใส่ช่องว่างด้านหน้าเลขนั้นจนครบ7 ตัว
%07d หมายความว่า แสดงเลขฐานสิบโดยมีจานวนหลักอย่างน้อย7 หลัก
หากเลขนั้นมีจานวนหลักน้อยกว่า7 หลัก โปรแกรมจะใส่เลขศูนย์ด้านหน้าเลขนั้นจบครบ7
หลัก
%+d หมายความว่า ปกติแล้วเลขจานวนบวกจะไม่มีเครื่องหมายนาหน้า ใช้โค๊ดนี้เพื่อสั่งให้แสดง
%.2f หมายความว่า แสดงเลขจานวนจริง โดยแสดงตาแหน่งทศนิยมเพียง2 หลัก
หลักการด้านบน สามารถใช้พร้อมกันได้ด้วยเช่น %07.3f %+3d เป็นต้น
printf ("Characters: %cn", 'a');
printf ("Decimals: %d %dn", 1977, 6500000000);
printf ("Preceding with blanks: %7d n", 1977);
printf ("Preceding with zeros: %07d n", 1977);
printf ("Base number: %d %x %on", 427, 427, 427);
printf ("Floats: %4.2f %+.0e %E n", 3.1416, 3.1416, 3.1416);
printf ("%s n", "123 in this text is a String not a number");
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 9 เอกสารประกอบการสอน ภาษาซี
แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล
นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็นระเบียบมากขึ้น อย่างเช่นขึ้นบรรทัดใหม่ หลัง
แสดงข้อความหรือเว้นระยะแท็บระหว่างข้อความโดย ใช้อักขระควบคุมการแสดงผลร่วมกับคาสั่งprintf
อักขระควบคุมการ
แสดงผล
ความหมาย
n ขึ้นบรรทัดใหม่ (new line)
t
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร) หรือ แท็บแนวนอน (horizontal
tab)
r กาหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด (carriage return)
f เว้นช่องว่างเป็นระยะ 1 หน้าจอ หรือ ขึ้นหน้าใหม่ (form feed)
b ถอยหลัง 1 ช่องตัวอักษร(Backspace)
 พิมพ์เครื่องหมาย  (Literal backslash)
" พิมพ์เครื่องหมาย " (Double quote)
' พิมพ์เครื่องหมาย ' (Single quote)
a ส่งเสียง Alert 1ครั้ง (bell)
v แท็บแนวตั้ง (Vertical tab)
? พิมพ์เครื่องหมาย ? Question mark (used toescape trigraphs)
nnn Character with octal value nnn
xhh Character with hexadecimal value hh
การนาอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย” ”
ดังตัวอย่าง
printf("Hello ... n"); แสดงข้อความ Hello ... แล้วขึ้นบรรทัดใหม่
printf("Hello...nKanchanaburin"); แสดงข้อความ Hello ...แล้วขึ้นบรรทัดใหม่พร้อมกับแสดง
ข้อความ Kanchanaburi จากนั้นขึ้นบรรทัดใหม่อีกครั้ง
printf("Num1 = %dtNum2 = %fn",x,z); แสดงข้อความ Num1=45 ตามด้วยการเว้น ช่องว่าง 1 แท็บ
แล้วต่อด้วยข้อความNum2 = 20.153
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 10 เอกสารประกอบการสอน ภาษาซี
Comment
บางครั้ง เราอาจต้องการเขียนข้อความอธิบายการทางาน หรือคาสั่งต่างๆ (Statement) ของ
โปรแกรมเพื่อให้คนอื่น หรือแม้แต่ตัวเราเองซึ่งมาอ่านในภายหลัง สามารถเข้าใจได้ง่ายและรวดเร็วขึ้น
โดยข้อความเหล่านี้ เราไม่ต้องการให้คอมพิวเตอร์ประมวลผล จะทาอย่างไร?
เราเรียก ข้อความที่ไม่ต้องการให้คอมพิวเตอร์ประมวลผลนี้ว่า คอมเม้นท์ (Comment) มีอยู่สองแบบ
1. คอมเม้นท์แบบบรรทัดเดียวจบ (Single line comment)
ข้อความที่ตามหลังเครื่องหมาย // ในบรรทัดนั้นทั้งบรรทัดจะไม่ถูกประมวลผล
คอมพิวเตอร์จะเริ่มประมวลผลโค๊ดใหม่ในบรรทัดถัดไป
2. คอมเม้นท์แบบหลายบรรทัด (Multiple line comment)
เริ่มต้นด้วยเครื่องหมาย /* และจบด้วยเครื่องหมาย */
ข้อความที่อยู่ระหว่างเครื่องหมายทั้งสองนี้ จะถือว่าเป็นComment ทั้งหมด
// this is a comment and will not be shown in output.
printf( "This isn't a comment" ); // this is a single line comment
/*
This is a multiple line comment.
Comment #1
Comment #2
*/
โค้ด
This isn't a comment
ผลลัพธ์
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 11 เอกสารประกอบการสอน ภาษาซี
คาชี้แจง ปฏิบัติกิจกรรมตามขั้นตอนการปฏิบัติงาน
1. ให้นักเรียนเปิดเครื่องคอมพิวเตอร์แล้วเข้าโปรแกรมภาษาซี
2. คลิก
3. คลิก
4. คลิก
5. เมื่อเปิดหน้าจอโปรแกรมภาษาซีแล้วให้คลิกเมนู File  New  Source file
6. พิมพ์ชุดคาสั่งของโปรแกรมต่อไปนี้
7. เมื่อพิมพ์ชุดคาสั่งเสร็จ บันทึกข้อมูลชื่อwork1 โดยคลิกFile  Save  ตกลง
8. กดปุ่ม ctrl + F9 เพื่อการคอมไพล์
9. กดปุ่ม ctrl + F10 เพื่อการรันโปรแกรม
ใบงานที่ 1.1
#include <stdio.h>
#include <conio.h>
int main ( )
{
printf(" *n");
printf(" ****n");
printf(" *n");
printf(" ****n");
getch( );
return 0;
}
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 12 เอกสารประกอบการสอน ภาษาซี
ใบงานที่ 1.2
คาสั่งแสดงผลลัพธ์ 1
1. ให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลข้อความ (ตามที่ผู้เรียนกาหนด) จานวน 3 บรรทัดบนจอภาพ
บันทึกโปรแกรมในชื่อ MyFirst.c จากนั้นให้คอมไพล์ รันโปรแกรมและสังเกตผลลัพธ์
ข้อความที่ต้องการให้แสดงผลคือ
1. .............................................................................................................................................................
2. ..............................................................................................................................................................
3................................................................................................................................................................
โปรแกรม
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
ผลลัพธ์
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 13 เอกสารประกอบการสอน ภาษาซี
2. ให้นักเรียนเขียนคาสั่งที่ได้จากการแก้ไขโปรแกรม MyFirst.c เพื่อให้ข้อความในผลลัพธ์ทั้งบรรทัดที่
สองและบรรทัดที่สามเว้นห่างจากบรรทัดก่อนหน้า 2 บรรทัด โดยใช้วิธีการที่แตกต่างกัน 2 วิธี
วิธีที่ 1
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
วิธีที่ 2
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
3. ให้นักเรียนเขียนข้อความระบุความผิดพลาด (error message) ที่เกิดขึ้นจากการใช้รูปแบบคาสั่งที่
ไม่ถูกต้องแต่ละอย่างดังต่อไปนี้
แนะนา ให้นักเรียนแก้ไขโปรแกรมMyFirst.c เพื่อจงใจให้เกิดข้อผิดพลาดด้านล่าง แล้วสังเกต
ข้อความระบุ ข้อผิดพลาดจากการคอมไพล์โปรแกรม
3.1 ไม่ใส่เครื่องหมาย }
..................................................................................................................................................................
3.2 ไม่ใส่เครื่องหมาย () หลังmain
..................................................................................................................................................................
3.3 ไม่ใส่เครื่องหมาย ; ต่อท้ายคาสั่งใดคาสั่งหนึ่ง
..................................................................................................................................................................
3.4 ใส่เครื่องหมาย ; ต่อท้ายเครื่องหมาย () หลังmain
..................................................................................................................................................................
3.5 ไม่ใส่เครื่องหมาย “ ก่อนหรือหลังข้อความในคาสั่งprintf ()
..................................................................................................................................................................
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 14 เอกสารประกอบการสอน ภาษาซี
ใบงานที่ 1.3
คาสั่งแสดงผลลัพธ์ 2
1. ให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลลัพธ์เป็นรูปสามเหลี่ยมที่มีความสูง 8 แถว ดังรูป
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
โปรแกรม
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี
หน้า 15 เอกสารประกอบการสอน ภาษาซี
2. ให้นักเรียนเขียนคาสั่งเพื่อพิมพ์ผลลัพธ์จากนิพจน์ต่อไปนี้
2.1 28 * 42
..................................................................................................................................................................
..................................................................................................................................................................
2.2 65032 / 98
..................................................................................................................................................................
..................................................................................................................................................................
2.3 29541 + 35826 – 47
..................................................................................................................................................................
..................................................................................................................................................................
2.4 459 * 25 – 18 + 3
..................................................................................................................................................................
..................................................................................................................................................................
Ad

Recommended

ปริพันธ์ไม่จำกัดเขต อรุณรุ่ง
ปริพันธ์ไม่จำกัดเขต อรุณรุ่ง
Kanomwan Jeab
C language
C language
Rohit Singh
Programming in c
Programming in c
ankitjain851
Introduction to C Programming
Introduction to C Programming
Aniket Patne
C programming language Reference Note
C programming language Reference Note
Chetan Thapa Magar
Inertial measurement unit (IMU) and Global Positioning System (GPS)
Inertial measurement unit (IMU) and Global Positioning System (GPS)
NoiRr DaRk
การออกแบบคอมพิวเตอร์กราฟิก (Graphics Basic)
การออกแบบคอมพิวเตอร์กราฟิก (Graphics Basic)
Pitchayanida Khumwichai
การเขียนโปรแกรม
การเขียนโปรแกรม
ikanok
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Pitchaya Jitbowornwong
C slide
C slide
tawee1919
1. ประวัติภาษาซี
1. ประวัติภาษาซี
mansuang1978
ภาษาซี
ภาษาซี
Nattawut Pornonsung
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
Visaitus Palasak
บทที่ 2
บทที่ 2
1118192239
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
Tay Atcharawan
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
mansuang1978
C lang
C lang
Nattawut Pornonsung
การเขียนคำสั่งควบคุม
การเขียนคำสั่งควบคุม
Baramee Chomphoo
ภาษาซี๶บื้องต้น
ภาษาซี๶บื้องต้น
สมใจ สีดาจันทร์
ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
Komkai Pawuttanon
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
Komkai Pawuttanon

More Related Content

Similar to บทที่1 พื้นฐานโปรแกรมภาษาซี (20)

การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Pitchaya Jitbowornwong
C slide
C slide
tawee1919
1. ประวัติภาษาซี
1. ประวัติภาษาซี
mansuang1978
ภาษาซี
ภาษาซี
Nattawut Pornonsung
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
Visaitus Palasak
บทที่ 2
บทที่ 2
1118192239
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
Tay Atcharawan
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
mansuang1978
C lang
C lang
Nattawut Pornonsung
การเขียนคำสั่งควบคุม
การเขียนคำสั่งควบคุม
Baramee Chomphoo
ภาษาซี๶บื้องต้น
ภาษาซี๶บื้องต้น
สมใจ สีดาจันทร์
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
Pitchaya Jitbowornwong
1. ประวัติภาษาซี
1. ประวัติภาษาซี
mansuang1978
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษา)
Visaitus Palasak
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
Tay Atcharawan
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
mansuang1978
การเขียนคำสั่งควบคุม
การเขียนคำสั่งควบคุม
Baramee Chomphoo

More from Komkai Pawuttanon (12)

ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
Komkai Pawuttanon
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
Komkai Pawuttanon
ใบความรู้ที่3 การจัดการเฟรม
ใบความรู้ที่3 การจัดการเฟรม
Komkai Pawuttanon
ใบความรู้ที่2 การจัดการซีน
ใบความรู้ที่2 การจัดการซีน
Komkai Pawuttanon
บทที่ 2 ตัวแปร
บทที่ 2 ตัวแปร
Komkai Pawuttanon
ผลงาน2554 คอมใหม่
ผลงาน2554 คอมใหม่
Komkai Pawuttanon
สรุปผลการแข่งྺันคอมพิว๶ตอร์53
สรุปผลการแข่งྺันคอมพิว๶ตอร์53
Komkai Pawuttanon
บทคัึϸ่อ
บทคัึϸ่อ
Komkai Pawuttanon
ประวัติราชการ
ประวัติราชการ
Komkai Pawuttanon
การอบรม สัมมนา
การอบรม สัมมนา
Komkai Pawuttanon
ผลงานปี 2555_คอม
ผลงานปี 2555_คอม
Komkai Pawuttanon
ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
ใบความรู้ที่5 การสร้างภาพเคลื่อนไหว (Tweened Animation)
Komkai Pawuttanon
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
ใบความรู้ที่ 4 การจัดการคีย์เฟรม
Komkai Pawuttanon
ใบความรู้ที่3 การจัดการเฟรม
ใบความรู้ที่3 การจัดการเฟรม
Komkai Pawuttanon
ใบความรู้ที่2 การจัดการซีน
ใบความรู้ที่2 การจัดการซีน
Komkai Pawuttanon
บทที่ 2 ตัวแปร
บทที่ 2 ตัวแปร
Komkai Pawuttanon
ผลงาน2554 คอมใหม่
ผลงาน2554 คอมใหม่
Komkai Pawuttanon
สรุปผลการแข่งྺันคอมพิว๶ตอร์53
สรุปผลการแข่งྺันคอมพิว๶ตอร์53
Komkai Pawuttanon
ประวัติราชการ
ประวัติราชการ
Komkai Pawuttanon
การอบรม สัมมนา
การอบรม สัมมนา
Komkai Pawuttanon
ผลงานปี 2555_คอม
ผลงานปี 2555_คอม
Komkai Pawuttanon
Ad

บทที่1 พื้นฐานโปรแกรมภาษาซี

  • 1. บทที่ 1 พื้นฐานโปรแกรมภาษาซี ภาษาซี คิดค้นขึ้นเป็นครั้งแรกโดยเดนนิส ริทชี่ (Dennis Ritchie) ที่ห้องแล็บเบล (Bell Labs) ในปี ค.ศ.1972 โดยได้แนวคิดมาจากภาษาBCPL พัฒนาขึ้นโดย มาร์ติน ริชาร์ด(Martin Richards) และภาษา B ที่เขียนขึ้นโดย เคน ทอมพ์สัน(KenThompson) เพื่อนามาพัฒนาต่อจนได้ภาษาใหม่ที่มี ประสิทธิภาพการทางานสูง หลังจากนั้นในปี ค.ศ.1978 ภาษาซีจึงได้รับการเผยแพร่อย่างเป็นทางการ โดยเคอร์นิกแฮน(Kernighan) และเดนนิส ริทชี่ เป็นภาษาที่เก่าแก่ถือกาเนิดมายาวนาน โดยแต่เดิมนั้น ภาษาซี ถูกพัฒนาขึ้นเพื่อให้เป็นภาษาสาหรับการสร้างระบบปฏิบัติการยูนิกซ์ เนื่องจากในขณะนั้น ระบบปฏิบัติการยูนิกซ์เขียนด้วยภาษาแอสเซมบลี(Assembly) ซึ่งเป็นภาษาที่ยึดติดกับฮาร์ดแวร์ของ เครื่อง ดังนั้นการที่จะย้ายระบบปฏิบัติการไปใช้กับเครื่องอื่นจึงเป็นเรื่องที่เป็นไปไม่ได้เลย ซึ่งนับเป็น ข้อเสียใหญ่ของภาษาแอสเซมบลีดังนั้นภาษาซีซึ่งเป็นภาษาที่ไม่ยึดติดกับฮาร์ดแวร์จึงถูกพัฒนาขึ้นมา ในปัจจุบันภาษาซีไม่ได้จากัดอยู่เพียงแค่งานสร้างระบบปฏิบัติการเท่านั้นแต่สามารถนาไปใช้ สร้างโปรแกรมเพื่องานในทุกประเภท เช่น งานเกี่ยวกับการคานวณ ควบคุมการทางานของอุปกรณ์/ ฮาร์ดแวร์ชนิดต่าง ๆ การจัดการฐานข้อมูลหรือสร้างโปรแกรมสาหรับจัดพิมพ์เอกสารเป็นต้น จุดกาเนิด ของภาษาซีนั้น เกิดมาจากUNIX ผู้ออกแบบภาษา UNIX ต้องการให้ OS ของตัวเอง สามารถใช้งานได้บน เครื่องต่างๆ กัน แต่การที่จะต้องImplement UNIX โดยใช้ภาษาAssembly ของแต่ละเครื่อง เป็นสิ่งที่ ยุ่งยากเกินไป ผู้ออกแบบUNIX จึงสร้างภาษากลางภาษาหนึ่ง ซึ่งUNIX ทั้งตัวเขียนจากภาษาดังกล่าว ดังนั้นเมื่อต้องการ ให้UNIX ใช้ งานได้บนเครื่องใด ก็ให้สร้างคอมไพเลอร์ของภาษากลางบนเครื่องนั้น ก่อน คอมไพเลอร์จะแปล โปรแกรมให้เป็นภาษาเครื่องทาให้ลดความซับซ้อนลงมาก ภาษากลาง ดังกล่าวก็คือภาษาซีนั่นเอง ประวัติภาษาซี
  • 2. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 2 เอกสารประกอบการสอน ภาษาซี โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยโปรแกรมย่อย หรือเรียกว่าฟังก์ชัน (function) อย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชันmain( ) ซึ่งมีรูปแบบดังนี้ ฟังก์ชัน main( ) ประกอบด้วย 3 ส่วนหลัก คือ 1) ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูลvoid ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ( และ ) ตามลาดับ 2) ส่วนการประกาศตัวแปร ใช้สาหรับประกาศตัวแปรชนิดต่าง ๆ เพื่อเก็บข้อมูลระหว่างการ ประมวลผล 3) ส่วนคาสั่ง ประกอบด้วยคาสั่งที่เกี่ยวข้องกับการรับเข้า การแสดงผลข้อมูลและคาสั่งประมวลผลอื่น ๆ ส่วนประกาศตัวแปรและส่วนคาสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย{ และ } เสมอ ทั้งสอง ส่วนนี้ใช้สาหรับนิยามการทางานของฟังก์ชันmain() หรือในที่นี้เป็นการนิยามการทางานของโปรแกรม นั่นเอง และคาสั่งทุกคาสั่งในภาษาซีจะต้องปิดท้ายด้วยเครื่องหมาย; เสมอ ขั้นตอนการทางานของภาษาซี main() { //ส่วนหัวของฟังก์ชัน การประกาศตัวแปรท้องถิ่น; // ส่วนการประกาศตัวแปร คาสั่งต่าง ๆ ; // ส่วนคาสั่ง } #include <stdio.h> #include <conio.h> main( ) { int a; printf(“Computer”); getch( ); }  ส่วนหัว  ส่วนประกาศตัวแปร ส่วนคาสั่ง ขั้นที่ 1 เขียนคาสั่ง .C ขั้นที่ 2 คอมไพล์และลิงค์ .OBJ ขั้นที่ 3 นาไปใช้งาน .EXE โครงสร้างพื้นฐานของโปรแกรม ภาษาซี
  • 3. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 3 เอกสารประกอบการสอน ภาษาซี ขั้นตอนที่1 เขียนรายการคาสั่งของโปรแกรม(Write Source Code File) เป็นการเขียนคาสั่งต่างๆ ของภาษาซีเพื่อดาเนินการกับข้อมูลโดยที่คาสั่งดังกล่าวนั้นอาจจะเป็น คาสั่งเพื่อกาหนดค่าให้กับข้อมูลเปรียบเทียบค่าของข้อมูลรับข้อมูลเข้าแสดงผลข้อมูลและอื่นๆ โดยที่คาสั่ง ต่างๆ จะถูกบันทึกเก็บไว้ในไฟล์ข้อมูลที่มีนามสกุลเป็น .C ขั้นตอนที่2 คอมไพล์และลิงค์รหัสโปรแกรม(Compile and Link) เป็นขั้นตอนของการนาคาสั่งในรหัสโปแกรมที่เขียนด้วยภาษาซีมาแปลให้เป็นภาษาที่เครื่อง คอมพิวเตอร์เข้าใจโดยแบ่งการทางานเป็น2 ส่วนคือ คอมไพล์(Compile) คือ การนารหัสโปรแกรมที่เขียนด้วยภาษาซีมาให้ตัวแปรภาษา(Compiler) ทา การตรวจสอบโดยตัวแปรภาษาจะตรวจสอบคาสั่งต่างๆ ที่เขียนว่าถูกต้องตามหลักไวยากรณ์ของภาษาซี หรือไม่ ถ้าพบข้อผิดพลาดจะต้องแก้ไขให้ถูกต้องแล้วคอมไพล์ใหม่จนกว่าจะถูกต้องไฟล์ที่คอมไพล์ผ่าน ตัวแปรภาษาจะทาการสร้างให้เป็นObject file ซึ่งมีนามสกุล.OBJ ลิงค์(Link) คือ การนา Object file ที่ได้จากการคอมไพล์ของภาษาซีมาทาการเชื่อมโยงเข้าด้วยกัน ด้วยตัวเชื่อมโยงของภาษาซี(Linker) ซึ่งผลจากการเชื่อมโยงนี้ตัวเชื่อมโยงจะสร้างเป็นExecution file ที่มี นามสกุล.EXE ซึ่งเป็นไฟล์ที่จะนาไปใช้งานนั่นเอง ขั้นตอนที่3 การนาโปรแกรมไปใช้งาน(Execte Program) เป็นขั้นตอนของการนาExecute file ที่ได้จากการคอมไพล์โปรแกรมไปใช้งาน (กิติชัย ชีวาสุขถาวร. 2550 : 14) ขั้นตอนการเขียนโปรแกรมภาษาซี
  • 4. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 4 เอกสารประกอบการสอน ภาษาซี พื้นที่สาหรับการพิมพ์รหัส โปรแกรม
  • 5. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 5 เอกสารประกอบการสอน ภาษาซี โปรแกรมภาษาซีอย่างง่าย ตัวอย่าง 1.1 โปรแกรมภาษาซีที่สั้นที่สุด การแสดงผลลัพธ์เบื้องต้น ตัวอย่างที่ 1.2 โปรแกรมพิมพ์ข้อความออกทางจอภาพ ตัวอย่างที่ 1.3 โปรแกรมพิมพ์หัวรายงาน ตัวอย่างที่ 1.4 โปรแกรมพิมพ์จานวนเต็ม /* 1 */ //Program : First.c /* 2 */ // แสดงการใช้ฟังก์ชัน main() ในโปรแกรม /* 3 */ /* 4 */ main(){ /* 5 */ } /*1*/ //Program : Output1.c /*2*/ #include <stdio.h> /*3*/ #include <conio.h> /*4*/ int main(){ /*5*/ printf(“The first output from C.n”); /*6*/ getch(); /*7*/ return 0; /*8*/ } / * 1 */ //Program : Output2.c / * 2 */ #include <stdio.h> / * 3 */ #include <conio.h> / * 4 */ int main(){ /* 5*/ printf(“n--< Payroll Report >--”); /* 6*/ printf(“n 31/01/2009 n”); /* 7*/ getch(); /* 8*/ return 0; /*9*/ } / * 1 */ //Program : Output3.c / * 2 */ #include <stdio.h> / * 3 */ #include <conio.h> / * 4 */ int main(){ /* 5*/ printf(“nFirst value is %d.”,5); /* 6*/ printf(“nSecond value is %d.”,7); /* 7*/ getch(); /* 8*/ return 0; /*9*/ }
  • 6. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 6 เอกสารประกอบการสอน ภาษาซี printf (“format”,variable); ตัวอย่างที่ 1.5 โปรแกรมพิมพ์จานวนเต็มหลายค่าในบรรทัดเดียวกัน การแสดงผลข้อมูลออกทางจอภาพ ในภาษาC ใช้คาสั่งprintf คาสั่ง printf ถือได้ว่าเป็นคาสั่ง พื้นฐานที่สุดในการแสดงผลข้อมูลทุกชนิดออกทางหน้าจอ ไม่ว่าจะเป็น จานวนเต็ม (int) ทศนิยม (float) ข้อความ (string) หรืออักขระ(char) นอกจากนี้คาสั่งยังมีความยืดหยุ่นสูง โดยเราสามารถกาหนดหรือ จัดรูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้ รูปแบบคาสั่งprintf formatข้อมูลที่ต้องการแสดงผลออกทางหน้าจอ โดยข้อมูลนี้ต้องเขียนไว้ในเครื่องหมาย" " ข้อมูลที่ สามารถแสดงผลได้มีอยู่ 2 ประเภท คือ ข้อความธรรมดา และค่าที่เก็บไว้ในตัวแปรซึ่งถ้าเป็นค่าที่เก็บไว้ ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของ ข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วยvariable ซึ่ง เป็นตัวแปรหรือนิพจน์ที่ต้องการนาค่าไปแสดงผลให้ตรงกับรหัสควบคุมรูปแบบที่กาหนดไว้ ตัวอย่างการใช้คาสั่งprintf แสดงผลข้อความธรรมดาออกทางหน้าจอ ดังนี้ printf(“Hello Program C”); แสดงข้อความ Hello Program C ออกทางจอภาพ printf(“I love UBU”); แสดงข้อความ I love UBU ออกทางจอภาพ /*1*/ //Program : Output4.c /*2*/ // พิมพ์จานวนเต็มหลายค่าในบรรทัดเดียวกัน /*3*/ /*4*/ #include <stdio.h> /*5*/ #include <conio.h> /*6*/ int main(){ /*7*/ printf(“nSum of %d and %d is %d.”,9,4,9+4); /*8*/ printf(“nDifference of %d and %d is %d.”,9,4,9-4); /*9*/ printf(“nMultiplication of %d by %d is %d.”,9,4,9*4); /*10*/ printf(“nDivision of %d by %d is %d.n”,9,4,9/4); /*11*/ getch(); /*12*/ return 0; /*13*/ } คาสั่งแสดงผลออกทางจอภาพ
  • 7. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 7 เอกสารประกอบการสอน ภาษาซี คาสั่ง printf() นอกจากจะใช้แสดงผลข้อความธรรมดาๆ แล้วยังสามารถจัดรูปแบบให้กับข้อความได้อีก ด้วย ซึ่งชื่อเต็มๆของ printf ก็คือ print formatted นั่นเอง อาร์กิวเมนต์ (Argrument) ของคาสั่งใดๆ คือสิ่งที่อยู่ระหว่าง ( และ ) ของคาสั่งนั้นๆ โดยอาร์กิวเมนต์อาจมีได้มากกว่าหนึ่งตัว ใช้ , (Comma) คั่นระหว่างอาร์กิวเมนต์แต่ละตัว คาสั่ง printf() ที่ผ่านๆมา มีเพียงอาร์กิวเมนต์เดียว นั่นคือข้อความที่ต้องการแสดงผลนั่นเอง แต่คาสั่ง printf() ในตัวอย่างด้านบนมีหลายอาร์กิวเมนต์เราจะทาความเข้าใจความหมายของมันกัน ถ้าสังเกตดี ๆ จะเห็นว่า ข้อความในคาสั่ง printf ด้านบน "2 + 2 = " แสดงผลออกมาตามปกติ มีเพียง %d เท่านั้น ที่ถูกเปลี่ยนไปเป็น 4 แทน คาสั่ง printf จะนาอาร์กิวเมนต์ด้านหลัง มาแทนที่ %d ในอาร์กิวเมนต์ แรกตามลาดับ ทั้งนี้ ต้องใช้ให้ถูกประเภทด้วย ซึ่ง %d ใช้สาหรับ เลขจานวนเต็ม (Integer) ฐานสิบ หาก เป็นเลขทศนิยมหรือเลขจานวนจริง (Floating number) ต้องใช้ %f แทน ซึ่งประเภทต่างๆ ดูได้ตามตาราง ข้างล่างนี้ Code Format Example %c ตัวอักษร หรือ อักขระ 1 ตัว a %d เลขจานวนเต็มฐานสิบ 475 %e สัญกรทางวิทยาศาสตร์ (scientific notation) ใช้ตัว e 4.7523e+2 %E สัญกรทางวิทยาศาสตร์ (scientific notation) ใช้ตัว E 4.7523E+2 %f เลขทศนิยม หรือจานวนจริง 475.23 %g เป็น %e หรือ %f ตามความเหมาะสม 475.23 %G เป็น %E หรือ %f ตามความเหมาะสม 475.23 %o เลขจานวนเต็มฐานแปด 653 %x เลขจานวนเต็มฐานสิบหก ใช้ตัวอักษรตัวเล็ก 1ab %X เลขจานวนเต็มฐานสิบหก ใช้ตัวอักษรตัวใหญ่ 1AB %s ข้อความ หรือสายอักขระ (ตัวอักษรหลายตัวเรียงต่อกัน) ABCD %u เลขจานวนเต็มบวก และศูนย์ (Unsigned integer) 385 %% เครื่องหมาย '%' printf("2 + 2 = %d", 4); printf("%d + %d = %d", 2, 3, 5); 2 + 2 = 4 2 + 3 = 5 โค้ด ผลลัพธ์
  • 8. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 8 เอกสารประกอบการสอน ภาษาซี Text Formatting #2 ผลลัพธ์ Characters: a Decimals: 1977 6500000000 Preceding with blanks: 1977 Preceding with zeros: 0001977 Base number: 427 1ab 653 Floats: 3.14 +3e+00 3.141600E+00 123 in this text is a String not a number ข้อควรจา ตัวอักษรหรืออักขระ1 ตัว (Character) ในภาษาC เราจะใช้เครื่องหมาย ' (Single qoute) คร่อม ชุดตัวอักษร หรือสายอักขระ (String) ในภาษาC เราจะใช้เครื่องหมาย "(Double qoute) คร่อม ตัวเลข สามารถใช้ได้เลยไม่ต้องมีตัวคร่อม เพิ่มเติม %7d หมายความว่า แสดงเลขฐานสิบโดยมีความกว้างอย่างน้อย7 ตัวอักษร หากเลขนั้นมีจานวนหลักน้อยกว่า7 หลัก โปรแกรมจะใส่ช่องว่างด้านหน้าเลขนั้นจนครบ7 ตัว %07d หมายความว่า แสดงเลขฐานสิบโดยมีจานวนหลักอย่างน้อย7 หลัก หากเลขนั้นมีจานวนหลักน้อยกว่า7 หลัก โปรแกรมจะใส่เลขศูนย์ด้านหน้าเลขนั้นจบครบ7 หลัก %+d หมายความว่า ปกติแล้วเลขจานวนบวกจะไม่มีเครื่องหมายนาหน้า ใช้โค๊ดนี้เพื่อสั่งให้แสดง %.2f หมายความว่า แสดงเลขจานวนจริง โดยแสดงตาแหน่งทศนิยมเพียง2 หลัก หลักการด้านบน สามารถใช้พร้อมกันได้ด้วยเช่น %07.3f %+3d เป็นต้น printf ("Characters: %cn", 'a'); printf ("Decimals: %d %dn", 1977, 6500000000); printf ("Preceding with blanks: %7d n", 1977); printf ("Preceding with zeros: %07d n", 1977); printf ("Base number: %d %x %on", 427, 427, 427); printf ("Floats: %4.2f %+.0e %E n", 3.1416, 3.1416, 3.1416); printf ("%s n", "123 in this text is a String not a number");
  • 9. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 9 เอกสารประกอบการสอน ภาษาซี แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็นระเบียบมากขึ้น อย่างเช่นขึ้นบรรทัดใหม่ หลัง แสดงข้อความหรือเว้นระยะแท็บระหว่างข้อความโดย ใช้อักขระควบคุมการแสดงผลร่วมกับคาสั่งprintf อักขระควบคุมการ แสดงผล ความหมาย n ขึ้นบรรทัดใหม่ (new line) t เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร) หรือ แท็บแนวนอน (horizontal tab) r กาหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด (carriage return) f เว้นช่องว่างเป็นระยะ 1 หน้าจอ หรือ ขึ้นหน้าใหม่ (form feed) b ถอยหลัง 1 ช่องตัวอักษร(Backspace) พิมพ์เครื่องหมาย (Literal backslash) " พิมพ์เครื่องหมาย " (Double quote) ' พิมพ์เครื่องหมาย ' (Single quote) a ส่งเสียง Alert 1ครั้ง (bell) v แท็บแนวตั้ง (Vertical tab) ? พิมพ์เครื่องหมาย ? Question mark (used toescape trigraphs) nnn Character with octal value nnn xhh Character with hexadecimal value hh การนาอักขระควบคุมการแสดงผลมาใช้ เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย” ” ดังตัวอย่าง printf("Hello ... n"); แสดงข้อความ Hello ... แล้วขึ้นบรรทัดใหม่ printf("Hello...nKanchanaburin"); แสดงข้อความ Hello ...แล้วขึ้นบรรทัดใหม่พร้อมกับแสดง ข้อความ Kanchanaburi จากนั้นขึ้นบรรทัดใหม่อีกครั้ง printf("Num1 = %dtNum2 = %fn",x,z); แสดงข้อความ Num1=45 ตามด้วยการเว้น ช่องว่าง 1 แท็บ แล้วต่อด้วยข้อความNum2 = 20.153
  • 10. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 10 เอกสารประกอบการสอน ภาษาซี Comment บางครั้ง เราอาจต้องการเขียนข้อความอธิบายการทางาน หรือคาสั่งต่างๆ (Statement) ของ โปรแกรมเพื่อให้คนอื่น หรือแม้แต่ตัวเราเองซึ่งมาอ่านในภายหลัง สามารถเข้าใจได้ง่ายและรวดเร็วขึ้น โดยข้อความเหล่านี้ เราไม่ต้องการให้คอมพิวเตอร์ประมวลผล จะทาอย่างไร? เราเรียก ข้อความที่ไม่ต้องการให้คอมพิวเตอร์ประมวลผลนี้ว่า คอมเม้นท์ (Comment) มีอยู่สองแบบ 1. คอมเม้นท์แบบบรรทัดเดียวจบ (Single line comment) ข้อความที่ตามหลังเครื่องหมาย // ในบรรทัดนั้นทั้งบรรทัดจะไม่ถูกประมวลผล คอมพิวเตอร์จะเริ่มประมวลผลโค๊ดใหม่ในบรรทัดถัดไป 2. คอมเม้นท์แบบหลายบรรทัด (Multiple line comment) เริ่มต้นด้วยเครื่องหมาย /* และจบด้วยเครื่องหมาย */ ข้อความที่อยู่ระหว่างเครื่องหมายทั้งสองนี้ จะถือว่าเป็นComment ทั้งหมด // this is a comment and will not be shown in output. printf( "This isn't a comment" ); // this is a single line comment /* This is a multiple line comment. Comment #1 Comment #2 */ โค้ด This isn't a comment ผลลัพธ์
  • 11. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 11 เอกสารประกอบการสอน ภาษาซี คาชี้แจง ปฏิบัติกิจกรรมตามขั้นตอนการปฏิบัติงาน 1. ให้นักเรียนเปิดเครื่องคอมพิวเตอร์แล้วเข้าโปรแกรมภาษาซี 2. คลิก 3. คลิก 4. คลิก 5. เมื่อเปิดหน้าจอโปรแกรมภาษาซีแล้วให้คลิกเมนู File  New  Source file 6. พิมพ์ชุดคาสั่งของโปรแกรมต่อไปนี้ 7. เมื่อพิมพ์ชุดคาสั่งเสร็จ บันทึกข้อมูลชื่อwork1 โดยคลิกFile  Save  ตกลง 8. กดปุ่ม ctrl + F9 เพื่อการคอมไพล์ 9. กดปุ่ม ctrl + F10 เพื่อการรันโปรแกรม ใบงานที่ 1.1 #include <stdio.h> #include <conio.h> int main ( ) { printf(" *n"); printf(" ****n"); printf(" *n"); printf(" ****n"); getch( ); return 0; }
  • 12. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 12 เอกสารประกอบการสอน ภาษาซี ใบงานที่ 1.2 คาสั่งแสดงผลลัพธ์ 1 1. ให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลข้อความ (ตามที่ผู้เรียนกาหนด) จานวน 3 บรรทัดบนจอภาพ บันทึกโปรแกรมในชื่อ MyFirst.c จากนั้นให้คอมไพล์ รันโปรแกรมและสังเกตผลลัพธ์ ข้อความที่ต้องการให้แสดงผลคือ 1. ............................................................................................................................................................. 2. .............................................................................................................................................................. 3................................................................................................................................................................ โปรแกรม .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ผลลัพธ์ .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ..................................................................................................................................................................
  • 13. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 13 เอกสารประกอบการสอน ภาษาซี 2. ให้นักเรียนเขียนคาสั่งที่ได้จากการแก้ไขโปรแกรม MyFirst.c เพื่อให้ข้อความในผลลัพธ์ทั้งบรรทัดที่ สองและบรรทัดที่สามเว้นห่างจากบรรทัดก่อนหน้า 2 บรรทัด โดยใช้วิธีการที่แตกต่างกัน 2 วิธี วิธีที่ 1 .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. วิธีที่ 2 .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 3. ให้นักเรียนเขียนข้อความระบุความผิดพลาด (error message) ที่เกิดขึ้นจากการใช้รูปแบบคาสั่งที่ ไม่ถูกต้องแต่ละอย่างดังต่อไปนี้ แนะนา ให้นักเรียนแก้ไขโปรแกรมMyFirst.c เพื่อจงใจให้เกิดข้อผิดพลาดด้านล่าง แล้วสังเกต ข้อความระบุ ข้อผิดพลาดจากการคอมไพล์โปรแกรม 3.1 ไม่ใส่เครื่องหมาย } .................................................................................................................................................................. 3.2 ไม่ใส่เครื่องหมาย () หลังmain .................................................................................................................................................................. 3.3 ไม่ใส่เครื่องหมาย ; ต่อท้ายคาสั่งใดคาสั่งหนึ่ง .................................................................................................................................................................. 3.4 ใส่เครื่องหมาย ; ต่อท้ายเครื่องหมาย () หลังmain .................................................................................................................................................................. 3.5 ไม่ใส่เครื่องหมาย “ ก่อนหรือหลังข้อความในคาสั่งprintf () ..................................................................................................................................................................
  • 14. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 14 เอกสารประกอบการสอน ภาษาซี ใบงานที่ 1.3 คาสั่งแสดงผลลัพธ์ 2 1. ให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลลัพธ์เป็นรูปสามเหลี่ยมที่มีความสูง 8 แถว ดังรูป * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * โปรแกรม .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ..................................................................................................................................................................
  • 15. โรงเรียนวิสุทธรังษี จังหวัดกาญจนบุรี หน้า 15 เอกสารประกอบการสอน ภาษาซี 2. ให้นักเรียนเขียนคาสั่งเพื่อพิมพ์ผลลัพธ์จากนิพจน์ต่อไปนี้ 2.1 28 * 42 .................................................................................................................................................................. .................................................................................................................................................................. 2.2 65032 / 98 .................................................................................................................................................................. .................................................................................................................................................................. 2.3 29541 + 35826 – 47 .................................................................................................................................................................. .................................................................................................................................................................. 2.4 459 * 25 – 18 + 3 .................................................................................................................................................................. ..................................................................................................................................................................