giao an tin 9_ky II_2009

43 216 0
giao an tin 9_ky II_2009

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tuần 20 Ngày dạy: Tiết:39,40 Bài 10: ĐIỀU KHIỂN LẶP Repeat . . Until (LT) A.MỤC TIÊU  Học sinh nắm được cú pháp của lệnh Repeat Until, biết cách vẽ lưu đồ và giải một số bài toán bằng câu lệnh Repeat Until  Học sinh nắm dược dữ liệu kiểu Char  Rèn luyện khả năng tư duy, sáng tạo của học sinh B.TIẾN TRÌNH LÊN LỚP 1.Ổn đònh lớp 2.Kiểm tra bài cũ: Nhắc lại cấu trúc của điều khiển lặp For To/Downto Do và làm bài tập sau: Nhập vào một số nguyên dương n. hãy tính tổng các số nguyên từ 1 đến n 3.Bài mới: HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG .Giáo viên đưa ra bài toán sau: Nhập vào một số nguyên dương n. Hãy tính tổng các số nguyên từ 1 đến n Và đưa ra chương trình mẫu cho học sinh quan sát .Từ chương trình mẫu giáo viên phân tích để đưa học sinh đưa ra được cấu trúc của vòng lặp Repeat Phân tích chương trình mẫu: Đầu tiên i nhận giá trò 1, thân của Repeat Until chứa 2 phát biểu (S := S + i và i:=i + 1), giá trò i sẽ được cộng vào biến S, Sau đó i sẽ tăng giá trò lên 1; tiếp đến câu lệnh lặp sẽ kiểm tra điều kiện (i>n), nếu điều kiện này sai thì i lại tiếp tục được cộng vào biến S, Sau đó i lại tăng giá trò lên 1, Cứ như vậy giá trò cuối cùng được cộng vào S sẽ là n, lúc này phát biểu i:=i+1 sẽ làm cho i nhận giá trò n +1 -> Sai điều kiện -> Câu lệnh lặp sẽ kết thúc .Hs lắng nghe và nêu cấu trúc của vòng lặp Repeat .Giáo viên hướng dẫn để học sinh nêu cách thức hoạt động của vòng lặp Repeat I.Bài toán 1: Nhập vào một số nguyên dương n. Hãy tính tổng các số nguyên từ 1 đến n 1.Chương trình mẫu: Program TinhTong; Var n,i,S: Integer; Begin Write(‘Nhap vao so nguyen duong n = ‘); Readln(n); i:=1; S:=0; Repeat S:=S+i; i:=i + 1; Until i>n; Writeln(‘Ket qua tong la: ‘, S); Readln; End. 2. Cấu trúc: Repeat <Các câu lệnh>; Until <Điều kiện>; * Ý nghóa: Chừng nào điều kiện còn sai thì cứ thực hiện các câu lệnh, cho đến khi Điều kiện đúng thi không thực hiện các câu lệnh nữa mà chuyển sang lệnh kế tiếp phía dưới *Cách thức hoạt động của REPEAT: Vì <Điều kiện> để kiểm tra kết thúc được đặt cuối Đ S .Hs nêu cách thức hoạt động của vòng lặp Repeat .Giáo viên yêu cầu học sinh lên vẽ lưu đồ của vòng lặp Repeat. .Gs lên bảng vẽ lưu đồ của vòng lặp Repeat .Gv đưa ra ví dụ tham khảo sau: Chương trình nhập vàp số nguyên dương a. Hãy kiểm tra xem a có phải là số nguyên tố hay không? .Giáo viên đưa ra cách giải bài toán .Thông qua bài toán trên gv giải thích cho hs cách khởi tạo biến .Hs lắng nghe giáo viên trình bày vòng lặp nên <Các câu lệnh> được thực hiện ít nhất một lần. Thứ tự thực hiện của phát biểu Repeat Until như sau: Bước 1: Thực hiện <các câu lệnh> trong thân Repeat Until Bước 2: Khi thực hiện xong câu lệnh cuối cùng trong thân Repeat Until, Rồi kiểm tra <Điều kiện>, nếu <Điều kiện> đúng thì máy sẽ kết thúc vòng lặp và thực hiện tiếp các câu lệnh sau phát biểu Repeat Until, ngược lại, nếu <Điều kiện> sai thì quay lại bước 1 để tiếp tục thực hiện một vòng lặp mới. 3.Lưu đồ: Ví dụ tham khảo: Chương trình nhập vàp số nguyên dương a. Hãy kiểm tra xem a có phải là số nguyên tố hay không? Program SoNguyenTo; Var a,k: Integer; Dung: boolean; Begin Write(‘Nhap a = ‘); Readln(a); k:=2; dung:= False; Repeat If a mok k = 0 the dung := true Else k:=k + 1; Until dung= true; If k<a then Writeln(a, ‘ khong la so nguyen to’) Else Writeln(a, ‘ La so nguyen to’); Readln; End. 4.Khởi tạo biến: khi khai báo biến Ví dụ: Var k: Integer; dung: Boolean -> Máy sẽ cấp phát một vùng bộ nhớ có kích thước tương ứng với kiểu biến và tự động gán một giá trò mặc nhiên cho biến Phát biểu trong Repeat Until Điều kiện .Gv đưa ra bài toán 2 có nội dung như sau: Lãi suất tiết kiệm là x%/tháng, số tiền ban đầu là a, Hỏi sau bao nhiêu tháng số tiền có được không nhỏ hơn b Yêu cầu học sinh suy nghó và viết chương trình. .Hs lên bảng viết chương trình, cả lớp làm bài vào vở .Gv nhận xét bài làm và rút ra sai lầm thường mắc phải của hs .Gv đưa ra bài toán 3 có nội dung như sau: Viết chương trình mô phỏng máy tình đơn giản.Nhập vào phép toán “+”, “-“, “*”, “/” và hai số a, b. Thực hiện phép toán ấy cho đến khi nào phép toán nhập vào là “$” thì kết thúc chương trình. .Gv đưa ra chương trình mẫu. .Hs chép bài và theo dõi đó, cụ thể: Biến k được cấp phát một ô nhớ có kích thước 2 byte và được gán giá trò bằng 0, biến dung được cấp phát một ô nhớ có kích thước 1 byte và được gán giá trò bằng false Để lưu trữ giá trò như mong muốn cho biến, chúng ta có thể thực hiện việc khởi tạo lại giá trò cho biến, ví dụ k:=2; dung := false; II. Bài toán 2 Lãi suất tiết kiệm là x%/tháng, số tiền ban đầu là a, Hỏi sau bao nhiêu tháng số tiền có được không nhỏ hơn b Giải: Var a,b,d,x:Integer; S:real; Begin Write(‘Nhập a: ‘); Readln(a); Write(‘Nhập b: ‘); Readln(b); Write(‘Nhập x: ‘); Readln(x); d:=0; S:= a; Repeat S:=S +a*x/100; d:=d+1; Until S>=b; Write (‘Số thang la: ‘, d, ‘ So tien co duoc la: ‘, S); Readln; End. III.Bài toán 3: Viết chương trình mô phỏng máy tình đơn giản.Nhập vào phép toán “+”, “-“, “*”, “/” và hai số a, b. Thực hiện phép toán ấy cho đến khi nào phép toán nhập vào là “$” thì kết thúc chương trình. 1.Chương trình mẫu: Program May_tinh; Var a,b: Integer; PhepToan: Char; Begin Writeln(‘Chương trinh mo phong may tinh’); Repeat Write(‘Nhap vap phep toan: ‘); Readln(pheptoan); Write(‘Nhap vap hai so: ‘); Readln(a,b); Case PhepToan Of ‘+’ : Writeln(‘Tong = ‘, a + b); .Thông qua bài toán trên gv giải thích cho hs kiểu dữ liệu Char, bảng mã ASCII .Hs im lặng lắng nghe gv trình bày. .Từ bảng mã ASCII, gv yêu cầu hs rút ra mối quan hệ giữ chữ in hoa và chữ thường. .Hs rút ra nhận xét về mối quan hệ giữ in hoa và in thường. .Gv giới thiệu cho hs một số hàm liên quan đến kí tự và có dẫn chứng minh hoa để học sinh nắm rõ hơn, cho thêm ví dụ để học sinh tìm kết qủa của hàm. .Hs im lặng lắng nghe giáo viên trình bày và thực hiện các yêu cầu của gv đề ra ‘-’ : Writeln(‘Hieu = ‘, a - b); ‘* ’ : Writeln(‘Tich = ‘, a * b); ‘+’ : If b<> 0 then Writeln(‘Tong = ‘, a / b); End; Until PhepToan = ‘$’; End. 2.Dữ liệu Char Mỗi giá trò kiểu Char chiếm 1 byte và chỉ biểu diễn được một ký tự trong bảng mã ASCII, ví dụ: Vò trí trong bảng mã ASCII Ký tự . . 48 0 49 1 50 2 . . 65 A 66 B . . 97 a 98 b ……………… ……………… Nhận xét: Từ bảng mả của các chữ cái ta suy ra: Mã chữ thường = Mã chữ hoa tương ứng + 32 (1) Mỗi kí tự sẽ nằm ở một vò trí xác đònh trong bảng mã, ví dụ ổ vò trí thư 65 sẽ là ký tự A. Có tất cả 256 ký tự được đánh số từ 0 đến 255. Như vậy có 256 giá trò kiểu Char Để biểu diễn ký tự ta co thể đëăt ký tự đó trong 2 dấu nháy đơn, ví dụ ‘a’ (gọi là ký tự a), ‘B’ (gọi là ký tự B), ‘:’ (gọi là ký tự :) *Các hàm liên quan đến ký tự: +Hàm PRED(ch): Cho ký tự đứng ngay trước ký tự ch trong bảng mã. Ví dụ: Pred(‘B’) = ‘A’ +Hàm SUCC(ch): Cho ký tự đứng ngay sau ký tự ch trong bảng mã. Ví vụ Succ(‘A’)= ‘B’ +Hàm UpCase(ch): Đổi ký tự ch thành chữ hoa. Ví dụ UpCase(‘a’) = ‘A’, Upcase(‘b’) = ‘B’, Upcase(‘A’)= ‘A’. +Hàm ORD(ch): Cho mã của ký tự ch. Ví dụ: Ord(‘A’) = 65, Ord(‘a’)= 97. +Hàm CHR(k): Đối số k nguyên, 0<=k <=255, cho ký tự có mã bằng k. Ví vụ: .Gv đưa ra một bài toán, đổi chữ hoa sang chữ thường, chữ thường ra chữ hoa để hs nắm rõ hơn các hàm, yêu cầu hs suy nghó để tìm ra lời giải. .Hs suy nghó và giải bài toán.(nếu hs không giải được gv gợi ý để hs làm). .Gv gọi một hs lên bảng trình bày bài toán .Hs lên bảng trình bày bài. Gv rút lại nhhững nội dung cần nắm trong bài và những sai lầm thường mắc phải của hs trong quá trình viết chương trình. Chr(65) = ‘A’, Chr(97)=’a’, Chr(32) là ký tự trắng. Chú ý: Turbo Pascal cho phép viết gọn Chr(k) thành #k nếu k là hằng số. Ví dụ, hai lệnh sau cùng in lên màn hình chữ A: Write(#65); Write(Chr(65)); -Trong TP không có hàm đổi chữ hoa ra chữ thường, nhưng có thể làm việc này nhờ công thức (1) và hai hàm Ord và Chr Chữ thường := Chr(Ord(chữhoa)+ 32) Ví dụ: Nhập một ký tự, nếu chữ hoa thì đổi ra chữ thường , nếu là chữ thường thì đổi ra chữ hoa. Var ch, ch1: Char; Begin Write(‘Nhap mot ky tu: ‘); Readln(ch); If (ch>=’A’) and (ch<=’Z’) then Ch1:= chr(ord(ch) +32) Else Ch1:= Upcase(ch); Writeln(ch,’đã đổi ra: ‘, ch1); Readln; End. 3.Cũng cố, dặn dò Bài 1/22SBT Viết chương trình in ra bảng cửu chương: Var i,j: Integer; Begin Writeln(‘BANG CUU CHUONG: ‘); For i:=2 to 9 do Begin For j:=1 to 10 do Write(i, ‘ x ’, j, ‘ = ’, i*j); End; Readln; End. Bài 2/22SBT. Viết chương trình nhập vào n số nguyên dương (đảm bảo n nhập vào phải thoả mãn điều kiện 2<=n<=20). Hãy tính tổng các số lẽ từ n số được nhập vào. Bài giải: Var n,i,T: Integer; Begin T:=0; Repeat Write(‘Nhap so n (2<=n<=20): ‘); Readln(n); Until (n>=2) and (n<=20); Repeat T:= T + n Until n mod 2 <>0; Writeln(‘Tong cac so le la: ‘, T); Readln; End. -Về nhà học bài và làm các bài tập còn lại, tiết sau thực hành. 4.Rút kinh nghiệm, bổ sung Tuần 21 Ngày dạy: Tiết:41,42 Bài 10: ĐIỀU KHIỂN LẶP Repeat . . Until (TH) I. Mục đích yêu cầu: - Nắm rõ hơn về cách lập trình khi sử dụng câu lệnh lặp Repeat _ Until. II. Chuẩn bò: Giáo viên: Chuẩn bò phòng máy. Học sinh: Chuẩn bò giải các bài tập ở nhà. III. Kiến thức trọng tâm: - Sử dụng câu lệnh lặp Repeat _ Until để giải các bài tập. IV. Phương pháp giảng dạy: - Kiểm tra và thực hành. V. Tiến trình bài giảng: Hoạt động của thầy và trò Nội dung Học sinh tự giải lại bằng cách đánh vào máy các bài tập trên lớp, đồng thơi tự giải một số các bài tập khác giáo viên cho * Giải lại các bài bài tập ở các tiết trước đã sửa trên lớp bằng cách kiểm tra tính đúng đắn trên máy. Bai 1: Tính tổng : 222 1 . 3 1 2 1 1 n S ++++= Program TT ; Var i ,n :integer ; S :real; Begin Write(‘nhap n:’); Readln(n); S:=0 ; i:=1 ; Repeat S:=s +1/i*i ; i:= i +1 ; Until i>=n ; Write(‘tong can tim la ’, s:8:2); Readln; Giáo viên : cho thêm một số bài tập và Gợi ý giải bài tập Các bài tập cho thêm: Bai 2: Viết chương trình nhập vào 2 số x và y, yêu cầu x phải khác y. Hãy tính tích và trung bình cộng của 2 số đó Bµi 3: TÝnh t#ng A=1+1/2+1/3+…1/N Liên hệ đến các bài tập trên . Học sinh tự giải và đánh vào máy .Kiểm tra chương trình đúng hay sai. End. Bai 2: Viết chương trình nhập vào 2 số x và y, yêu cầu x phải khác y. Hãy tính tích và trung bình cộng của 2 số đó PROGRAM baitap2; VAR x,y,Tich,TBC: real; BEGIN repeat writeln(' Cho x,y la 2 so thuc khac nhau. Thay the x, y.'); write(' Cho x= '); readln(x); write(' Cho y= '); readln(y); if x=y then begin write(' Yeu cau x phai khac y! Lam lai.'); readln; end; until x<>y; Tich:=x*y; TBC:=(x+y)/2; if x>y then begin x:=tich; y:=TBC; end else { x<y } begin x:=TBC; y:=Tich; end; Writeln; Writeln(' Sau khi tinh toan x= ',x:5:2); write(' Sau khi tinh toan y= ',y:5:2); Readln;END. Bài 3: A=1+1/2+1/3+…1/N Program baitap3; Var i,N:integer; A: real; Begin Writeln(‘N=’); readln(N); A:=0;i:=1; Repeat A:=A+1/i; i:=i+1; Until i>N Writeln(‘tong=’,A:4:2); End. 4. Củng cố : - Qua từng bài tập cũng cố thêm về câu lệnh rẽ nhánh và các bước thực hành. 5. Dặn dò: - Giải các bài tập ở tiết trước. - Chuẩn bò tiếp các bài tập để làm vào các tiết sau Tuần 22-23 Ngày dạy: Tiết:43,44,45,46 Bài 11: BÀI TẬP I.MỤC TIÊU:  Biết cách làm bài tập sử dụng câu lệnh Repeat….Until  Luyện tập cho học sinh chạy chương trình trên máy và biết cách khắc phục lỗi chương trình  Hiểu được cách chạy chương trình và xử lý chương trình theo từng bước II.CHUẨN BỊ: * GV: Giáo án, phòng máy thực hành * HS: sách vở, bài tập để thực hành III.TỔ CHỨC CÁC HOẠT ĐỘNG DẠY HỌC 1.Nội dung Bài 1/22SBT Viết chương trình in ra bảng cửu chương: Var i,j: Integer; Begin Writeln(‘BANG CUU CHUONG: ‘); For i:=2 to 9 do Begin For j:=1 to 10 do Write(i, ‘ x ’, j, ‘ = ’, i*j); End; Readln; End. Bài 2/22SBT. Viết chương trình nhập vào n số nguyên dương (đảm bảo n nhập vào phải thoả mãn điều kiện 2<=n<=20). Hãy tính tổng các số lẽ từ n số được nhập vào. Bài giải: Var n,i,T: Integer; Begin T:=0; Repeat Write(‘Nhap so n (2<=n<=20): ‘); Readln(n); Until (n>=2) and (n<=20); Repeat T:= T + n Until n mod 2 <>0; Writeln(‘Tong cac so le la: ‘, T); Readln; [...]... + 1/3 + … + 1/n Program Tinh_tong; Var i,n: Integer; Tong: Real; Begin Write(‘Nhap so: ‘); Readln(n) Tong:=0; For i:=n Downto 1 do Tong:= tong +1/i; Writeln(‘Tong can tinh la: ‘, Tong); Readln; End 3 Bài toán: Viết chương trình nhập vào một số nguyên dương n (n>1) Kiểm tra xem n có phải là số nguyên tố không? *Chương trình mẫu: Program Songuyento; Var n,i: Integer; Ngto: Boolean; Begin Write(‘Nhap n... so nguyen to’) End *Kiểu dữ liệu logic (Boolean): Chiếm 1byte bộ nhớ, chỉ lưu trữ một trong hai giá trò đúng (true) hoặc sai (false) - Cách khai báo: Var : boolean; *Lệnh Break: Dùng để dừng một câu lệnh lần thứ nhất tính từ lệnh Break trở lên, không cho câu lệnh lặp tiến hành tiếp tục Thông qua chương trình mẫu, gv đưa ra kiểu dữ liệu logic(Boolean) và lệnh Break 3.Cũng cố –dặn dò:  Nhắc... khắc phục HS chú ý lắng nghe và rút kinh nghiệm Tong:=0; For i:=n Downto 1 do Tong:= tong +1/i; Writeln(‘Tong can tinh la: ‘, Tong); Readln; End *Viết chương trình nhập vào một số nguyên dương n (n>1) Kiểm tra xem n có phải là số nguyên tố không? Program Songuyento; Var n,i: Integer; Ngto: Boolean; Begin Write(‘Nhap n = ‘); Readln(n); Ngto:= true; For i:=2 to (n div 2) do If n mod i = o then Begin Ngto:=... phải nhập n đúng yêu cầu – nếu nhập sai chương trình sẽ yêu cầu nhập lại) Bài giải: Var n,i,S: Integer; Begin S:=0; Repeat Write(‘Nhap so n : ’); Readln(n); Until (n . nhien gom 3 chu so’); Readln(n) Until (n< ;99 ) and (n>1000); For a:=1 to 9 do For b:= 0 to 9 do For c:=0 to 9 do If n = a*a*a +b*b*b +c*c*c then Write(n,’la. Program May_tinh; Var a,b: Integer; PhepToan: Char; Begin Writeln(‘Chương trinh mo phong may tinh’); Repeat Write(‘Nhap vap phep toan: ‘); Readln(pheptoan); Write(‘Nhap

Ngày đăng: 04/08/2013, 01:25

Tài liệu cùng người dùng

Tài liệu liên quan