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 (242.9 KB, 10 trang )
<span class='text_page_counter'>(1)</span>Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Ngày dạy: Tiết 37: Bài 7: CÂC LỆNH LẶP 1/ MỤC TIÊU: Biết nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình. Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần. Thái độ nghiêm túc cẩn thận. 2/ CHUẨN BỊ: Gv: Soạn giáo án, SGK, SBT HS: Vở ghi, SGK, SBT, đọc trước nội dung bài học. 3/ TIẾN TRÌNH BÀI DẠY 1) ổn định lớp: 1’ 2)Kiểm tra: (3’) Trình bày cấu trúc của câu lệnh rẽ nhánh trong pascal, nêu ý nghĩa hoạt động cña c©u lÖnh? 3)Bài mới: (35’) Hoạt động của GV & HS Hs lắng nghe. Nội dung Hoạt động 1 : 1/ Các công việc phải thực hiện nhiều lần (15’) Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần. ví dụ: - Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà - Các em học bài thì phải đọc đi đọc lại nhiều lần cho đến khi thuộc bài. Hãy cho thêm một vài ví dụ trong thực tế trong đời sống hằng ngày mà ta phải thực hiện các thao tác được lặp đi lặp nhiều lần? Gv: Khi viết chương trình máy tính cũng vậy, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều câu lệnh chỉ để thực hiện 1 phép tính nhất. Hs cho ví dụ. Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(2)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Gv: Gọi 1 hs lên bảng vẽ một hình vuông cạnh 1 đơn vị độ dài (20cm) và yêu cầu cả lớp theo dõi bạn thực hiện các thao tác trên bảng. Yêu cầu 1 hs mô tả các bước bạn vẽ trên bảng. Vậy khi bạn vẽ 1 hình vuông đã thực hiện bao nhiêu thao tác? (hs có thể chỉ trả lời 4 thao tác là vẽ 4 đoạn thẳng) Gv: Mô tả thuật toán trên bảng. định.. Hoạt động 2: 2/ Câu lệnh lặp – một lệnh thay cho nhiều lệnh (20’) Các thao tác giống nhau. Vd1: Thuật toán mô tả các bước để vẽ hình vuông. Bước 1: k ← 0 (k là số đoạn thẳng đã vẽ được). Bước 2: k ← k+1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải. Bước 3: Nếu k<4 thì quay lại bước Gv: Mô tả thuật toán tính tổng các số tự nhiên 2; ngược lại kết thúc. từ 1→ 100 k là biến đếm Vd2: Thuật toán tính S= 1+2+3+ … + 100 Bước 1: S ← 0; i ← 0. 1hs lên bảng vẽ, cả lớp theo dõi Bước 2: i← i + 1 Bước 3: nếu i ≤ 100, thì S ← S + i và quay lại bước 2; ngược lại kết GV: Gợi ý thêm thao tác quay thước. thúc. Các thao tác đó như thế nào? i là biến đếm Gv: Như vậy khi vẽ hình vuông có những Mô tả thuật toán trên gọi là cấu trúc thao tác lặp đi lặp lại. Thuật toán sau sẽ mô tả lặp. các bước để vẽ hình vuông. Mọi ngôn ngữ lập trình đều có cách chỉ thị cho máy tính thực hiện cấu trúc lặp chỉ với 1 câu lệnh. Đó là câu lệnh lặp Cấu trúc mô tả thuật toán như trên gọi là cấu trúc lặp. 4) Củng cố luyện tập: (4’) ? Em hãy cho một vài ví dụ về hoạt động thực HS: Thảo luận nhóm và đại diện hiện lặp lại trong cuộc sống hằng ngày. mỗi nhóm đưa ra ví dụ của nhóm ? Cho biết tác dụng của câu lệnh lặp với số lần mình. Hoạt động cá nhân, một đến ba học biết trước. sinh đứng tại chỗ trả lời. 5) Hướng dẫn về nhà học bài và làm bài: (2’) - Học bài và làm bài tập 1, 2 trong SGK trang 60. - Đọc trước nội dung tiếp theo của bài, giờ sau học tiếp. Gi¸o ¸n Tin häc 8 N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(3)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Ngày dạy: Tiết 38 Bài 7 : CÂC LỆNH LẶP ( TT ) I- MỤC TIÊU: Hiểu hoạt động của câu lệnh với số lần biết trước for...do trong Pascal. Viết đúng được lệnh for...do trong một số tình huống đơn giản. Hiểu lệnh ghép trong Pascal Thái độ nghiêm túc cẩn thận. II- CHUẨN BỊ: Gv: Soạn giáo án, SGK, SBT HS: Vở ghi, SGK, SBT, đọc trước nội dung bài học. III- TiÕn tr×nh BÀI DẠY 1)Kiểm tra: (5’) M« t¶ thËt to¸n tÝnh tæng cña 100 sè tù nhiªn ®Çu tiªn? 2)Bài mới: (35’) Hoạt động của thẩy và trò Nội dung bài dạy Gv: minh họa bẳng ngôn ngữ Pascal cú pháp câu lệnh for … to … do Lưu ý cho hs: - biến đếm là biến đơn có kiểu nguyên; - giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn hơn giá trị đầu; - câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.. 3/ Ví dụ về câu lệnh lặp (17’) Cú Pháp câu lệnh lặp với số lần biết trước trong Pascal. for<biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh> trong đó: for, to, do là các từ khóa Vd 1: Chuong trình in ra màn hình thứ tự lần lặp. var i:integer; begin for i:= 1 to 20 do writeln(‘Day la lan lap thu’,i); readln; end. Vd2: chương trình ghi nhận vị trí 10 chữ O rơi từ trên xuống.. ues crt; var i:integer; begin clrscr; Gv: Giải thích cho học tại sao vd2 trong câu for i:= 1 to 20 do lệnh lặp có begin … end Gi¸o ¸n Tin häc 8 N¨m häc 2010-2011 Cho hs nhận xét và so sánh sự khác nhau ở câu lệnh lặp trong hai vd trên?. Lop8.net.
<span class='text_page_counter'>(4)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ begin writeln(‘O’); delay(200); end; readln;. end. *Lưu ý: Câu lệnh có sử dụng câu lệnh ghép thì phải đặt trong hai từ khóa begin … end. Gv: trình bày đoạn chương trình tính tổng N 4/ Tính tổng và tích bằng câu lệnh lặp số tự nhiên, với N là số tự nhiên được nhập (18’) từ bàn phím (Pascal) Vd 1: chương trình tính tổng N số tự nhiên Theo công thức tính tổng ta cần khai bao đầu tiên, với N là số tự nhiên được nhập từ bàn phím. nhieu biến? kiểu biến? Trong 2 biến thì biến nào có giá trị được S = 1+2+3+ … + N nhập từ bàn phím? program Tinh_tong; var N,i:integer; S:longint; begin write(‘Nhap so N = ‘); readln(N); S:= 0; for i:= 1 to N do S:= S+i; writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S); readln; end. Trong trường hợp dữ liệu có kiểu nguyên rất *Kiểu longint có phạm vi từ -231 đến 231 – lớn ta dùng longint 1. Vd 2: chương trình tính tích N số tự nhiên, với N là số tự nhiên được nhập từ bàn phím. N! = 1.2.3….N program Tinh_Giai_Thua; var N,i:integer; P:longint; begin write(‘Nhap so N = ‘); readln(N); Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(5)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ P:= 1; for i:= 1 to N do P:= P*i; writeln( N, ‘! = ‘, P); readln; end.. 4) Củng cố: (4’) 1/ Cấu trúc lặp trong chương trình dùng để làm gì? 2/ Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước được thể hiện với câu lệnh nào? 5) Hướng dẫn về nhà: (1’) Học bài, làm các bài tập trong SGK trang 60 – 61, xem lại các ví dụ, tiết sau làm bài tập tại lớp. Ngày dạy: Tiết 39: BÀI TẬP. I- MỤC TIÊU: Củng cố lại kiến thức trong bài 7 thông qua việc làm bài tập tại lớp và ở nhà của HS. Thái độ nghiêm túc cẩn thận. II- CHUẨN BỊ: Gv: Soạn giáo án, SGK, SBT HS: Vở ghi, vở bài tập, SGK, SBT. III- TIẾN TRÌNH BÀI DẠY: 1- ¤®TC: 1’ 2- Kiểm tra: Kiểm tra bài cũ trong quá trình học. 3- Nội dung bài tập: (42’) Bài 1 (10’) Em hãy cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hằng ngày. Trả lời: Có thể nêu rất nhiều vài ví dụ về các hoạt động lặp. Dưới đây là một số ví dụ: a) Hàng ngày em đặt đồng hồ báo thức lúc 6 giờ để dậy sớm tập thể dục. b) Hàng ngày (hoặc hàng tuần) bác lái xe khách lái xe để chuyên chở hành khách xuất phát từ một thời gian và địa điểm nhất định và đi theo một tuyến đường đã được xác định trước. c) Mỗi lần được khởi động, máy tính của em sẽ thực hiện cùng các hoạt động tự kiểm tra các thành phần máy tính, sau đó khởi động hệ điều hành theo một trình tự đã được quy định trước. Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(6)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Bài 2 (17’) : a) Có thể thấy, để vẽ được hình ...a), thao tác chính cần thực hiện là vẽ nửa đường tròn theo hướng nhất định. Ta gọi thao tác vẽ nửa đường tròn theo hướng A là vẽ nửa đường tròn có bán kính 1 đơn vị bắt đầu từ một điểm xác định, đường kính nối điểm đầu và điểm cuối của nửa đường tròn vuông góc với hướng A và nửa đường tròn "cong về hướng A" (hình...). Ta chỉ xét A là các hướng lên trên, xuống dưới, sang tr¸i, sang ph¶i. Với các hướng, ta định nghĩa phép toán sau: lên trên + 1 = sang trái, sang trái +1 = xuống dưới, xuống dưới +1 = sang phải, sang phải +1 = lên trên. Khi đó có thể mô tả các bước của thuật toán để vẽ hình 1a như sau:. a). b). H×nh 1 Có thể mô tả các bước của thuật toán để vẽ hình ... a) như sau: Bước 1. Xác định điểm bắt đầu vẽ là X. Bước 2. Đặt i = 0 và đặt hướng = lên trên. Bước 3. Vẽ nửa đường tròn theo hướng đã đặt. Bước 4. i = i + 1. Bước 5. Nếu i > 4, chuyển bước 6; ngược lại, đặt hướng = hướng + 1 và quay lại bước 3. Bước 6. Kết thúc thuật toán. Lưu ý. Khi trình bày thuật toán lần đầu tiên cho học sinh không nên định nghĩa các phép toán với hướng mà nên liệt kê đủ bốn hướng trong thuật toán. b) Thuật toán tương tự như trên. Thao tác chính cần lặp lại là vẽ hình vuông. Tại mỗi bước, giữ nguyên tâm hình vuông và thay đổi hướng vẽ một góc 30o. Bài 3 (5’) Cho biết t¸c dụng của c©u lệnh lặp với số lần biết trước. Trả lời: Câu lệnh lặp có tác dụng làm đơn giản và giảm nhẹ công sức của người viết chương trình. Bài 4 (10’): Khi thực hiện câu lệnh lặp, máy tính kiểm tra một điều kiện. Với lệnh lặp For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>; của Pascal, điều kiện cần phải kiểm tra là gì? Trả lời: Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(7)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Chúng ta nói rằng khi thực hiện các hoạt động lặp, chương trình kiểm tra một ®iÒu kiÖn. Víi lÖnh lÆp for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; của Pascal, điều kiện cần phải kiểm tra chính là giá trị của biến đếm lớn hơn giá trÞ cuèi. NÕu ®iÒu kiÖn kh«ng ®îc tho¶ m·n, c©u lÖnh ®îc tiÕp tôc thùc hiÖn; ngược lại, chuyển sang câu lệnh tiếp theo trong chương trình. c) Củng cố - Hướng dẫn học bài và làm bài ở nhà: (3’) - Học bài và làm lại các bài tập - Làm tiếp các bài tập còn lại trong SGK, giờ sau làm tiếp bài tập. Ngày dạy: Tiết 40 : BÀI TẬP. ( TT ) I- MỤC TIÊU: Củng cố lại kiến thức trong bài 7 thông qua việc làm bài tập tại lớp và ở nhà của HS. Thái độ nghiêm túc cẩn thận. II- CHUẨN BỊ: Gv: Soạn giáo án, SGK, SBT HS: Vở ghi, vở bài tập, SGK, SBT. III- TIẾN TRÌNH BÀI DẠY: 1) ¤®tc: 1’ 2)Kiểm tra: Kiểm tra bài cũ trong quá trình học. 3) Nội dung bài tập: (43’) Bµi 1. (5’) Sau khi thực hiện đoạn chương trình sau, giá trị của biến j bằng bao nhiêu? J:=0; for i:=0 to 5 j:=j+2; Trả lời: Sau khi thực hiện đoạn chương chương trên giá trị của j =12. Bµi 2. : (7’) Hãy mô tả thuật toán để tính tổng sau đây: A. 1 1 1 1 .... 1.3 2.4 3.5 n(n 2). Trả lời: ThuËt to¸n tÝnh tæng A =. 1 1 1 1 ....... 1.3 2.4 3.5 n( n 1). Bước 1. Gán A 0, i 1. Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(8)</span> Hoµng ThÞ Lan Bước 2. A . Trường THCS Tân Mỹ 1 . i (i 2). Bước 3. i i + 1. Bước 4. Nếu i n, quay lại bước 2. Bước 5. Ghi kết quả A và kết thúc thuật toán. Bµi 3. : (7’) Các câu lệnh Pascal sau có hợp lệ không? Vì sao? a) for i:=100 to 1 do writeln(‘A’); b) for i:=1.5 to 10.5 do writeln(‘A’); c) for i=1 to 10 do writeln(‘A’); d) for i:=1 to 10 do; writeln(‘A’); d) var x:real; begin for x:=1 to 10 do writeln(‘A’); end. Trả lời: Trừ d), tất cả các câu lệnh đều không hợp lệ: a) Gi¸ trÞ ®Çu ph¶i nhá h¬n gi¸ trÞ cuèi; b) C¸c gi¸ trÞ ®Çu vµ gi¸ trÞ cuèi ph¶i lµ sè nguyªn; c) ThiÕu dÊu hai chÊm khi g¸n gi¸ trÞ ®Çu; d) Thõa dÊu chÊm phÈy thø nhÊt, nÕu nh ta muèn lÆp l¹i c©u lÖnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã được khai báo như là biến có dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp. Bµi 4. : (7’) ThuËt to¸n: Bước 1. Nhập các số n và x. Bước 2. A 1, i 0 (A là biến lưu luỹ thừa bậc n của x). Bước 3. ii + 1, A A.x. Bước 4. Nếu i < n, quay lại bước 3. Bước 5. Thông báo kết quả A là luỹ thừa bậc n của x và kết thúc thuật toán. Chương trình Pascal có thể như sau: var n,i,x: integer; a: longint; begin write('Nhap x='); readln(x); write('Nhap n='); readln(n); A:=1; for i:=1 to n do A:=A*X; writeln(x,' mu ',n,' bang ',A); end. Bµi 5. (10’) ThuËt to¸n: Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(9)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. Bước 1. Nhập số n. Bước 2. A 32768 (gán số nhỏ nhất có thể trong các số kiểu nguyên cho A), i 1. Bước 3. Nhập số thứ i và gán giá trị đó vào biến A. Bước 4. Nếu Max < A, Max A. Bước 5. i i + 1. Bước 6. Nếu i ≤ n, quay lại bước 3. Bước 7. Thông báo kết quả Max là số lớn nhất và kết thúc thuật toán. Chương trình Pascal có thể như sau: uses crt; var n,i,Max,A: integer; begin clrscr; write('Nhap N='); readln(n); Max:=-32768; for i:=1 to n do begin write('Nhap so thu ',i,':'); readln(A); if Max<A then Max:=A end; writeln('So lon nhat: ',Max); end. Lưu ý. Trong chương trình trên chúng ta chỉ sử dụng hai biến A và Max để giải bài toán. Một cách tự nhiên, để nhập n số chúng ta cần tới n biến. Tuy nhiên, ở ®©y viÖc xö lÝ c¸c gi¸ trÞ trong d·y sè cã thÓ thùc hiÖn b»ng c¸ch chØ cÇn so s¸nh các giá trị đã được nhập vào, do đó chúng ta chỉ cần một biến để lưu lần lượt các giá trị nhập vào là đủ. Một cách giải quyết khác là sử dụng biến mảng (xem bài tËp 6, bµi 9). Bài 6.: (7’) Lời giải bài này tương tự như lời giải của bài 9 ở trên (xem thuật toán trong lời giải bài tập 5a, bài 5). Chương trình Pascal có thể như sau: uses crt; var n,i,SoDuong,A: integer; begin clrscr; write('Nhap N='); readln(n); if n>0 then begin SoDuong:=0; for i:=1 to n do begin write('Nhap so thu ',i,':'); readln(A); if A>0 then SoDuong:=SoDuong+1 end; writeln('So cac so duong = ',SoDuong) Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(10)</span> Hoµng ThÞ Lan. Trường THCS Tân Mỹ. end else writeln('n phai > 0!'); end. 4- Củng cố - Hướng dẫn về nhà học bài và làm bài: (2’) - Học bài. - Làm lại các bài tập. - Xem trước nội dung bài thự. Gi¸o ¸n Tin häc 8. N¨m häc 2010-2011 Lop8.net.
<span class='text_page_counter'>(11)</span>