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 (646.85 KB, 20 trang )
<span class='text_page_counter'>(1)</span>KIỂM TRA BÀI CŨ - Hãy nêu cú pháp câu lệnh lặp For…Do.. Cú pháp: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;.
<span class='text_page_counter'>(2)</span> VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100 S = 1 + 2 + 3 + . . .+100. Lặp 100 lần. Lặp với số lần biết trước, sử dụng câu lệnh lặp For… Do để viết chương trình. VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.. Chưa biết lặp mấy lần. Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?.
<span class='text_page_counter'>(3)</span>
<span class='text_page_counter'>(4)</span> 1. Các hoạt động lặp với số lần chưa biết trước VD1(Sgk): VD1. 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. Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhaác maùy..
<span class='text_page_counter'>(5)</span> 1. Các hoạt động lặp với số lần chưa biết trước VD2(Sgk): VD2. … tăng dần. Điều Tn nhỏ Điềukiện: kiệnKhi nhưtổng thế nào thì nhất thìlặp? kết kết lớn thúchơn hoạt1000 động thúc hoạt động lặp.
<span class='text_page_counter'>(6)</span> 1. Các hoạt động lặp với số lần chưa biết trước. Phân tích bài toán: n 1 2 3 …. ?. Tổng Tn. Điều kiện Tn ≤ 1000. T1 = 1 T2 = 1 + 2. Đúng Đúng. T3 = 1 + 2 + 3 …. Đúng …. Tn = 1 + 2 + 3 + … +? (Sao cho Tn nhỏ nhất lớn hơn 1000). Sai, kết thúc việc tính tổng.
<span class='text_page_counter'>(7)</span> 1. Các hoạt động lặp với số lần chưa biết trước Kí hiệu S là tổng cần tìm và ta có thuật toán như sau: S 0, n 0. Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước 4. S S + n và quay lại bước 2. In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>1000. Kết thúc thuật toán.. * Có thể diễn tả lặp bàivới toán Các hoạt động số lần trênchưa bằng đồ như sau: vào biếtsơtrước phụ thuộc cái gì và chỉ dừng lại khi nào?. S1000? Đúng n n+1; S S+n;. Sai.
<span class='text_page_counter'>(8)</span> 2. Ví dụ về lệnh lặp với số lần chưa biết trước. Hãy nêu cú pháp với câu lệnh lặp while - do? Cú pháp:. While <điều kiện> do <câu lệnh >;. Điều kiện: biểu thức quan hệ hoặc biểu thức logic Câu lệnh: là môt câu lệnh trong Pascal (có thể là câu lệnh đơn giản hay câu lệnh ghép).
<span class='text_page_counter'>(9)</span> 2. Ví dụ về lệnh lặp với số lần chưa biết trước Quan sát sơ đồ khối, hãy cho biết sự thực hiện của máy?. SƠ ĐỒ KHỐI. Điều kiện Đúng Câu lệnh. • Bước 1: tính giá trị của <điều kiện>. • Bước 2: Nếu <điều kiện> có giá trị đúng thì: • thực hiện lệnh cần lặp. • quay lại bước 1. Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.. Sai.
<span class='text_page_counter'>(10)</span> 2. Ví dụ về lệnh lặp với số lần chưa biết trước. VD1:. While a<=b do a:=a+1;. Trong đó : While, do là các từ khóa. Điều kiện là a<=b (chứa phép so sánh). Câu lệnh là a:=a+1 (câu lệnh đơn).. VD2:. While a>b do Begin write(‘a>b’); a:=a-1; End;. Trong đó : While, do là các từ khóa. Điều kiện là a>b (chứa phép so sánh). Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép)..
<span class='text_page_counter'>(11)</span> 2. Ví dụ về lệnh lặp với số lần chưa biết trước. VD: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk) var S,n: integer; Begin S:=0; n:=0; while S<=1000 do begin n:=n+1; S:=S+n ; end; write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat sao cho S>1000’); Readln; End.. Tong S= 1035 va 45 la so tu nhien nho nha sao cho S>1000.
<span class='text_page_counter'>(12)</span> Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước? A. Tính tổng các số tự nhiên từ 1 đến 20.. B. Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số.. C. Mỗi ngày học bài 2 lần.. D. Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng..
<span class='text_page_counter'>(13)</span> 3. Lặp vô hạn lần – Lỗi lập trình cần tránh. Quan sát đoạn chương trình sau:. Vòng lặp vô tận Yêu cầu: * Hãy cho biết chương trình trên sẽ lặp lại như thế nào?.
<span class='text_page_counter'>(14)</span> Bµi tËp vËn dông Bµi 1: ViÕt ®o¹n ch¬ng tr×nh hiÓn thÞ ra mµn h×nh 5 ch÷ sè tù nhiªn ®Çu tiªn.. M« t¶ Gi¶i n:=0; While (n<5) Do Begin Write(n:2); n:= n+1; End;.
<span class='text_page_counter'>(15)</span> Bµi 2: ViÕt ch¬ng tr×nh tÝnh gi¸ trÞ cña biÓu thøc sau (n lµ 1 sè nguyªn nhËp tõ bµn phÝm) A = 1 + 1/2 + 1/3 + ... + 1/n.
<span class='text_page_counter'>(16)</span> ChươngưTrìnhưtínhưgiáưtrịưcủaưBiểuThức:ưưAư=ư1ư+ư1/2ư+ư1/3ư+ư...ư+ư1/n. Program Tinh_GTBT; Uses CRT; Var i,n: integer; A: Real; BEGIN clrscr; Writeln(‘ Chuong trinh tinh gia tri bieu thuc’); Write(‘ Nhap n = ‘); Readln(n); A:=0 ; i:=1; While (i <= n) Do Begin A:= A + 1/i; i:= i + 1; End; Writeln(‘ Gia tri cua bieu thuc la A = ’,A:0:2); Readln; END..
<span class='text_page_counter'>(17)</span> KiÕn thøc träng t©m Bµi tËp vÒ nhµ. Bµi 1: T×m íc chung lín nhÊt (UCLN) cña 2 sè nguyªn d¬ng a,b. Bµi 2: L·i suÊt hµng th¸ng göi tiÕt kiÖm kh«ng k× h¹n lµ 1%. Mét ngêi göi vµo mét sè tiÒn ban ®Çu lµ a. Hái sau bao nhiªu th¸ng ngời đó đạt đợc số tiền lớn hơn b.. END.
<span class='text_page_counter'>(18)</span> LưuưĐồưmiêuưtảưquáưtrìnhưhoạtưđộngưcủaưvòngưlặpưWHILE...DO KiÓm tra BT§K. SAI. BiÓuthøc®iÒukiÖn §óng. LÖNh. Thùc hiÖn lÖnh. Tho¸t khái vßng lÆp.
<span class='text_page_counter'>(19)</span> M«phángthuËtto¸n:In5sètùnhiªn®Çutiªnramµnh×nh. KÕt qu¶. B¾t ®Çu n := 0. 54 0 1 5? 5? 23<<<5?. 0. 1. 2. Sai. §óng ViÕt 04321 ra mµn h×nh n:= 15432. KÕt thóc. 3. 4.
<span class='text_page_counter'>(20)</span>
<span class='text_page_counter'>(21)</span>