Bài 10. Cấu trúc lặp
Chia sẻ bởi Trịnh Văn Huy |
Ngày 10/05/2019 |
57
Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11
Nội dung tài liệu:
Tiết: 15
Bài 10: cấu trúc lặp
a. Về kiến thức:
- Giới thiệu tổ chức lặp.
- Giới thiệu câu lệnh lặp FOR - DO trong TP.
- Bước đầu hình thành kĩ năng lập trình có cấu trúc lặp.
b. Về kỹ năng:
- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
c. Về thái độ:
- Viết được thuật toán của một số bài toán đơn giản.
1.Khái niệm lặp
- Xét 2 bài toán như sau với a >2 là số nguyên cho trước:
Bài toán 1: Tính tổng
Bài toán 2: Tính tổng
Với điều kiện
Cách giải:
- Bắt đầu S được gán giá trị 1/a.
Tiếp theo mỗi lần cộng vào t?ng S m?t giỏ tr? 1/(a+N) với N = 1,2,3,...
- Với bài toán 1, việc cộng vo t?ng S dừng khi N = 100, => số lần lặp đã biết trước.
Với bài toán 2, việc cộng vo t?ng S dừng khi 1/(a+N) < 0,0001, => số lần lặp chưa biết trước.
KN: Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
Lặp thường có 2 loại:
- Lặp với số lần biết trước.
- Lặp với số lần không biết trước.
Ngôn ngữ lập trình nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặp như trên.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh lặp trong ngôn ngữ Pascal.
2. Lặp có số lần biết trước và câu lệnh For - do
So sánh hai thuật toán sau:
Thuật toán tong_1a
B1: S:= 1/a; N:=0;
B2: N:=N+1;
B3: Nếu N>100 thì chuyển sang bước 5;
B4: S:= S + 1/(a+N) rồi quay lại bước 2;
B5: Đưa ra S rồi kết thúc.
Thuật toán tong_1b
B1: S:= 1/a; N:=101;
B2: N:=N-1;
B3: Nếu N<1 thì chuyển sang bước 5;
B4: S:= S + 1/(a+N) rồi quay lại bước 2;
B5: Đưa ra S rồi kết thúc.
Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trước:
- dạng lặp tiến:
For < biến đếm> := < giá trị đầu> to < giá trị cuối> do < câu lệnh>;
- dạng lặp lùi:
For < biến đếm> := < giá trị cuối> downto < giá trị đầu > do < câu lệnh>;
Trong đó:
- Biến đếm thường là biến kiểu số nguyên.
- Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
- ở dạng lặp tiến: biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
- ở dạng lặp lùi: Biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau Do thực hiện 1 lần.
Ví dụ 1: Hai chương trình cài đặt thuật toán tong_1a và tong_1b.
Program tong_1a;
uses crt;
var s: real;
a,n: integer;
Begin
clrscr;
write( ` hay nhap gia tri cua a vao: `); readln( a);
s:= 1.0/a;
for n:= 1 to 100 do
s:= s+1.0/(a+n);
Writeln( ` Tong s la: `, s:8:2);
readln
end.
Program tong_1b;
uses crt;
var s: real;
a,n: integer;
Begin
write( ` hay nhap gia tri cua a vao: `); readln( a);
s:= 1.0/a;
for n:= 100 downto 1 do
s:= s+1.0/(a+n);
Writeln( ` Tong s la: `, s:8:2);
readln
end.
Các câu lệnh mô tả cấu trúc lặp:
- Lặp với số lần biết trước.
- Lặp với số lần chưa biết trước.
Bài 10: cấu trúc lặp
a. Về kiến thức:
- Giới thiệu tổ chức lặp.
- Giới thiệu câu lệnh lặp FOR - DO trong TP.
- Bước đầu hình thành kĩ năng lập trình có cấu trúc lặp.
b. Về kỹ năng:
- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
c. Về thái độ:
- Viết được thuật toán của một số bài toán đơn giản.
1.Khái niệm lặp
- Xét 2 bài toán như sau với a >2 là số nguyên cho trước:
Bài toán 1: Tính tổng
Bài toán 2: Tính tổng
Với điều kiện
Cách giải:
- Bắt đầu S được gán giá trị 1/a.
Tiếp theo mỗi lần cộng vào t?ng S m?t giỏ tr? 1/(a+N) với N = 1,2,3,...
- Với bài toán 1, việc cộng vo t?ng S dừng khi N = 100, => số lần lặp đã biết trước.
Với bài toán 2, việc cộng vo t?ng S dừng khi 1/(a+N) < 0,0001, => số lần lặp chưa biết trước.
KN: Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
Lặp thường có 2 loại:
- Lặp với số lần biết trước.
- Lặp với số lần không biết trước.
Ngôn ngữ lập trình nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặp như trên.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh lặp trong ngôn ngữ Pascal.
2. Lặp có số lần biết trước và câu lệnh For - do
So sánh hai thuật toán sau:
Thuật toán tong_1a
B1: S:= 1/a; N:=0;
B2: N:=N+1;
B3: Nếu N>100 thì chuyển sang bước 5;
B4: S:= S + 1/(a+N) rồi quay lại bước 2;
B5: Đưa ra S rồi kết thúc.
Thuật toán tong_1b
B1: S:= 1/a; N:=101;
B2: N:=N-1;
B3: Nếu N<1 thì chuyển sang bước 5;
B4: S:= S + 1/(a+N) rồi quay lại bước 2;
B5: Đưa ra S rồi kết thúc.
Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trước:
- dạng lặp tiến:
For < biến đếm> := < giá trị đầu> to < giá trị cuối> do < câu lệnh>;
- dạng lặp lùi:
For < biến đếm> := < giá trị cuối> downto < giá trị đầu > do < câu lệnh>;
Trong đó:
- Biến đếm thường là biến kiểu số nguyên.
- Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
- ở dạng lặp tiến: biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
- ở dạng lặp lùi: Biến đếm giảm dần từ giá trị cuối đến giá trị đầu.
Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau Do thực hiện 1 lần.
Ví dụ 1: Hai chương trình cài đặt thuật toán tong_1a và tong_1b.
Program tong_1a;
uses crt;
var s: real;
a,n: integer;
Begin
clrscr;
write( ` hay nhap gia tri cua a vao: `); readln( a);
s:= 1.0/a;
for n:= 1 to 100 do
s:= s+1.0/(a+n);
Writeln( ` Tong s la: `, s:8:2);
readln
end.
Program tong_1b;
uses crt;
var s: real;
a,n: integer;
Begin
write( ` hay nhap gia tri cua a vao: `); readln( a);
s:= 1.0/a;
for n:= 100 downto 1 do
s:= s+1.0/(a+n);
Writeln( ` Tong s la: `, s:8:2);
readln
end.
Các câu lệnh mô tả cấu trúc lặp:
- Lặp với số lần biết trước.
- Lặp với số lần chưa biết trước.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trịnh Văn Huy
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)