<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>Tin Học Cơ Sở 4: </b>
<b>Tin Học Cơ Sở 4: </b>
<b>Các cấu trúc ñiều khiển</b>
<b>Các cấu trúc ñiều khiển</b>
<b>Tin Học Cơ Sở 4: </b>
<b>Tin Học Cơ Sở 4: </b>
<b>Các cấu trúc ñiều khiển</b>
<b>Các cấu trúc ñiều khiển</b>
<b>Vũ Thị Hồng Nhạn</b>
<b>Vũ Thị Hồng Nhạn</b>
()
()
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>Nội</b>
<b>Nội dung</b>
<b>dung</b>
<b>Nội</b>
<b>Nội dung</b>
<b>dung</b>
Lệnh (statement), khối (block)
Cấu trúc rẽ nhánh
Lệnh if
Lệnh if
Lệnh switch
Cấu trúc vòng lặp
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
<b>Lệnh</b>
<b>Lệnh (statement) & </b>
<b>(statement) & khối</b>
<b>khối (block)</b>
<b>(block)</b>
<b>Lệnh</b>
<b>Lệnh (statement) & </b>
<b>(statement) & khối</b>
<b>khối (block)</b>
<b>(block)</b>
Lệnh là một tác vụ, biểu thức, hàm, hay cấu trúc điều khiển kêt thúc
băng dấu chấm phẩy
<lệnh> = <biểu thức>;
Vd.
x=0; i++; printf(“Day la mot cau lenh! \n”);
Khối lệnh
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
#include <stdio.h>
#include <conio.h>
int main(){
int x = 0;
<b>{</b>
int x = 5;
<b>Lệnh (statement) & khối (block)</b>
<b>Lệnh (statement) & khối (block)</b>
<b>Lệnh (statement) & khối (block)</b>
<b>Lệnh (statement) & khối (block)</b>
int x = 5;
printf("\nTRONG KHOI x=%d\n", x);
<b>}</b>
printf("\nNGOAI KHOI =x%d\n", x);
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if</b>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if</b>
<b>if (<điều kiện>) <khối lệnh></b> <b>Lưu đồ</b>
// Lệnh đơn
if (2 < 5)
printf("2 nhỏ hơn 5.\n");
// Khối lệnh
if (2 < 5)
{
printf(“Ln in dịng này.\n");
printf(“vì 2 ln nhỏ hơn 5!\n");
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
Viết chương trình nhập vào hai số nguyên a,b. Tìm và in ra số lớn nhất
<b>Lệnh if</b>
<b>Lệnh if</b>
<b>Lệnh if</b>
<b>Lệnh if</b>
int main(){
int a, b, max;
printf("Nhap vao so a: "); scanf("%d", &a);
printf("Nhap vao so b: "); scanf("%d", &b);
printf("Nhap vao so b: "); scanf("%d", &b);
max=a;
if(b>a)
max=b;
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if--else</b>
<b>else</b>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if--else</b>
<b>else</b>
<b>if (<điều kiện>) <khối lệnh 1> else <khối lệnh 2></b> <b>Lưu đồ</b>
<b>Ví dụ </b>
if (x < 0){
Điều kiện
printf("%d số âm.\n", x);
}
else{
printf("%d số khơng âm.\n", x);
}
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
Viết chương trình nhập
vào 2 số nguyên a, b
In ra thông báo "a bằng b"
nếu a = b,
<b>Lệnh if</b>
<b>Lệnh if--else</b>
<b>else</b>
<b>Lệnh if</b>
<b>Lệnh if--else</b>
<b>else</b>
int main(){
int a, b;
printf("Nhap vao so a: "); scanf("%d", &a);
printf("Nhap vao so b: "); scanf("%d", &b);
nếu a = b,
ngược lại in ra thông báo
"a khác b".
if(b = = a)
printf(“a bằng b.\n”);
else
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
<b>else</b>
<b>else--if</b>
<b>if</b>
<b>else</b>
<b>else--if</b>
<b>if</b>
if(biểu thức 1)
<i>Khối lệnh;</i>
else if (biểu thức 2)
Khối lệnh 2;
Nhập vào a, so sánh a với khoảng 5 và 8
if (a<5)
printf(“a <5 \n”)
else {
if( a< 5)
printf(“a <5 \n”)
else if(a<8)
…
else if (biểu thức n-1)
<i>Khối lệnh n-1;</i>
else
<i>Khối lệnh n;</i>
if(a<8)
printf(“ 5<=a<8 \n”)
else
printf(“a >= 8 \n”);
}
printf(“ 5<=a<8 \n”)
else
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
<b>Dạng tổng quát</b>
<b>Dạng tổng quát</b>
<b>Dạng tổng quát</b>
<b>Dạng tổng quát</b>
<b>if (<điều kiện>) <khối lệnh 1> else <khối lệnh 2></b>
if (<điều kiện>)
<i>Lệnh 1 (hoặc khối lệnh);</i>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if</b>
<b>Lệnh</b>
<b>Lệnh if</b>
<b>if</b>
<i>Lệnh 1 (hoặc khối lệnh);</i>
else if (<điều kiện>)
<i>Lệnh 2 (hoặc khối lệnh);</i>
….
else
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
<b>Toán</b>
<b>Toán tử</b>
<b>tử quan</b>
<b>quan hệ</b>
<b>hệ (relational operators)</b>
<b>(relational operators)</b>
<b>Toán</b>
<b>Toán tử</b>
<b>tử quan</b>
<b>quan hệ</b>
<b>hệ (relational operators)</b>
<b>(relational operators)</b>
<b>C có những tốn tử quan hệ sau </b> <b>Ý nghĩa </b>
a= =b <i>Đúng nếu và chỉ nếu a bằng b</i>
a !=b <i>Đúng nếu và chỉ nếu a không bằng b</i>
a<b
a>b
a>b
a<=b
a>=b
a && b <i>Đúng nếu và chỉ nếu a đúng VÀ b đúng</i>
a || b <i>Đúng nếu và chỉ nếu a đúng HoẶC b đúng</i>
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
<b>Boolean </b>
<b>Boolean trong</b>
<b>trong C</b>
<b>C</b>
<b>Boolean </b>
<b>Boolean trong</b>
<b>trong C</b>
<b>C</b>
C
khơng có
kiểu boolean
Thay vào đó, tốn tử điều kiện đánh giá theo giá trị nguyên (
<b>int)</b>
0 chỉ sai
Khác 0 (non-zero) đúng
If(<điều kiện>)
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
<b>Lệnh</b>
<b>Lệnh switch </b>
<b>switch </b>
<b>Lệnh</b>
<b>Lệnh switch </b>
<b>switch </b>
Lệnh kiểm tra xem một biểu thức có khớp với một trong những giá trị hằng nguyên
(char, int, long…)
<b>switch(biểu thức)</b>
{
case giá trị 1:
Lệnh 1;
Lệnh 1;
<b>break;</b>
case giá trị 2:
Lệnh 2;
<b>break;</b>
…
default:
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
int main(){
int month=2;
<b>switch (month){</b>
case 1:
printf("Jan.\n"); break;
int main(){
int month=2;
<b>switch (month){</b>
case 1:
printf("Jan.\n"); break;
<b>Lệnh switch </b>
<b>Lệnh switch </b>
<b>Lệnh switch </b>
<b>Lệnh switch </b>
case 2:
<b>printf("Feb. "); break;</b>
case 3:
<b>printf("March. "); break;</b>
default:
printf("Another month. ");
}
}
case 2:
<b>printf("Feb. "); //break;</b>
case 3:
<b>printf("March. "); //break;</b>
default:
printf("Another month. ");
}
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
<b>Chương</b>
<b>Chương trình</b>
<b>trình nhập</b>
<b>nhập vào</b>
<b>vào tháng</b>
<b>tháng và</b>
<b>và in </b>
<b>in ra</b>
<b>ra quý</b>
<b>quý</b>
<b>Chương</b>
<b>Chương trình</b>
<b>trình nhập</b>
<b>nhập vào</b>
<b>vào tháng</b>
<b>tháng và</b>
<b>và in </b>
<b>in ra</b>
<b>ra quý</b>
<b>quý</b>
int main()
{
int month;
printf("Nhap vao thang: ");
scanf("%d", &month);
switch(month) {
<b>Lệnh switch </b>
<b>Lệnh switch </b>
<b>Lệnh switch </b>
<b>Lệnh switch </b>
switch(month) {
case 1: case 2: case 3 : printf("Quy 1.\n"); break;
case 4: case 5: case 6: printf("Quy 2.\n"); break;
case 7: case 8: case 9: printf("Quy 3.\n"); break;
case 10: case 11: case 12: printf("Quy 4.\n"); break;
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
<b>Vòng</b>
<b>Vòng lặp</b>
<b>lặp for</b>
<b>for</b>
<b>Vòng</b>
<b>Vòng lặp</b>
<b>lặp for</b>
<b>for</b>
Vòng lặp thực hiện lặp lại một số lần xác định một
(chuỗi) hành động
<b>for(biểu thức 1; biểu thức 2; biểu thức 3)</b>
Khối lệnh;
Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển
Biểu thức 2: là quan hệ logic thể hiện điều kiện tiếp tục
vòng lặp
Biểu thức 3: phép gán dùng thay đổi giá trị biến điều khiển
</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
/*Viết chương trình in ra câu “ví dụ sử dụng vòng lặp for” 3 lần*/
#define MSG “vi du su dung vong lap for.\n"
int main(){
int i=0;
for(i=1;i<=3;i++)
</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
<b>Vịng lặp for</b>
/*Cho n số ngun. Tính và in ra tổng của chúng*/
#define <b>n</b> 3
int main(){
int i, num, s=0;
for(i=1; i<=n; i++) {
printf("Nhap vao so thu %d:", i);
scanf("%d", &num);
s = s + num;
}
printf("Tong= %d", s);
}
</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Ví dụ</b>
<b>Vòng lặp for</b>
<b>Vòng lặp for</b>
<b>Vòng lặp for</b>
<b>Vòng lặp for</b>
<b>Đọc vào một loạt ký tự từ bàn phím, kết thúc khi gặp dấu “.”</b>
#define DAU_CHAM '.'
int main(){
int main(){
char c;
for(
<b>; </b>
(c=getchar()) != DAU_CHAM
<b>; </b>
)
putchar(c);
</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>
<b>Lệnh</b>
<b>Lệnh break</b>
<b>break</b>
<b>Lệnh</b>
<b>Lệnh break</b>
<b>break</b>
Dùng để thốt khỏi vịng lặp
<b>khơng xác định điều kiện </b>
dừng <b>hoặc</b> ta tự muốn thoát
<b>Đọc vào một loạt ký tự từ bàn phím, kết </b>
<b>thúc khi gặp dấu “.” & in lượng nhập vào </b>
#define DAU_CHAM '.‘
int main(){
char c; int count=0;
theo điều kiện chỉ định nào đó
Thường sử dụng phối hợp với
lệnh if
Break dùng trong for, switch,
while, do…while
char c; int count=0;
for( <b>; ; </b>){
c = getchar();
if(c = = DAU_CHAM)
break;
count++;
}
</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>
<b>Lệnh</b>
<b>Lệnh continue</b>
<b>continue</b>
<b>Lệnh</b>
<b>Lệnh continue</b>
<b>continue</b>
Khi thi hành lệnh continue,
Quyền điều khiển sẽ trao cho
“biểu thức điều kiện của vòng
<b>Nhập vào 1 dãy số nguyên từ bàn phím, </b>
<b>dừng khi gặp số 0 & in ra tổng số nguyên </b>
<b>dương</b>
int main(){
int n, sum=0;
lặp gần nhất”
Lộn ngược lên đầu vòng lặp
Dùng trong for, switch, while,
for( ; ; ){
printf("Nhap vao so nguyen duong: ");
scanf("%d", &n);
if (n < 0) continue;
</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
<b>while(<biểu thức>) <lệnh></b>
Nếu điều kiện khởi tạo “false”, Lệnh sẽ không bao giờ
được thực hiện <sub>vào</sub>
Khối lệnh
<b>do <lệnh> while(<điều kiện>)</b>
Lệnh được thực hiện ít nhất một lần
Khối lệnh
Điều kiện
</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>
<b>Ví</b>
<b>Ví dụ</b>
<b>dụ lệnh</b>
<b>lệnh while</b>
<b>while</b>
<b>Ví</b>
<b>Ví dụ</b>
<b>dụ lệnh</b>
<b>lệnh while</b>
<b>while</b>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
/*Viết chương trình in ra câu “ví dụ sử dụng vòng lặp WHILE” 5 lần*/
#define MSG “vi du su dung vong lap WHILE.\n"
int main(){
int i=1;
while(i++<=5)
</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>
<b>Ví</b>
<b>Ví dụ</b>
<b>dụ lệnh</b>
<b>lệnh do…while</b>
<b>do…while</b>
<b>Ví</b>
<b>Ví dụ</b>
<b>dụ lệnh</b>
<b>lệnh do…while</b>
<b>do…while</b>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
<b>Lệnh</b>
<b>Lệnh while </b>
<b>while </b>
/*Viết chương trình nhập kiểm tra mật khâu sử dụng vòng lặp DO…WHILE”
#define PASSWORD 12345
int main(){
int n;
do{
printf(“Nhap vao password”);
scanf(“%d”, &n);
</div>
<!--links-->