Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn
1. Nhập 2 số thực a, b từ bàn phím. Tìm và in ra
màn hình số lớn nhất và số bé nhất
2. Viết chương trình nhập vào tháng, in ra tháng đó
có bao nhiêu ngày
3. Viết chương trình tính n!. Với n nhập từ bàn phím
4. Viết chương trình nhập vào N số nguyên, đếm
xem có bao nhiêu số âm, bao nhiêu số dương và
bao nhiêu số không
5. Viết chương trình tính tổng của n số đầu tiên của
dãy số sau:
S = 1+1/2+1/3+1/4+.+1/n
20 trang |
Chia sẻ: dntpro1256 | Lượt xem: 674 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Lập trình tính toán khoa học kỹ thuật - Buổi 3: Cấu trúc điều khiển - Lê Hoàng Sơn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Lập trình tính toán khoa học kỹ thuật 1
Buổi 3: Cấu trúc điều khiển
Giảng viên: TS. Lê Hoàng Sơn
lehoangson@hus.edu.vn
Lê Hoàng Sơn 2/18
Nội dung chính
Cấu trúc rẽ nhánh 1
Cấu trúc lặp 2
Bài tập 3
Lê Hoàng Sơn 3/18
1. Cấu trúc rẽ nhánh
Cú pháp If tổng quát:
If (biểu thức A)
{
Các lệnh;
}
else If (biểu thức B)
{
Các lệnh;
}
else {
Các lệnh;
}
Trong C cho phép sử dụng các cấu trúc if lồng nhau để giải quyết bài toán
Lê Hoàng Sơn 4/18
Ví dụ: So sánh hai số a và b
# include
# include
int main() {
int a, b;
printf("Nhap vao so a: ");
scanf("%d", &a);
printf("Nhap vao so b: ");
scanf("%d", &b);
if (a>b) {
printf("a lon hon b.\n");
}
else if (a<b) {
printf("a nho hon b.\n");
}
else printf("a bang b.\n");
getch();
return 0;
}
Nếu a lớn hơn b
Nếu a nhỏ hơn b
Nếu a bằng b
Nhập số nguyên a
Lê Hoàng Sơn 5/18
Cấu trúc switch
Cú pháp switch tổng quát:
switch (biểu thức)
{
case A: các lệnh;
break;
case B: các lệnh;
break;
case C: các lệnh;
break;
};
Nếu biểu thúc (toán học, logic) nhận giá trị nào thì sẽ thực hiện các
lệnh tương ứng
Lê Hoàng Sơn 6/18
Ví dụ: In ra dấu *
# include
# include
int main() {
int i;
clrscr();
printf("Nhap vao so 1, 2 hoặc 3: ");
scanf("%d", &i);
switch(i)
{
case 3: printf("***"); break;
case 2: printf("**"); break;
case 1: printf("*"); break;
};
printf("An phim bat ky de ket thuc!\n");
getch();
return 0;
}
Xem xét các trường hợp của biến i
Nếu i == 3
Xóa màn hình
Lê Hoàng Sơn 7/18
Nội dung chính
Cấu trúc rẽ nhánh 1
Cấu trúc lặp 2
Bài tập 3
Lê Hoàng Sơn 8/18
2. Cấu trúc lặp
Cú pháp for tổng quát:
for (đk khởi tạo; đk dừng; thay đổi giá trị biến)
{
Các lệnh;
}
Điều kiện khởi tạo chỉ được thực hiện đúng một lần duy nhất
Khi nào gặp điều kiện dừng thì mới thoát khỏi vòng for. Nếu không
thì thay đổi giá trị biến
Có thể dùng cấu trúc các vòng for lồng nhau
Muốn thoát khỏi vòng lặp không qua điều kiện dừng, phải dùng lệnh
break, goto hoặc return
Lê Hoàng Sơn 9/18
Ví dụ: In ma trận 2 x 3
# include
# include
int main() {
int i, j;
clrscr();
for(i = 1; i<=2; i++)
{
for(j = 1; j<=3; j++)
{
printf(“[%d,%d] ", i,j);
}
printf(“\n”);
}
getch();
return 0;
}
Vòng for thứ hai theo j
In phần tử ma trận
Xuống dòng
Vòng for thứ nhất theo i
Lê Hoàng Sơn 10/18
2. Cấu trúc lặp
Cú pháp while tổng quát:
while (biểu thức)
{
Các lệnh;
}
Dùng cú pháp này khi không biết trước số vòng lặp
Nếu biểu thức nhận giá trị true thì thực hiện lệnh; còn ngược lại thì
thoát ra ngoài luôn.
Sau khi thực hiện lệnh lại kiểm tra lại giá trị của biểu thức.
Ta có thể dùng câu lệnh break để thoát khỏi vòng lặp theo ý muốn
Lê Hoàng Sơn 11/18
Ví dụ: Tính tổng số nguyên từ 1 đến n
# include
# include
int main() {
int i = 0, n, tong = 0;
printf("Nhap vao so n: ");
scanf("%d", &n);
while (i++ < n)
{
tong += i;
}
printf("Tong: %d", tong);
getch();
return 0;
}
Kiểm tra nếu i<n, i++ hay ++i?
Tính tổng
In kết quả
Khởi tạo i
Lê Hoàng Sơn 12/18
2. Cấu trúc lặp
Cú pháp do .. while tổng quát:
do
{
Các lệnh;
} while (biểu thức);
Dùng cú pháp này khi không biết trước số vòng lặp
Thực hiện lệnh trước
Nếu biểu thức nhận giá trị true thì chạy tiếp các lệnh. Ngược lại,
thoát ra ngoài luôn.
Ta có thể dùng câu lệnh break để thoát khỏi vòng lặp theo ý muốn
Lê Hoàng Sơn 13/18
Ví dụ: Kiểm tra password
# include
# include
# define PASSWORD 123456
int main() {
int in;
do
{
printf("Nhap vao password: ");
scanf("%d", &in);
} while (in != PASSWORD);
printf(“\nBan da nhap dung mat khau”);
getch();
return 0;
}
Thực hiện nhập mật khẩu
Kiểm tra mật khẩu vừa nhập
Khởi tạo
Lê Hoàng Sơn 14/18
Tóm tắt bài học
Cấu trúc rẽ nhánh: if và switch
Cấu trúc lặp
for
while
do .. while
Lê Hoàng Sơn 15/18
Câu hỏi thảo luận
Lê Hoàng Sơn 16/18
Nội dung chính
Cấu trúc rẽ nhánh 1
Cấu trúc lặp 2
Bài tập 3
Lê Hoàng Sơn 17/18
Bài tập
1. Nhập 2 số thực a, b từ bàn phím. Tìm và in ra
màn hình số lớn nhất và số bé nhất
2. Viết chương trình nhập vào tháng, in ra tháng đó
có bao nhiêu ngày
3. Viết chương trình tính n!. Với n nhập từ bàn phím
4. Viết chương trình nhập vào N số nguyên, đếm
xem có bao nhiêu số âm, bao nhiêu số dương và
bao nhiêu số không
5. Viết chương trình tính tổng của n số đầu tiên của
dãy số sau:
S = 1+1/2+1/3+1/4+...+1/n
Lê Hoàng Sơn 18/18
Thuật toán sắp xếp
# include
# include
int main()
{
float max, min, tam;
printf("Nhap vao so max, min: ");
scanf("%f%f", &max, &min);
if (max < min)
{
tam = max;
max = min;
min = tam;
}
printf("Max = %5.3f Min = %5.3f", max, min);
getch();
return 0;
}
Thực hiện đổi chỗ
Khởi tạo
Lê Hoàng Sơn 19/18
SWITCH .. CASE (2)
switch (month) {
case 1:
case 3:
case 12: {
day = 30;
break;
}
case 4:
case 11: {
day = 31;
break;
}
default: {
day = 28;
}
}
Lập trình tính toán khoa học kỹ thuật
C l i c k t o e d i t c o m p a n y s l o g a n .
Lê Hoàng Sơn
Các file đính kèm theo tài liệu này:
- bai_giang_thcs3_3_2275_2046999.pdf