Bài giảng Tin học đại cương: Phần 3 (Chương 1) sẽ giới thiệu tổng quan về ngôn ngữ lập trình C: Lịch sử phát triển ngôn ngữ lập trình C; các phần tử cơ bản của ngôn ngữ C; cấu trúc cơ bản của một chương trình C; biên dịch chương trình viết bằng C;...
Trang 1IT1110 Tin h c đ i c ọ ạ ươ ng
Ph n III L p trình ầ ậ
Nguy n Bá Ng c ễ ọ
Trang 2N i dung ph n 3 ộ ầ
Chương 1: Gi i thi u t ng quan v ngôn ng ớ ệ ổ ề ữ
l p trình Cậ
Chương 2: Ki u d li u và bi u th c trong Cể ữ ệ ể ứ
Chương 3: Các c u trúc l p trình trong Cấ ậ
Chương 4: Con tr và m ngỏ ả
Chương 5: Xâu ký tự
Chương 6: Hàm
Chương 7: C u trúcấ
Trang 3Ph n III L p trình ầ ậ
Ch ươ ng 1: T ng quan v ngôn ng C ổ ề ữ
Trang 4N i dung ch ộ ươ ng này
1.1. L ch s phát tri n ngôn ng l p trình Cị ử ể ữ ậ
1.2. Các ph n t c b n c a ngôn ng Cầ ử ơ ả ủ ữ
1.3. C u trúc c b n c a m t chấ ơ ả ủ ộ ương trình C
1.4. Biên d ch chị ương trình vi t b ng Cế ằ
1.5. Bài t pậ
Trang 5 C d a trên n n các ngôn ng BCPL ( ự ề ữ Basic Combined Programming Language) và ngôn ng Bữ
Tên là ngôn ng C nh là s ti p n i ngôn ng B ữ ư ự ế ố ữ
Trang 6 Th ườ ng đ ượ c s d ng đ vi t: ử ụ ể ế
Các ch ươ ng trình h th ng nh h đi u hành (VD ệ ố ư ệ ề Unix: 90% vi t b ng C, 10% vi t b ng h p ng ) ế ằ ế ằ ợ ữ
Các ch ươ ng trình ng d ng chuyên nghi p có can ứ ụ ệ thi p t i d li u m c th p nh x l ệ ớ ữ ệ ở ứ ấ ư ử ý văn b n, x lí ả ử nh…
ả
Trang 71.1. L ch s phát tri n ngôn ng l p trình Cị ử ể ữ ậ
1978: C đ ượ c gi i thi u trong phiên b n ớ ệ ả đ u c a ầ ủ
cu n sách " ố The C programming language"
Sau đó, C đ ượ c b ổ sung thêm nh ng ữ tính năng và
kh năng m i ả ớ Đ ng th i t n t i nhi u phiên b n ồ ờ ồ ạ ề ả
nh ng không t ư ươ ng th í ch nhau.
Năm 1989, Vi n tiêu chu n qu c gia Hoa K ệ ẩ ố ỳ
(American National Standards Institute ANSI) đã
công b phiên b n chu n hóa c a ngôn ng C ố ả ẩ ủ ữ :
ANSI C hay C chu n ẩ hay C89
Trang 81.1. L ch s phát tri n ngôn ng l p trình Cị ử ể ữ ậ
T t c các phiên b n c a ngôn ng C hi n ấ ả ả ủ ữ ệ nay
đ u tuân theo các mô t đã đ ề ả ượ c nêu ra trong ANSI C, s khác bi t n u có thì ch y u ự ệ ế ủ ế ở á c c th ư
Trang 91.2. Các ph n t c b n c a ngôn ng Cầ ử ơ ả ủ ữ
Trang 111.2.1. T p ký t (ti p) ậ ự ế
Trang 131.2.2. T khóa (keyword) (ti p) ừ ế
Trang 141.2.3. Đ nh danh / tên (identifier) ị
Là m t dãy các kí t dùng đ g i tên các đ i ộ ự ể ọ ố
tượng trong chương trình
Các đ i t ố ượ ng trong ch ươ ng trình g m có bi n, ồ ế
h ng, hàm, ki u d li u… ta s làm quen ằ ể ữ ệ ẽ ở
nh ng m c ti p theo ữ ụ ế
Có th đ ể ượ c đ t tên: ặ
B i ngôn ng l p trình (đó chính là các t ở ữ ậ ừkhóa)
Ho c do ngặ ườ ậi l p trình đ t.ặ
Trang 151.2.3. Đ nh danh / tên (identifier) (ti p)ị ế
Qui t c đ t tên: ắ ặ
Ch đỉ ược g m có: ồ ch cái ữ , ch s ữ ố và d u ấ
g ch dạ ưới “_” (underscore).
B t đ u c a đ nh danh ph i là ch cái ắ ầ ủ ị ả ữ
ho c d u g ch dặ ấ ạ ưới, không được b t đ u ắ ầ
đ nh danh b ng ch s ị ằ ữ ố
Đ nh danh do ngị ườ ậi l p trình đ t không ặ
được trùng v i t khóa.ớ ừ
Trang 161.2.3. Đ nh danh / tên (identifier) (ti p)ị ế
Ví d đ nh danh/tên h p l :ụ ị ợ ệ
i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1
Ví d v đ nh danh/tên không h p l :ụ ề ị ợ ệ
Trang 171.2.3. Đ nh danh / tên (identifier) (ti p)ị ế
Cách th c đ t đ nh danh/tên:ứ ặ ị
H ng s : ch hoa ằ ố ữ
Các bi n, hàm hay c u trúc: B ng ch th ế ấ ằ ữ ườ ng.
N u tên g m nhi u t thì ta nên phân cách các ế ồ ề ừ
t b ng d u g ch d ừ ằ ấ ạ ướ i.
Trang 181.2.4. Các ki u d li u ể ữ ệ
Là m t t p h p các giá tr mà m t d li u thu c ộ ậ ợ ị ộ ữ ệ ộ
ki u d li u đó có th nh n đ ể ữ ệ ể ậ ượ c.
Trên m t ki u d li u ta xác đ nh m t s phép ộ ể ữ ệ ị ộ ố toán đ i v i các d li u thu c ki u d li u đó ố ớ ữ ệ ộ ể ữ ệ
Ví dụ: Trong ngôn ng C có ki u d li u ữ ể ữ ệ int.
M t d li u thu c ki u d li u ộ ữ ệ ộ ể ữ ệ int thì:
Là m t s nguyên ( ộ ố integer)
Có th nh n giá tr t 32768 ( 2 ể ậ ị ừ 15 ) đ n 32767 (2 ế 15
Trang 191.2.4. Các ki u d li u (ti p) ể ữ ệ ế
Trên ki u d li u ể ữ ệ int ngôn ng C đ nh nghĩa các ữ ị phép toán s h c đ i v i s nguyên nh sau: ố ọ ố ớ ố ư
Trang 201.2.5. H ng s (constant) ằ ố
Là đ i lạ ượng có giá tr không đ i trong ị ổ
chương trình.
Đ giúp chể ương trình d ch nh n bi t h ng ta ị ậ ế ằ
c n n m đầ ắ ược cách bi u di n h ng trong ể ễ ằ
m t chộ ương trình C
Trang 23b ng mã ASCII là m t s nguyên nên có m t ả ộ ố ộ
s cách bi u di n).ố ể ễ
Trang 24Bi u di n h ng ký t Ví d : ể ễ ằ ự ụ
Trang 25Bi u di n h ng xâu ký t ể ễ ằ ự
M t h ng là xâu kí t đ ộ ằ ự ượ c bi u di n ể ễ
b i dãy các kí t thành ph n có trong ở ự ầ xâu đó và đ ượ c đ t trong c p d u nháy ặ ặ ấ kép ("").
Ví d : "Đ i h c Bách Khoa", "Tin h c ụ ạ ọ ọ
đ i c ạ ươ ng", "Nguy n H ng Ph ễ ồ ươ ng",
Trang 261.2.6. Bi n (variable) ế
Là đ i lạ ượng mà giá tr có th thay đ i trong ị ể ổ
chương trình
H ng và bi n đằ ế ược s d ng đ l u tr d ử ụ ể ư ữ ữ
li u, và ph i thu c m t ki u d li u nào đó.ệ ả ộ ộ ể ữ ệ
Tên bi n và h ng đế ằ ược đ t theo quy t c đ t ặ ắ ặtên cho đ nh danh.ị
Trang 271.2.7. Hàm (function)
Còn được g i là chọ ương trình con
Nh ng đo n chữ ạ ương trình l p đi l p l i nhi u ặ ặ ạ ề
l n nh ng ch khác nhau ầ ở ữ ỗ Vi t thành ếhàm đ khi c n ch c n g i ra ch không ể ầ ỉ ầ ọ ứ
ph i vi t l i toàn b ả ế ạ ộ
Gi i quy t m t bài toán l n thì chả ế ộ ớ ương trình
c a ta có th r t l n và dài ủ ể ấ ớ Chia thành các công vi c nh h n đệ ỏ ơ ược vi t thành các ếhàm
Trang 28M t s hàm toán h c hay dùng trong Cộ ố ọ
Trang 29M t s hàm toán h c hay dùng trong C (ti p) ộ ố ọ ế
Trang 301.2.8. Câu l nh (statement) ệ
Di n t m t ho c m t nhóm các thao tác ễ ả ộ ặ ộtrong gi i thu t.ả ậ
Chương trình đượ ạc t o thành t dãy các câu ừ
l nh.ệ
Cu i m i câu l nh đ u có d u ch m ph y (;) ố ỗ ệ ề ấ ấ ẩ
đ đánh d u k t thúc câu l nh.ể ấ ế ệ
Trang 32 L i mô t , gi i thích v n t t cho m t câu l nh, m t ờ ả ả ắ ắ ộ ệ ộ
đo n ch ạ ươ ng trình ho c c ch ặ ả ươ ng trình
Ch có tác d ng giúp ch ỉ ụ ươ ng trình vi t ra d đ c và ế ễ ọ
Trang 341.3. C u trúc c b n c a m t ch ấ ơ ả ủ ộ ươ ng trình C
G m 6 ph n c ồ ầ ó th t nh sau: ứ ự ư
Ph n1: Khai b ầ á o t p tiêu đ : #include ệ ề
Ph n 2: Đ nh nghĩa ki u d li u m i: typedef ầ ị ể ữ ệ ớ
Ph n 3: Khai b ầ á o các hàm nguyên m u ẫ
Ph n 4: Khai b ầ á o các bi n to ế à n c c ụ
Ph n 5: H ầ à m main()
Trang 351.3. C u trúc c b n (ti p) ấ ơ ả ế
Ph n 1: Khai bầ áo t p tiêu đ :ệ ề
Thông báo cho ch ươ ng tr ì nh d ch bi t l ị ế à ch ươ ng trình có s d ng nh ng th vi n n ử ụ ữ ư ệ à o.
Ví d : ụ
#include <stdio.h> // thao tác vào ra #include <conio.h> // hàm c a DOS ủ
Ph n 2: Đ nh nghĩa c ầ ị á c ki u d li u m i ể ữ ệ ớ
Đ nh nghĩa cị ác ki u d li u m i (n u c n) ể ữ ệ ớ ế ầdùng cho c chả ương trình
Trang 361.3. C u trúc c b n (ti p) ấ ơ ả ế
Ph n 3: Kầ hai báo các hàm nguyên m u:ẫ
Giúp cho chương trình d ch bi t đị ế ược
nh ng thông tin c b n c a cữ ơ ả ủ ác hàm s ử
Trang 371.3. C u trúc c b n (ti p) ấ ơ ả ế
Ph n 5:ầ Hàm main( )
Khi th c hi n, ch ự ệ ươ ng tr ì nh s b t đ u b ng ẽ ắ ầ ằ
vi c th c hi n c ệ ự ệ á c l nh trong h ệ à m main( ).
Trong hàm main( ) có th cể ó l nh g i t i c ệ ọ ớ á c hàm khác.
Ph n 6: N i dung c a cầ ộ ủ ác hàm đã khai báo
Cài đ t (vi t mã) cho c ặ ế á c hàm đã khai báo nguyên m u ph n 3 ẫ ở ầ
Trang 38Ví d m t ch ụ ộ ươ ng trình C đ n gi n ơ ả
/* Chuong trinh sau se nhap vao tu ban phim
2 so nguyen va hien thi ra man hinh tong, hieu tich cua 2 so nguyen vua nhap vao */
Trang 39Ví d m t chụ ộ ương trình C đ n gi n (ti p)ơ ả ế
// Nhap vao tu ban phim 2 so nguyen
printf("\nNhap vao so nguyen thu nhat: ");
Trang 40Ví d m t chụ ộ ương trình C đ n gi n (ti p)ơ ả ế
// Hien thi cac gia tri ra man hinh
printf("\n Tong cua 2 so vua nhap la
Trang 441.5. Bài t p (ti p) ậ ế
Bài t p 3:ậ
Cho bi t bi u di n dế ể ễ ướ ại d ng s th c d u ố ự ấ
ph y tĩnh c a các h ng s th c sau:ẩ ủ ằ ố ự
535.235 E+3
256.89 E1
10.103 E5
Trang 451.5. Bài t p (ti p) ậ ế
Bài t p 4: Ch y th hai chậ ạ ử ương trình sau
xem có chương trình nào có l i không? N u ỗ ế
có l i thì hãy xem trình biên d ch báo là l i ỗ ị ỗ