Tìm kiếm theo tiêu đề

Tin tức cộng đồng

5 điều đơn giản cha mẹ nên làm mỗi ngày để con hạnh phúc hơn

Tìm kiếm hạnh phúc là một nhu cầu lớn và xuất hiện xuyên suốt cuộc đời mỗi con người. Tác giả người Mỹ Stephanie Harrison đã dành ra hơn 10 năm để nghiên cứu về cảm nhận hạnh phúc, bà đã hệ thống các kiến thức ấy trong cuốn New Happy. Bà Harrison khẳng định có những thói quen đơn...
Xem tiếp

Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 0919 124 899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

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

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trần Vũ Quốc Nguyên
Ngày gửi: 16h:45' 14-09-2021
Dung lượng: 287.5 KB
Số lượt tải: 396
Số lượt thích: 0 người
Kiểm tra bài cũ
Câu hỏi: Viết cấu trúc câu lệnh If-then dạng thiếu
Áp dụng: Cho a, b là hai số nguyên dùng câu lệnh if-then dạng thiếu để tìm số lớn nhất max trong hai số a và b.
Dạng thiếu
Max:=a;
If b>a then max:=b;
Dạng đủ:
If a>b then max:=a
Else max:=b;
1.Lặp:
Bài toán: Với a là số nguyên và a>2, tính và đưa kết quả ra màn hình tổng S.
Ta dễ dàng thấy cách để tính tổng S như sau:
-Xuất phát, S được gán giá trị a
-Tiếp theo, cộng vào S một giá trị N với N=1, 2, 3,…10
Việc cộng được lặp lại với số lần là 10 và việc tính tổng S sẽ kết thúc khi đã thực hiện việc cộng N vào S là 10 lần.
S=a+1+2+3+4+5+6+7+8+9+10
Ta thấy trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là khả năng thực hiện hiệu quả các thao tác lặp. Cấu trúc lặp mô tả thao tác lặp và được phân biệt hai loại là lặp với số lần biết trước và lặp với số lần chưa biết trước.
Trong Pascal và một số ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp. Trong tiết này ta chỉ nghiên cứu cấu trúc lặp với số lần biết trước.
2.Lặp với số lần biết trước và câu lệnh For-do:
Thuật toán tính tổng
Nhập a=3
S=3+1+2+3+4+5+6+7+8+9+10=58
Vậy số lần lặp của thuật toán trên là biết trước (10 lần).Kết quả
Thuật toán này lặp ở những bước nào? Và khi nào thì thuật toán dừng.
S=a+1+2+3+…+10
Trong thuật toán, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>10 thì kết thúc lặp. Ta nói cách lặp trong thuật toán trên là dạng lặp tiến
Pascal dùng câu lệnh lặp for-do thể hiện dạng lặp với số lần biết trước như sau:
Dạng lặp tiến:
For := to do ;
Chú ý: ở đây có thể là câu lệnh đơn hoặc câu lệnh ghép.
*Cách hoạt động: Các em xem SGK
2.Lặp với số lần biết trước và câu lệnh For-do:
Chương trình tính tổng S=a+1+2+…+10
Program Tong;
Uses crt;
Var S:real;
a,N:Integer;
Begin
Clrscr;
Write(‘nhap vao a’);
Readln(a);
S:=a;
For N:=1 to 10 do
S:=S+N;
Writeln(‘tong s la’,S:8:2);
Readln
End.
2.Lặp với số lần biết trước và câu lệnh For-do:
Ngoài cách tính tổng S là S=a+1+2+3…+10 thì ta còn có cách tính S nào khác không?
S=a+10+9+8+…+1
Ta dễ dàng thấy cách để tính tổng S như sau:
-Xuất phát, S được gán giá trị a
-Tiếp theo, cộng vào S một giá trị N với N=10, 9, 8,…,1
Việc cộng được lặp lại với số lần là 10 và việc tính tổng S sẽ kết thúc khi đã thực hiện việc cộng N vào S 10 lần.
2.Lặp với số lần biết trước và câu lệnh For-do:
Thuật toán tính tổng
Nhập a=3
S=3+10+9+8+7+6+5+4+3+2+1=58
Vậy số lần lặp của thuật toán trên là biết trước (10 lần).
Thuật toán này lặp ở những bước nào? Và khi nào thì thuật toán dừng.
Trong thuật toán, giá trị N khi bắt đầu tham gia vòng lặp là 10 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 thì kết thúc lặp. Ta nói cách lặp trong thuật toán trên là dạng lặp lùi.
2.Lặp với số lần biết trước và câu lệnh For-do:
Pascal dùng câu lệnh lặp for-do thể hiện dạng lặp với số lần biết trước như sau:
Dạng lặp lùi:
For := downto do ;
Chú ý: ở đây có thể là câu lệnh đơn hoặc câu lệnh ghép.
*Cách hoạt động: Các em xem SGK
2.Lặp với số lần biết trước và câu lệnh For-do:
Lớp chia làm 4 nhóm tiến hành thảo luận và trình bày bảng phụ.
Lập chương trình tính tổng S=a+10+9+8+7+6+5+4+3+2+1
Chương trình tính tổng S=a+10+9+8+…+1
Program Tong;
Uses crt;
Var S:real;
a,N:Integer;
Begin
Clrscr;
Write(‘nhap vao a’);
Readln(a);
S:=a;
For N:=10 downto 1 do
S:=S+N;
Writeln(‘tong s la’,S:8:2);
Readln
End.
2.Lặp với số lần biết trước và câu lệnh For-do:
Ví dụ 1: Cho biết kết quả khi thực hiện chương trình sau:
Uses crt;
Var i:byte;
Begin
Clrscr;
For i:=1 to 5 do
Writeln(‘Xin chao cac ban!’);
Readln;
End.
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Kết quả chương trình sẽ in ra màn hình 5 dòng:
Ví dụ 2: Cho biết kết quả khi thực hiện chương trình sau:
Uses crt;
Var i:byte;
Begin
Clrscr;
For i:=5 downto 1 do
Writeln(‘Xin chao cac ban!’);
Readln;
End.
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Xin chao cac ban!
Kết quả chương trình sẽ in ra màn hình 5 dòng:
Ví dụ 3: Cho biết kết quả khi thực hiện chương trình sau:
Uses crt;
Var i:byte;
Begin
Clrscr;
For i:=5 downto 1 do
Writeln(i);
Readln;
End.
Kết quả chương trình sẽ in ra màn hình là:
5
4
3
2
1
Kiểm tra bài cũ
Câu hỏi: Hãy trình bày cấu trúc lặp dạng tiến for-do và nêu cách hoạt động .
Ví dụ áp dụng: Dùng cấu trúc lặp tiến for-do thể hiện đoạn chương trình in ra màn hình 5 dòng thông báo Xin chao cac ban!
For i:=1 to 5 do
writeln(‘Xin chao cac ban!’);
Bài toán: Tính và đưa kết quả ra màn hình tổng
Cho đến khi
Ta dễ dàng thấy cách tính tổng S như sau:
Xuất phát, S được gán giá trị
Tiếp theo cộng vào tổng S một giá trị với N=1,2,3,4,5,…
Việc cộng này được lặp lại một số lần chưa biết trước và việc cộng vào tổng S sẽ kết thúc khi điều kiện
được thoả mãn
3.Lặp với số lần chưa biết trước và câu lệnh While-do
Thuật toán này lặp ở những bước nào ? và số lần là bao nhiêu?
Vậy chúng ta không thể xác định được số lần lặp mà chỉ biết khi nào 1/(a+N)<0,0001 thì dừng việc lặp
Để mô tả cấu trúc lặp như vậy, Pascal dùng câu lệnh While-do có dạng
While <điều kiện> do ;
Trong đó:
Điều kiện là biểu thức lôgic;
Câu lệnh là một câu lệnh đơn hoặc câu lệnh ghép
Dựa vào sơ đồ thực hiện lệnh While-do hãy nêu cách hoạt động của câu lệnh While-do?
Cách hoạt động của câu lệnh lặp While-do
Khi <điều kiện> lặp còn đúng thì còn thực hiện
sau từ khoá do, cho tới khi <điều kiện> lặp là sai thì thoát khỏi vòng lặp
Ví dụ 1:
a:=10; b:=2;
While (a>b) do a:=a-1;
Hãy xác định đâu là <điều kiện>, đâu là
Vòng lặp này dừng khi a=?
<Điều kiện> là (a>b) là a:=a-1
Vòng lặp dừng khi a=b (a=2)
Ví dụ 2:
a:=10; b:=2;
While (aVòng lặp này dừng khi a=?
Vòng lặp này không thực hiện vì <điều kiện> (aVí dụ 3:
a:=10; b:=2;
While (a>b) do a:=a+1;
Vòng lặp này dừng khi a=?
Vòng lặp này không dừng. Vì <điều kiện> (a>b) luôn đúng, hay nói cách khác trong trường hợp này việc lặp trở thành lặp vô tận không dừng.
Chú ý: Trong trường hợp lặp vô tận để dừng việc lặp này lại ta ấn đồng thời trên bàn phím tổ hợp phím Ctrl+Pause hoặc Ctrl+Break
Ví dụ 4: Cho biết kết quả sau khi thực hiện chương trình sau:
In ra trên màn hình số 55
Lớp chia 4 nhóm thảo luận trong 5 phút và trình bày bảng phụ
Lập chương trình tính và đưa kết quả ra màn hình tích:
T=1*2*3*4*5*6
Program Tich;
Uses crt;
Var S,a:integer;
Begin
clrscr;
a:=1; s:=1;
While (a<=6) do
begin
s:=s*a;
a:=a+1;
end;
write(s);
Readln
End.
Cần nhớ:
1.While <điều kiện> do ;
2.Cách hoạt động:
Khi <điều kiện> lặp còn đúng thì còn thực hiện
sau từ khoá do, cho tới khi <điều kiện> lặp là sai thì thoát khỏi vòng lặp
3.Cách thoát khỏi vòng lặp vô tận dùng tổ hợp phím Ctrl+Pause hoặc Ctrl+Break
 
Gửi ý kiến