Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.07 MB, 16 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>PHÒNG GIÁO HUYỆN TRIỆU PHONG</b>
<b>TRƯỜNG THCS TRIỆU TRUNG</b>
<b>PHÒNG GIÁO HUYỆN TRIỆU PHONG</b>
<b>TRƯỜNG THCS TRIỆU TRUNG</b>
<b> CHÀO MỪNG QUÝ THẦY CÔ GIÁOCÙNG </b>
<b>TẤT CẢ CÁC EM HỌC SINH</b>
<b>FOR</b> < <<b>Biến đếmBiến đếm</b>> : = <> : = <<b>Giá trị đầuGiá trị đầu> TO</b>> <b>TO</b> < <<b>Giá trị cuốiGiá trị cuối> DO</b>> <b>DO</b>
<b>Câu lệnh trong vòng lặp</b>
<b>Câu lệnh trong vòng lặp</b> ; ;
( không là số thực
<b>Bài 1:</b>
S = 1 + 2 + 3 + . . .+100 <b> Bài 2:</b>
<b>? Hãy cho biết </b>
<b>bài số 1 có số </b>
<b>vòng lặp là </b>
<b>bao nhiêu?</b>
<b>? Hãy cho biết </b>
<b>bài số 2 có số </b>
<b>vịng lặp là </b>
<b>bao nhiêu?</b>
<b>. . . </b> <b><sub>. . . … … . . . </sub></b>
<i><b>Lặp 100 lần</b></i> <i><b><sub>Không biết trước</sub></b></i>
<b> </b>
<b> Một ngày chủ nhật, bạn Long gọi điện cho Trang. Khơng </b>
có ai nhấc máy. Long quyết định gọi thêm hai lần nữa. Nếu
vẫn khơng có ai nhấc máy thì chắc là khơng có ai ở nhà.
Như vậy Long đã biết trước là mình sẽ lặp lại hoạt động
<i>gọi điện thêm hai lần.</i>
Một ngày khác, Long quyết định cứ 10 phút gọi điện một
lần cho Trang cho đến khi nào có người nhấc máy. Lần này
<i>Long sẽ lặp lại hoạt động gọi điện mấy lần?</i>
Chưa thể biết trước được, có thể một lần, có thể hai hoặc
nhiều hơn nữa. Điều kiện để kết thúc hoạt động lặp đó là:
<b>Có người nhấc máy.</b>
<b>Program </b>
<b>Program chao_hoi;chao_hoi;</b>
<b>Var </b>
<b>Var Tieptuc: char; Ten: string;Tieptuc: char; Ten: string;</b>
<b>Begin </b>
<b>Begin Tieptuc:=‘c’;Tieptuc:=‘c’;</b>
<b>While </b>
<b>While Tieptuc=‘c’Tieptuc=‘c’ do do</b>
<b>Begin</b>
<b>Begin</b>
<b>Write</b>
<b>Write(‘ Nhap ten cua ban:’); Readln(Ten);(‘ Nhap ten cua ban:’); Readln(Ten);</b>
<b>Writeln</b>
<b>Writeln(‘Chao ban’, Ten);(‘Chao ban’, Ten);</b>
<b>Write</b>
<b>Write(‘ Tiep tuc ? c/k’); readln(Tieptuc);(‘ Tiep tuc ? c/k’); readln(Tieptuc);</b>
<b>End; Readln;</b>
<b>End; Readln;</b>
<b>End.</b>
<b>End.</b>
Hãy quan sát chương trình sau
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
<i> Trong đó: Điều kiện: thường là một phép so sánh;</i>
<i> Câu lệnh:</i> có thể là câu lệnh đơn giản hay câu lệnh ghép
<b>Câu lệnh lặp này được thực hiện như sau:</b>
<i><b>Bước 1 : Kiểm tra điều kiện.</b></i>
<b>Điều kiện</b>
<i><b>Bước 2 : </b></i>
<i><b>- Nếu điều kiện Sai, câu </b></i>
<i> lệnh sẽ bị bỏ qua và việc </i>
thực hiện lệnh lặp kết thúc.
SAI
<i><b> - Nếu điều kiện đúng, </b></i>
thực hiện câu lệnh và
quay lại bước 1.
Câu lệnh
<b>ĐÚNG</b>
? Hãy quan sát câu lệnh sau và cho biết ý nghĩa
của các thành phần trong câu lệnh?
+ Các từ khoá:
+ Điều kiện:
- Sau do nếu nhiều hơn 1 lệnh thì phải nằm
trong cặp từ khố begin….end;
<i>Chúng ta biết rằng, nếu n càng lớn thì 1/n càng nhỏ, nhưng </i>
<i>ln ln lớn hơn 0. Vậy với giá trị nào của n thì 1/n < 0.005 </i>
hoặc 1/n < 0.003?
<b>var </b>
<b>var x: real; n: integer;x: real; n: integer;</b>
<b>const </b>
<b>const sai_so=0.003;sai_so=0.003;</b>
<b>Begin</b>
<b>Begin</b>
<b>x:=1; n:=1;</b>
<b>x:=1; n:=1;</b>
<b>while </b>
<b>while x>=sai_sox>=sai_so do do </b>
<b> </b>
<b> begin begin </b>
<b> </b>
<b> n:=n+1;n:=n+1;</b>
<b> </b>
<b> x:=1/n ;x:=1/n ;</b>
<b> </b>
<b> end;end;</b>
<b>writeln</b>
<b>writeln('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n);('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n);</b>
<b>Readln;</b>
<b>Readln;</b>
<b>End. </b>
<b>End. </b>
<i>Chương trình dưới đây tính số n nhỏ nhất để 1/n nhỏ hơn </i>
một sai số cho trước
Chương
trình tính
<i>số n nhỏ </i>
nhất để 1/n
nhỏ hơn
một sai số
cho trước
<i>Chương trình Pascal sau đây thể hiện thuật tốn tính số n </i>
trong ví dụ 2:
<b>var S,n: integer;</b>
<b>var S,n: integer;</b>
<b>begin</b>
<b>begin</b>
<b>S:=0; n:=1;</b>
<b>S:=0; n:=1;</b>
<b>while S<=1000 do</b>
<b>while S<=1000 do</b>
<b>begin </b>
<b>begin </b>
<b>n:=n+1; </b>
<b>n:=n+1; </b>
<b>S:=S+n; </b>
<b>S:=S+n; </b>
<b>end;</b>
<b>end;</b>
<i><b>Trở lại Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, </b></i>
<i>2, 3,...), ta sẽ được các kết quả T1 =1, T2 =1 + 2, T3 =1 + 2 + 3,... </i>
tăng dần. Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được
<i>tổng Tn nhỏ nhất lớn hơn 1000? </i>
<i><b>Bài 5: Hãy chỉ ra các lỗi trong các câu sau đây:</b></i>
a) <b>X:=10; While X:= 10 do </b>
<b>X:=X+5;</b>
b) <b>X:=10; While X=10 do X </b>
<b>= X+5;</b>
c) <b>S:=0; n:=0; While </b>
<b>S<=10 do </b>
Thừa dấu hai chấm trong điều kiện
thiếu dấu 2 chấm trong câu lệnh
Thiếu từ khoá <b>begin</b> trước câu lệnh n:=n+1 và
từ khoá <b>end sau câu lệnh S:=S+n, do đó vịng </b>
lặp trở thành vơ tận
<b>Begin n:=n+1; S:=S+n;</b>
<b>end;</b>
<b>Nếu S=10, i=0 Sau khi thực hiện câu lệnh</b>
<b> While S>5 do</b>
<b> begin i:=i+1; S:=S-i end;</b>
<b> writeln(S);</b>
<b>Thì giá trị của S là:</b>
<b>Nếu S=0,i=1 Sau khi thực hiện câu lệnh</b>
<b>While i<=5 Do</b>
<b>Begini:=i+1; S:=S+i; End;</b>
<b>Writeln('Ket qua la :',S);</b>
<b>Thì giá trị của S là:</b>
<b>A. 10</b> <b>C.0</b>
<b>B. 14</b>
<b>H</b>
<b>Hướng dẫn về nhàướng dẫn về nhà</b>
<b>- Ôn lại về câu lệnh lặp với số lần khơng biết trước</b>
<b>- Ơn lại về câu lệnh lặp với số lần không biết trước</b>
<b>- Làm bài tập 1, 2, 3,bài 4 SGK</b>