LẬP TRÌNH CĂN BẢN
CÁC LỆNH CĨ CẤU TRÚC
Giảng viên: TS.Trương Quốc Bảo
NỘI DUNG CỦA CHƯƠNG
Khối lệnh trong C
Cấu trúc rẽ nhánh
Cấu trúc lựa chọn
Cấu trúc vòng lặp
Các câu lệnh “đặc biệt”
Thursday, January 15, 2015 Lập trình căn bản 2
KHỐI LỆNH TRONG C (1)
Là 1 dãy các khai báo cùng với các câu lệnh nằm
trong cặp dấu ngoặc móc { và }.
{
S1
S1; S1;
S2
S2; S2;
…..
Sn Sn;
…..
Sn; }
Thursday, January 15, 2015 Lập trình căn bản 3
KHỐI LỆNH TRONG C (2)
1 khối lệnh có thể chứa nhiều khối lệnh khác gọi
là khối lệnh lồng nhau (số khối lồng nhau là
không hạn chế).
1 khối lệnh có thể được dùng như 1 lệnh đơn.
{ 1 phát biểu
N phát biểu
}
Thursday, January 15, 2015 Lập trình căn bản 4
TẦM VỰC (PHẠM VI) CỦA BIẾN
Có thể khai báo các biến cùng
tên trong các khối.
Nếu một biến được khai báo bên
ngoài khối lệnh và không trùng
tên với biến bên trong khối lệnh
thì nó cũng dùng được bên trong
khối.
Một khối lệnh con có thể sử
dụng các biến bên ngồi, nhưng
điều ngược lại khơng đúng.
Thursday, January 15, 2015 Lập trình căn bản 5
TẦM VỰC (PHẠM VI) CỦA BIẾN
Các biến sẽ bị tác động hay
thay đổi giá trị trong phạm vi
khối lệnh mà nó khai báo.
Các khối lệnh chứa khối lệnh
khác (khối lệnh bên ngoài) và
có biến trùng với biến trong
khối lệnh bên trong, khi đó:
Khi thay đổi giá trị của biến trong
khối lệnh bên ngoài, giá trị biến sẽ
tác động lên khối lệnh bên trong,
Khi thay đổi giá trị của biến trong
khối lệnh bên trong sẽ không tác
động lên khối lệnh bên ngoài.
Thursday, January 15, 2015 Lập trình căn bản 6
CẤU TRÚC RẼ NHÁNH - IF
Statement được thực hiện nếu boolean_expression có
giá trị đúng (true), !=0.
Begin
Boolean False
expression End
True
Thursday, January 15, 2015 StatLeậmp trìenhncătnsbản 7
CẤU TRÚC RẼ NHÁNH - IF
#include <stdio.h>
#include <conio.h>
int main (){
float d;
printf("Nhap diem = "); scanf("%f",&d);
if (d >= 5.0 )
printf(“Ban da dau mon nay”);
getch();
return 0;
}
Thursday, January 15, 2015 Lập trình căn bản 8
CẤU TRÚC RẼ NHÁNH ĐẦY ĐỦ - IF… ELSE
boolean_expression !=0 => thực hiện Statement1,
boolean_expression ==0 => thực hiện Statement2.
Begin
Boolean False
expression
Statement2
Thursday, January 15, 2015 True End 9
StateLậmp treìnnh ctă1n bản
CẤU TRÚC RẼ NHÁNH ĐẦY ĐỦ - IF… ELSE
#include <stdio.h>
#include <conio.h>
int main (){
float a;
printf("Nhap a = "); scanf("%f",&a);
if (a >=5.0 )
printf(“Ban da dau mon nay”);
else
printf(“Rot roi! Ban can dang ky hoc lai!”);
getch();
return 0;
}
Thursday, January 15, 2015 Lập trình căn bản 10
CẤU TRÚC RẼ NHÁNH – NHẦM LẪN
Chương trình trên sai ở đâu?
Thursday, January 15, 2015 Lập trình căn bản 11
CẤU TRÚC RẼ NHÁNH – CHÚ Ý
Câu lệnh if-else lồng nhau
else sẽ kết hợp với if gần nhất chứa có else
Trong trường hợp if bên trong khơng có else thì
phải viết nó trong cặp dấu {} để tránh sự kết hợp
else if sai.
Ví dụ
Thursday, January 15, 2015 Lập trình căn bản 12
CẤU TRÚC LỰA CHỌN - SWITCH
Dùng 1 dãy các câu lệnh if để thiết lập các lựa chọn
rẽ nhánh.
Thursday, January 15, 2015 Lập trình căn bản 13
CẤU TRÚC LỰA CHỌN - SWICH
switch-case có thể đưa đến mã máy (machine code)
hiệu quả hơn (vì jump tables có thể được dùng)
Thursday, January 15, 2015 Lập trình căn bản 14
CẤU TRÚC LỰA CHỌN - SWICH
Cú pháp
Biểu Thức Chọn
expr
value1 value2 valuen Else
S1 S2 ... SN default
Thursday, January 15, 2015 Lập trình căn bản 15
CẤU TRÚC LỰA CHỌN - SWICH
Ý nghĩa:
Tính giá trị của biểu thức expr, Các chú ý:
Nếu giá trị expr = value1 thực o Kiểu của expr và các
hiện statement_sequence1 rồi valuei phải là kiểu số
thoát. nguyên đếm được (int,
Nếu giá trị expr khác value1 char, long, …).
thì so sánh nó với value2, nếu o Nếu break/return vắng
bằng value2 thì thực hiện mặt, câu lệnh trong các case
statement_sequence2 rồi thốt. bên dưới có thể được thực
Cứ thế, so sánh tới giá trị n. hiện cho đến khi gặp
Nếu tất cả các phép so sánh break/return hoặc kết thúc
lệnh switch.
trên đều sai thì thực hiện
default_statements.
Thursday, January 15, 2015 Lập trình căn bản 16
VÍ DỤ SWITCH…CASE (1)
Thursday, January 15, 2015 Lập trình căn bản 17
VÍ DỤ SWITCH…CASE (2)
Thursday, January 15, 2015 Lập trình căn bản In ra số
ngày
của 1
tháng
18
CẤU TRÚC LẶP
Cho phép lặp lại nhiều lần một cơng việc
nào đó.
Cấu trúc lặp trong NN C bao gồm:
for
while
do-while
Thursday, January 15, 2015 Lập trình căn bản 19
VÒNG LẶP FOR (1)
Cú for (Biểu thức 1; biểu thức 2; biểu thức 3)
pháp <Công việc>;
Thứ tự thực hiện:
B1: Tính giá trị biểu thức 1
B2: Tính giá trị biểu thức 2
Nếu giá trị biểu thức 2 là
sai (==0) => thoát khỏi for
Nếu giá trị biểu thức 2 là
đúng (!=0) => thực hiện
<Cơng việc>
B3: Tính giá trị biểu thức 3
Thursday,rJồanuiaryq15u, 2a015y lại B2 Lập trình căn bản 20