ELSENếu Biểu_thức_điều_kiện cho kết quả khác không tức điều Nếu Biểu_thức_điều_kiện cho kết quả khác không tức điềukiện đó là đúng thì thực hiện khối_lệnh_1, ngược lại thực hiện khối_lện
Trang 1TIN HỌC ĐẠI CƯƠNG
Lý thuyết: 6 buổi Thực hành: 8 buổi
GVHD: Dương Khai Phong Email: khaiphong@gmail.com
Ngôn ngữ lập trình: C
Trang 2NỘI DUNG CÁC BUỔI HỌC
1. Tổng quan về C (chương 1,2)
2. Các cấu trúc điều khiển trong C (chương 3)
3. Hàm và cấu trúc chương trình (chương 4)
4. Mảng, chuỗi và con trỏ (chương 5)
5. Kiểu cấu trúc, đệ qui, tập tin (chương 6,7,8)
6. Ôn tập
Trang 3CHƯƠNG 3: CÁC CẤU TRÚC ĐIỀU KHIỂN
1 Câu lệnh , khối lệnh trong C
2 Cấu trúc điều khiển là gì?
3 Cấu trúc điều kiện: IF ELSE
4 Cấu trúc rẽ nhánh: SWITCH CASE
5 Cấu trúc lặp: FOR, WHILE, DO WHILE
6 Cấu trúc điều khiển GOTO
Trang 41 CÂU LỆNH , KHỐI LỆNH TRONG C
a Khái niệm về câu lệnh:
Mỗi câu lệnh (code) thực hiện một chức năng nào đó (như lệnhgán, xuất dữ liệu ra màn hình ) Mỗi câu lệnh có thể được viết
trên một dòng hoặc nhiều dòng và được kết thúc bằng dấu chấm
phẩy “;”.
b Khái niệm về khối lệnh:
- Một dãy các câu lệnh được đặt trong cặp dấu ngoặc nhọn {
và } thì được gọi là một khối lệnh.
- Những câu lệnh của một hàm hay một cấu trúc có nhiều lệnhphải được đặt trong dấu { }
Lưu ý:
- Khi muốn ghi chú một câu lệnh ta dùng dấu : // nội dung
- Khi muốn ghi chú một khối lệnh ta dùng dấu : /* nội dung */
Trang 52 CẤU TRÚC ĐIỀU KHIỂN TRONG C
a Cấu trúc điều khiển là gì?
Là cách thức cho phép thay đổi trật tự thực hiện các câu lệnh (khối lệnh) do đó máy có thể từ câu lệnh này nhảy tới thực hiện một câu lệnh trước hoặc sau nó.
DO WHILE
Trang 63 CẤU TRÚC ĐIỀU KIỆN: IF ELSE
Nếu Biểu_thức_điều_kiện cho
kết quả khác không (tức điều
Nếu Biểu_thức_điều_kiện cho
kết quả khác không (tức điềukiện đó là đúng) thì thực hiện
khối_lệnh_1, ngược lại thực
hiện khối_lệnh_2.
Trang 73 CẤU TRÚC ĐIỀU KIỆN: IF ELSE
Một số ví dụ về if:
Ví dụ 1: Nếu tuổi của người nào đó trên 18 tuổi thì xuất
thông báo “Bạn là thanh niên”?
printf (“Ban la thanh nien”);
Nếu khối lệnh sau if chỉ có 1 lệnh thì ta có thể không cần dùng cặp dấu ngoặc nhọn {…}
Trang 83 CẤU TRÚC ĐIỀU KIỆN: IF ELSE
Một số ví dụ về if:
Ví dụ 2: Nếu tuổi của người nào đó trên 18 tuổi thì xuất thông báo
“Bạn là thanh niên”, ngược lại “Bạn chưa đủ tuổi”?
Trang 93 CẤU TRÚC ĐIỀU KIỆN: IF ELSE
Một số ví dụ về if:
Ví dụ 3: Giải ptb1 ax+b=0 với a,b là số nguyên nhập từ bàn phím
int a,b; float x;
printf (“Cho biet a=”); scanf (“%d”,&a);
printf (“Cho biet b=”); scanf (“%d”,&b);
Trang 10- Kết quả của biểu thức tính toán
phải là giá trị nguyên, ký tự.
- Các giá trị 1,2, ,k: phải là hằng
nguyên, ký tự.
- Khi giá trị biểu thức khác tất cảcác giá trị 1,2, ,k thì câu lệnh sau
default được thực hiện
- Câu lệnh break dùng để thoát khỏilệnh switch sau khi thực hiện xong
break thì các lệnh bên dưới sẽ được thực hiện mà không xét lại điều kiện)
Trang 11printf (“chin”);break;
default :
printf (“Khong biet”);
}
Trang 125 CẤU TRÚC LẶP: FOR, WHILE, DO WHILE
Nhận xét: khi một lệnh / khối lệnh phải thực hiện nhiều
lần thì ta dùng cấu trúc lặp để tránh viết lại lệnh / khối lệnh nhiều lần Ta có các cấu trúc lặp sau:
Trang 13printf(“%d “,i);
}
Trang 14if (i%2==0)
printf(“%d “,i);}
Trang 15 B3: nếu giá trị biểu thức 2 <> 0 thì
thực hiện khối lệnh, ngược lại thoát
B4: tính giá trị biểu thức 3 rồi quay lại B2
biểu thức 1;
for (;biểu_thức 2;){
<Khối_lệnh>;biểu thức 3;}
Trang 165 CẤU TRÚC LẶP: for
Các lệnh dùng kết hợp với cấu trúc lặp : (xem trang 70,71)
break: dùng để để thoát khỏi vòng lặp for ngay lặp tức.
continue: dùng để bắt đầu thực hiện một vòng lặp mới của chu
trình bên trong nhất chứa nó (không thực hiện những lệnh sau nó)
int dem;
for (dem=0;dem<=20;dem++) {
if ((dem==5) || (dem==11))
continue;
printf(“dem = %d”,dem);
} }
Trang 175 CẤU TRÚC LẶP:
Ví dụ: viết CT cho phép nhập một số nguyên trong
khoảng 10, nếu nhập lớn hơn thì bắt nhập lại.
=> Nhận xét : chương trình có tính chất lặp đi lặp lại nhiều lần nhưng số lần lặp không xác định trước => while
Trang 195 CẤU TRÚC LẶP:
Ví dụ: viết lại CT cho phép nhập một số nguyên trong
khoảng 0 9, nếu nhập ngoài khoảng này thì bắt nhập lại.
} while (so>=0 && so<=9);
printf(“So ban da nhap chinh xac la %d”,so);
}
Trang 20Thực hiện khối lệnh của vòng lặp cho đến khi biểu
thức có giá trị bằng 0 (hay biểu thức có giá trị false).
Vòng lặp do while cũng thường được sử dụng khi
số lần lặp không xác định trước.
Số lần lặp tối thiểu là 1 lần.
Trang 215 CẤU TRÚC LẶP: while, do while
Các lệnh dùng kết hợp với cấu trúc lặp : (xem trang
74)
break : dùng để để thoát khỏi vòng lặp ngay lặp tức.
continue : dùng để bắt đầu thực hiện một vòng lặp
mới của chu trình bên trong nhất chứa nó (không thực
hiện những lệnh sau nó)
Ví du: xem thêm trang 75,76
Trang 225 CẤU TRÚC ĐIỀU KHIỂN: goto
Cấu trúc điều khiển goto: là sự thể hiện giữa cấu trúc điều kiện và cấu trúc lặp, được sử dụng kết hợp với nhãn lệnh theo cú pháp sau:
goto <Tên_nhãn>;
Lưu ý :
Các lệnh goto và nhãn phải nằm trong cùng 1 hàm
Không cho phép dùng goto nhảy từ ngoài vào trong
1 khối lệnh nhưng ngược lại thì hợp lệ.
Trang 235 CẤU TRÚC ĐIỀU KHIỂN: goto
Trang 24PHẦN BÀI TẬP ÔN TẬP
CHƯƠNG 1,2,3
Trang 25Bài 1/ trang 77: cho biết kết quả thực thi CT
Phép toán: () Phép toán điều kiện: ? Phép toán gán: =
=> Thứ tự ưu tiên các phép toán (tr34)
Trang 26Bài 2/ trang 78: cho biết kết quả thực thi CT
b = 0 (do b là biến toàn cục)
Biểu thức : (a>=b && b)
(-1>=0 && b)
Do vế đầu của biểu thức là
false nên CT sẽ không thực hiện tiếp vế sau –b (do trong phép
&& (AND): 1 vế trong biểu thức có giá trị false thì toàn bộ biểu thức có giá trị false =>
vòng while không thực hiện
Kết quả in ra:
-1 0
Trang 27Bài 3/ trang 79: cho biết kết quả thực thi CT
-a=b++ tức gán a=b trước
rồi thực hiện b=b+1 => a=0
Trang 28Bài 4/ trang 79: cho biết kết quả thực thi CT
i=0: gán a+=i => a=a+i => a=0
Trang 29Bài 5/ trang 80: cho biết kết quả thực thi CT
i=0:không thực hiện lệnh nàoi=1:không thực hiện lệnh nàoi=2: so sánh i<a => 2<2: false
Trang 30Bài 6/ trang 81: cho biết kết quả thực thi CT
for(i=0,j=1;i<5;i++,j+=i++)
printf(“i=%d j=%d i+j=%d \n ”,i,j,i+j);
i++;
j+=i++;
}