หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
1
เรื่องที่ 2 ชนิดข้อมูล ตัวแปร และค่าคงที่
ชนิดข้อมูล (Data Types)
ชนิดข้อมูลพื้นฐานมีด้วยกัน 5 ประเภทคือ
1. char (1 ไบต์)
2. int (2 ไบต์)
3. float (4 ไบต์)
4. double (8 ไบต์)
5. void (0 ไบต์)
ให้ทําความเข้าใจกับชนิดข้อมูลพื้นฐานในตารางที่ 2-1
ชนิดข้อมูล ความหมาย ไบต์ (bytes) พิสัย (range)
char อักษรหรืออักขระ 1 -128 ถึง 127
int จํานวนเต็ม 2 -32,768 ถึง 32,767
float จํานวนจริง (เลขทศนิยม) 4 3.4E + 38 (7 ตําแหน่ง)
double จํานวนจริงละเอียด 2 เท่า 8 1.7E + 308 (15 ตําแหน่ง)
void ไม่ให้ค่าใด ๆ 0 ไม่ให้ค่า
ตารางที่ 2-1 : ชนิดข้อมูลพื้นฐานของ C
ชนิดข้อมูลในตารางที่ 2-1 ที่ได้กล่าวแล้ว ตัวแปรจะมี 4 ประเภทเท่านั้นที่สามารถเก็บข้อมูลเหล่านี้
เพื่อความคล่องตัว และสามารถเก็บข้อมูลนอกเหนือจากนี้ได้ในภาษาซีจึงได้สร้างตัวแปรชนิด
ข้อมูลแบบ คิดเครื่องหมาย (signed) ไม่คิดเครื่องหมาย (unsigned), ยาว (long) และสั้น (short)
เพิ่มเติมขึ้นมา และยังนําไปประยุกต์ใช้กับชนิดข้อมูลพื้นฐานได้ดังในตารางที่ 2-2
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
2
ชนิดข้อมูล ความหมาย ไบต์ (bytes) พิสัย (range)
char คิดเครื่องหมาย 1 -128 ถึง 127
int คิดเครื่องหมาย 2 -32,768 ถึง 32,767
short คิดเครื่องหมาย 2 -32,768 ถึง 32,767
short int คิดเครื่องหมาย 2 -32,768 ถึง 32,767
long คิดเครื่องหมาย 4 -2,147,483,648 ถึง
2,147,483,647
long int คิดเครื่องหมาย 4 -2,147,483,648 ถึง
2,147,483,647
unsigned char ไม่คิดเครื่องหมาย 1 0 ถึง 255
unsigned ไม่คิดเครื่องหมาย 2 0 ถึง 65,535
unsigned int ไม่คิดเครื่องหมาย 2 0 ถึง 65,535
unsigned short ไม่คิดเครื่องหมาย 2 0 ถึง 65,535
unsigned long ไม่คิดเครื่องหมาย 4 0 ถึง 4,294,967,295
signed char คิดเครื่องหมาย 1 -128 ถึง 127
signed คิดเครื่องหมาย 2 -32,768 ถึง 32,767
signed int คิดเครื่องหมาย 2 -32,768 ถึง 32,767
signed short คิดเครื่องหมาย 2 -32,768 ถึง 32,767
signed long คิดเครื่องหมาย 4 -2,147,483,648 ถึง
2,147,483,647
ตารางที่ 2-2 : ชนิดของตัวแปรใน C
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
3
ตัวแปร (Variables)
ตัวแปร (Variables) คือส่วนที่ว่างในหน่วยความจําของคอมพิวเตอร์ใช้เก็บข้อมูลชนิดต่าง ๆ เช่น
จํานวน (numbers) อักขระ (characters) และสตริงหรือข้อความ (string) เป็นต้น
กฎในการตั้งชื่อ มีดังนี้
1. ประกอบด้วยตัวอักษร ตัวอักษรปนตัวเลข หรือปนเครื่องหมาย underscore ( _ ) ได้
2. ตัวแรกจะต้องเป็นตัวอักษรหรือเครื่องหมาย underscore ( _ ) เท่านั้น
3. สามารถใช้underscore เป็นส่วนของชื่อ ที่อยู่ระหว่างตัวอักษรหรือตัวเลขได้
4. มีความยาวได้ตั้งแต่ 1 ตัวอักขระ ไปจนถึง 32 ตัวอักขระ (เฉพาะเทอร์โบซีแต่บาง
เครื่องอาจได้น้อยหรือมากกกว่านี้ )
5. ห้ามตั้งชื่อซํ้ากับคําสงวน (Reserved word)
6. ชื่อที่ตั้งขึ้นแล้วเขียนเป็นตัวเล็ก ตัวใหญ่หรือตัวใหญ่ปนตัวเล็กจะถือว่าเป็นคนละชื่อ
กันหมด เช่น count COUNT Count จะถือเป็น 3 ชื่อตัวแปรที่แตกต่างกัน
ชื่อตัวแปรที่ถูก ชื่อตัวแปรที่ผิด
Count 1count
Num12 num !
m-mum m…mun
ข้อสังเกต
การกําหนดชนิดของตัวแปร มีสิ่งที่ควรพิจารณาอยู่ 2 ประการคือ ตัวแปรนั้น
จะต้องสามารถรับค่าได้ทุกค่าโดยไม่เกินขอบเขตของข้อมูลชนิดนั้น และตัว
แปรจะต้องไม่ใช่หน่วยความจํามากเกินความจําเป็น เช่น ถ้าข้อมูลไม่เกิน
ขอบเขตของ int ก็ไม่ควรกําหนดตัวแปรให้เป็น float
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
4
ค่าคงที่ (Constant)
ค่าคงที่ (Constant) คือค่าที่เปลี่ยนแปลงไม่ได้ขณะรันโปรแกรม การกําหนดค่าคงที่ก็เพื่อไม่
ต้องการหรือป้องกันไม่ให้โปรแกรมเปลี่ยนแปลงค่านั้น
รูปแบบการกําหนดคอนสแตนต์เป็นดังนี้
ตัวอย่าง const float Pi = 3.1415;
หมายความว่า Pi เป็นคอนสแตนต์ชนิด float ซึ่งมีค่าเท่ากับ 3.1415
1. คอนสแตนต์ชนิดอินทีเจอร์
คอนสแตนต์ชนิดอินทีเจอร์ (integer constant) เป็นคอนสแตนต์ชนิดตัวเลขซึ่ง
อาจจะเป็นค่าบวก 0 หรือ ค่าลบ คอนสแตนต์ชนิดนี้มี 3 ประเภท คือ คอนสแตนต์อินทีเจอร์ฐาน
สิบ ฐานแปดและฐานสิบหก ซึ่งมีรายละเอียดดังนี้
1.1 คอนสแตนต์อินทีเจอร์ฐานสิบ (decimal integer constant) หมายถึงชุด
ของเลขฐานสิบ ( 0 ถึง 9 ) ซึ่งเลขตัวแรกไม่เป็น 0 ดังตัวอย่างต่อไปนี้
const int price = 1000;
const int WeekDay = 7;
1.2 คอนสแตนต์อินทีเจอร์ฐานแปด (octal integer constant) หมายถึงชุดของ
เลขฐานแปด ( 0 ถึง 7 ) ซึ่งเลขตัวแรกเป็น 0 ดังตัวอย่างต่อไปนี้
const int Oct1 = 01000;
const int Oct2 =03 7;
1.3 คอนสแตนต์อินทีเจอร์ฐานสิบหก (hexadecimal integer constant)
หมายถึงชุดของเลขฐานสิบหก ( 0 ถึง 9 และ A ถึง F) ซึ่งนําหน้าด้วย 0X หรือ 0x ดังตัวอย่าง
ต่อไปนี้
const int Hex1 = 0xF78;
const int Hex2 =0xFF;
const ชนิดของข้อมูล ไอเด็นติฟายเออร์ = ค่า;
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
5
2. คอนสแตนต์ชนิด float
คอนสแตนต์ชนิด float (floating point constant) เป็นคอนสแตนต์ชนิดตัว
เลขที่มีทศนิยม คอนสแตนต์ชนิดนี้มี 2 รูปแบบดังนี้
2.1 เป็นชุดของตัวเลขที่ประกอบด้วยเลข 0 ถึง 9 และจุดทศนิยม ดังตัวอย่าง
ต่อไปนี้
const float Pi = 3.1415;
const float InterestRate =0.65;
2.1 เป็นเลขยกกําลังซึ่งมีส่วนประกอบ 2 ส่วนคือ ส่วนหนึ่งเป็นอินทีเจอร์หรือ
float อีกส่วนหนึ่งเป็นตัวคูณสิบยกกําลังซึ่งแสดงด้วยอักษร E (หรือ e) ตามด้วยเลขยกกําลังซึ่ง
เป็นอินทีเจอร์บวกหรือลบดังตัวอย่างต่อไปนี้
const float A = 1.0E2; // หมายถึง 1.0 * 102
ซึ่ง = 100.0
const float A = 1E+3; // หมายถึง 1 * 103
ซึ่ง = 1000.0
const float A = 1E-2; // หมายถึง 1 * 10 - 2
ซึ่ง = 0.01
3. คอนสแตนต์ชนิดอักษร
คอนสแตนต์ชนิดอักษร (character constant) เป็นคอนสแตนต์ที่
ประกอบด้วยอักษรหนึ่งตัวอยู่ภายในเครื่องหมาย ( ‘ ‘ ) ดังตัวอย่างต่อไปนี้
const char A = ‘a’;
const char B =’b’;
คอนสแตนต์ชนิดอักษรมีชนิดเป็น char ค่าของคอนสแตนต์จะเป็นตัวเลขซึ่งมีค่า
เท่ากับรหัส ASCII ของอักษรนั้น (ตาราง ASCII อยู่ที่ภาคผนวก ก.) เช่น ‘A’ = 65, ‘B’ = 66
คอนสแตนต์ชนิดอักษรอีกประเภทหนึ่งมีชื่อว่า เอสเคปซีเควนซ์ (escape
sequence) ซึ่งเป็นคอนสแตนต์ที่ประกอบด้วยเครื่องหมาย  และอักษรอยู่ภายในเครื่องหมาย
( ‘ ‘ ) เช่น ‘ n ’ , ‘ t ’ คอนสแตนต์ประเภทนี้มีจํานวนจํากัดและมีความหมายเฉพาะดังแสดงใน
ตารางที่ 2-3
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
6
เอสเคปซีเควนซ์ ชื่อ ความหมาย
a Alarm bell เตรียมพร้อม (เสียงระฆัง)
b Backspace เลื่อนกลับ
f Formfeed ขึ้นหน้าใหม่
n Newline ขึ้นบรรทัดใหม่
r Return เคอเซอร์กลับไปอยู่ที่ต้นบรรทัด
t Tab เว้นระยะในแนวระดับ
 Backslash การกดเครื่องหมาย 
