Giáo trình Lập trình C căn bản

BÀI 1 : NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH. 7

1.1 Mục tiêu. 7

1.2 Lý thuyết. 7

1.2.1 Ngôn ngữ lập trình (Programming Language) . 7

1.2.1.1 Thuật giải (Algorithm). 7

1.2.1.2 Chương trình (Program) . 7

1.2.1.3 Ngôn ngữ lập trình (Programming language) . 8

1.2.2 Các bước lập trình . 8

1.2.3 Kỹ thuật lập trình . 8

1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nhập-xử lý-xuất) . 8

1.2.3.2 Sử dụng lưu đồ (Flowchart). 9

BÀI 2 : LÀM QUEN LẬP TRÌNH C QUA CÁC VÍ DỤ ĐƠN GIẢN. 12

2.1 Mục tiêu.12

2.2 Nội dung.12

2.2.1 Khởi động và thoát BorlandC. 12

2.2.1.1 Khởi động. 12

2.2.1.2 Thoát. 13

2.2.2 Các ví dụ đơn giản . 13

2.2.2.1 Ví dụ 1. 13

2.2.2.2 Ví dụ 2. 15

2.2.2.3 Ví dụ 3. 16

2.2.2.4 Ví dụ 4. 16

BÀI 3 : CÁC THÀNH PHẦN TRONG NGÔN NGỮ C . 18

3.1 Mục tiêu.18

3.2 Nội dung.18

3.2.1 Từ khóa. 18

3.2.2 Tên. 18

3.2.3 Kiểu dữ liệu . 18

3.2.4 Ghi chú. 19

3.2.5 Khai báo biến . 19

3.2.5.1 Tên biến . 19

3.2.5.2 Khai báo biến . 19

3.2.5.3 Vừa khai báo vừa khởi gán. 20

3.2.5.4 Phạm vi của biến. 20

BÀI 4 : NHẬP / XUẤT DỮ LIỆU. 21 U

4.1 Mục tiêu.21

4.2 Nội dung.21

pdf135 trang | Chia sẻ: lethuong715 | Lượt xem: 627 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Lập trình C căn bản, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 //hoac is += i; 
 printf("Tong: %d", is); 
 getch(); 
} 
 F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu 
 ) Kết quả in ra màn hình 
Nhap vao so n : 5 
Tong: 15. 
_ 
Bạn thay các dòng từ 11 đến 12 bằng câu lệnh: 
while(is = is+i, i++ < in); 
Chạy lại chương trình, quan sát và nhận xét kết quả. 
Ví dụ 13: Thay dòng for(; (c = getchar()) != DAU_CHAM; ) ở ví dụ 5 thành dòng while 
((c = getchar()) != DAU_CHAM) 
 ) Chạy lại chương trình, quan sát và nhận xét kết quả. 
Ví dụ 14: Ở ví dụ 6, thay dòng int dem; thành dòng int dem = 0; , thay dòng for(idem=0; 
(c = getchar()) != DAU_CHAM; ) thành dòng while ((c = getchar()) != DAU_CHAM) 
 ) Chạy lại chương trình, quan sát và nhận xét kết quả. 
Ví dụ 15: Ở ví dụ 7 và 8, thay dòng for( ; ; ) thành dòng while(1) 
 ) Chạy lại chương trình, quan sát và nhận xét kết quả. 
6.2.5 Lệnh dowhile 
Vòng lặp thực hiện lặp lại cho đến khi biểu thức sai. 
• Cú pháp lệnh 
 do 
 khối lệnh; 
 while (biểu thức); 
 ) từ khóa do, while phải viết bằng chữ thường 
 # Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { } 
• Lưu đồ 
 Vào ) Thực hiện 
Hanoi Aptech Computer Education Center 
khối lệnh 
biểu thức 
khối lệnh 
 Đúng 
Giáo trình Lập trình C căn bản Trang 59 
Hanoi Aptech Computer Education Center 
 Kiểm tra biểu thức 
