Cac cau truc lap

Post on 22-Jun-2015

1.274 views 11 download

Transcript of Cac cau truc lap

Các cấu trúc lặpLê Văn Huỳnh

Bài toán

Viết chương trình nhập 3 số nguyên. Tính tổng 3 số nguyên đó.

#include <stdio.h>

void main(){

int a, b, c, T;

printf(“\nCho a: “);

scanf(“%d”, &a);

printf(“\nCho b: “);

scanf(“%d”, &b);

printf(“\nCho c: “);

scanf(“%d”, &c);

T = a + b + c;

printf(“\nTong = %d”, T);

getch();

}

Bài toán đó, nhưng…

Viết chương trình nhập

n số nguyên. Tính tổng

n số nguyên đó.

#include <stdio.h>

void main(){

int a, n;

printf(“\nCho n: “);

scanf(“%d”, &n);

int i = 1, T = 0;

Lap:

printf(“\nCho a: “);

scanf(“%d”, &a);

T += a;

If (++i <= n) goto Lap;

printf(“\nTong = %d”, T);

getch();

}

Nhận xét Bài toán trên là bài toán có chứa

cấu trúc lặp Nếu không sử dụng cấu trúc lặp thì

không thể giải quyết được yêu cầu đề ra.

Lệnh goto kết hợp với một nhãn (label) cho phép chuyển điều khiển tới vị trí bất kỳ trong chương trình.

Có thể vận dụng lệnh goto với nhãn để thực hiện cấu trúc lặp

Có nên sử dụng lệnh goto?

Sử dụng lệnh goto làm cho chương trình khá mềm dẻo và linh hoạt.

Đổi lại, chương trình sẽ khó đọc, khó hiểu, khó kiểm soát.

Bảo dưỡng, nâng cấp chương trình sẽ khó khăn hơn.

Chương trình càng lớn, càng phức tạp thì việc sử dụng lệnh goto càng trở nên nguy hiểm.

Ngày nay, người ta gần như bỏ hẳn lệnh goto.

Các cấu trúc thay thế Cấu trúc while

while (<biểu thức>)<khối lệnh>

Ý nghĩa: Chừng nào <biểu thức> còn đúng thì còn lặp lại việc thực hiện <khối lệnh>.

Sơ đồ

Biểu thức

Các lệnh cần lặp

Áp dụng vào bài toán#include <stdio.h>

void main(){

int a, n;

printf(“\nCho n: “);

scanf(“%d”, &n);

int i = 1, T = 0;

while (i++ <= n) {

printf(“\nCho a: “);

scanf(“%d”, &a);

T += a;

}

printf(“\nTong = %d”, T);

getch();

}

Bài 1

Thực hành1. Nhập từ bàn phím n số thực. Tính giá trị

trung bình của các số đã nhập và in kết quả lên màn hình.

2. Nhập số nguyên dương N và tính tổng của N số tự nhiên đầu tiên.

3. Nhập số nguyên dương N và tính tổng nghich đảo của tất cả các số tự nhiên từ 1 đến N.

N

i

is1

N

i is

1

1

Sơ đồ bài 2, 3

I = 1; T = 0Nhập N

I <= N

I = i+1T = T + 1/i

In T

I = 1; T = 0Nhập N

I <= N

In T

I = I + 1T = T + i

Nhập số nguyên dương N và tính tổng của N số tự nhiên đầu tiên.

Nhập số nguyên dương N và tính tổng nghich đảo của tất cả các số tự nhiên từ 1 đến N.

Bài 3

Bài 4 Tính tổng nghịch đảo của bình

phương các số tự nhiên từ 1 đến N.

N

i is

12

1