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... H[r]
(1)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 ngôn ngữ lập trình Biết ngôn ngữ lập trình dùng cấu trúc lặp để dẫn máy tính thực lặp lặp lại công việc nào đó 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âu lệnh rẽ nhánh pascal, nêu ý nghĩa hoạt động cña c©u lÖnh? 3)Bài mới: (35’) Hoạt động GV & HS Hs lắng nghe Nội dung Hoạt động : 1/ Các công việc phải thực nhiều lần (15’) Trong sống ngày, nhiều hoạt động thực lặp lặp lại nhiều lần ví dụ: - Các ngày tuần các em lặp lặp lại hoạt động buổi sáng đến trường và buổi trưa trở nhà - Các em học bài thì phải đọc đọc lại nhiều lần thuộc bài Hãy cho thêm vài ví dụ thực tế đời sống ngày mà ta phải thực các thao tác lặp lặp nhiều lần? Gv: Khi viết chương trình máy tính vậy, nhiều trường hợp ta phải viết lặp lại nhiều câu lệnh để thực phép tính Hs cho ví dụ Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (2) Hoµng ThÞ Lan Trường THCS Tân Mỹ Gv: Gọi hs lên bảng vẽ hình vuông cạnh đơn vị độ dài (20cm) và yêu cầu lớp theo dõi bạn thực các thao tác trên bảng Yêu cầu hs mô tả các bước bạn vẽ trên bảng Vậy bạn vẽ hình vuông đã thực bao nhiêu thao tác? (hs có thể trả lời thao tác là vẽ đ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 – lệnh thay cho nhiều lệnh (20’) Các thao tác giống Vd1: Thuật toán mô tả các bước để vẽ hình vuông Bước 1: k ← (k là số đoạn thẳng đã vẽ được) Bước 2: k ← k+1 Vẽ đoạn thẳng đơ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 ← 1hs lên bảng vẽ, lớp theo dõi Bước 2: i← i + Bước 3: 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 đó nào? i là biến đếm Gv: Như vẽ hình vuông có Mô tả thuật toán trên gọi là cấu trúc thao tác lặp lặp lại Thuật toán sau mô tả lặp các bước để vẽ hình vuông Mọi ngôn ngữ lập trình có cách thị cho máy tính thực cấu trúc lặp với câu lệnh Đó là câu lệnh lặp Cấu trúc mô tả thuật toán trên gọi là cấu trúc lặp 4) Củng cố luyện tập: (4’) ? Em hãy cho vài ví dụ hoạt động thực HS: Thảo luận nhóm và đại diện lặp lại sống ngày nhóm đưa ví dụ nhóm ? Cho biết tác dụng câu lệnh lặp với số lần mình Hoạt động cá nhân, đến ba học biết trước sinh đứng chỗ trả lời 5) Hướng dẫn nhà học bài và làm bài: (2’) - Học bài và làm bài tập 1, SGK trang 60 - Đọc trước nội dung bài, sau học tiếp Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (3) Hoµng ThÞ Lan Trường THCS Tân Mỹ Ngày dạy: Tiết 38 Bài : CÂC LỆNH LẶP ( TT ) I- MỤC TIÊU: Hiểu hoạt động câu lệnh với số lần biết trước for Pascal Viết đúng lệnh for số tình đơn giản Hiểu lệnh ghép 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 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 … 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 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ụ 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 Pascal for<biến đếm>:= <giá trị đầu> to <giá trị cuối> <câu lệnh> đó: for, to, là các từ khóa Vd 1: Chuong trình in màn hình thứ tự lần lặp var i:integer; begin for i:= to 20 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 vd2 câu for i:= to 20 lệnh lặp có begin … end Gi¸o ¸n Tin häc N¨m häc 2010-2011 Cho hs nhận xét và so sánh khác câu lệnh lặp hai vd trên? Lop8.net (4) 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 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 câu lệnh lặp số tự nhiên, với N là số tự nhiên 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 nhập từ bàn phím nhieu biến? kiểu biến? Trong biến thì biến nào có giá trị 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:= to N S:= S+i; writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S); readln; end Trong trường hợp liệu có kiểu nguyên *Kiểu longint có phạm vi từ -231 đến 231 – lớn ta dùng longint Vd 2: chương trình tính tích N số tự nhiên, với N là số tự nhiên 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 N¨m häc 2010-2011 Lop8.net (5) Hoµng ThÞ Lan Trường THCS Tân Mỹ P:= 1; for i:= to N P:= P*i; writeln( N, ‘! = ‘, P); readln; end 4) Củng cố: (4’) 1/ Cấu trúc lặp 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 thể với câu lệnh nào? 5) Hướng dẫn nhà: (1’) Học bài, làm các bài tập SGK trang 60 – 61, xem lại các ví dụ, tiết sau làm bài tập 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 bài thông qua việc làm bài tập lớp và nhà 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, 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ũ quá trình học 3- Nội dung bài tập: (42’) Bài (10’) Em hãy cho vài ví dụ hoạt động thực lặp lại sống ngày Trả lời: Có thể nêu nhiều vài ví dụ các hoạt động lặp Dưới đây là số ví dụ: a) Hàng ngày em đặt đồng hồ báo thức lúc để 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ừ thời gian và địa điểm định và theo tuyến đường đã xác định trước c) Mỗi lần khởi động, máy tính em thực 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 trình tự đã quy định trước Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (6) Hoµng ThÞ Lan Trường THCS Tân Mỹ Bài (17’) : a) Có thể thấy, để vẽ hình a), thao tác chính cần thực là vẽ nửa đường tròn theo hướng đị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 đơn vị điểm xác định, đường kính nối điểm đầu và điểm cuối nửa đường tròn vuông góc với hướng A và nửa đường tròn "cong hướng A" (hình ) Ta 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 + = sang trái, sang trái +1 = xuống dưới, xuống +1 = sang phải, sang phải +1 = lên trên Khi đó có thể mô tả các bước thuật toán để vẽ hình 1a sau: a) b) H×nh Có thể mô tả các bước thuật toán để vẽ hình a) sau: Bước Xác định điểm bắt đầu vẽ là X Bước Đặt i = và đặt hướng = lên trên Bước Vẽ nửa đường tròn theo hướng đã đặt Bước i = i + Bước Nếu i > 4, chuyển bước 6; ngược lại, đặt hướng = hướng + và quay lại bước Bước 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 thuật toán b) Thuật toán tương tự trên Thao tác chính cần lặp lại là vẽ hình vuông Tại bước, giữ nguyên tâm hình vuông và thay đổi hướng vẽ góc 30o Bài (5’) Cho biết t¸c dụng 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 người viết chương trình Bài (10’): Khi thực câu lệnh lặp, máy tính kiểm tra điều kiện Với lệnh lặp For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; Pascal, điều kiện cần phải kiểm tra là gì? Trả lời: Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (7) Hoµng ThÞ Lan Trường THCS Tân Mỹ Chúng ta nói thực các hoạt động lặp, chương trình kiểm tra ®iÒu kiÖn Víi lÖnh lÆp for <biến đếm> := <giá trị đầu> to <giá trị cuối> <câu lệnh>; Pascal, điều kiện cần phải kiểm tra chính là giá trị biến đếm lớ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 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 SGK, 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 bài thông qua việc làm bài tập lớp và nhà 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, 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ũ quá trình học 3) Nội dung bài tập: (43’) Bµi (5’) Sau thực đoạn chương trình sau, giá trị biến j bao nhiêu? J:=0; for i:=0 to j:=j+2; Trả lời: Sau thực đoạn chương chương trên giá trị j =12 Bµi : (7’) Hãy mô tả thuật toán để tính tổng sau đây: A 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.3 2.4 3.5 n( n 1) Bước Gán A 0, i Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (8) Hoµng ThÞ Lan Bước A Trường THCS Tân Mỹ i (i 2) Bước i i + Bước Nếu i n, quay lại bước Bước Ghi kết A và kết thúc thuật toán Bµi : (7’) Các câu lệnh Pascal sau có hợp lệ không? Vì sao? a) for i:=100 to writeln(‘A’); b) for i:=1.5 to 10.5 writeln(‘A’); c) for i=1 to 10 writeln(‘A’); d) for i:=1 to 10 do; writeln(‘A’); d) var x:real; begin for x:=1 to 10 writeln(‘A’); end Trả lời: Trừ d), tất các câu lệnh 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 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 đã khai báo là biến có liệu kiểu số thực và vì không thể dùng để xác định giá trị đầu và giá trị cuối câu lệnh lặp Bµi : (7’) ThuËt to¸n: Bước Nhập các số n và x Bước A 1, i (A là biến lưu luỹ thừa bậc n x) Bước ii + 1, A A.x Bước Nếu i < n, quay lại bước Bước Thông báo kết A là luỹ thừa bậc n x và kết thúc thuật toán Chương trình Pascal có thể 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 A:=A*X; writeln(x,' mu ',n,' bang ',A); end Bµi (10’) ThuËt to¸n: Gi¸o ¸n Tin häc N¨m häc 2010-2011 Lop8.net (9) Hoµng ThÞ Lan Trường THCS Tân Mỹ Bước Nhập số n Bước A 32768 (gán số nhỏ có thể các số kiểu nguyên cho A), i 1 Bước Nhập số thứ i và gán giá trị đó vào biến A Bước Nếu Max < A, Max A Bước i i + Bước Nếu i ≤ n, quay lại bước Bước Thông báo kết Max là số lớn và kết thúc thuật toán Chương trình Pascal có thể sau: uses crt; var n,i,Max,A: integer; begin clrscr; write('Nhap N='); readln(n); Max:=-32768; for i:=1 to n 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 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Þ d·y sè cã thÓ thùc hiÖn b»ng c¸ch chØ cÇn so s¸nh các giá trị đã nhập vào, đó chúng ta cần biến để lưu các giá trị nhập vào là đủ Một cách giải 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ự lời giải bài trên (xem thuật toán lời giải bài tập 5a, bài 5) Chương trình Pascal có thể 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 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 N¨m häc 2010-2011 Lop8.net (10) 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 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 N¨m häc 2010-2011 Lop8.net (11)