Nếu đúng thì 
lặp lại thực hiện khối lệnh 
Nếu sai thì 
kết thúc vòng lặp 
(khối lệnh được thi hành 1 lần) 
 + Biểu thức: có thể là một biểu thức hoặc nhiều biểu thức con. Nếu là nhiều biểu thức 
con thì cách nhau bởi dấu phẩy (,) và tính đúng sai của biểu thức được quyết định bởi biểu thức 
con cuối cùng. 
+ Trong thân dowhile (khối lệnh) có thể chứa một hoặc nhiều cấu trúc điều khiển khác. 
+ Trong thân dowhile có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ 
qua các câu lệnh còn lại trong thân). 
+ Muốn thoát khỏi vòng lặp dowhile tùy ý có thể dùng các lệnh break, goto, return. 
Ví dụ 16: Viết chương trình kiểm tra password. 
Dòng File Edit Search Run Compile Debug Project Option Window Help 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
/* Chuong trinh kiem tra mat khau */ 
#include 
# define PASSWORD 12345 
void main(void) 
{ 
 int in; 
 do 
 { 
 printf("Nhap vao password: "); 
 scanf("%d", &in); 
 } while (in != PASSWORD) 
} 
 F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu 
 ) Kết quả in ra màn hình 
Nhap vao password: 1123 
Nhap vao password: 12346 
Nhap vao password: 12345 
Bạn thay các dòng từ 10 đến 14 bằng câu lệnh: 
do{}while(printf("Nhap vao password: "), scanf("%d", &in), 
in != PASSWORD); 
Chạy lại chương trình và quan sát kết quả. 
Ví dụ 17: Viết chương trình nhập vào năm hiện tại, năm sinh. In ra tuoi. 
Dòng File Edit Search Run Compile Debug Project Option Window Help 
1 
2 
3 
4 
5 
6 
7 
8 
/* Chuong trinh in tuoi */ 
#include 
# define CHUC "Chuc ban vui ve (: >\n" 
void main(void) 
{ 
Giáo trình Lập trình C căn bản Trang 60 
Hanoi Aptech Computer Education Center 
 9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
 unsigned char choi; 
 int inamhtai, inamsinh; 
 do 
 { 
 printf("Nhap vao nam hien tai: "); 
 scanf("%d", inamhtai); 
 printf("Nhap vao nam sinh: "); 
 scanf("%d", inamsinh); 
 printf("Ban %d tuoi, %s", inamhtai – inamsinh, CHUC); 
 printf("Ban co muon tiep tuc? (Y/N)\n"); 
 choi = getch(); 
 } while (choi == 'y' || choi == 'Y'); 
} 
 F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu 
 ) Kết quả in ra màn hình 
Nhap vao nam hien tai: 2002 
Nhap vao nam sinh: 1980 
Ban 22 tuoi, chuc ban vui ve (:> 
Ban co muon tiep tuc? (Y/N) 
_ (nếu gõ y hoặc Y tiếp tục thực hiện 
chương trình, ngược lại gõ các phím 
khác chương trình sẽ thoát) 
Bạn lại chương trình với số liệu khác. 
Quan sát, đánh giá và nhận xét kết quả. 
6.2.6 Vòng lặp lồng nhau 
Ví dụ 18: Vẽ hình chữ nhật đặc bằng các dấu '*' 
Dòng File Edit Search Run Compile Debug Project Option Window Help 
1 
2 
3 
4 
5 
6 
7 
8 
 9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/* Ve hinh chu nhat dac */ 
#include 
#include 
void main(void) 
{ 
 int i, ij, idai, irong; 
 printf("Nhap vao chieu dai: "); 
 scanf("%d", &idai); 
 printf("Nhap vao chieu rong: "); 
 scanf("%d", &irong); 
 for (i = 1; i <= irong; i++) 
 { 
 for (ij = 1; ij <= idai; ij++) //in mot hang voi chieu dai dau * 
 printf("*"); 
 printf("\n"); //xuong dong khi in xong 1 hang 
 } 
 getch(); 
} 
 F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu 
 ) Kết quả in ra màn hình 
