Tải bản đầy đủ (.pdf) (49 trang)

Bài giảng Tin học căn bản (Phần 3): Chương 3 - Ngô Văn Linh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.7 MB, 49 trang )

Chương 3:

Các cấu trúc lập trình trong
ngôn ngữ C
Ngô Văn Linh
Bộ môn Hệ thống thông tin
Viện Công nghệ thông tin và Truyền thông
Đại học Bách Khoa Hà Nội

1


Nội dung chương này




3.1. Cấu trúc lệnh khối
3.2. Cấu trúc rẽ nhánh





3.3. Cấu trúc lặp







3.2.1. Cấu trúc if, if … else
3.2.2. Cấu trúc lựa chọn switch
3.3.1. Vòng lặp for
3.3.2. Vòng lặp while

3.4. Các lệnh thay đổi cấu trúc lập trình



3.4.1. continue
3.4.2. break
2


Nội dung chương này




3.1. Cấu trúc lệnh khối
3.2. Cấu trúc rẽ nhánh





3.3. Cấu trúc lặp







3.2.1. Cấu trúc if, if … else
3.2.2. Cấu trúc lựa chọn switch
3.3.1. Vòng lặp for
3.3.2. Vòng lặp while

3.4. Các lệnh thay đổi cấu trúc lập trình



3.4.1. continue
3.4.2. break
3


3.1. Cấu trúc lệnh khối




Thể hiện cấu trúc tuần 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 {}
{
lenh_1;
lenh_2;
….
lenh_n;

}

4


Ví dụ lệnh khối
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float r, cv, dt; // Khai bao 3 bien thuc
printf("\n Nhap vao ban kinh r = ");
scanf("%f",&r);
cv = 2*M_PI*r; // Tinh chu vi
dt = M_PI*r*r; // Tinh dien tich
printf("\nChu vi = %10.2f\nDien tich = %10.2f",cv, dt);
getch();
}
5


3.1. Cấu trúc lệnh khối (tiếp)


Lệnh khối lồng nhau:



Trong một lệnh khối có thể chứa lệnh khối khác

Sự lồng nhau là không hạn chế

{

lenh;
{
lenh;
...
}

}
6


3.1. Cấu trúc lệnh khối - ví dụ
#include <conio.h>
#include <stdio.h>
void main()
//Noi dung cua ham main() cung
la mot khoi lenh

{

// khai bao bien
int c;
c = 10;
printf(“Gia tri cua c = %d
day la c ngoai”,c);
// bat dau mot khoi lenh
khac

{
int c;
c = 10;

printf(“\n Gia tri cua c = %d
day la c trong”,c);
printf(“\n Tang gia tri cua c
them 10 don vi”);
c = c + 10;
printf(“\n Gia tri cua c
= %d day la c trong”,c);
}
printf(“\n Gia tri cua c =
%d day la c ngoai”,c);
getch();
}// ket thuc khoi lenh cua ham
main()

7


3.1. Cấu trúc lệnh khối - ví dụ (tiếp)


Kết quả:
Gia tri cua c = 10 day la c ngoai
Gia tri cua c = 10 day la c trong
Tang gia tri cua c them 10 don vi
Gia tri cua c = 20 day la c trong
Gia tri cua c = 10 day la c ngoai


8


Nội dung chương này




3.1. Cấu trúc lệnh khối
3.2. Cấu trúc rẽ nhánh





3.3. Cấu trúc lặp






3.2.1. Cấu trúc if, if … else
3.2.2. Cấu trúc lựa chọn switch
3.3.1. Vòng lặp for
3.3.2. Vòng lặp while

3.4. Các lệnh thay đổi cấu trúc lập trình




3.4.1. continue
3.4.2. break
9


3.2. Cấu trúc rẽ nhánh



3.2.1. Cấu trúc if, if...else
3.2.2. Cấu trúc lựa chọn switch

10


3.2.1. Cấu trúc if, if … else


Cú pháp cấu trúc if
if (bieu_thuc_dieu_kien)
lenh;



Cú pháp cấu trúc if … else
if (bieu_thuc_đieu_kien)
lenh_1;
else

lenh_2;

11


3.2.1. Cấu trúc if, if … else (tiếp)
if(biểu thức điều kiện)
lệnh 1;
else
lệnh 2;
lệnh kế tiếp;

if(biểu thức điều kiện)
lệnh 1;
lệnh kế tiếp;

!=0

biểu thức điều kiện?

==0
biểu thức điều kiện?
=0

!=0

lệnh 1

lệnh 1


lệnh 2

lệnh kế tiếp
lệnh kế tiếp
12


