1. แนะนำกำรเขียนโปรแกรมภำษำ C
Introduction to C Programming Language
อ.เรวดี พิพัฒน์สูงเนิน สาขาวิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ มหาวิทยาลัยราชภัฏอุดรธานี
2. ภาษา C
•ภาษา C เป็นภาษาระดับสูง (High level language)
•เป็นภาษาคอมพิวเตอร์ที่ได้รับความนิยมภาษาหนึ่ง เนื่องจาก ทางานได้เร็ว มีความยืดหยุ่น
•สามารถใช้เขียนโปรแกรมระบบปฏิบัติการ หรือระบบงาน ทั่วไป เช่น งานด้านธุรกิจ หรืองานด้านวิทยาศาสตร์และ วิศวกรรมได้
•ภาษา C เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured programming)
3. ประวัติของภาษา C
•ปี ค.ศ. 1972 Dennis Ritchie เป็นผู้ที่คิดค้นภาษาซีขึ้น เป็นครั้งแรก โดยพัฒนามาจากภาษา B และภาษา BCPL
•ปี ค.ศ. 1978 Brain Kernighan และ Dennis Ritchie พัฒนามาตรฐานภาษา C ขึ้นเรียกว่า K&R (Kernighan & Ritchie)
•ปี ค.ศ. 1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standard Institute) สร้าง มาตรฐานภาษา C ขึ้นเรียกว่า ANSI C เพื่อใช้เป็น ตัวกาหนดมาตรฐานในการสร้างภาษา C รุ่นต่อไป
4. ประวัติของภาษา Cภาษา BCPLภาษา B
ภาษา
C
บนเครื่อง
PDP-7
(UNIX)
พ.ศ. 2513
ค.ศ. 1972 พัฒนาโดย
เดนนิช ริทชี่
Basic Combined
Programming
Language
15. คาสงวนในภาษา C
asm
default
for
pascal
switch
_ds
auto
do
goto
register
typedef
_es
break
double
huge
return
union
_ss
case
else
if
short
unsigned
cdecl
enum
int
signed
void
char
extern
nterrupt
sizeof
volatile
const
far
ong
static
while
continue
float
near
struct
_cs
16. ตัวแปรและชนิดข้อมูล (Variable and Data Type)
•ตัวแปร (Variable) คือ ชื่อที่กาหนดขึ้นเพื่อใช้ในการ เก็บข้อมูล ในหน่วยความจาในการทางานของโปรแกรม
•ชนิดข้อมูล (Data Type) คือ สิ่งที่ใช้กาหนดลักษณะ และขอบเขตของข้อมูลให้กับตัวแปร โดยชนิดข้อมูลที่ แตกต่างกันจะมีขอบเขตของข้อมูลที่เก็บได้ไม่เท่ากัน
21. Integer type
•เป็นชนิดข้อมูลแบบเลขจานวนเต็ม
•แบ่งเป็น 3 ชนิด ได้แก่
▫short int: เลขจานวนเต็มแบบสั้น
▫int: เลขจานวนเต็มแบบปกติ
▫long int: เลขจานวนเต็มแบบยาว
short int
int
long int
23. สรุปชนิดและขอบเขตการเก็บข้อมูล
Name
Description
Size*
Range*
char
Character or small integer.
1byte
signed: -128 to 127unsigned: 0 to 255
short int(short)
Short Integer.
2bytes
signed: -32768 to 32767unsigned: 0 to 65535
int
Integer.
4bytes
signed: -2147483648 to 2147483647unsigned: 0 to 4294967295
long int(long)
Long integer.
4bytes
signed: -2147483648 to 2147483647unsigned: 0 to 4294967295
float
Floating point number.
4bytes
+/-3.4e +/-38 (~7 digits)
double
Double precision floating point number.
8bytes
+/-1.7e +/-308 (~15 digits)
long double
Long double precision floating point number.
8bytes
+/-1.7e +/-308 (~15 digits)
wchar_t
Wide character.
2 or 4 bytes
1 wide character
29. ตัวแปรโกบอล & ตัวแปรโลคอล #include <stdio.h> int i= 1; int test(int j) { int x= 3; return x+ j; } main() { int y; printf(“Global variable i is %dn” , i); y= test(i); y= y* x; printf(“Local variable y is %dn” , y); } i เป็นตัวแปรแบบโกบอล
j , x เป็นตัวแปรแบบโลคอลของฟังก์ชัน test
y เป็นตัวแปรแบบโลคอลของฟังก์ชัน main
บรรทัดนี้ error เพราะ ไม่สามารถเรียกใช้ตัวแปร x ได้
30. Storage class
•Storage class เป็นสิ่งที่ใช้กาหนดขอบเขตการทางาน ของตัวแปรว่า จะให้ใครใช้ตัวแปรได้บ้าง
•และกาหนดเรื่องเวลาในการเก็บค่าในตัวแปร
•มี 4 ประเภท ได้แก่
▫auto
▫extern
▫static
▫register
31. Storage class : auto
•ใช้ในการประกาศ automatic variable หรือตัวแปร แบบโลคอล
•เช่น inta = 1 ; เหมือนกับ auto inta = 1;
•โดยปกติจะไม่ประกาศโดยระบุ auto เพราะการประกาศ ตัวแปรก็จะเป็น auto variable อยู่แล้ว
•ตัวแปรจะถูกทาลายอัตโนมัติ เมื่อจบการทางานของ ฟังก์ชัน
44. Operator
ความหมาย
ตัวอย่าง
ผลลัพธ์
++
เพิ่มค่าขึ้น 1 โดย
a++ จะนาค่าของ a ไปใช้งานก่อน แล้วจึง เพิ่มค่า a ขึ้นอีก 1
b = a++ ;
มีความหมาย เหมือน
b = a;
a = a + 1;
สมมติ a มีค่าเป็น 9
หลังจากคาสั่ง
b = a++;
++aจะเพิ่มค่า 1 ใส่ ตัวแปร a ก่อนแล้วจึง นาไปใช้
b = ++a;
มีความหมาย เหมือน
a = a + 1;
b = a;
สมมติ a มีค่าเป็น 9
หลังจากคาสั่ง
b = ++a
a = 10 , b = 9
a = 10 , b = 10
การดาเนินการทางคณิตศาสตร์
45. Operator
ความหมาย
ตัวอย่าง
ผลลัพธ์
--
ลดค่าลง 1 โดย
a-- จะนาค่าของ a ไปใช้งานก่อน แล้วจึง ลดค่า a ลง 1
b = a--;
มีความหมาย เหมือน
b = a;
a = a -1;
สมมติ a มีค่าเป็น 9
หลังจากคาสั่ง
b = a--;
--aจะลดค่า 1 ใน ตัวแปร a ก่อนแล้วจึง นาไปใช้
b = --a;
มีความหมาย เหมือน
a = a -1;
b = a;
สมมติ a มีค่าเป็น 9
หลังจากคาสั่ง
b = --a
a = 8 , b = 9
a = 8 , b = 8
การดาเนินการทางคณิตศาสตร์
46. ข้อสังเกต
•ถ้าเขียนนิพจน์ a++ ; หรือ ++a ; มีความหมาย เหมือนกัน
•แต่ถ้านาไปร่วมกับนิพจน์อื่น ๆ แล้วลาดับการทางานของ a++ และ ++a จะแตกต่างกัน
y = x++ ;
1. y = x ;
2. x = x+1;
z = ++x ;
1. x = x+1;
2. z = x ;
47. Operator
ความหมาย
ตัวอย่าง
ผลลัพธ์
+=
บวกแบบลดรูป
x += 3
มีความหมาย เหมือน
x = x + 3;
สมมติ x มีค่าเป็น 5
หลังจากคาสั่ง
x += 3;
x = 8
-=
ลบแบบลดรูป
x -= 3
มีความหมาย เหมือน
x = x -3;
สมมติ x มีค่าเป็น 5
หลังจากคาสั่ง
x -= 3;
x = 2
การดาเนินการทางคณิตศาสตร์
48. Operator
ความหมาย
ตัวอย่าง
ผลลัพธ์
*=
คูณแบบลดรูป
x *= 3
มีความหมาย เหมือน
x = x * 3;
สมมติ x มีค่าเป็น 5
หลังจากคาสั่ง
x *= 3;
x = 15
/=
หารแบบลดรูป
x /= 3
มีความหมาย เหมือน
x = x / 3;
สมมติ x มีค่าเป็น 5
หลังจากคาสั่ง
x /= 3;
x = 1
(ถ้าชนิดข้อมูลของตัวตั้งและตัวหาร เป็นจานวนเต็ม จะได้ผลลัพธ์เป็น จานวนเต็ม โดยปัดเศษทิ้ง)
การดาเนินการทางคณิตศาสตร์
49. Operator
ความหมาย
ตัวอย่าง
ผลลัพธ์
%=
หารเอาเศษ แบบลดรูป
x %= 3
มีความหมาย เหมือน
x = x % 3;
สมมติ x มีค่าเป็น 5
หลังจากคาสั่ง
x %= 3;
x = 2
การดาเนินการทางคณิตศาสตร์
65. การเขียนนิพจน์ในภาษา C
•ตัวอย่างนิพจน์ทางตรรกศาสตร์
•กาหนดตัวแปร a มีค่า 25 , b มีค่า -124 และ c มีค่า 0
นิพจน์ทางตรรกศาสตร์
การดาเนินการ
ผลลัพธ์
c && (a <= b)
F && F
F
(b >= c) || (!a)
F || F
F
(a > b) && (c <= a)
T && T
T
(!c) || (a == b)
T || F
T
(a + 5) > (b -100)
30 > -224
T
80. Escape character
รหัส
ความหมาย
n
ขึ้นบรรทัดใหม่
t
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)
r
กาหนดให้เคอร์เซอร์เลื่อนไปอยู่ต้นบรรทัด
f
เว้นช่องว่างเป็นระยะ 1 หน้าจอ
b
ลบอักขระตัวสุดท้ายออก
’
พิมพ์เครื่องหมาย ’
‛
พิมพ์เครื่องหมาย ‛
พิมพ์เครื่องหมาย
100. แบบฝึกหัด
•1. จงเขียนโปรแกรมคานวณพื้นที่วงกลมและเส้นรอบวง โดยมีสูตร area = pi * r2
•circumference = 2 * pi * r
•โดย pi มีค่า 3.1415926536 (เป็นค่าคงที่)
• r คือ ค่ารัศมีวงกลม (รับค่าจากผู้ใช้)
• area คือ พื้นที่วงกลมที่คานวณได้
• circumference คือ เส้นรอบวงกลม