Giáo trình Lập trình C căn bản Trang 61 
Hanoi Aptech Computer Education Center 
Nhap vao chieu dai: 10 
Nhap vao chieu rong: 5 
* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 
_ 
Bạn lại chương trình với số liệu khác. 
Quan sát, đánh giá và nhận xét kết quả. 
Ví dụ 19: Vẽ hình chữ nhật đặc có chiều rộng = 10 hàng. Hàng thứ 1 = 10 số 0, hàng thứ 2 
= 10 số 1 
Dòng File Edit Search Run Compile Debug Project Option Window Help 
1 
2 
3 
4 
5 
6 
7 
8 
 9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
/* Ve hinh chu nhat bang cac so tu 0 den 9 */ 
#include 
#include 
void main(void) 
{ 
 int i = 0, ij; 
 while (i <= 9) 
 { 
 ij = 0; //khoi tao lai ij = 0 cho lan in ke tiep 
 while (ij++ <= 9) //in 1 hang 10 so i 
 printf("%d", i); 
 printf("\n"); //xuong dong khi in xong 1 hang 
 i++; //tang i len 1 cho vong lap ke tiep 
 } 
 getch(); 
} 
 F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu 
 ) Kết quả in ra màn hình 
0 0 0 0 0 0 0 0 0 0 
1 1 1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 2 2 
3 3 3 3 3 3 3 3 3 3 
4 4 4 4 4 4 4 4 4 4 
5 5 5 5 5 5 5 5 5 5 
6 6 6 6 6 6 6 6 6 6 
7 7 7 7 7 7 7 7 7 7 
8 8 8 8 8 8 8 8 8 8 
9 9 9 9 9 9 9 9 9 9 
_ 
Thay dòng 11, 12 thành câu lệnh 
for (ij = 0; ij <= 9; ij++) 
Chạy lại chương trình. 
Quan sát, đánh giá và nhận xét kết quả. 
 ) Các lệnh lặp for, while, dowhile có thể lồng vào chính nó, hoặc lồng vào lẫn 
nhau. Nếu không cần thiết không nên lồng vào nhiều cấp dễ gây nhầm lẫn khi lập trình 
cũng như kiểm soát chương trình. 
6.2.7 So sánh sự khác nhau của các vòng lặp 
- Vòng lặp for thường sử dụng khi biết được số lần lặp xác định. 
- Vòng lặp thường while, dowhile sử dụng khi không biết rõ số lần lặp. 
Giáo trình Lập trình C căn bản Trang 62 
Hanoi Aptech Computer Education Center 
- Khi gọi vòng lặp while, dowhile, nếu biểu thức sai vòng lặp while sẽ không được 
thực hiện lần nào nhưng vòng lặp dowhile thực hiện được 1 lần. 
 ) Số lần thực hiện ít nhất của while là 0 và của dowhile là 1 
