TIN HỌC ĐẠI CƯƠNG
Bài 3. CÁC CẤU TRÚC LẬP TRÌNH
TRONG C.
Nguyễn Thành Kiên
Bộ mơn Kỹ thuật máy tính
Khoa Cơng nghệ thông tin – ĐHBK
HN
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
2
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
3
3.1. Cấu trúc lệnh khối
Một lệnh khối là dãy các câu lệnh được đặt trong cặp dấu ngoặc
nhọn { }
{
lệnh_1;
lệnh_2;
….
lệnh_n;
}
Ví dụ:
#include <stdio.h>
#include <conio.h>
Void main ()
{ //day la dau khoi
char ten[50];
printf("Xin cho bietten:”);
scanf("%s",ten);
getch();
} //day la cuoi khoi
4
3.1. Cấu trúc lệnh khối
Trong lệnh khối có thể chứa lệnh khối khác, ta gọi đó là các lệnh
khối lồng nhau.
Sự lồng nhau của các lệnh khối là
không hạn chế.
Các lệnh trong lệnh khối được thực hiện tuần tự theo trật tự xuất
hiện.
5
3.1. Cấu trúc lệnh khối
{
lệnh;
{
lệnh;
...
}
…
}
6
3.1. Cấu trúc lệnh khối
C cho phép khai báo biến trong lệnh khối. Biến khai báo
trong lệnh khối chỉ có tác dụng trong khối.
Ví dụ:
#include <conio.h>
#include <stdio.h>
void main()
// Noi dung cua ham main() cung la mot khoi lenh
{
int c; // khai bao bien
c = 10;
printf(“ Gia tri cua c = %d day la c ngoai”,c);
// bat dau mot khoi lenh khac
{
int d;
d = 10;
printf(“\n Gia tri cua d = %d day la c trong”,d);
printf(“\n Tang gia tri cua d them 10 don vi”);
d = d + 10;
printf(“\n Gia tri cua d = %d day la c trong”,d);
}
printf(“\n Gia tri cua d = %d day la c ngoai”,d);
getch();
}
7
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
8
3.2. Cấu trúc if, if … else
Lệnh if hay còn gọi là lệnh rẽ nhánh, nhằm điều khiển thực hiện
công việc nào đó hay khơng tùy theo giá trị đúng/sai của biểu thức
điều kiện.
Cấu trúc lệnh rẽ nhánh có hai dạng:
Dạng không đầy đủ: if
Dạng đầy đủ: if…else
9
Lệnh rẽ nhánh
Dạng không đầy đủ
Cú pháp:
if (bieu_thuc_dieu_kien)
lenh_1;
Lenh_ke_tiep;
#include <stdio.h>
#include <conio.h>
void main ()
{
float a;
printf("Nhap a = "); scanf("%f",&a);
if (a !=0 )
printf("Nghich dao cua %f la %f",a,1/a);
getch();
}
10
Lệnh rẽ nhánh
Dạng đầy đủ
Cú pháp:
if (bieu_thuc_dieu_kien)
lenh_1;
else
lenh_2;
Lenh_ke_tiep;
int a,b,max;
printf(“Doc vao hai so nguyen:”);
scanf(“%d %d”,&a,&b);
if (a>b)
max=a;
else
max=b;
11
3.2. Cấu trúc if, if … else
Ví dụ: Viết CT yêu cầu người dùng nhập vào một số nguyên dương là
tháng trong năm và in ra số ngày của tháng đó.
Tháng có 31 ngày: 1, 3, 5, 7, 8, 10, 12
Tháng có 30 ngày: 4, 6, 9, 10
Tháng có 28 hoặc 29 ngày : 2
12
CT tính số ngày của tháng
#include <stdio.h>
#include<conio.h>
void main ()
{
int thg;
printf("Nhap vao thang trong nam:"); scanf("%d",&thg);
if (thg==1||thg==3||thg==5||thg==7||thg==8||thg==10||thg==12)
printf("\n Thang %d co 31 ngay ",thg);
else if (thg==4||thg==6||thg==9||thg==11)
printf("\n Thang %d co 30 ngay",thg);
else if (thg==2)
printf("\n Thang %d co 28 hoac 29 ngay",thg);
else printf("Khong co thang %d",thg);
printf("\n Thuc hien xong lenh if");
getch();
}
13
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
14
3.3. Cấu trúc lựa chọn
switch
Cấu trúc lựa chọn switch dùng để rẽ nhánh khi có
nhiều trường hợp có thể xảy ra.
Cú pháp cấu trúc switch
switch (bieu_thuc)
{
case gt_1: lenh_1; [break];
case gt_2: lenh_2; [break];
…
case gt_n: lenh_n; [break];
[default: lenh_n+1; [break];]
}
15
Hoạt động của lệnh switch
Chú ý:
Giá trị của biểu thức kiểm tra phải là số nguyên (char, int, long).
16
3.3. Cấu trúc lựa chọn
switch
Ví dụ: Viết CT yêu cầu người dùng nhập vào một số nguyên không
âm và in ra thứ trong tuần tương ứng.
0 => Chủ nhật
1 => Thứ hai
…
6 => Thứ bảy
17
3.3. Cấu trúc lựa chọn
switch
#include <conio.h>
#include <stdio.h>
void main()
{
int a; // khai bao bien
printf(“\n Nhap mot gia tri so nguyen khong am: “); scanf(“%d”,&a);
if(a<0)
printf("\n so vua nhap la so am");
else
{
printf(“\n Thu trong tuan tuong ung voi so do la: “);
switch(a % 7)
{
case 0: printf(“ Chu nhat”); break;
case 1: printf(“ Thu Hai”); break;
case 2: printf(“ Thu Ba”); break;
case 3: printf(“ Thu Tu”); break;
case 4: printf(“ Thu Nam”); break;
case 5: printf(“ Thu Sau”); break;
case 6: printf(“ Thu Bay”); break;
}
}
getch();
}
18
Cho biết
chương
trình
sau làm
gì?
#include <stdio.h>
#include<conio.h>
void main ()
{
int thang; clrscr();
printf("\n Nhap vao thang trong nam "); scanf("%d",&thang);
switch(thang)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("\n Thang %d co 31 ngay ",thang);
break;
case 4:
case 6:
case 9:
case 11:
printf("\n Thang %d co 30 ngay ",thang);
break;
case 2:
printf ("\ Thang 2 co 28 hoac 29 ngay");
break;
default :
printf("\n Khong co thang %d", thang);
break;
}
19
getch();
}
3.3. Cấu trúc lựa chọn
switch
Chú ý:
Dựa trên tính chất tự động chuyển
xuống các câu lệnh sau khi khơng có
lệnh break, ta có thể viết chung mã
lệnh cho các trường hợp khác nhau
nhưng cùng được xử lý giống nhau.
20
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
21
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
22
3.4.1. Vòng lặp for
Câu lệnh for dùng để thực hiện lặp
đi lặp lại một cơng việc nào đó với
số lần lặp xác định.
Cú pháp:
for([bt1];[bt2];[bt3])
lenh;
23
3.4.1. Vịng lặp for
Cho biết chương trình sau làm gì?
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
for(i = 1;i<100;i++)
{
if(i%2 == 1) printf(“%5d”,i);
if((i+1)%20 ==0) printf(“\n”);
}
getch();
}
24
Bài 3. CÁC CẤU TRÚC LẬP
TRÌNH TRONG C.
3.1. Cấu trúc lệnh khối
3.2. Cấu trúc if, if … else
3.3. Cấu trúc lựa chọn switch
3.4. Cấu trúc lặp
3.4.1. Vòng lặp for
3.4.2. Vòng lặp while
3.4.3. Vòng lặp do{...}while
3.5. Các lệnh thay đổi cấu trúc lập trình
3.5.1. continue
3.5.2. break
25