Bài 10. Cấu trúc lặp

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Ngọc Hợi (trang riêng)
Ngày gửi: 15h:28' 14-08-2009
Dung lượng: 54.7 KB
Số lượt tải: 170
Nguồn:
Người gửi: Nguyễn Ngọc Hợi (trang riêng)
Ngày gửi: 15h:28' 14-08-2009
Dung lượng: 54.7 KB
Số lượt tải: 170
Số lượt thích:
0 người
Tổ Tin học
Program Hien_thi;
Begin
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Tổ Tin học
Đề bài:
Tổ Tin học
CẤU TRÚC LẶP
Bài toán 1: Tính tổng:
1. LẶP
Bài toán 2: Tính tổng:
Tổ Tin học
CẤU TRÚC LẶP
Phân tích bài toán 1 với N =100
1. LẶP
Nhận xét:
S1 = S0 + 1/1
S2 = S1 + 1/2
S3 = S2 + 1/3
S4 = S3 + 1/4
...............
S100 = S99 + 1/100
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước+ 1/i
với i chạy từ 1 ? 100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S0= 0
1
2
3
4
100
...............
Bắt đầu từ S1 việc tính S theo qui tắc nào? Lặp lại bao nhiêu lần?
Tổ Tin học
CẤU TRÚC LẶP
1. LẶP
Bài toán 1: Tính tổng:
Ý tưởng:
Xuất phát, S:=0; i:=1;
Trong khi i<= N thì thực hiện lặp lại thao tác S:=S+ 1/i ; i:=i+1;
(Vậy S:=S+1/i sẽ lặp lại bao nhiêu lần ?)
Số lần lặp là N lần
Bài toán 2: Tính tổng:
Ý tưởng:
Xuất phát, S:=0; i:=1;
Trong khi S<=10 thì thực hiện lặp lại thao tác S:=S+ 1/i ; i:=i+1;
Số lần lặp không xác định trước được.
(Vậy S:=S+1/i sẽ lặp lại bao nhiêu lần ?)
Tổ Tin học
CẤU TRÚC LẶP
* Xét bài toán 1: Tính tổng
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
Thuật toán 1:
Nhập N
S:=0; i:=1;
B1: Nhập N;
B2: S:=0; i:=1;
B3: Nếu i>N thì đưa ra S và kết thúc
B4: S:= S + 1/i; i:= i+1;
B5: Quay lại B3;
i>N
Thông báo S
Kết thúc
S:=S+1/i;
i:=i+1;
Đ
B1: Nhập N;
B2: S:=0; i:=N;
B3: Nếu i<1 thì đưa ra S và kết thúc
B4: S:=S + 1/i; i:= i - 1;
B5: Quay lại B3;
Thuật toán 2:
S
Nhập N
S:=0; i:=N;
i<1
Thông báo S
Kết thúc
S:=S+1/i;
i:= i - 1;
Đ
S
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
FOR := TO DO < CÂU LỆNH>;
* Câu lệnh FOR - DO
- Dạng lùi:
- Dạng tiến:
FOR := DO < CÂU LỆNH>;
TO
DOWNTO
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
- Hoạt động của câu lệnh:
Dạng tiến
Biếnđếm:= giátrịđầu
Biếnđếm <= giátrịcuối
Thực hiện câu lệnh
TRUE
Biếnđếm tự động tăng lên 1 đơn vị
FALSE
Dạng lùi
Biếnđếm:= giátrịcuối
Biếnđếm >= giátrịđầu
Thực hiện câu lệnh
TRUE
Biếnđếm tự động giảm đi 1 đơn vị
FALSE
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 1:
Program Hien_thi;
Begin
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Câu lệnh Writeln ở trên được viết lại bao nhiêu lần?
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Mô phỏng ví dụ 1:
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Xin chao cac em hoc sinh
Giá trị của biến i = 1
Xin chao cac em hoc sinh
Giá trị của biến i = 2
Xin chao cac em hoc sinh
Giá trị của biến i = 3
Xin chao cac em hoc sinh
Giá trị của biến i = 4
Xin chao cac em hoc sinh
Giá trị của biến i = 5
Xin chao cac em hoc sinh
Giá trị của biến i = 6
Xin chao cac em hoc sinh
Giá trị của biến i = 7
Xin chao cac em hoc sinh
Giá trị của biến i = 8
Xin chao cac em hoc sinh
Giá trị của biến i = 9
Xin chao cac em hoc sinh
Giá trị của biến i = 10
Giá trị của biến i =11>10 thoát khỏi vòng lặp
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
Program CHU_Y;
Var i: integer;
Begin
for i:=1 to 10 do
begin
Writeln(`Xin chao cac em hoc sinh`);
i:=i+2;
end;
Readln;
End.
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 2:
Viết chương trình để tính tổng S sau (Với N nguyên dương nhập từ bàn phím)
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 2:
Viết chương trình để tính tổng S sau dựa trên ngôn ngữ lập trình Pascal
Program tong_tien;
Var i,N: integer;
S: real;
Begin
Writeln(`Nhap N = `); Readln(N);
S:= 0;
for i:=1 to N do
S:= S+ 1/i;
Writeln(`Tong can tim la `, S);
Readln;
End.
Program tong_lui;
Var i,N: integer;
S: real;
Begin
Writeln(`Nhap N = `); Readln(N);
S:= 0;
for i:=N downto 1 do
S:= S+ 1/i;
Writeln(`Tong can tim la `, S);
Readln;
End.
Program Hien_thi;
Begin
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Xin chao cac em hoc sinh
Tổ Tin học
Đề bài:
Tổ Tin học
CẤU TRÚC LẶP
Bài toán 1: Tính tổng:
1. LẶP
Bài toán 2: Tính tổng:
Tổ Tin học
CẤU TRÚC LẶP
Phân tích bài toán 1 với N =100
1. LẶP
Nhận xét:
S1 = S0 + 1/1
S2 = S1 + 1/2
S3 = S2 + 1/3
S4 = S3 + 1/4
...............
S100 = S99 + 1/100
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước+ 1/i
với i chạy từ 1 ? 100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S0= 0
1
2
3
4
100
...............
Bắt đầu từ S1 việc tính S theo qui tắc nào? Lặp lại bao nhiêu lần?
Tổ Tin học
CẤU TRÚC LẶP
1. LẶP
Bài toán 1: Tính tổng:
Ý tưởng:
Xuất phát, S:=0; i:=1;
Trong khi i<= N thì thực hiện lặp lại thao tác S:=S+ 1/i ; i:=i+1;
(Vậy S:=S+1/i sẽ lặp lại bao nhiêu lần ?)
Số lần lặp là N lần
Bài toán 2: Tính tổng:
Ý tưởng:
Xuất phát, S:=0; i:=1;
Trong khi S<=10 thì thực hiện lặp lại thao tác S:=S+ 1/i ; i:=i+1;
Số lần lặp không xác định trước được.
(Vậy S:=S+1/i sẽ lặp lại bao nhiêu lần ?)
Tổ Tin học
CẤU TRÚC LẶP
* Xét bài toán 1: Tính tổng
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
Thuật toán 1:
Nhập N
S:=0; i:=1;
B1: Nhập N;
B2: S:=0; i:=1;
B3: Nếu i>N thì đưa ra S và kết thúc
B4: S:= S + 1/i; i:= i+1;
B5: Quay lại B3;
i>N
Thông báo S
Kết thúc
S:=S+1/i;
i:=i+1;
Đ
B1: Nhập N;
B2: S:=0; i:=N;
B3: Nếu i<1 thì đưa ra S và kết thúc
B4: S:=S + 1/i; i:= i - 1;
B5: Quay lại B3;
Thuật toán 2:
S
Nhập N
S:=0; i:=N;
i<1
Thông báo S
Kết thúc
S:=S+1/i;
i:= i - 1;
Đ
S
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
FOR
* Câu lệnh FOR - DO
- Dạng lùi:
- Dạng tiến:
FOR
TO
DOWNTO
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
- Hoạt động của câu lệnh:
Dạng tiến
Biếnđếm:= giátrịđầu
Biếnđếm <= giátrịcuối
Thực hiện câu lệnh
TRUE
Biếnđếm tự động tăng lên 1 đơn vị
FALSE
Dạng lùi
Biếnđếm:= giátrịcuối
Biếnđếm >= giátrịđầu
Thực hiện câu lệnh
TRUE
Biếnđếm tự động giảm đi 1 đơn vị
FALSE
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 1:
Program Hien_thi;
Begin
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Câu lệnh Writeln ở trên được viết lại bao nhiêu lần?
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Mô phỏng ví dụ 1:
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Xin chao cac em hoc sinh
Giá trị của biến i = 1
Xin chao cac em hoc sinh
Giá trị của biến i = 2
Xin chao cac em hoc sinh
Giá trị của biến i = 3
Xin chao cac em hoc sinh
Giá trị của biến i = 4
Xin chao cac em hoc sinh
Giá trị của biến i = 5
Xin chao cac em hoc sinh
Giá trị của biến i = 6
Xin chao cac em hoc sinh
Giá trị của biến i = 7
Xin chao cac em hoc sinh
Giá trị của biến i = 8
Xin chao cac em hoc sinh
Giá trị của biến i = 9
Xin chao cac em hoc sinh
Giá trị của biến i = 10
Giá trị của biến i =11>10 thoát khỏi vòng lặp
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
Program CHU_Y;
Var i: integer;
Begin
for i:=1 to 10 do
begin
Writeln(`Xin chao cac em hoc sinh`);
i:=i+2;
end;
Readln;
End.
Program Hien_thi;
Var i: integer;
Begin
for i:=1 to 10 do
Writeln(`Xin chao cac em hoc sinh`);
Readln;
End.
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 2:
Viết chương trình để tính tổng S sau (Với N nguyên dương nhập từ bàn phím)
Tổ Tin học
CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC VÀ CÂU LỆNH FOR … DO:
* Câu lệnh FOR - DO
- Ví dụ 2:
Viết chương trình để tính tổng S sau dựa trên ngôn ngữ lập trình Pascal
Program tong_tien;
Var i,N: integer;
S: real;
Begin
Writeln(`Nhap N = `); Readln(N);
S:= 0;
for i:=1 to N do
S:= S+ 1/i;
Writeln(`Tong can tim la `, S);
Readln;
End.
Program tong_lui;
Var i,N: integer;
S: real;
Begin
Writeln(`Nhap N = `); Readln(N);
S:= 0;
for i:=N downto 1 do
S:= S+ 1/i;
Writeln(`Tong can tim la `, S);
Readln;
End.
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng RAR và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓







Các ý kiến mới nhất