Do đó trong vòng lặp nÕu cã biÕn nµo trong hai biÓu thức này bị thay đổi giá trị thì giá trÞ ®Çu vµ gi¸ trÞ cuèi vÉn kh«ng thay đổi.[r]
Trang 1Ngày soạn : 27/10/2007 Tiết thứ: 12
I Mục đích yêu cầu
1 Kiến thức
- Biết được ý nghĩa của cấu trúc lặp
- Biết được cấu trúc chung của lệnh lặp For trong ngôn ngữ lập trình
Pascal
- Biết sử dụng đúng hai dạng lệnh lặp For trong ngôn ngữ lập trình Pascal
2 Kỹ năng
- Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết một số bài toán
đơn giản
II Phương pháp, phương tiện giảng bài
Phương pháp: Thuyết trình, giảng giải
Phương tiện: SGK, SGV
III Tiến trình bài giảng
Nội dung Hoạt động của giáo viên và học
sinh
Thời gian
Kiểm tra bài cũ
Bài tập: Nhập vào 3 số thực dương
và kiểm tra xem 3 số đó có là số
đo 3 cạnh của tam giác không?
Câu hỏi thêm: Nếu là tam giác thì
tính diện tích và chu vi
Bài 10
1 Lặp
Xét bài toán sau:
In ra màn hình 100 dòng xâu:
“Xin chao cac ban”
GV: Đưa ra đề bài và gọi HS lên bảng
HS: Suy nghĩ và lên bảng làm
GV: Tiết trước các em đã được tìm hiểu về cấu trúc rẽ nhánh
Hôm nay chúng ta sẽ tìm hiểu về cấu trúc lặp
GV: Cho HS suy nghĩ và gọi 1 HS lên bảng làm
HS: Lên bảng làm
10 phút
30 phút
Trang 2* Cấu trúc lặp mô tả thao tác lặp
và được phân biệt hai loại là lặp
với số lần biết trước và lặp với số
lần chưa biết trước
2 Lặp với số lần biết trước và
câu lệnh for-do
a, Cấu trúc
Câu lệnh lặp for-do có 2 dạng
- Dạng lặp tiến:
for <biến đếm>:=<giá trị đầu>
to <giá trị cuối> do <Câu lệnh>
VD: for i:=1 to 100 do
Writeln(‘Xin chao’);
- Dạng lặp lùi:
for <biến đếm>:=<giá trị cuối>
downto <giá trị đầu> do <Câu
lệnh>
VD: for i:=100 downto 1 do
Writeln(‘Xin chao’);
- Biến đếm có kiểu đếm được
(kiểu nguyên, kí tự, miền con) và
thường dùng kiểu nguyên
- Giá trị đầu và giá trị cuối có thể
là biểu thức và có cùng kiểu với
biến đếm
- Điều kiện của vòng lặp là giá trị
đầu <= giá trị cuối.
b, Hoạt động
- Lặp tiến: câu lệnh sau từ khoá
DO được thực hiện tuần tự với
biến đếm lần lượt nhận các giá trị
liên tiếp tăng từ giá trị đầu đến
giá trị cuối.
- Lặp lùi: : câu lệnh sau từ khoá
DO được thực hiện tuần tự với
biến đếm lần lượt nhận các giá trị
liên tiếp giảm từ giá trị cuối đến
giá trị đầu.
GV: Các em thấy chương trình này thế nào?
HS: Trả lời
GV: Mỗi lần in ra phải viết bao nhiêu câu lệnh?
HS: Trả lời
GV: Chương trình trên được viết như vậy sẽ rất dài, khó đọc, dễ sai sót Cần phải có cấu trúc điều khiển việc lặp đi lặp lại 1 hoặc nhiều công việc nào đó Để mô tả cấu trúc lặp với số lần biết trước thì Pascal dùng câu lệnh For-do
GV: Mời các em đọc SGK trang
43, 44 để tìm hiểu về câu lệnh lặp
for-do
GV: Biến đếm, giá trị đầu, giá trị cuối có kiểu gì?
GV: Điều kiện gì để vòng lặp for-
do có thể thực hiện được.
HS: Chú ý lắng nghe GV: Gọi HS lên bảng giải bài tập
GV:
- Về nhà hoàn thành nốt các bài tập vào vở
- Xem trước phần nội dung cấu trúc lặp với số lần chưa xác định While-do
- Xem nội dung phụ lục B, SGK tr131: Lệnh rẽ nhánh
và lặp
- Xem nội dung phụ lục C, SGK tr139: Lệnh rẽ nhánh
và lặp
Trang 3c, Chú ý
- for-to-do là các từ khoá vì vậy
không được thay đổi chúng
- Giá trị của biến đếm được điều
chỉnh tự động, vì vậy câu lệnh viết
sau DO không được thay đổi giá
trị biến đếm.
- Các giá trị đầu và giá trị cuối có
thể là những biểu thức Trong
trường hợp này, giá trị của biểu
thức được tính trước khi vào vòng
lặp và làm nhiệm vụ giá trị đầu và
giá trị cuối Do đó trong vòng lặp
nếu có biến nào trong hai biểu
thức này bị thay đổi giá trị thì giá
trị đầu và giá trị cuối vẫn không
thay đổi
3 Vận dụng
Giải bài sau:
Tính tổng S
a
1
100
1
2
1 1
1
a
- Xác định S ban đầu và số
lần lặp
- Viết chương trình
Program Tong_s;
Var S:real;
i, a:Integer;
BEGIN
Writeln(‘Nhap a nguyên
(a >2) ’);
Write(‘a=’);readln(a);
S:=1.0/a;
For i:=1 to 100 do
S:=S+1/(a+i);
Write(‘Tong S=’,S);
Readln;
END
Bài 5a,6 SGK
5 phút
Trang 4Nhận xét của giáo viên hướng dẫn
Ngày 27 tháng 10 năm 2007
Giáo viên hướng dẫn