II. Môi trường làm việc của TP Pascal
CÁC CÂU LỆNH LẶP I.Mục tiêu:
I.Mục tiêu:
Học sinh hiểu được:
-Cú pháp của câu lệnh.
-Cách thực hiện của câu lệnh lặp.
+Nắm được hai dạng của vòng lặp FOR...TO -Giải thích được sơ đồ biểu diễn lệnh.
II-Phương pháp: -Thuyết trình -Giảng giải -Nêu vấn đề III-Chuẩn bị: Giáo án Sách TP lớp 10, 9 IV-NộI dung: 1./Ổn định lớp: 1’ 2./Kiểm tra bài cũ:
Viết chương trình cho in ra màn hình từ “Pascal” 20 lần. Mỗi từ được in trên một dòng.
3./Nội dung bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN NỘI DUNG GHI BẢNG
GV: Ở đây từ Pascal được viết lặp đi lặp lại 20 lần. Nhưng nếu ta cứ viết 100 lần, 1000 lần hoặc nhiều hơn nữa thì việc cứ lặp đi lặp lại như vậy sẽ đâm ra chán nản và mất nhiều thời gian. Vậy có cách nào để viết mất ít thời gian và số lần vẫn ra đúng như ý muốn không? Bài học hôm nay ta sẽ nghiên cứu.
GV: Để hiểu rõ vòng lặp ta đi vào ví dụ 1.
GV: i lúc đầu gán giá trị bằng 1, kiểm tra i<20 nó in ra từ Pascal. Tăng i = i + 1, có nghĩa là i = 2, kiểm tra i<20 nó in ra từ Pascal. Cứ tiếp tục tăng i cho đến khi nào i>20 thì vòng lặp sẽ thoát ra.
I.Vòng lặp có số bước lặp xác định:
Ví dụ 1: Viết chương trình cho in ra
màn hình từ “Pascal” 20 lần. Mỗi từ được in trên một dòng. Program intu; Var i:Integer; Begin For i:=1 to 20 do Writeln(‘Pascal’); Readln; End. Ví dụ 2: Viết chương trình in ra màn hình các
GV: Để hiểu rõ hơn ta đi vào tìm hiểu ví dụ 2:
?Em hãy giải thích cách thực hiện của vòng lặp For.
GV giải thích:
i : Được gọi là biến 1: Được gọi là giá trị đầu 20 và 100: Được gọi là cuối. ?Qua 2 ví dụ trên, em nào rút ra được cú pháp của vòng lặp For.
GV: Nhìn vào sơ đồ vòng lặp, Hãy giải thích sự hoạt động của nó?
GV: Ở ví dụ 2 ta in các chữ số từ 1 đến 100 thì ta dùng For....To.... Nếu ta muốn in các chữ số theo chiều giảm dần từ 100 đến 1 thì ta phải làm như thế nào? Để trả lời được câu hỏi đó ta vào tìm hiểu ví dụ 3.
chữ số từ 1 đến 100. Program vietso; Var i:Integer; Begin For i:=1 to 100 do Writeln(i); Readln; End. *Cú pháp: Dạng tiến:
For Biến:=Giá trị đầu To Giá trị cuối Do< lệnh> *Sơ đồ vòng lặp: Đ S Ví dụ 3: Viết chương trình in ra các chữ số từ 100 đến 1. Program vietso3; Var i: Integer; Begin Biến:=Giá trị đầu Biến>GT cuối Lệnh Biến:=INC(biến) End
GV: i lúc đầu gán giá trị bằng 100, kiểm tra i>1 nó in ra từ số 100. Giảm i = i - 1, có nghĩa là i = 99, kiểm tra i>1 nó in ra từ số 99. Cứ tiếp tục giảm i cho đến khi nào i<1 thì vòng lặp sẽ thoát ra..
?Qua ví dụ 3, em nào rút ra được cú pháp dạng lùi.
?Tương tự như dạng tiến, em hãy giải thích sự hoạt động của sơ đồ vòng lặp ở dạng lùi.
For i:=100 Downto 1 do Writeln(i);
Readln; End.
*Cú pháp:
Dạng lùi:
For Biến:=Giá trị đầu Downto Giá trị cuối Do < lệnh>
*Sơ đồ vòng lặp:
Đ
S
*Chú ý:
-Biến đếm phải thuộc kiểu đếm được.
-Nếu trong vòng lặp For có nhiều hơn 1 lệnh thì phải đặt giữa Begin và End.
-Câu lệnh trong vòng lặp For không được làm thay đổi giá trị của biến đếm.
-Sau từ khoá Do không có dấu chấm phẩy (;).
4./Củng cố:
-Nắm được hai dạng của câu lệnh lặp FOR +Dạng tiến: FOR ... TO...
+Dạng lùi: FOR .... DOWNTO...
Ngày soạn:06/4/08 CÁC CÂU LỆNH LẶP Begin Biến:=Giá trị đầu Biến<GT cuối Lệnh Biến:=DEC(biến) End Tiết 62
I.Mục tiêu:
Học sinh hiểu được:
-Cú pháp của câu lệnh.
-Cách thực hiện của câu lệnh lặp.
+Nắm được vòng lặp WHILE...DO -Giải thích được sơ đồ biểu diễn lệnh.
II-Phương pháp: -Thuyết trình -Giảng giải -Nêu vấn đề III-Chuẩn bị: Giáo án Sách TP lớp 10, 9 IV-NộI dung: 1./Ổn định lớp: 1’ 2./Kiểm tra bài cũ: 3./Nội dung bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN NỘI DUNG GHI BẢNG
GV: Với ví dụ này hoàn toàn có thể dùng câu lệnh For song ở đây ta áp dụng vòng lặp không xác định để làm ví dụ minh hoạ.
GV giải thích vòng lặp While...Do cho học sinh hiểu.
*Chú ý: Vòng lặp While luôn luôn
với cặp từ khoá Begin và End.
Giải thích: Máy tính lặp đi lặp lại chu kỳ sau: chứng nào <Biểu thức Boolean> có giá trị TRUE thì đi thực hiện <Lệnh> được đặt giữa Begin và End.
?Em hãy giải thích sơ đồ hoạt động
II.Vòng lặp có số bước lặp không xác định.
Ví dụ 1: Tính tổng sau: A= 1 +1/2 + 1/3+1/4+...+1/n Program Tinhtong; Var i, n: Integer; A: Real; Begin
Write(‘Nhập vào giá trị của n: =’); Readln (n); A:=0 ; i:=1; While i <= n Do Begin A: = A + 1/i; i : = i + 1; end; Readln; End. *Cú pháp:
WHILE <Biểu thức Boolean> Do Begin <lệnh> ; End; *Sơ đồ hoạt động: Begin BT Boolean có giá trị TRUE ? Lệnh End
Đ
4./Củng cố:
-Nắm được hai dạng của câu lệnh lặp FOR +Dạng tiến: FOR ... TO...
+Dạng lùi: FOR .... DOWNTO... -Nắm được vòng lặp WHILE....DO....
-Trong vòng lặp WHILE ...DO ... luôn luôn có cặp từ khoá Begin và End. -Bài tập: Viết chương trình tính tổng A = 1 + 2 + 3 + ...+ n theo hai cách:
+Dùng vòng lặp FOR ....TO.... +Dùng vòng lặp WHILE .... DO.... Program tong;
Var n,i,A: Integer; Begin
Write(‘Nhập vào giá trị của n: =’); Readln (n); A:=0 ; i:=1; While i <= n Do Begin A: = A + i; i : = i + 1; end; Readln; End. Program tong; Var n,i,A: Integer; Begin
Write(‘Nhập vào giá trị của n: =’); Readln (n); A:=0 ; For i:=1 To n Do A: = A + i; Readln; End. 5./Hướng dẫn về nhà:
Bài tập 1: Viết chương trình tính tổng các số chẵn, lẻ từ 1...n.
Bài tập 2: Viết chương trình liệt kê tất cả các số nguyên tố từ 1 đến 100. Bài tập 3: Viết chương trình tính EXP(x) với vòng lặp WHILE.
Ngày soạn: 12/4/08
THỰC HÀNHI.Mục tiêu: I.Mục tiêu:
-Học sinh áp dụng câu lệnh For và câu lệnh While để viết được các chương trình đơn giản .
-Học sinh tự chạy và nhập dữ liệu vào cho các biến một cách thành thạo.
Tiết 63,64
-Thoát khỏi Turbo Pascal và thoát máy đúng quy trình.
II.Phương pháp:
-Quan sát -Nêu vấn đề -Thực hành
III.Chuẩn bị:
-Hệ thống bài tập
-Sách bài tập Turbo Pascal của Quách Tuấn Ngọc -Sách bài tập Turbp Pascal 7.0 của NXB thống kê.
IV.Bài mới: 1./Ổn định lớp: 2./Kiểm tra bài cũ:
HS: Viết cú pháp của câu lệnh While … Do 3./Nội dung thực hành
HOẠT ĐỌNG CỦA GIÁO VIÊN NỘI DUNG GHI BẢNG
-HS ghi bài tập vào vở.
-Bật máy -> Khởi động Turbo Pascal.
-Làm lần lượt các bài tập vào máy và lưu lại.
? Bài tập 1 có bao nhiêu biến.
GV: Ở đây ta dùng vòng lặp For chạy từ 1 đến n.
? Để kiểm tra số chẳn hay số lẻ ta phải dùng câu lệnh gì.
? Số chẳn là số như thế nào.
? Đối với bài tập 2, ta cần khai báo
BÀI TẬP
Bài tập 1: Viết chương trình tính tổng các
số chẵn, lẻ từ 1...n.
Bài tập 2: Viết chương trình liệt kê tất cả
các số nguyên tố từ 1 đến 100.
Bài tập 3: Viết chương trình tính số Pi với
độ chính xác Epsilon, biết: Pi/4=1-1/3+1/5-1/7 +... BÀI GIẢI: Bài tập 1 Program chanle; Var i, n: Integer; A, B : Real; Begin
Write(‘Nhập vào giá trị n:=’); Readln(n); A:=0 ; B:=0; For i:= 1 to n do If ( i mod n ) = 0 then A : = A + i Else B: = B + i; Writeln(‘Tổng các số chẳn là :’, A : 8:4); Writeln(‘Tổng các số lẻ là :’, B : 8:4); Readln; End. Bài tập 2: Program Songuyento; Var i,k,dem : Integer; t : byte ; Begin
GV: Ta phải dùng thêm các biến như: đếm, k, t.
? Số nguyên tố là số như thế nào.
? Để kiểm tra một số có phải là số nguyên tố hay không ta phải làm gì.
Với bài tập 3 này giáo viên hướng dẫn rõ trên bảng, sau đó cho học sinh chạy thử trên máy.
dem : = 0 ; t : = i DIV 2 ; For K : = 1 to t do If ( i mod K) = 0 then đem : = đem + 1; If dem = 1 then
Writeln( ‘So nguyên tố là : ‘, i); end;
Readln; End.
Bài tập 3: Uses Crt;
Const Epsilon = 1E-4; Var Pi, t : Real; i, S : Integer; Begin Pi : = 4 ; i:=1; S :=-1; t := 4/( 2 * i + 1) While t > Epsilon Do Begin Pi : = Pi + s*t; S := - S i : = i + 1; t : = 4/ ( 2 * i + 1) ; End; Writeln ( ‘ Số Pi = ‘ , Pi : 0 : 4 ); Readln; End. 4./Củng cố:
-Nắm được hai dạng của câu lệnh lặp FOR +Dạng tiến: FOR ... TO...
+Dạng lùi: FOR .... DOWNTO... -Nắm được vòng lặp WHILE....DO....
-Trong vòng lặp WHILE ...DO ... luôn luôn có cặp từ khoá Begin và End.
Ngày soạn: 18/4/2008
KIỂM TRA 1 TIẾTI.Mục tiêu: I.Mục tiêu:
-HS nắm được cách nhập, xuất dữ liệu và khai báo biến để viết các chương trình đơn giản.
-HS nắm chắc các câu lệnh điều kiện, câu lệnh lặp
-Kiểm tra việc nắm bắt bài của HS để từ đó phân loại HS.
II.Phương pháp:
-Ra đề trên giấy, HS làm bài vào giấy và nộp lại. -Giáo viên quan sát, HS tự làm.
III.Chuẩn bị:
-GV: Đề kiểm tra in sẳn -HS: Học kỹ bài ở nhà
IV.Tiến trình lên lớp: 1./Ổn định: Nắm sĩ số 2./Kiểm tra bài cư: Không 3./Nội dung đề kiểm tra
Đề 1:
Câu 1: Viết chương trình tìm số lớn nhất của hai số a và b. Với a, b là hai số
nguyên được nhập từ bàn phím.
Câu 2: Viết chương trình giải phương trình bậc hai ax2 + bx + c = 0 ( a # 0)
Câu 3: Viết chương trình tính tổng sau:
A = 1 + 1/2 + 1/3 + ...+ 1/n.
Đề 2:
Câu 1: Viết chương trình tìm ước số chung lớn nhất của hai số a và b. Với a,
b là hai số nguyên được nhập từ bàn phím.
Câu 2: Viết chương trình giải phương trình bậc hai ax2 + bx + c = 0 ( a # 0)
Câu 3: Viết chương trình tính tổng sau:
A = 1 + 2 + 3 +...+ n.
ĐÁP ÁN VÀ BIỂU ĐIỂM
Câu 1: (3 đ)
Program KTsolon nhat; Var a,b: Integer;
Begin
Write(‘Nhập vào giá trị của a: = ‘); Readln (a) ;
Write(‘Nhập vào giá trị của b: = ‘); Readln (b) ; If a > b then Writeln(‘số lớn nhất là ’, a ) Else Writeln(‘số lớn nhất là ‘, b); Program UCLN; Var a,b,aa,bb: Integer; Begin Write(‘Nhập a: = ‘); Readln(a); Write(‘Nhập b: = ‘); Readln(b); aa:=a ; bb:=b; While aa <> bb Do Begin If aa > bb then aa:= aa – bb Tiết 65,66
End. End ; Writeln(‘ USCLN là: ‘ , aa ); Readln; End. Câu 2: ( 5 đ) Program giaipt; Var a,b,c: integer;
x, x1, x2, delta: real ; Begin
Writeln(‘Nhập vào số a,b,c:= ‘); Readln (a,b,c); Delta:=b*b-4*a*c;
If delta < 0 then
Writeln(‘Phương trình vô nghiệm’) Else If Delta = 0 then Begin x:=-b/2*a; Writeln(‘Nghiệm là: ‘ , x:2:2); End Else Begin x1:=(-b+SQRT(Delta))/2*a; x2:=(-b-SQRT(Delta))/2*a; Writeln(‘Nghiệm 1 là: ‘ , x1:2:2); Writeln(‘Nghiệm 2 là: ‘ , x2:2:2); End; Readln; End. Câu 3: ( 2 đ) Program tong; Var n,i,A: Integer; Begin
Write(‘Nhập vào giá trị của n: =’); Readln (n); A:=0 ; For i:=1 To n Do A: = A + 1/i; Readln; End. Program tong; Var n,i,A: Integer; Begin
Write(‘Nhập vào giá trị của n: =’); Readln (n); A:=0 ; For i:=1 To n Do A: = A + i; Readln; End. 4./Dặn dò:
-Tiết sau ôn tập
-Chuẩn bị thi học kỳ II
Ngày soạn: 27/4/2008