LI NÓI U cài t thành công mt thut toán thành chng trình bng ngôn ng lp trình C.. Mt s t khóa thông dng hay dùng trong ngôn ng lp trình C short sizeof static struct switch typedef un
Trang 1TRNG I HC PHM VN NG KHOA CÔNG NGH THÔNG TIN
Trang 2LI NÓI U
cài t thành công mt thut toán thành chng trình bng ngôn ng lp trình C
Bài gi ng c biên son và gi ng dy cho sinh viên nm th nht, bc i
ch
C∀ng nhân ây tôi xin chân thành cám n hi ng chuyên môn khoa Công ngh thông tin, Th.S Hunh Triu V# và Th.S Võ c Lân ã dành thi gian c và
hc tp c∃a sinh viên Khoa Công ngh thông tin - Trng i hc Phm Vn ng
Xin chân thành cám n quý thy cô, các bn ng nghip !
Qung Ngãi, ngày 25/12/2013
Trang 3Bài ging C s lp trình -1-
Mc tiêu
Kt thúc chng, sinh viên có th:
khóa, tên và cách t tên, cách ghi li chú thích
Hiu và vn dng c các phép toán, các hàm ã c xây dng cho các
kiu d liu c s: kiu s nguyên, kiu s thc, kiu ký t, kiu boolean
- Không th nh ngha li t khóa
- Các t khóa trong C c vit di dng ch thng
Mt s t khóa thông dng hay dùng trong ngôn ng lp trình C
short sizeof static struct switch typedef
union usnigned void volatile while asm …
1.1.3 Tên và cách t tên
Qui tc t tên:
- Tên bao gm dãy các ký t lin nhau nh các ch cái a,…,z, A,… Z, các ch
Trang 4Bài ging C s lp trình -2-
- Tên không c bt u bng ch s
ký t ti a trong tên ca Turbo C là 32
- Tên không c trùng vi t khóa
- C là ngôn ng lp trình phân bi t ch hoa và ch thng, vì vy tên NGHIEM s! khác vi các tên: Nghiem, nghiem,…
- Không c t tên bng ting Vi t (C xem cách làm ó là sai cú pháp)
- Các ví d v t tên:
+ Mt s tên t úng: Gia_tri, _DX, pi, …
+ Mt s tên t sai: 3X, PI$, Bien 1,
……… Khai báo các bin ngoài
………
<Kiu d li u tr v> main() /* chng trình C bt buc phi có hàm main */
{ Khai báo các bin cc b, các hng ca hàm main
Các câu l nh thc hi n ca hàm main
return <Kt qu tr v>
}
Trang 5Bài ging C s lp trình -3-
……… Function prototype /* nh ngha ni dung tng minh ca hàm */
{
Khai báo các bin, hng ca hàm
Các câu l nh thc hi n ca hàm
}
……… Nh vy, mt chng trình C thng bao gm các thành phn: các ch∋ tin x lý, các nh ngha: kiu, hng, khai báo bin ngoài, các hàm t to, hàm main Trong ó:
Ví d 1.1: #include <stdio.h>
+ #define <Tên hng s> <Giá tr hng> /* nh ngha các hng s */
Ví d 1.2: #define MAX 100
+ typedef <tên kiu c(> <tên kiu mi> /* nh ngha kiu d li u */
Ví d 1.3: typedef int Songuyen;
+ Function prototype /* khai báo nguyên m&u hàm gm tên và tham s */
Trong phn khai báo nguyên m&u hàm, bn ch∋ ra kiu giá tr tr v ca hàm, tên hàm, tham s hình th c ca hàm
Ví d 1.4: Khai báo nguyên m&u hàm tính di n tích hình tròn
float Tinh_dien_tich(float radius);
+ Khai báo các bin ngoài (bin toàn cc): Là ni khai báo các bin có tm tác dng trong c chng trình
Ví d 1.5: int n;
+ Trong chng trình C có th có nhiu hàm, trong ó hàm main là hàm chính, bt buc phi có và các câu l nh c thc hi n tun t t trên xung di V nguyên tc hàm phi tr li mt giá tr cho tên hàm, nhng nu không mun s dng giá tr tr v, bn có th vit nh sau: void main() T khóa void ch∋ hàm không có giá tr riêng ca nó (t c hàm không mang mt giá tr c th nào khi thc
hi n xong hàm)
+ /* nh ngha ni dung tng minh ca hàm */
Ví d 1.6: )nh ngha ni dung hàm tính di n tích hình tròn vi tham s là radius (bán kính ca hình tròn)
float Tinh_dien_tich(float radius)
#define PI 3.14
Trang 6printf(“Chao cac ban\n”);
printf(“Hen gap lai\n”);
Ký t \n là ký t iu khin xung dòng mi
Phn thân ca chng trình bao gm on chng trình:
main() {
} getch(); Khi chng trình vit ra màn hình 2 câu “Chao cac ban” và
“Hen gap lai” thì dng li cho ngi s dng xem Nu không có l nh này thì chng trình tr∃ v màn hình v#n bn chng trình, ngi s dng s! không xem
Ví d 1.8: Chng trình tính di n tích hình tròn
Gii
Trang 7float R, Dien_tich; Khai báo bin R và Dien_tich có kiu s thc
printf(“Nhap ban kinh R = “); in ra màn hình dòng: Nhap ban kinh R =
c giá tr vào cho ô nh ca bin R
Dòng l nh printf(“Dien tich hinh tron co ban kinh %f là
%f”,R,Dien_tich); In ra giá tr ca bin R và bin Dien_tich vi qui cách in là s thc
Trang 8Bài ging C s lp trình -6-
return(dientich);
}
Gii thích chng trình ví d 1.9
#define PI 3.14 )ây là khi ghép nh ngha mt macro Vi nh ngha
Vi c tính di n tích c thc hi n bng hàm Tinh_dien_tich vi tham s
là radius Nguyên m&u hàm Tinh_dien_tich c khai náo trc hàm main() và nh ngha tng minh ni dung ca hàm ∃ sau hàm main
tính là mt tp hp d li u c hiu là các l nh
Kiu d liu là mt tp hp các giá tr mà mt bin thuc kiu ó có th nhn c và trên ó xác nh mt s phép toán Các kiu d li u này thng c quy nh b∃i ngôn ng lp trình, hay nói cách khác mi ngôn ng lp trình có mt tp các kiu d li u khác nhau Trong các ngôn ng lp trình, mi kiu d li u ch∋ biu di∀n c mt min giá tr xác nh nào ó, s gii hn này là do ph thuc vào kích thc ca vùng nh biu di∀n s ó Vì vy, các thông tin c trng ca mt kiu d li u bao gm:
+ Tên kiu d li u
+ Kích thc vùng nh biu di∀n nó (t c min giá tr)
+ Các phép toán s dng trên kiu d li u ó
1.3.2 Kiu s nguyên
Là tp hp các s nguyên có th biu di∀n c trong máy tính và c nh ngha vi mt s t khóa Mi t khóa tng ng vi mt kiu s nguyên có di
Trang 9Bài ging C s lp trình -7-
byte
Bng các t khóa s nguyên và phm vi biu din
Character char 1 -128 +127
Short Integer short 2 -32768…+32767
Unsigned character unsigned char 1 0…255
Unsigned Integer unsigned int 2 0 65535
Unsigned Short Integer unsigned short 2 0 65535
Long Integer long 4 -2147483648…
+2147483647 Unsigned Long Integer Unsigned long 0… 4294967295
Lu ý: Kiu char thc cht là kiu ký t, song C cho phép dùng các ký t
dng nh là s nguyên (ch mã ASCII tng ng ca ký t ó) nhng khi tính toán trong biu th c ký t thì nó c hiu là ký t ây chính là s m!m d∀o ca ngôn ng lp trình C
Bng lit kê các phép tính s hc i vi kiu s nguyên
) kh∃i to mt bin có kiu nguyên ta vit:
int i; i = 10; Ho c vit int i = 10;
Trang 10Bài ging C s lp trình -8-
Hng s nguyên có nh kiu trc: ) ghi hng s nguyên vi kiu nh trc bn ghi thêm mt ký t vào cui dãy s: L cho kiu long, U cho kiu Unsigned Integer, UL cho kiu Unsigned Long
Ví d 1.11: 20000U là hng s nguyên theo kiu Unsigned Integer;
+ Ngoài cách vit theo dng s thp phân, C còn quy c cho phép vit s nguyên di dng s Hecxa, ký t bt u 0x ho ... iu khin xung dòng mi
Phn thân ca chng trình bao gm on chng trình:
main() {
} getch(); Khi chng trình vit hình câu “Chao cac ban”
“Hen gap lai”... cho ngi s dng xem Nu khơng có l nh chng trình tr∃ v hình v#n bn chng trình, ngi s dng s! khơng xem
Ví d 1.8: Chng trình tính di n tích hình trịn
Gii... kiu d li u thng c quy nh b∃i ngơn ng lp trình, hay nói cách khác mi ngơn ng lp trình có mt tp kiu d li u khác Trong ngôn ng lp trình, mi kiu d li u ch∋ biu di∀n c mt min