’ Single quote การกดเครื่องหมาย 
” Double quote การกดเครื่องหมาย “
? Question mark การกดเครื่องหมาย ?
ตารางที่ 2-3 : แสดงคอนสแตนต์แบบต่าง ๆ
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
7
นิพจน์ และตัวดําเนินการ
นิพจน์ (Expression)
นิพจน์ (Expression) คือการนําตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้เครื่องหมายอย่างใด
อย่างหนึ่งเป็นตัวเชื่อมโดยมีกฎเกณฑ์ทั่ว ๆ ไปในการเขียนนิพจน์ของภาษา C มีดังนี้
1. เขียนตัวอักษรหลายตัวติดกันได้โดยไม่มีเครื่องหมายคั่น เช่น XY ถือเป็น 1 ตัวแปร
2. กรณีนิพจน์มีค่าของตัวแปรหรือค่าคงที่ต่างชนิดกันในนิพจน์เดียวกัน กลไกของภาษา
C จะเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็กให้เป็นชนิดของข้อมูลที่ใหญ่ขึ้น ดังนั้นจึง
ควรระวังในการตั้งตัวแปรเพื่อเก็บผลลัพธ์ที่ได้จากการดําเนินการของนิพจน์มีค่าของ
ตัวแปรหรือค่าคงที่ต่างชนิดกัน ซึ่งตัวแปรที่ตั้งขึ้นควรเป็นชนิดของข้อมูลที่ใหญ่ที่สุด
ในนิพจน์นั้น ดังตัวอย่าง
หากนิพจน์มี int กับ long กลไกของภาษา C จะเปลี่ยนชนิดของข้อมูลเป็น long
หากนิพจน์มีint กับ double กลไกของภาษา C จะเปลี่ยนชนิดของข้อมูลเป็น double
นิพจน์คณิตศาสตร์ นิพจน์ภาษา C
2X2
2*(X*X)
10X + 3XY + 10Y2
10*X-3*X*Y+10*Y*Y
ตารางที่ 3-1 : แสดงตัวอย่างของนิพจน์ในภาษา C
นิพจน์แบ่งออกเป็น
1. นิพจน์คณิตศาสตร์ (Arithmetic Expression)
หมายถึงการนําตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้เครื่องหมายคณิตศาตร์เป็น
ตัวเชื่อมผลที่ได้จากนิพจน์แบบนี้จะเป็นตัวเลข ดังตารางที่ 3-2
นิพจน์คณิตศาสตร์ในภาษา C
3X + 5Y 3*X + 5*Y
X2
- Y2
X*X - Y*Y
ตารางที่ 3-2 : แสดงนิพจน์คณิตศาสตร์
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
8
2. นิพจน์ตรรก (Logical Expression)
หมายถึง การนําตัวแปร ค่าคงที่ หรือนิพจน์ มาสัมพันธ์กันโดยใช้เครื่องหมาย
เปรียบเทียบและเครื่องหมายตรรกเป็นตัวเชื่อมผลที่ได้จะเป็นจริง หรือเท็จ คือจะให้ค่าเป็น 1 หรือ
0 ออกมาเป็นผลลัพธ์ซึ่งสามารถนําไปคํานวณต่อได้ดังตารางที่ 3-3
โจทย์ ถ้า I มีค่าเป็น 3 J มีค่าเป็น 5 A มีค่าเป็น 3 ถ้าเขียนนิพจน์ดังนี้
I = = J ผลลัพธ์ไม่จริง (0)
I = = A ผลลัพธ์จริง (1)
I > J*5 ผลลัพธ์ไม่จริง (0)
I+3 > J –2 && a*2 > 10 ผลลัพธ์ไม่จริง (0)
ตารางที่ 3-3 : แสดงนิพจน์ตรรก
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
9
ตัวดําเนินการ (Operator)
ตัวดําเนินการ (Operator) คือการใช้ในการกําหนดค่าให้ตัวแปร มีตัวดําเนินการ 3
ประเภทใหญ่ ๆ ดังนี้
1. ตัวดําเนินการเลขคณิต (arithmetic operators)
2. ตัวดําเนินการเปรียบเทียบและ (relational operators)
3. ตัวดําเนินการตรรกะ ( logical operators)
ตัวดําเนินการเลขคณิต (arithmetic operators)
เป็นตัวดําเนินการทางด้านคณิตศาสตร์ ได้แก่เครื่องหมายที่ใช้ในการบวก ลบ คูณ หาร
ตัวเลข และอื่น ๆ ดังในตารางที่ 3-4
ตัวดําเนินการ ความหมาย ตัวอย่าง
- การลบ X – Y
+ การบวก X + Y
* การคูณ X * Y
/ การหาร X / Y
% การหารจะเอาเฉพาะเศษไว้ 11%3 = 3 เศษ 2 ดังนั้น 2 เป็นผลลัพธ์
- - การลดค่าลงครั้งละ 1 X- -หรือ - -X เหมือนกับ X=X-1
+ + การเพิ่มค่าครั้งละ1 X+ +หรือ + +X เหมือนกับ X=X+1
ตารางที่ 3-4 : แสดงตัวดําเนินการของ C
นอกจากตัวดําเนินการบวก ลบ คูณ หาร ธรรมดาแล้ว ยังมีโมดูลัส (modulas) คือการหาร
เอาเฉพาะเศษดังในตารางที่ 3-4 และใน C มีวิธีการรวบรัดการใช้ตัวดําเนินการเลขคณิตดังนี้
รวมสัญลักษณ์ + และ = เข้าด้วยกันกลายเป็น +=
- และ = เข้าด้วยกันกลายเป็น -= ดังตารางที่ 3-5
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
10
ตัวอย่าง
. . .
y = x + a ++;
. . .
ขั้นตอนการประมวลผล
1. y = x + a
2. a = a + 1
. . .
y = x + ++ a;
. . .
ขั้นตอนการประมวลผล
1. a = a + 1
2. y = x + a
. . .
y += x ;
. . .
ขั้นตอนการประมวลผล
y = y + x
. . .
y += x ++ ;
. . .
ขั้นตอนการประมวลผล
1. y = y + x
2. x = x + 1
. . .
y -= 9 ;
. . .
ขั้นตอนการประมวลผล
y = y - 9
. . .
y *= 7 * x++ ;
. . .
ขั้นตอนการประมวลผล
1. y = y * 7 * x
2. x = x + 1
. . .
y /= x ;
. . .
ขั้นตอนการประมวลผล
y = y / x
. . .
y %= x ;
. . .
ขั้นตอนการประมวลผล
y = y % x
ตารางที่ 3-5 : แสดงตัวอย่างตัวดําเนินการของ C
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
11
ขั้นตอนการทํางานของตัวดําเนินการใน C
ในบางครั้งนิพจน์ประกอบด้วยตัวดําเนินการมากมาย ทําให้เกิดความยุ่งยากในการ
พิจารณาขั้นตอนการทํางานของตัวดําเนินการ จึงได้ตั้งกฏเกี่ยวกับลําดับการทํางานก่อนหลังของ
ตัวดําเนินการ (Operator) ดังตารางที่ 3-6
ตัวดําเนินการ ลําดับที่
( ) 1 (สูงสุด)
+ + - - unary 2
* / % 3
+ - 4
+= -= *= = /= %= 5 (ตํ่าสุด)
ตารางที่ 3-6 : แสดงลําดับการทํางานของตัวดําเนินการ
ตัวดําเนินการที่มีความสําคัญอยู่ในระดับเดียวกัน ให้ทํางานตามขั้นตอนจากซ้ายไปขวาเป็นหลัก
ต่อไปนี้ เป็นตัวอย่างพอสังเขป ดังตารางที่ 3- 7
ตัวอย่าง
5 + 6 * 2 ♣ ตัวดําเนินการ * อยู่ลําดับสูงกว่า + จึงต้อง
คูณเลขก่อนแล้วบวกเลข 5 ภายหลัง
2 * 3 – 14 / 7 + 5 ♣ ตัวดําเนินการ * และ / อยู่ลําดับเดียวกันให้
ทําจากซ้ายไปขวา คือ คูณเลข แล้วหารเลข
♣ ตัวดําเนินการ – และ + อยู่ในลําดับเดียวกัน
ทําจากซ้ายมือก่อนคือ ลบเลข แล้วจึงบวก
เลขในภายหลัง
ตารางที่ 3-7 : แสดงลําดับการทํางานของตัวดําเนินการ
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
12
ตัวดําเนินการเปรียบเทียบ (Relational operators)
หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ ผลการเปรียบเทียบจะให้ค่า
เป็น 1 และ เท็จจะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังตารางที่ 3-8
เครื่องหมาย ความหมาย ตัวอย่าง
> มากกว่า A > B (A มากกว่า B)
>= มากกว่าหรือเท่ากับ A >= B (A มากกว่าหรือเท่ากับ B)
< น้อยกว่า A < B (A น้อยกว่า B)
<= น้อยกว่าหรือเท่ากับ A <= B (A น้อยกว่าหรือเท่ากับ B)
== เท่ากับ A == B (A เท่ากับ B)
!= ไม่เท่ากับ A != B (A ไม่เท่ากับ B)
ตารางที่ 3-8 : แสดงตัวดําเนินการเปรียบเทียบ
เครื่องหมายตรรกะ (logical operators)
เครื่องหมายตรรกะมีจุดประสงค์ใช้ในการเปรียบเทียบเพื่อตัดสินใจซึ่งผลที่ได้จากการ
เปรียบเทียบจะได้ผลลัพธ์ 2 อย่าง คือ ถ้าได้ผลลัพธ์เป็นจริงจะมีค่าเป็น 1 และถ้าได้ผลลัพธ์เป็นเท็จ
จะมีค่า 0 เป็นเครื่องหมายตรรกะที่ใช้ในภาษา C มีดังนี้
คําสั่ง && (AND) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น
ดังนี้
X Y X && Y
0 0 0
0 1 0
1 0 0
1 1 1
คําสั่ง | | (OR) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น
ดังนี้
X Y X | | Y
0 0 0
0 1 1
1 0 1
1 1 1
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
13
คําสั่ง ! (NOT) เป็นการทํานิเสธซึ่งผลลัพธ์ที่ได้จะเป็นดังนี้
X ! X
0 1
1 0
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 14
คําสั่งรับ - แสดงผลและคําสั่งการทํางานแบบมีทางเลือก
ฟังก์ชันในการรับข้อมูลและแสดงผลข้อมูล (Input / Output Function)
1. printf( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลที่อยู่ในตัวแปร ค่าคงที่ นิพจน์
ออกมาทางจอภาพ
Argument list เป็นค่าตัวแปร ค่าคงที่ หรือนิพจน์ที่ต้องการนํามาแสดงผลถ้ามีมากกว่า 1 ค่า
จะแยกกันโดยใช้เครื่องหมายคอมม่า ( , )
Control จะต้องเขียนอยู่ภายใต้เครื่องหมาย “ “ ซึ่งสามารถเขียนได้2 ลักษณะคือ
1. เป็นข้อความที่ต้องการให้แสดงออกมา เช่น
print(“ Sum of X = “);
2. เป็นรหัสรูปแบบ (Format Code) ที่ใช้ในการแสดงผลซึ่งทุกรหัส
รูปแบบจะต้องอยู่ตามหลังเครื่องหมาย % รหัสรูปแบบ ข้อมูลที่นิยม
ใช้ได้แก่
รหัส ความหมาย
% c ใช้กับตัวแปรที่เก็บค่าที่เป็นตัวอักษรเพียงตัวเดียว
% s ใช้กับตัวแปรที่เก็บค่าที่เป็นข้อความที่เก็บในตัวแปรชุด
% d ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขจํานวนเต็ม
% u ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขจํานวนเต็มบวก
% f ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขทศนิยม
% e ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขทศนิยมในรูป e ยกกําลัง
% x ใช้กับตัวแปรที่เก็บค่าที่เป็นค่าเลขฐานสิบหก
% o ใช้กับตัวแปรที่เก็บค่าที่เป็นค่าเลขฐานแปด
% p ใช้กับตัวแปรที่เก็บค่าที่เป็นตัวชีตําแหน่ง (pointer)
รูปแบบ printf (control, argument list);
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 15
ตัวอย่าง แสดงการใช้คําสั่ง printf ที่มีข้อความที่เป็นคําอธิบายอยู่ในรูปคําสั่ง
void main( )
{ int sum = 3;
printf(“ The sum is %d ”,sum);
}
ผลลัพธ์
The sum is 3
ตัวอย่าง แสดงการใช้คําสั่ง printf รหัสรูปแบบ % d และ % u
void main( )
{ int num = -3, tot = 5;
printf(“ num = %d tot = %u ”,num, tot);
}
ผลลัพธ์
Num = -3 tot = 5
ตัวอย่าง แสดงการใช้คําสั่ง printf รหัสรูปแบบ % f และ % e โดยมีทศนิยม 2 ตําแหน่ง
void main( )
{ float num = 22.75;
printf(“ %.2f %.2e ”,num,num);
}
ผลลัพธ์
22.75 2.28e+01
5. ฟังก์ชัน putchar ( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลชนิดตัวอักขระ (char) ให้
เห็นบนหน้าจอภาพ
6. ฟังก์ชัน puts ( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลสตริงหรือข้อความ (string) ให้
เห็นบนหน้าจอภาพ
รูปแบบ putchar ( char );
รูปแบบ puts ( string );
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 16
4. ฟังก์ชัน scanf ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์(key board) เข้ามา
เก็บไว้ในตัวแปร
Argument list เป็นตัวแปรที่จะรับค่าจากแป้นพิมพ์มาเก็บไว้ถ้ามีมากกว่าหนึ่งค่า
จะต้องแยกกันด้วยเครื่องหมายคอมม่า ( , ) และตัวแปรทุกตัวที่ใช้
จะต้องนําหน้าด้วยเครื่องหมาย & ทุกตัว ยกเว้นตัวแปรชุด
Control เป็นรหัสรูปแบบที่ใช้ในการรับข้อมูลซึ่งจะต้องเขียนอยู่ภายใน
เครื่องหมาย “ “ และจะมีรหัสรูปแบบเหมือนกับรหัสรูปแบบที่ใช้
ในคําสั่ง printf
ตัวอย่าง แสดงการใช้คําสั่ง scanf
main( )
{ int num;
scanf( “ %d ” ,&num);
}
หมายความว่า เครื่องจะรอรับค่าที่เป็นจํานวน
เต็มหนึ่งจํานวนที่จะป้อนเข้ามาทางแป้นพิมพ์
มาเก็บไว้ในตัวแปร num
ตัวอย่าง แสดงการใช้คําสั่ง scanf
main( )
{ int num; char ch;
scanf(“ %d %c ” ,&num, &ch);
}
หมายความว่า เครื่องจะรอรับค่าที่เข้ามา 2 ค่า
คือค่าที่หนึ่งเป็นจํานวนเต็มหนึ่งจํานวน และ
ค่าที่สองเป็นอักขระหนึ่งตัวที่จะป้ อนเข้ามาที่
จะป้ อนเข้ามาทางแป้ นพิมพ์แล้วนําไปเก็บไว้
ในตัวแปร num และ ch ตามลําดับ
รูปแบบ scanf (control, argument list);
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 17
5. ฟังก์ชัน getchar ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์ทีละ 1 ตัวอักขระ
โดยต้องกด enter ทุกครังเมื่อสินสุดข้อมูล และข้อมูลที่ป้อนจะปรากฎให้เห็นบนหน้าจอภาพ
6. ฟังก์ชัน getch ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามา
ทางแป้นพิมพ์โดยเมื่อป้อนข้อมูลเสร็จไม่ต้องกดปุ่ม enter และข้อมูลที่ป้อนจะไม่ปรากฎบน
หน้าจอภาพ
7. ฟังก์ชัน getche ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามา
ทางแป้นพิมพ์โดยเมื่อป้อนข้อมูลเสร็จไม่ต้องกดปุ่ม enter และข้อมูลที่ป้อนจะปรากฎบน
หน้าจอภาพ
8. ฟังก์ชัน gets ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลสตริงหรือข้อความ (string) เข้ามา
ทางแป้นพิมพ์โดยต้องกด enter ทุกครังเมื่อสินสุดข้อมูล และข้อมูลที่ป้อนจะปรากฏให้เห็นบน
หน้าจอภาพ
ตัวอย่างโปรแกรม การใช้คําสั่งรับ - แสดงผล
#include <stdio.h>
void main()
{
int x_value = 9;
printf("x = %dn",x_value);
}
รูปแบบ char = getchar ( );
รูปแบบ char = getch ( );
รูปแบบ getche ( );
รูปแบบ gets ( string );
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 18
#include <stdio.h>
void main()
{
int x, y, sum;
x = 7; y = 2;
sum = x + y;
printf("Total = %dn",sum);
}
#include <stdio.h>
void main()
{
int x, y;
x = 7; y = 4;
--x; ++y;
printf("x = %dn",x);
printf("y = %dn",y);
}
#include <stdio.h>
void main()
{
int profits, employees;
profits = 9;
employees = 2 ;
printf("Each employee gets %f.", (float) profits/employees);
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 19
include <stdio.h>
void main()
{
char any_char;
printf("Please type a character: ");
scanf("c%",&any_char);
printf("Thank you, your character are %c",any_char);
}
#include <stdio.h>
void main(void)
{
printf("n****Using .1f****n");
printf("%.1f%.1f%.1fn", 4.0, 16.5, 589.3);
printf("%.1f%.1f%.1f", 400.0, 1600.5, 58900.3);
printf("nn****Using 8.1f****n");
printf("%8.1f%8.1f%8.1fn", 4.0, 16.5, 589.3);
printf("%8.1f%8.1f%8.1f", 400.0, 1600.5, 58900.3);
printf("nn**** Using -8.1f****n");
printf("%-8.1f%-8.1f%-8.1fn", 4.0, 16.5, 589.3);
printf("%-8.1f%-8.1f%-8.1f", 400.0, 1600.5, 58900.3);
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 20
#include <stdio.h>
void main(void)
{
printf("n");
printf("xC9xCDxBBn");
printf("xC8xCDxBCn");
}
#include <stdio.h>
#include <ctype.h>
void main()
{
char any_char;
printf("Please type a lowercase letter:");
scanf("%c", &any_char);
if(any_char >= 'a')
printf("In uppercase: %c n", toupper(any_char));
}
ตัวอย่างโปรแกรม การใช้คําสั่งรับ – แสดงผล ที่มา :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม ,
การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 21
คําสั่งการทํางานแบบมีทางเลือก
การทํางานแบบมีทางเลือก หมายถึง การกําหนดให้โปรแกรมทํางานอย่างใดอย่างหนึ่ง
เมื่อเงื่อนไขเป็นจริงและทํา (หรือไม่ทํา) งานอีกอย่างหนึ่งเมื่อเงื่อนไขเป็นเท็จ ตัวอย่างการเลือก
ทําที่อาจพบเห็นได้บ่อยเช่น
การเตือนให้เลือกบันทึกข้อความไว้ในดิสก์คือ
Save (Y/N) ถ้าเลือก Y จะบันทึกข้อมูลในดิสก์
ถ้าเลือก N จะไม่บันทึกข้อมูล
การเลือกทํามี 2 แบบคือการเลือกทําแบบ if และการเลือกทําแบบ switch
♦ คําสั่ง if (if statement)
♦ คําสั่ง switch (switch statement)
การเลือกทําแบบ if เริ่มด้วยการทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริง สเตตเมนต์ต่อจาก if
จะทํางาน ถ้าเงื่อนไขเป็นเท็จสเตตเมนต์ต่อจาก if จะไม่ทํางานรูปแบบของการเลือกทําแบบ if มี 3
รูปแบบคือ
1. การเลือกทําแบบ if ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี
การเลือกทําแบบ if
รูปแบบ if (condition) // if ที่มีสเตตเมนต์เดียว
statement - 1;
-- หรือ --
if (condition) // if หลายสเตตเมนต์
{ statement - 1;
statement - 2;
…
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 22
2. ทําแบบ if – else ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี
รูปแบบ if (condition) // if – else ที่มีสเตตเมนต์
เดียว
statement - 1;
else
statement - 2;
-- หรือ --
if (condition) // if – else หลายสเตตเมนต์
{ statement - 1;
…
}
else
{ statement - 2;
…
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 23
3. แบบ if – else – if ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี
รูปแบบ if (condition) // if – else - if ที่มีสเตตเมนต์เดียว
statement - 1;
else if (condition)
statement - 2;
…
else
statement - n;
-- หรือ --
if (condition) // if – else - if หลายสเตตเมนต์
{ statement - 1;
…
}
else if (condition)
{ statement - 2;
…
}
…
else
{ statement - n;
…
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 24
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if
#include <stdio.h>
#include <ctype.h>
void main()
{
char any_char;
printf("Please type a lowercase letter:");
scanf("%c",&any_char);
if(any_char < 'a')
printf("Sorry, I can not capitalize that.n");
else
printf("Thank you. In uppercase : %c.",toupper (any_char));
}
#include <stdio.h>
#include <ctype.h>
void main()
{
char any_char ;
printf("Please type a lowercase letter:");
scanf("%c",&any_char);
if(any_char< 'a')
printf("Sorry,I can not capitalize that./n");
else if (any_char>'z')
printf("Sory, I can not capitalize that./n");
else
printf("Thank you. In uppercase: %c n", toupper (any_char));
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 25
#include <stdio.h> // for printf()
#include <conio.h> // for getche()
void main(void)
{
int x, y;
clrscr();
printf("n"); // new line
for (y=1; y<24; y++) // step down the screen
{
for (x=1; x<24; x++) // step across the screen
if ( x == y ) // NW-SE diagonal?
printf("xDB"); // print solid color
else
if ( x == 24 - y ) // SW-NE diagonal?
printf("xDB"); // print solid color
else
printf("xB0"); // print gray
printf("n"); // next line
delay(200);
}
getche();
}
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if ที่มา :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม ,
การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 26
คําสั่ง switch ใช้เพื่อเลือกทําคําสั่งใดคําสั่งหนึ่งตามต้องการ โดยมีทางเลือกให้ทําคําสั่ง
หลาย ๆ ทาง ค่าตัวแปรจะทําหน้าที่ควบคุมคําสั่ง switch คําสั่ง switch และคําสั่ง if – else – if
เป็นคําสั่งเลือกทํา เช่นเดียวกัน แต่ต่างกันที่รูปแบบเงื่อนไข ต่อไปนีเป็นรูปแบบของการเลือกทํา
แบบ switch
การเลือกทําแบบ switch มีวิธีเลือกทําโดยการเปรียบเทียบค่าของ switch แวเรียเบิล กับ
ค่าของคอนสแตนต์ในแต่ละ case ถ้ามีค่าเท่ากันสเตตเมนต์ของ case นันจะทํางาน และถ้าค่าของ
switch แวเรียเบิลไม่เท่ากับค่าของคอนสแตนต์ใน case ใด ๆ เลย สเตตเมนต์ของ default จะ
ทํางาน
การเลือกทําแบบ switch
รูปแบบ switch ( แวเรียเบิลชนิด int หรือ char )
{
case คอนสแตนต์ชนิด int หรือ char :
สเตตเมนต์;
สเตตเมนต์;
break;
case คอนสแตนต์ชนิด int หรือ char :
สเตตเมนต์;
สเตตเมนต์;
break;
default :
สเตตเมนต์;
สเตตเมนต์;
}
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 27
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch
#include <stdio.h>
void main()
{
int ch; clrscr();
printf(" Menu n");
printf("===================n");
printf(" 1 :Create Data n");
printf(" 2 :Display Data n");
printf(" 3 :Append Data n");
printf(" 4 :Edit Data n");
printf(" 5 :Quit n");
printf("===================n");
printf("Please select <1, 2, 3, 4, 5 > ==> "); scanf("%d", & ch);
switch (ch)
{ case 1: printf("You take choice 1:Create Data n");
break;
case 2: printf("You take chaoice 2:Display Datan");
break;
case 3: printf("You take choice 3:Append Data n");
break;
case 4: printf("You take choice 4: Edit Data n");
break;
case 5: printf("You take choice 5:Quitn");
break;
default: printf("You take choice the other:default");
}
}
ข้อสังเกต
แวเรียเบิลและคอนสแตนต์ที่ใช้สําหรับเปรียบเทียบในการเลือกทําแบบ switch
จะต้องมีชนิดเป็น int และ char เท่านัน
หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 28
#include <stdio.h> // for printf()
void main(void)
{
float Fnum1=1.0, Fnum2=1.0;
char op;
clrscr();
while ( !(Fnum1==0.0 && Fnum2==0.0) )
{ printf("nnEnter number, operator, numbern");
scanf("%f %c %f", &Fnum1, &op, &Fnum2);
switch ( op )
{ case '+' : printf(" = %f", Fnum1 + Fnum2);
break;
case '-' : printf(" = %f", Fnum1 - Fnum2);
break;
case '*' :
case 'x' : printf(" = %f", Fnum1 * Fnum2);
break;
case '/' :
case '': printf(" = %f", Fnum1 / Fnum2);
break;
default : printf("Unknown operator");
} // end switch
} // end while
} // end main()
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม ,
การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
เ

Ch2

  • 1.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 1 เรื่องที่ 2 ชนิดข้อมูล ตัวแปร และค่าคงที่ ชนิดข้อมูล (Data Types) ชนิดข้อมูลพื้นฐานมีด้วยกัน 5 ประเภทคือ 1. char (1 ไบต์) 2. int (2 ไบต์) 3. float (4 ไบต์) 4. double (8 ไบต์) 5. void (0 ไบต์) ให้ทําความเข้าใจกับชนิดข้อมูลพื้นฐานในตารางที่ 2-1 ชนิดข้อมูล ความหมาย ไบต์ (bytes) พิสัย (range) char อักษรหรืออักขระ 1 -128 ถึง 127 int จํานวนเต็ม 2 -32,768 ถึง 32,767 float จํานวนจริง (เลขทศนิยม) 4 3.4E + 38 (7 ตําแหน่ง) double จํานวนจริงละเอียด 2 เท่า 8 1.7E + 308 (15 ตําแหน่ง) void ไม่ให้ค่าใด ๆ 0 ไม่ให้ค่า ตารางที่ 2-1 : ชนิดข้อมูลพื้นฐานของ C ชนิดข้อมูลในตารางที่ 2-1 ที่ได้กล่าวแล้ว ตัวแปรจะมี 4 ประเภทเท่านั้นที่สามารถเก็บข้อมูลเหล่านี้ เพื่อความคล่องตัว และสามารถเก็บข้อมูลนอกเหนือจากนี้ได้ในภาษาซีจึงได้สร้างตัวแปรชนิด ข้อมูลแบบ คิดเครื่องหมาย (signed) ไม่คิดเครื่องหมาย (unsigned), ยาว (long) และสั้น (short) เพิ่มเติมขึ้นมา และยังนําไปประยุกต์ใช้กับชนิดข้อมูลพื้นฐานได้ดังในตารางที่ 2-2
  • 2.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 2 ชนิดข้อมูล ความหมาย ไบต์ (bytes) พิสัย (range) char คิดเครื่องหมาย 1 -128 ถึง 127 int คิดเครื่องหมาย 2 -32,768 ถึง 32,767 short คิดเครื่องหมาย 2 -32,768 ถึง 32,767 short int คิดเครื่องหมาย 2 -32,768 ถึง 32,767 long คิดเครื่องหมาย 4 -2,147,483,648 ถึง 2,147,483,647 long int คิดเครื่องหมาย 4 -2,147,483,648 ถึง 2,147,483,647 unsigned char ไม่คิดเครื่องหมาย 1 0 ถึง 255 unsigned ไม่คิดเครื่องหมาย 2 0 ถึง 65,535 unsigned int ไม่คิดเครื่องหมาย 2 0 ถึง 65,535 unsigned short ไม่คิดเครื่องหมาย 2 0 ถึง 65,535 unsigned long ไม่คิดเครื่องหมาย 4 0 ถึง 4,294,967,295 signed char คิดเครื่องหมาย 1 -128 ถึง 127 signed คิดเครื่องหมาย 2 -32,768 ถึง 32,767 signed int คิดเครื่องหมาย 2 -32,768 ถึง 32,767 signed short คิดเครื่องหมาย 2 -32,768 ถึง 32,767 signed long คิดเครื่องหมาย 4 -2,147,483,648 ถึง 2,147,483,647 ตารางที่ 2-2 : ชนิดของตัวแปรใน C
  • 3.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 3 ตัวแปร (Variables) ตัวแปร (Variables) คือส่วนที่ว่างในหน่วยความจําของคอมพิวเตอร์ใช้เก็บข้อมูลชนิดต่าง ๆ เช่น จํานวน (numbers) อักขระ (characters) และสตริงหรือข้อความ (string) เป็นต้น กฎในการตั้งชื่อ มีดังนี้ 1. ประกอบด้วยตัวอักษร ตัวอักษรปนตัวเลข หรือปนเครื่องหมาย underscore ( _ ) ได้ 2. ตัวแรกจะต้องเป็นตัวอักษรหรือเครื่องหมาย underscore ( _ ) เท่านั้น 3. สามารถใช้underscore เป็นส่วนของชื่อ ที่อยู่ระหว่างตัวอักษรหรือตัวเลขได้ 4. มีความยาวได้ตั้งแต่ 1 ตัวอักขระ ไปจนถึง 32 ตัวอักขระ (เฉพาะเทอร์โบซีแต่บาง เครื่องอาจได้น้อยหรือมากกกว่านี้ ) 5. ห้ามตั้งชื่อซํ้ากับคําสงวน (Reserved word) 6. ชื่อที่ตั้งขึ้นแล้วเขียนเป็นตัวเล็ก ตัวใหญ่หรือตัวใหญ่ปนตัวเล็กจะถือว่าเป็นคนละชื่อ กันหมด เช่น count COUNT Count จะถือเป็น 3 ชื่อตัวแปรที่แตกต่างกัน ชื่อตัวแปรที่ถูก ชื่อตัวแปรที่ผิด Count 1count Num12 num ! m-mum m…mun ข้อสังเกต การกําหนดชนิดของตัวแปร มีสิ่งที่ควรพิจารณาอยู่ 2 ประการคือ ตัวแปรนั้น จะต้องสามารถรับค่าได้ทุกค่าโดยไม่เกินขอบเขตของข้อมูลชนิดนั้น และตัว แปรจะต้องไม่ใช่หน่วยความจํามากเกินความจําเป็น เช่น ถ้าข้อมูลไม่เกิน ขอบเขตของ int ก็ไม่ควรกําหนดตัวแปรให้เป็น float
  • 4.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 4 ค่าคงที่ (Constant) ค่าคงที่ (Constant) คือค่าที่เปลี่ยนแปลงไม่ได้ขณะรันโปรแกรม การกําหนดค่าคงที่ก็เพื่อไม่ ต้องการหรือป้องกันไม่ให้โปรแกรมเปลี่ยนแปลงค่านั้น รูปแบบการกําหนดคอนสแตนต์เป็นดังนี้ ตัวอย่าง const float Pi = 3.1415; หมายความว่า Pi เป็นคอนสแตนต์ชนิด float ซึ่งมีค่าเท่ากับ 3.1415 1. คอนสแตนต์ชนิดอินทีเจอร์ คอนสแตนต์ชนิดอินทีเจอร์ (integer constant) เป็นคอนสแตนต์ชนิดตัวเลขซึ่ง อาจจะเป็นค่าบวก 0 หรือ ค่าลบ คอนสแตนต์ชนิดนี้มี 3 ประเภท คือ คอนสแตนต์อินทีเจอร์ฐาน สิบ ฐานแปดและฐานสิบหก ซึ่งมีรายละเอียดดังนี้ 1.1 คอนสแตนต์อินทีเจอร์ฐานสิบ (decimal integer constant) หมายถึงชุด ของเลขฐานสิบ ( 0 ถึง 9 ) ซึ่งเลขตัวแรกไม่เป็น 0 ดังตัวอย่างต่อไปนี้ const int price = 1000; const int WeekDay = 7; 1.2 คอนสแตนต์อินทีเจอร์ฐานแปด (octal integer constant) หมายถึงชุดของ เลขฐานแปด ( 0 ถึง 7 ) ซึ่งเลขตัวแรกเป็น 0 ดังตัวอย่างต่อไปนี้ const int Oct1 = 01000; const int Oct2 =03 7; 1.3 คอนสแตนต์อินทีเจอร์ฐานสิบหก (hexadecimal integer constant) หมายถึงชุดของเลขฐานสิบหก ( 0 ถึง 9 และ A ถึง F) ซึ่งนําหน้าด้วย 0X หรือ 0x ดังตัวอย่าง ต่อไปนี้ const int Hex1 = 0xF78; const int Hex2 =0xFF; const ชนิดของข้อมูล ไอเด็นติฟายเออร์ = ค่า;
  • 5.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 5 2. คอนสแตนต์ชนิด float คอนสแตนต์ชนิด float (floating point constant) เป็นคอนสแตนต์ชนิดตัว เลขที่มีทศนิยม คอนสแตนต์ชนิดนี้มี 2 รูปแบบดังนี้ 2.1 เป็นชุดของตัวเลขที่ประกอบด้วยเลข 0 ถึง 9 และจุดทศนิยม ดังตัวอย่าง ต่อไปนี้ const float Pi = 3.1415; const float InterestRate =0.65; 2.1 เป็นเลขยกกําลังซึ่งมีส่วนประกอบ 2 ส่วนคือ ส่วนหนึ่งเป็นอินทีเจอร์หรือ float อีกส่วนหนึ่งเป็นตัวคูณสิบยกกําลังซึ่งแสดงด้วยอักษร E (หรือ e) ตามด้วยเลขยกกําลังซึ่ง เป็นอินทีเจอร์บวกหรือลบดังตัวอย่างต่อไปนี้ const float A = 1.0E2; // หมายถึง 1.0 * 102 ซึ่ง = 100.0 const float A = 1E+3; // หมายถึง 1 * 103 ซึ่ง = 1000.0 const float A = 1E-2; // หมายถึง 1 * 10 - 2 ซึ่ง = 0.01 3. คอนสแตนต์ชนิดอักษร คอนสแตนต์ชนิดอักษร (character constant) เป็นคอนสแตนต์ที่ ประกอบด้วยอักษรหนึ่งตัวอยู่ภายในเครื่องหมาย ( ‘ ‘ ) ดังตัวอย่างต่อไปนี้ const char A = ‘a’; const char B =’b’; คอนสแตนต์ชนิดอักษรมีชนิดเป็น char ค่าของคอนสแตนต์จะเป็นตัวเลขซึ่งมีค่า เท่ากับรหัส ASCII ของอักษรนั้น (ตาราง ASCII อยู่ที่ภาคผนวก ก.) เช่น ‘A’ = 65, ‘B’ = 66 คอนสแตนต์ชนิดอักษรอีกประเภทหนึ่งมีชื่อว่า เอสเคปซีเควนซ์ (escape sequence) ซึ่งเป็นคอนสแตนต์ที่ประกอบด้วยเครื่องหมาย และอักษรอยู่ภายในเครื่องหมาย ( ‘ ‘ ) เช่น ‘ n ’ , ‘ t ’ คอนสแตนต์ประเภทนี้มีจํานวนจํากัดและมีความหมายเฉพาะดังแสดงใน ตารางที่ 2-3
  • 6.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 6 เอสเคปซีเควนซ์ ชื่อ ความหมาย a Alarm bell เตรียมพร้อม (เสียงระฆัง) b Backspace เลื่อนกลับ f Formfeed ขึ้นหน้าใหม่ n Newline ขึ้นบรรทัดใหม่ r Return เคอเซอร์กลับไปอยู่ที่ต้นบรรทัด t Tab เว้นระยะในแนวระดับ Backslash การกดเครื่องหมาย ’ Single quote การกดเครื่องหมาย ” Double quote การกดเครื่องหมาย “ ? Question mark การกดเครื่องหมาย ? ตารางที่ 2-3 : แสดงคอนสแตนต์แบบต่าง ๆ
  • 7.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 7 นิพจน์ และตัวดําเนินการ นิพจน์ (Expression) นิพจน์ (Expression) คือการนําตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้เครื่องหมายอย่างใด อย่างหนึ่งเป็นตัวเชื่อมโดยมีกฎเกณฑ์ทั่ว ๆ ไปในการเขียนนิพจน์ของภาษา C มีดังนี้ 1. เขียนตัวอักษรหลายตัวติดกันได้โดยไม่มีเครื่องหมายคั่น เช่น XY ถือเป็น 1 ตัวแปร 2. กรณีนิพจน์มีค่าของตัวแปรหรือค่าคงที่ต่างชนิดกันในนิพจน์เดียวกัน กลไกของภาษา C จะเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็กให้เป็นชนิดของข้อมูลที่ใหญ่ขึ้น ดังนั้นจึง ควรระวังในการตั้งตัวแปรเพื่อเก็บผลลัพธ์ที่ได้จากการดําเนินการของนิพจน์มีค่าของ ตัวแปรหรือค่าคงที่ต่างชนิดกัน ซึ่งตัวแปรที่ตั้งขึ้นควรเป็นชนิดของข้อมูลที่ใหญ่ที่สุด ในนิพจน์นั้น ดังตัวอย่าง หากนิพจน์มี int กับ long กลไกของภาษา C จะเปลี่ยนชนิดของข้อมูลเป็น long หากนิพจน์มีint กับ double กลไกของภาษา C จะเปลี่ยนชนิดของข้อมูลเป็น double นิพจน์คณิตศาสตร์ นิพจน์ภาษา C 2X2 2*(X*X) 10X + 3XY + 10Y2 10*X-3*X*Y+10*Y*Y ตารางที่ 3-1 : แสดงตัวอย่างของนิพจน์ในภาษา C นิพจน์แบ่งออกเป็น 1. นิพจน์คณิตศาสตร์ (Arithmetic Expression) หมายถึงการนําตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้เครื่องหมายคณิตศาตร์เป็น ตัวเชื่อมผลที่ได้จากนิพจน์แบบนี้จะเป็นตัวเลข ดังตารางที่ 3-2 นิพจน์คณิตศาสตร์ในภาษา C 3X + 5Y 3*X + 5*Y X2 - Y2 X*X - Y*Y ตารางที่ 3-2 : แสดงนิพจน์คณิตศาสตร์
  • 8.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 8 2. นิพจน์ตรรก (Logical Expression) หมายถึง การนําตัวแปร ค่าคงที่ หรือนิพจน์ มาสัมพันธ์กันโดยใช้เครื่องหมาย เปรียบเทียบและเครื่องหมายตรรกเป็นตัวเชื่อมผลที่ได้จะเป็นจริง หรือเท็จ คือจะให้ค่าเป็น 1 หรือ 0 ออกมาเป็นผลลัพธ์ซึ่งสามารถนําไปคํานวณต่อได้ดังตารางที่ 3-3 โจทย์ ถ้า I มีค่าเป็น 3 J มีค่าเป็น 5 A มีค่าเป็น 3 ถ้าเขียนนิพจน์ดังนี้ I = = J ผลลัพธ์ไม่จริง (0) I = = A ผลลัพธ์จริง (1) I > J*5 ผลลัพธ์ไม่จริง (0) I+3 > J –2 && a*2 > 10 ผลลัพธ์ไม่จริง (0) ตารางที่ 3-3 : แสดงนิพจน์ตรรก
  • 9.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 9 ตัวดําเนินการ (Operator) ตัวดําเนินการ (Operator) คือการใช้ในการกําหนดค่าให้ตัวแปร มีตัวดําเนินการ 3 ประเภทใหญ่ ๆ ดังนี้ 1. ตัวดําเนินการเลขคณิต (arithmetic operators) 2. ตัวดําเนินการเปรียบเทียบและ (relational operators) 3. ตัวดําเนินการตรรกะ ( logical operators) ตัวดําเนินการเลขคณิต (arithmetic operators) เป็นตัวดําเนินการทางด้านคณิตศาสตร์ ได้แก่เครื่องหมายที่ใช้ในการบวก ลบ คูณ หาร ตัวเลข และอื่น ๆ ดังในตารางที่ 3-4 ตัวดําเนินการ ความหมาย ตัวอย่าง - การลบ X – Y + การบวก X + Y * การคูณ X * Y / การหาร X / Y % การหารจะเอาเฉพาะเศษไว้ 11%3 = 3 เศษ 2 ดังนั้น 2 เป็นผลลัพธ์ - - การลดค่าลงครั้งละ 1 X- -หรือ - -X เหมือนกับ X=X-1 + + การเพิ่มค่าครั้งละ1 X+ +หรือ + +X เหมือนกับ X=X+1 ตารางที่ 3-4 : แสดงตัวดําเนินการของ C นอกจากตัวดําเนินการบวก ลบ คูณ หาร ธรรมดาแล้ว ยังมีโมดูลัส (modulas) คือการหาร เอาเฉพาะเศษดังในตารางที่ 3-4 และใน C มีวิธีการรวบรัดการใช้ตัวดําเนินการเลขคณิตดังนี้ รวมสัญลักษณ์ + และ = เข้าด้วยกันกลายเป็น += - และ = เข้าด้วยกันกลายเป็น -= ดังตารางที่ 3-5
  • 10.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 10 ตัวอย่าง . . . y = x + a ++; . . . ขั้นตอนการประมวลผล 1. y = x + a 2. a = a + 1 . . . y = x + ++ a; . . . ขั้นตอนการประมวลผล 1. a = a + 1 2. y = x + a . . . y += x ; . . . ขั้นตอนการประมวลผล y = y + x . . . y += x ++ ; . . . ขั้นตอนการประมวลผล 1. y = y + x 2. x = x + 1 . . . y -= 9 ; . . . ขั้นตอนการประมวลผล y = y - 9 . . . y *= 7 * x++ ; . . . ขั้นตอนการประมวลผล 1. y = y * 7 * x 2. x = x + 1 . . . y /= x ; . . . ขั้นตอนการประมวลผล y = y / x . . . y %= x ; . . . ขั้นตอนการประมวลผล y = y % x ตารางที่ 3-5 : แสดงตัวอย่างตัวดําเนินการของ C
  • 11.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 11 ขั้นตอนการทํางานของตัวดําเนินการใน C ในบางครั้งนิพจน์ประกอบด้วยตัวดําเนินการมากมาย ทําให้เกิดความยุ่งยากในการ พิจารณาขั้นตอนการทํางานของตัวดําเนินการ จึงได้ตั้งกฏเกี่ยวกับลําดับการทํางานก่อนหลังของ ตัวดําเนินการ (Operator) ดังตารางที่ 3-6 ตัวดําเนินการ ลําดับที่ ( ) 1 (สูงสุด) + + - - unary 2 * / % 3 + - 4 += -= *= = /= %= 5 (ตํ่าสุด) ตารางที่ 3-6 : แสดงลําดับการทํางานของตัวดําเนินการ ตัวดําเนินการที่มีความสําคัญอยู่ในระดับเดียวกัน ให้ทํางานตามขั้นตอนจากซ้ายไปขวาเป็นหลัก ต่อไปนี้ เป็นตัวอย่างพอสังเขป ดังตารางที่ 3- 7 ตัวอย่าง 5 + 6 * 2 ♣ ตัวดําเนินการ * อยู่ลําดับสูงกว่า + จึงต้อง คูณเลขก่อนแล้วบวกเลข 5 ภายหลัง 2 * 3 – 14 / 7 + 5 ♣ ตัวดําเนินการ * และ / อยู่ลําดับเดียวกันให้ ทําจากซ้ายไปขวา คือ คูณเลข แล้วหารเลข ♣ ตัวดําเนินการ – และ + อยู่ในลําดับเดียวกัน ทําจากซ้ายมือก่อนคือ ลบเลข แล้วจึงบวก เลขในภายหลัง ตารางที่ 3-7 : แสดงลําดับการทํางานของตัวดําเนินการ
  • 12.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 12 ตัวดําเนินการเปรียบเทียบ (Relational operators) หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ ผลการเปรียบเทียบจะให้ค่า เป็น 1 และ เท็จจะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังตารางที่ 3-8 เครื่องหมาย ความหมาย ตัวอย่าง > มากกว่า A > B (A มากกว่า B) >= มากกว่าหรือเท่ากับ A >= B (A มากกว่าหรือเท่ากับ B) < น้อยกว่า A < B (A น้อยกว่า B) <= น้อยกว่าหรือเท่ากับ A <= B (A น้อยกว่าหรือเท่ากับ B) == เท่ากับ A == B (A เท่ากับ B) != ไม่เท่ากับ A != B (A ไม่เท่ากับ B) ตารางที่ 3-8 : แสดงตัวดําเนินการเปรียบเทียบ เครื่องหมายตรรกะ (logical operators) เครื่องหมายตรรกะมีจุดประสงค์ใช้ในการเปรียบเทียบเพื่อตัดสินใจซึ่งผลที่ได้จากการ เปรียบเทียบจะได้ผลลัพธ์ 2 อย่าง คือ ถ้าได้ผลลัพธ์เป็นจริงจะมีค่าเป็น 1 และถ้าได้ผลลัพธ์เป็นเท็จ จะมีค่า 0 เป็นเครื่องหมายตรรกะที่ใช้ในภาษา C มีดังนี้ คําสั่ง && (AND) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น ดังนี้ X Y X && Y 0 0 0 0 1 0 1 0 0 1 1 1 คําสั่ง | | (OR) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น ดังนี้ X Y X | | Y 0 0 0 0 1 1 1 0 1 1 1 1
  • 13.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 13 คําสั่ง ! (NOT) เป็นการทํานิเสธซึ่งผลลัพธ์ที่ได้จะเป็นดังนี้ X ! X 0 1 1 0
  • 14.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 14 คําสั่งรับ - แสดงผลและคําสั่งการทํางานแบบมีทางเลือก ฟังก์ชันในการรับข้อมูลและแสดงผลข้อมูล (Input / Output Function) 1. printf( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลที่อยู่ในตัวแปร ค่าคงที่ นิพจน์ ออกมาทางจอภาพ Argument list เป็นค่าตัวแปร ค่าคงที่ หรือนิพจน์ที่ต้องการนํามาแสดงผลถ้ามีมากกว่า 1 ค่า จะแยกกันโดยใช้เครื่องหมายคอมม่า ( , ) Control จะต้องเขียนอยู่ภายใต้เครื่องหมาย “ “ ซึ่งสามารถเขียนได้2 ลักษณะคือ 1. เป็นข้อความที่ต้องการให้แสดงออกมา เช่น print(“ Sum of X = “); 2. เป็นรหัสรูปแบบ (Format Code) ที่ใช้ในการแสดงผลซึ่งทุกรหัส รูปแบบจะต้องอยู่ตามหลังเครื่องหมาย % รหัสรูปแบบ ข้อมูลที่นิยม ใช้ได้แก่ รหัส ความหมาย % c ใช้กับตัวแปรที่เก็บค่าที่เป็นตัวอักษรเพียงตัวเดียว % s ใช้กับตัวแปรที่เก็บค่าที่เป็นข้อความที่เก็บในตัวแปรชุด % d ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขจํานวนเต็ม % u ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขจํานวนเต็มบวก % f ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขทศนิยม % e ใช้กับตัวแปรที่เก็บค่าที่เป็นเลขทศนิยมในรูป e ยกกําลัง % x ใช้กับตัวแปรที่เก็บค่าที่เป็นค่าเลขฐานสิบหก % o ใช้กับตัวแปรที่เก็บค่าที่เป็นค่าเลขฐานแปด % p ใช้กับตัวแปรที่เก็บค่าที่เป็นตัวชีตําแหน่ง (pointer) รูปแบบ printf (control, argument list);
  • 15.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 15 ตัวอย่าง แสดงการใช้คําสั่ง printf ที่มีข้อความที่เป็นคําอธิบายอยู่ในรูปคําสั่ง void main( ) { int sum = 3; printf(“ The sum is %d ”,sum); } ผลลัพธ์ The sum is 3 ตัวอย่าง แสดงการใช้คําสั่ง printf รหัสรูปแบบ % d และ % u void main( ) { int num = -3, tot = 5; printf(“ num = %d tot = %u ”,num, tot); } ผลลัพธ์ Num = -3 tot = 5 ตัวอย่าง แสดงการใช้คําสั่ง printf รหัสรูปแบบ % f และ % e โดยมีทศนิยม 2 ตําแหน่ง void main( ) { float num = 22.75; printf(“ %.2f %.2e ”,num,num); } ผลลัพธ์ 22.75 2.28e+01 5. ฟังก์ชัน putchar ( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลชนิดตัวอักขระ (char) ให้ เห็นบนหน้าจอภาพ 6. ฟังก์ชัน puts ( ) เป็นฟังก์ชันที่ใช้ในการแสดงผลข้อมูลสตริงหรือข้อความ (string) ให้ เห็นบนหน้าจอภาพ รูปแบบ putchar ( char ); รูปแบบ puts ( string );
  • 16.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 16 4. ฟังก์ชัน scanf ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์(key board) เข้ามา เก็บไว้ในตัวแปร Argument list เป็นตัวแปรที่จะรับค่าจากแป้นพิมพ์มาเก็บไว้ถ้ามีมากกว่าหนึ่งค่า จะต้องแยกกันด้วยเครื่องหมายคอมม่า ( , ) และตัวแปรทุกตัวที่ใช้ จะต้องนําหน้าด้วยเครื่องหมาย & ทุกตัว ยกเว้นตัวแปรชุด Control เป็นรหัสรูปแบบที่ใช้ในการรับข้อมูลซึ่งจะต้องเขียนอยู่ภายใน เครื่องหมาย “ “ และจะมีรหัสรูปแบบเหมือนกับรหัสรูปแบบที่ใช้ ในคําสั่ง printf ตัวอย่าง แสดงการใช้คําสั่ง scanf main( ) { int num; scanf( “ %d ” ,&num); } หมายความว่า เครื่องจะรอรับค่าที่เป็นจํานวน เต็มหนึ่งจํานวนที่จะป้อนเข้ามาทางแป้นพิมพ์ มาเก็บไว้ในตัวแปร num ตัวอย่าง แสดงการใช้คําสั่ง scanf main( ) { int num; char ch; scanf(“ %d %c ” ,&num, &ch); } หมายความว่า เครื่องจะรอรับค่าที่เข้ามา 2 ค่า คือค่าที่หนึ่งเป็นจํานวนเต็มหนึ่งจํานวน และ ค่าที่สองเป็นอักขระหนึ่งตัวที่จะป้ อนเข้ามาที่ จะป้ อนเข้ามาทางแป้ นพิมพ์แล้วนําไปเก็บไว้ ในตัวแปร num และ ch ตามลําดับ รูปแบบ scanf (control, argument list);
  • 17.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 17 5. ฟังก์ชัน getchar ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์ทีละ 1 ตัวอักขระ โดยต้องกด enter ทุกครังเมื่อสินสุดข้อมูล และข้อมูลที่ป้อนจะปรากฎให้เห็นบนหน้าจอภาพ 6. ฟังก์ชัน getch ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามา ทางแป้นพิมพ์โดยเมื่อป้อนข้อมูลเสร็จไม่ต้องกดปุ่ม enter และข้อมูลที่ป้อนจะไม่ปรากฎบน หน้าจอภาพ 7. ฟังก์ชัน getche ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลเป็นตัวอักขระ 1 ตัวอักขระเข้ามา ทางแป้นพิมพ์โดยเมื่อป้อนข้อมูลเสร็จไม่ต้องกดปุ่ม enter และข้อมูลที่ป้อนจะปรากฎบน หน้าจอภาพ 8. ฟังก์ชัน gets ( ) เป็นฟังก์ชันที่ใช้ในการรับข้อมูลสตริงหรือข้อความ (string) เข้ามา ทางแป้นพิมพ์โดยต้องกด enter ทุกครังเมื่อสินสุดข้อมูล และข้อมูลที่ป้อนจะปรากฏให้เห็นบน หน้าจอภาพ ตัวอย่างโปรแกรม การใช้คําสั่งรับ - แสดงผล #include <stdio.h> void main() { int x_value = 9; printf("x = %dn",x_value); } รูปแบบ char = getchar ( ); รูปแบบ char = getch ( ); รูปแบบ getche ( ); รูปแบบ gets ( string );
  • 18.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 18 #include <stdio.h> void main() { int x, y, sum; x = 7; y = 2; sum = x + y; printf("Total = %dn",sum); } #include <stdio.h> void main() { int x, y; x = 7; y = 4; --x; ++y; printf("x = %dn",x); printf("y = %dn",y); } #include <stdio.h> void main() { int profits, employees; profits = 9; employees = 2 ; printf("Each employee gets %f.", (float) profits/employees); }
  • 19.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 19 include <stdio.h> void main() { char any_char; printf("Please type a character: "); scanf("c%",&any_char); printf("Thank you, your character are %c",any_char); } #include <stdio.h> void main(void) { printf("n****Using .1f****n"); printf("%.1f%.1f%.1fn", 4.0, 16.5, 589.3); printf("%.1f%.1f%.1f", 400.0, 1600.5, 58900.3); printf("nn****Using 8.1f****n"); printf("%8.1f%8.1f%8.1fn", 4.0, 16.5, 589.3); printf("%8.1f%8.1f%8.1f", 400.0, 1600.5, 58900.3); printf("nn**** Using -8.1f****n"); printf("%-8.1f%-8.1f%-8.1fn", 4.0, 16.5, 589.3); printf("%-8.1f%-8.1f%-8.1f", 400.0, 1600.5, 58900.3); }
  • 20.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 20 #include <stdio.h> void main(void) { printf("n"); printf("xC9xCDxBBn"); printf("xC8xCDxBCn"); } #include <stdio.h> #include <ctype.h> void main() { char any_char; printf("Please type a lowercase letter:"); scanf("%c", &any_char); if(any_char >= 'a') printf("In uppercase: %c n", toupper(any_char)); } ตัวอย่างโปรแกรม การใช้คําสั่งรับ – แสดงผล ที่มา :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม , การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
  • 21.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 21 คําสั่งการทํางานแบบมีทางเลือก การทํางานแบบมีทางเลือก หมายถึง การกําหนดให้โปรแกรมทํางานอย่างใดอย่างหนึ่ง เมื่อเงื่อนไขเป็นจริงและทํา (หรือไม่ทํา) งานอีกอย่างหนึ่งเมื่อเงื่อนไขเป็นเท็จ ตัวอย่างการเลือก ทําที่อาจพบเห็นได้บ่อยเช่น การเตือนให้เลือกบันทึกข้อความไว้ในดิสก์คือ Save (Y/N) ถ้าเลือก Y จะบันทึกข้อมูลในดิสก์ ถ้าเลือก N จะไม่บันทึกข้อมูล การเลือกทํามี 2 แบบคือการเลือกทําแบบ if และการเลือกทําแบบ switch ♦ คําสั่ง if (if statement) ♦ คําสั่ง switch (switch statement) การเลือกทําแบบ if เริ่มด้วยการทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริง สเตตเมนต์ต่อจาก if จะทํางาน ถ้าเงื่อนไขเป็นเท็จสเตตเมนต์ต่อจาก if จะไม่ทํางานรูปแบบของการเลือกทําแบบ if มี 3 รูปแบบคือ 1. การเลือกทําแบบ if ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี การเลือกทําแบบ if รูปแบบ if (condition) // if ที่มีสเตตเมนต์เดียว statement - 1; -- หรือ -- if (condition) // if หลายสเตตเมนต์ { statement - 1; statement - 2; … }
  • 22.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 22 2. ทําแบบ if – else ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี รูปแบบ if (condition) // if – else ที่มีสเตตเมนต์ เดียว statement - 1; else statement - 2; -- หรือ -- if (condition) // if – else หลายสเตตเมนต์ { statement - 1; … } else { statement - 2; … }
  • 23.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 23 3. แบบ if – else – if ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี รูปแบบ if (condition) // if – else - if ที่มีสเตตเมนต์เดียว statement - 1; else if (condition) statement - 2; … else statement - n; -- หรือ -- if (condition) // if – else - if หลายสเตตเมนต์ { statement - 1; … } else if (condition) { statement - 2; … } … else { statement - n; … }
  • 24.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 24 ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if #include <stdio.h> #include <ctype.h> void main() { char any_char; printf("Please type a lowercase letter:"); scanf("%c",&any_char); if(any_char < 'a') printf("Sorry, I can not capitalize that.n"); else printf("Thank you. In uppercase : %c.",toupper (any_char)); } #include <stdio.h> #include <ctype.h> void main() { char any_char ; printf("Please type a lowercase letter:"); scanf("%c",&any_char); if(any_char< 'a') printf("Sorry,I can not capitalize that./n"); else if (any_char>'z') printf("Sory, I can not capitalize that./n"); else printf("Thank you. In uppercase: %c n", toupper (any_char)); }
  • 25.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 25 #include <stdio.h> // for printf() #include <conio.h> // for getche() void main(void) { int x, y; clrscr(); printf("n"); // new line for (y=1; y<24; y++) // step down the screen { for (x=1; x<24; x++) // step across the screen if ( x == y ) // NW-SE diagonal? printf("xDB"); // print solid color else if ( x == 24 - y ) // SW-NE diagonal? printf("xDB"); // print solid color else printf("xB0"); // print gray printf("n"); // next line delay(200); } getche(); } ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if ที่มา :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม , การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
  • 26.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 26 คําสั่ง switch ใช้เพื่อเลือกทําคําสั่งใดคําสั่งหนึ่งตามต้องการ โดยมีทางเลือกให้ทําคําสั่ง หลาย ๆ ทาง ค่าตัวแปรจะทําหน้าที่ควบคุมคําสั่ง switch คําสั่ง switch และคําสั่ง if – else – if เป็นคําสั่งเลือกทํา เช่นเดียวกัน แต่ต่างกันที่รูปแบบเงื่อนไข ต่อไปนีเป็นรูปแบบของการเลือกทํา แบบ switch การเลือกทําแบบ switch มีวิธีเลือกทําโดยการเปรียบเทียบค่าของ switch แวเรียเบิล กับ ค่าของคอนสแตนต์ในแต่ละ case ถ้ามีค่าเท่ากันสเตตเมนต์ของ case นันจะทํางาน และถ้าค่าของ switch แวเรียเบิลไม่เท่ากับค่าของคอนสแตนต์ใน case ใด ๆ เลย สเตตเมนต์ของ default จะ ทํางาน การเลือกทําแบบ switch รูปแบบ switch ( แวเรียเบิลชนิด int หรือ char ) { case คอนสแตนต์ชนิด int หรือ char : สเตตเมนต์; สเตตเมนต์; break; case คอนสแตนต์ชนิด int หรือ char : สเตตเมนต์; สเตตเมนต์; break; default : สเตตเมนต์; สเตตเมนต์; }
  • 27.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 27 ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch #include <stdio.h> void main() { int ch; clrscr(); printf(" Menu n"); printf("===================n"); printf(" 1 :Create Data n"); printf(" 2 :Display Data n"); printf(" 3 :Append Data n"); printf(" 4 :Edit Data n"); printf(" 5 :Quit n"); printf("===================n"); printf("Please select <1, 2, 3, 4, 5 > ==> "); scanf("%d", & ch); switch (ch) { case 1: printf("You take choice 1:Create Data n"); break; case 2: printf("You take chaoice 2:Display Datan"); break; case 3: printf("You take choice 3:Append Data n"); break; case 4: printf("You take choice 4: Edit Data n"); break; case 5: printf("You take choice 5:Quitn"); break; default: printf("You take choice the other:default"); } } ข้อสังเกต แวเรียเบิลและคอนสแตนต์ที่ใช้สําหรับเปรียบเทียบในการเลือกทําแบบ switch จะต้องมีชนิดเป็น int และ char เท่านัน
  • 28.
    หลักการแก้ปัญหาและการโปรแกรม [ง 40102]สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 28 #include <stdio.h> // for printf() void main(void) { float Fnum1=1.0, Fnum2=1.0; char op; clrscr(); while ( !(Fnum1==0.0 && Fnum2==0.0) ) { printf("nnEnter number, operator, numbern"); scanf("%f %c %f", &Fnum1, &op, &Fnum2); switch ( op ) { case '+' : printf(" = %f", Fnum1 + Fnum2); break; case '-' : printf(" = %f", Fnum1 - Fnum2); break; case '*' : case 'x' : printf(" = %f", Fnum1 * Fnum2); break; case '/' : case '': printf(" = %f", Fnum1 / Fnum2); break; default : printf("Unknown operator"); } // end switch } // end while } // end main() ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม , การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543 เ