6.3 Bài tập 
1. Viết chương trình in ra bảng mã ASCII 
2. Viết chương trình tính tổng bậc 3 của N số nguyên đầu tiên. 
3. Viết chương trình nhập vào một số nguyên rồi in ra tất cả các ước số của số đó. 
4. Viết chương trình vẽ một tam giác cân bằng các dấu * 
5. Viết chương trình tính tổng nghịch đảo của N số nguyên đầu tiên theo công thức 
S = 1 + 1/2 + 1/3 +  + 1/N 
6. Viết chương trình tính tổng bình phương các số lẻ từ 1 đến N. 
7. Viết chương trình nhập vào N số nguyên, tìm số lớn nhất, số nhỏ nhất. 
8. Viết chương trình nhập vào N rồi tính giai thừa của N. 
9. Viết chương trình tìm USCLN, BSCNN của 2 số. 
10. Viết chương trình vẽ một tam giác cân rỗng bằng các dấu *. 
11. Viết chương trình vẽ hình chữ nhật rỗng bằng các dấu *. 
12. Viết chương trình nhập vào một số và kiểm tra xem số đó có phải là số nguyên tố hay 
không? 
13. Viết chương trình tính số hạng thứ n của dãy Fibonaci. 
Dãy Fibonaci là dãy số gồm các số hạng p(n) với: 
p(n) = p(n-1) + p(n-2) với n>2 và p(1) = p(2) = 1 
Dãy Fibonaci sẽ là: 1 1 2 3 5 8 13 21 34 55 89 144 
14. Viết chương trình tính giá trị của đa thức 
Pn = anxn + an-1xn-1 +  + a1x1 + a0 
Hướng dẫn đa thức có thể viết lại 
Pn = ((anx + an-1)x + an-2)x +  + a0 
Như vậy trước tiên tính anx + an-1, lấy kết quả nhân với x, sau đó lấy kết quả nhân với 
x cộng thêm an-2, lấy kết quả nhân với x  n gọi là bậc của đa thức. 
15. Viết chương trình tính xn với x, n được nhập vào từ bàn phím. 
16. Viết chương trình nhập vào 1 số từ 0 đến 9. In ra chữ số tương ứng. Ví dụ: nhập vào 
số 5, in ra "Năm". 
17. Viết chương trình phân tích một số nguyên N thành tích của các thừa số nguyên tố. 
18. Viết chương trình lặp lại nhiều lần công việc nhập một ký tự và in ra mã ASCII của 
ký tự đó, khi nào nhập số 0 thì dừng. 
19. Viết chương trình tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số 
nguyên. 
20. Viết chương trình in lá cờ nước Mỹ. 
21. Viết chương trình tính dân số của một thành phố sau 10 năm nữa, biết rằng dân số 
hiện nay là 6.000.000, tỉ lệ tăng dân số hàng năm là 1.8% . 
Giáo trình Lập trình C căn bản Trang 63 
22. Viết chương trình tìm các số nguyên gồm 3 chữ số sao cho tích của 3 chữ số bằng 
tổng 3 chữ số. Ví dụ: 1*2*3 = 1+2+3. 
23. Viết chương trình tìm các số nguyên a, b, c, d khác nhau trong khoảng từ 0 tới 10 
thỏa mãn điều kiện a*d*d = b*c*c*c 
24. Viết chương trình tính tổ hợp N chập K (với K <= N) 
C=((N-k+1) * (N-k+2)*N)/1*2*3**k 
Trong đó C là một tích gồm k phần tử với phần tử thứ I là (N-k+1)/I. Để viết chương 
trình này, bạn dùng vòng lặp For với biến điều khiển I từ giá trị đầu là 1 tăng đến giá trị cuối là k 
kết hợp với việc nhân dồn vào kết quả C. 
25. Viết chương trình giải bài toán cổ điển sau: 
Trăm trâu, trăm cỏ 
Trâu đứng ăn năm 
Trâu nằm ăn ba, 
Ba trâu già ăn một 
Hỏi mỗi loại trâu có bao nhiêu con. 
26. Viết chương trình giải bài toán cổ điển sau: 
Vừa gà vừa chó 36 con 
Bó lại cho tròn, đếm đủ 100 chân 
Hỏi có bao nhiêu gà, bao nhiêu chó 
27. Viết chương trình in ra bảng cửu chương 
28. Viết chương trình xác định xem một tờ giấy có độ dày 0.1 mm. Phải gấp đôi tờ giấy 
bao nhiêu lần để nó có độ dày 1m. 
29. Viết chương trình tìm các số nguyên tố 

File đính kèm:

  • pdfGiao_Trinh_C_Can_Ban.pdf