3.2.1. Cấu trúc if, if … else (tiếp)


Ví dụ: Bài toán tìm số lớn nhất trong 2 số
thực a và b:

#include <conio.h>
#include <stdio.h>
void main()
{
// khai bao bien
float a, b;
float max;
printf(“ Nhap gia tri a va
b: “);
scanf(“%f %f”,&a,&b);
if(amax = b;

else
max = a;
printf(“\n So lon nhat
trong 2 so

%.0f va
%.0f la %.0f “,a,b,max);
getch();
}//ket thuc ham main()
Kết quả:
Nhap vao 2 gia tri a va b: 23 247
So lon nhat trong hai so 23 va 247
la 247



13


3.2.1. Cấu trúc if, if … else - Luyện tập






Lập chương trình tìm số nhỏ nhất trong ba
số thực nhập vào từ bàn phím.
Viết chương trình nhập vào một số nguyên
từ bàn phím, nếu là số chẵn thì hiển thị "Ban
vua nhap so chan", nếu là số lẻ thì hiển thị
"Ban vua nhap so le".
Nhập vào 3 số thực, kiểm tra xem nó có tạo
thành 3 cạnh của tam giác không?
14



3.2.2. Cấu trúc lựa chọn switch


Cú pháp cấu trúc switch
switch (bieu_thuc)
{
case gia_tri_1: lenh_1; [break];
case gia_tri_2: lenh_2; [break];

case gia_tri_n:
lenh_n; [break];
[default: lenh_n+1; [break];]
}
15


3.2.2. Cấu trúc lựa chọn switch


Giá trị của biểu thức kiểm tra (bieu_thuc)
phải là số nguyên:




(tiếp)

Phải có kiểu dữ liệu là char, int, long.


Tương ứng các giá trị sau case (gia_tri_1,
gia_tri_2,…) cũng phải là số nguyên.

16


3.2.2. Cấu trúc lựa chọn switch

(tiếp)

17


3.2.2. Cấu trúc lựa chọn switch


(tiếp)

Quan sát ví dụ:

#include<stdio.h>
#include<conio.h>

case 1: printf("\nSo mot");

void main()

break;


{

case 2: printf("\nSo hai");
int n;

break;

printf("Hay cho toi mot so nguyen");

default: printf("\nKhong fai 0,1,2");

scanf("%d",&n);

}

switch(n)

getch();

{

}

case 0: printf("\n So khong");
break;
18


3.2.2. Cấu trúc lựa chọn switch





(tiếp)

Trong ví dụ trên, khi chạy chương trình thì sẽ
như thế nào?
Nếu ta bỏ break đi thì sao?

19


3.2.2. Cấu trúc lựa chọn switch


(tiếp)

Kết quả khi chạy chương trình:

20


3.2.2. Cấu trúc lựa chọn switch


(tiếp)

Nếu ta bỏ break đi:

21



3.2.2. Cấu trúc lựa chọn switch-Luyện tập




Trong một năm các tháng có 30 ngày là 4, 6,
9, 11 còn các tháng có 31 ngày là 1, 3, 5, 7,
8, 10, 12. Riêng tháng hai có thể có 28 hoặc
29 ngày.
Hãy viết chương trình nhập vào 1 tháng, sau
đó đưa ra kết luận tháng đó có bao nhiêu
ngày.

22


3.2.2. Cấu trúc lựa chọn switch
#include <conio.h>
#include <stdio.h>
int 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;

(tiếp)

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;
}
getch();
return 0;

}
23


3.2.2. Cấu trúc lựa chọn switch
#include <conio.h>
#include <stdio.h>
int main ()
{
int thang; clrscr();
do {
printf("\n Nhap vao thang trong
nam ");
scanf("%d",&thang);
}
while(thang < 1 || thang > 12);
switch(thang)
{
case 2:
printf ("\ Thang 2 co 28 hoac 29
ngay");
break;

(tiếp)

case 4:
case 6:
case 9:
case 11:
printf("\n Thang %d

co 30 ngay ",thang);
break;
default :
printf("\n Thang %d
co 31 ngay ", thang);
break;
}
getch();
return 0;
}
24


Nội dung chương này




3.1. Cấu trúc lệnh khối
3.2. Cấu trúc rẽ nhánh





3.3. Cấu trúc lặp







3.2.1. Cấu trúc if, if … else
3.2.2. Cấu trúc lựa chọn switch
3.3.1. Vòng lặp for
3.3.2. Vòng lặp while

3.4. Các lệnh thay đổi cấu trúc lập trình



3.4.1. continue
3.4.2. break
25


×