III. Tiến trình bài dạy
3. Câu lệnh ghép
Trong Pascal câu lệnh ghép có dạng: Begin <các câu lệnh> End; Ví dụ: If delta<0 then write(‘pt vo nghiem’) Else Begin x1:=(−b−sqrt(delta))/2*a; x2:=(−b+sqrt(delta))/2*a; End; 4. Một số ví dụ Ví dụ 1: Tìm nghiệm của pt bậc 2 dạng ax2+bx+c=0. Các hệ số a,b,c nhập từ bàn phím. program vidu1; Uses crt;
trình giải phương trình bậc hai.
- Hướng dẫn học sinh cách viết ví dụ 2.
- Hoàn thiện chương trình giải phương trình bậc hai.
- Học sinh theo dõ và viết chương trình theo hướng dẫn.
var a,b,c,d,x1,x2:real;
begin
clrscr;
write('Nhap a,b,c:’);readln(a,b,c); d:=b*b−4*a*c;
If d<0 then writeln(‘Pt vo Nghiem’) Else Begin x1:=(−b−sqrt(d))/2*a; x2:=(−b+sqrt(d))/2*a; Writeln(‘x1=’,x1:8:3,’x2=’,x2:8:3); End; readln; end.
Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400
hoặc chia hết cho 4 nhưng không chia hết cho 100. program vidu1; Uses crt; var N,sn:integer; begin clrscr; write('Nhap nam:’);readln(N); If (N mod 400=0) or
((N mod 4=0) and (N mod 100<>0) then Then sn:=366
Else sn:=365;
Writeln(‘So ngay cua nam ‘,N,’ la ‘,sn); readln;
end.
3. Củng cố :
Cú pháp và ý nghĩa của câu lệnh rẽ nhánh? Câu lệnh sau then hoặc sau else có thể có nhiều lệnh được không? Có thể chứa lệnh if được không?
4. Dặn dò :
+ Xem lại bài + Chuẩn bị bài CHƯƠNG III CẤU TRÚC RẼ NHÁNH VÀ LẶP Tuần : . . . Tiết : 12 §10. CẤU TRÚC LẬP I. Mục tiêu 1. Về kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán.
- Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu tr1uc lặp với số lần định trước. - Biết cách cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
2. Về kỹ năng:
- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp. - Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước. - Viết được thuật toán giải một số bài toán đơn giản.
3. Về thái độ:
- Tiếp tục khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính.
- Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: xem xét gảii quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn với kết quả ban đầu đạt được,……
II. Phương pháp, phương tiện dạy học
- Phương pháp : thuyết trình, vấn đáp - Phương tiện : máy chiếu, máy tính
III. Tiến trình bài dạy
1. Kiểm tra bài cũ:
Trình bài cấu trúc và ý nghĩa của câu lệnh rẽ nhánh ? 2. Giảng bài mới
HOẠT ĐỘNG GV HOẠT ĐỘNG HS NỘI DUNG
- Giới thiệu hai bài toán 1 và bài toán 2.
- Chúng ta có thể viết chương trình sử dụng các câu lệnh đã học trước không?
- Xuất phát ban đầu là S=1/a thì S1 có liên hệ như thế nào với S.
- Tương tự S2, S3,…SN
- Em nào có nhận xét gì về tổng này?
- Bài toán 1 việc cộng lặp lại bao nhiêu lần?
- Bài toán 2 thì sao? Có xác định được số lần lặp hay không ?
- Như vậy: Cấu trúc lặp mô tả thao tác lặp và được chia làm hai loại: lặp với số lần biết
-Chúng ta có thể nhưng viết rất dài, tốn nhiều thời gian và không có tính tổng quát. - HS: S1=S+a1+1 S2=S1+ 2 1 + a ……… SN=SN−1+ N a+ 1 -Xuất phát, S được gán giá trị là 1/a
-Tiếp theo, cộng vào S một giá trị a+1N với N=1,2,3,4,5,…
- Bài toán 1 lặp lại 100 lần - Bài toán 2 lặp lại cho tới khi N a+ 1 <0,0001 thỏa mãn. không xác định được số lần lặp. §10. CẤU TRÚC LẶP 1. Khái niệm lặp
Xét hai bài toán sau: Với a>2
Bài toán 1: Tính và đưa kết quả ra màn hình tổng S= 100 1 ... 2 1 1 1 1 + + + + + + + a a a a
Bài toán 2: Tính và đưa kết quả ra màn hình tổng cho đến khi N a+ 1 <0,0001 S=a a a + + a+ N + + + + ... 1 2 1 1 1 1 Nhận xét:
-Xuất phát, S được gán giá trị là 1/a -Tiếp theo, cộng vào S một giá trị
Na+ a+
1
với N=1,2,3,4,5,…
-Việc cộng này được lặp lại một số lần. Đối với bài toán 1 thì số lần lặp là 100 và kết thúc. Bài toán 2 số lần lặp chưa biết trước nhưng việc cộng sẽ kế thúc khi
Na+ a+
1
<0,0001 được thỏa mãn.
Như vậy: Cấu trúc lặp mô tả thao tác lặp và được chia làm hai loại: lặp với số lần
trước và lặp với số lần không biết trước.
- Giới thiệu câu lệnh lặp với số lần biết trước. Và giải thích ý nghĩa.
- Giá trị dầu và giá trị cuối phải có kiểu dữ liệu như thế nào?
- Trong bài toán 1 giá trị đầu và giá trị cuối là bao nhiêu? - Giá trị ban đầu của bài toán 1 là S=1/a thì lệnh nào cần lặp lại (sau DO)?
- Đối với bài toán 1 ta có thể lặp lại bắt đầu giá trị đầu là 100 được không ?
- Dạng lặp như vậy gọi là dạng lùi.
- Nêu một số lưu ý khi sử dụng lệnh lặp với số lần xác định trước.
Giá trị đầu, cuối có thể là hằng hoặc là biến. (ở ví dụ 2 là biến)
+ Nếu nhiều lệnh sau DO thực hiện thiện cùng lúc thì phải sử dụng lệnh ghép. Ví dụ: For i:=1 to 10 do Begin Write(i,’ ‘); writeln; Write(i*I,’ ‘); End;
- Học sinh theo giỏi SGK - Phải cùng kiểu với biến đếm.
- Giá trị đầu là 1, giá trị cuối là 100
- Đó là lệnh S:=S+1/(a+i)
- Nếu giá trị đầu là 100 thì giá trị cuối là 1.
- Học sinh chú ý lắng nghe.
- Học sinh chú ý lắng nghe.
Học sinh chú ý lắng nghe
biết trước và lặp với số lần không biết trước.