Bài 10. Cấu trúc lặp
Chia sẻ bởi Trịnh Văn Huy |
Ngày 10/05/2019 |
55
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
1.Khái niệm lặp
- Xét 2 bài toán nhưu sau với a > 2 là số nguyên cho truướ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
Lặp thưuờng có 2 loại:
- Lặp với số lần biết trưuớc.
- Lặp với số lần không biết trưuớ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.
Câu hỏi 1: Em hãy lấy một ví dụ về việc sử dụng cấu trúc lặp trong giải quyết bài toán?
Câu hỏi 2: Em hãy xác định quy luật thay đổi giá trị của bài toán tính tổng sau:
Bài 1: S1= 1+3+5+7+9;
Bài 2: S2= 9+7+5+3+1;
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ưuớ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ưuớc 5;
B4: S:= S + 1/(a+N) rồi quay lại buước 2;
B5: Đưua 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ưuớc 5;
B4: S:= S + 1/(a+N) rồi quay lại bưuớc 2;
B5: Đưua 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 truớ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>;
Câu hỏi1: Em hãy trình bày cấu trúc, ý nghĩa lệnh For - do.
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.
Câu hỏi 2a: Câu lệnh For– to- do nào dưới đây viết đúng cú pháp.
a) For i:= 1 to 10 do s:= s+i;
b) For i:= 1 to 10 do s= s+i;
c) For i= 1 to 10 do s:= s+i;
d) For i= 1 to 10 do s= s+i;
Câu hỏi 2b: Câu lệnh For– downto- do nào dưới đây viết đúng cú pháp.
a) For i:= 10 downto 5 do s:= s+i;
b) For i:= 10 downto 5 do s= s+i;
c) For i = 10 downto 5 do s = s+i;
d) For i:= 10 downto 50 do s:= s+i;
Câu hỏi3a: Xét lệnh:
s:=0;
For i:=1 to 5 do s:=s+i;
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
Đưa ra số 5;
C. Đưa ra số 15;
D. Đưa ra số 1;
Câu hỏi3b: Xét lệnh:
s:=0;
For i:= 5 downto 1 do s:=s+i;
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
B. Đưa ra số 5;
C. Đưa ra số 15;
D. Đưa ra số 1;
3.Củng cố:
C¸c c©u lÖnh m« t¶ cÊu tróc lÆp víi 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>;
Câu hỏi1: Xét lệnh
s:=0; a:=3;
For i:=1 to 5 do s:=s+(i+a);
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
b) Đưa ra số 5;
c) Đưa ra số 15;
d) Đưa ra số 30;
Câu hỏi 2: Xét lệnh:
s:=0; a:=3;
For i:=5 downto 1 do s:=s+(i+a);
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
b) Đưa ra số 5;
c) Đưa ra số 15;
d) Đưa ra số 30;
4. Bài tập về nhà
Bài tập1: Viết câu lệnh tính tổng các số từ 1 đến 10.
Bài tập2: Viết câu lệnh tính tổng các số từ 10 xuống đến 1.
Ví dụ 1: Hai chuươ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ặpvới số lần biết trưuớ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>;
Bài 10: cấu trúc lặp
1.Khái niệm lặp
- Xét 2 bài toán nhưu sau với a > 2 là số nguyên cho truướ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
Lặp thưuờng có 2 loại:
- Lặp với số lần biết trưuớc.
- Lặp với số lần không biết trưuớ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.
Câu hỏi 1: Em hãy lấy một ví dụ về việc sử dụng cấu trúc lặp trong giải quyết bài toán?
Câu hỏi 2: Em hãy xác định quy luật thay đổi giá trị của bài toán tính tổng sau:
Bài 1: S1= 1+3+5+7+9;
Bài 2: S2= 9+7+5+3+1;
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ưuớ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ưuớc 5;
B4: S:= S + 1/(a+N) rồi quay lại buước 2;
B5: Đưua 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ưuớc 5;
B4: S:= S + 1/(a+N) rồi quay lại bưuớc 2;
B5: Đưua 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 truớ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>;
Câu hỏi1: Em hãy trình bày cấu trúc, ý nghĩa lệnh For - do.
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.
Câu hỏi 2a: Câu lệnh For– to- do nào dưới đây viết đúng cú pháp.
a) For i:= 1 to 10 do s:= s+i;
b) For i:= 1 to 10 do s= s+i;
c) For i= 1 to 10 do s:= s+i;
d) For i= 1 to 10 do s= s+i;
Câu hỏi 2b: Câu lệnh For– downto- do nào dưới đây viết đúng cú pháp.
a) For i:= 10 downto 5 do s:= s+i;
b) For i:= 10 downto 5 do s= s+i;
c) For i = 10 downto 5 do s = s+i;
d) For i:= 10 downto 50 do s:= s+i;
Câu hỏi3a: Xét lệnh:
s:=0;
For i:=1 to 5 do s:=s+i;
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
Đưa ra số 5;
C. Đưa ra số 15;
D. Đưa ra số 1;
Câu hỏi3b: Xét lệnh:
s:=0;
For i:= 5 downto 1 do s:=s+i;
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
B. Đưa ra số 5;
C. Đưa ra số 15;
D. Đưa ra số 1;
3.Củng cố:
C¸c c©u lÖnh m« t¶ cÊu tróc lÆp víi 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>;
Câu hỏi1: Xét lệnh
s:=0; a:=3;
For i:=1 to 5 do s:=s+(i+a);
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
b) Đưa ra số 5;
c) Đưa ra số 15;
d) Đưa ra số 30;
Câu hỏi 2: Xét lệnh:
s:=0; a:=3;
For i:=5 downto 1 do s:=s+(i+a);
Writeln(s);
Hỏi lệnh trên đưa ra màn hình gì?
Không đưa ra gì;
b) Đưa ra số 5;
c) Đưa ra số 15;
d) Đưa ra số 30;
4. Bài tập về nhà
Bài tập1: Viết câu lệnh tính tổng các số từ 1 đến 10.
Bài tập2: Viết câu lệnh tính tổng các số từ 10 xuống đến 1.
Ví dụ 1: Hai chuươ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ặpvới số lần biết trưuớ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>;
* 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)