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 (368.76 KB, 9 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
• <b> Học cho đến khi thuộc bài</b>
• <b> Nhặt từng cọng rau cho đến khi hết rau</b>
• <b> Bài tốn: Viết chương trình nhập vào</b>
<b> một dãy số cho đến khi gặp 0 thì dừng lại, tính tổng </b>
<b>các số vừa nhập </b>
<i><b>Hãy kể tên những hoạt </b></i>
<i><b>động được thực hiện lặp đi </b></i>
<i><b>lặp lại với số lần lặp không </b></i>
<i><b>thể xác định trước</b>?</i>
<b>Bài toán 1:</b>
<b>Bài toán 2: </b>
<b>Tính tổng cho đến khi S>1000. Cho biết số N nhỏ </b>
<b>nhất</b>
<b>2. Ví dụ về lệnh lặp với số lần chưa xác định</b>
Để tính tổng trên máy tính thực hiện cộng n số từ 1 đến N vào tổng S
Lặp với số lần biết trước là n lần
Để tính tổng trên máy tính thực hiện cộng các số từ 1 đến N vào tổng
S đến khi nào S>1000 thì dừng
<b>WHILE </b><i><b><Điều kiện></b></i><b> DO </b><i><b><Câu lệnh></b></i><b>;</b>
<i><b>Điều kiện</b></i>
<b>S<1000</b>
<i>Đúng</i>
<i><b>Câu lệnh</b></i>
<b>S:=S+1</b>
Điều kiện<i>: thường là một phép so sánh</i>
<i> </i>
<i>Sai</i>
<i><b>Trong đó:</b></i>
<b>Câu lệnh lặp với số lần lặp chưa xác định trong Pascal:</b>
Câu lệnh: là câu lệnh đơn hay câu
<i>lệnh ghép</i>
<i><b>Ví dụ</b></i>: While S<1000 do S:= S+1;
<b>3. Lệnh lặp với số lần chưa xác định</b>
<b>B1: S:=0; N:=0;</b>
<b>B2: </b><i><b>Nếu S<= 1000 thì thực </b></i>
<i><b>hiện tăng N thêm 1 đơn vị,</b></i>
<i><b> ngược lại chuyển tới B4</b></i>
<b>B3: </b><i><b>Cộng N vào S => sang B2</b></i>
<b>B4: </b><i><b>In kết quả: N là số tự </b></i>
<i><b>nhiên nhỏ nhất sao cho </b></i>
<i><b>S>1000, Tổng S và kết thúc</b></i>
S:=0; N:=0;
WHILE S<=1000 DO
Begin
N:=N+1;
S:=S+N;
END;
Writeln(‘Số N nhỏ nhất để S>1000’, N)
Writeln(‘<sub>Tổng đầu tiên </sub>>1000 l : , S);à ’
<b>Program Bai_toan;</b>
<b>Uses Crt;</b>
<b>Var N:Integer;</b>
<b> S:Real;</b>
<b>BEGIN </b>
<b> Clrscr;</b>
<b> S:=0;N:=0;</b>
<b> WHILE s< = 1000 DO </b>
<b> BEGIN</b>
<b>N:=N+1;</b>
<b>S:=S+N;</b>
<b> END;</b>
<b> Writeln(‘So N nho nhat de tong S>1000 la: ’, N);</b>
<b> Writeln(‘Gia tri cua tong S = ', S);</b>
<b> Readln;</b>
<b>END.</b>
Lưu ý: Khi viết chương trình với câu lệnh lặp While ... do, sau Do phải có lệnh tác
động làm thay đổi Điều kiện để Điều kiện đến lúc nào đó từ Sai chuyển sang Đúng
nhằm kết thúc vịng lặp
Ví dụ:
Var a:integer;
Begin
a:=2;
While a<6 do Write(' Chuong trinh chay mai khong thoat duoc');
End.
<b>4. Lặp vơ hạn -Lỗi lập trình cần tránh </b>
Var a:integer;
Begin
a:=2;
While a<6 do
Begin
Write(' Chuong trinh chay sẽ thốt được');
<b>a:=a+1;</b>
• <b>While. . . do</b> <b>là câu lệnh lặp với số lần </b>
<b>chưa biết trước trong Pascal</b>
• <b>Ngồi cấu trúc lặp với số lần biết trước, các </b>
<b>ngơn ngữ lập trình cịn có các câu lệnh lặp với </b>
<b>số lần chưa biết trước.</b>