- Häc sinh biÕt ®îc cÊu tróc chung cña mét thñ tôc vµ vÞ trÝ khai b¸o cña thñ tôc trong th©n ch¬ng tr×nh chÝnh.. - Häc sinh biÕt ®îc kh¸i niÖm vÒ tham sè h×nh thøc vµ tham sè thùc sù, t[r]
Trang 1Tiết 1
Các khái niệm lập trình và ngôn ngữ lập trình Các thành phần của ngôn ngữ lập trình
- Biết vai trò của chơng trình dịch
- Biết khái niệm về thông dịch và biên dịch
- Biết các thành phần cơ bản của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa
2 Về thái độ
- Tích cực nghe giảng và ôn lại kiến thức lớp 10
II Chuẩn bị:
GV: Chuẩn bị tài liệu giảng dạy và tài liệu mở rộng
HS: Nhớ lại kiến thức lớp 10 về: Các loại ngôn ngữ lập trình, phân biệt ngôn ngữ bậc cao vớicác ngôn ngữ khác
III Ph ơng pháp - Ph ơng tiện
1 Phơng pháp
- Sử dụng kết hợp nhiều phơng pháp: Diễn giải, hỏi đáp,
2 Phơng tiện
- Sử dụng sgk và tài liệu tham khảo
IV Tiến trình bài giảng
1 ổn định lớp
- Lớp báo cáo sỹ số
- Cho HS ổn định chỗ ngồi
2 Nội dung bài
chuyển đổi các chơng trình đợc viết bằng ngôn ngữ bậc
cao sang ngôn ngữ máy
- Chơng trình dịch nhận đầu vào là chơng trình viết bằng
ngôn ngữ bậc cao (Chơng trình nguồn) thực hiện chuyển
đổi sang ngôn ngữ máy (Chơng trình đích)
- Chơng trình dịch có 2 loại: Thông dịch và biên dịch
+ Thông dịch: Đợc thực hiện bằng cách lặp lại dãy các
GV: Chúng ta đã tìm hiểu về ngônngữ lập trình Vậy, ngôn ngữ lậptrình?
HS trả lời: Ngôn ngữ dùng để viếtchơng trình gọi là ngôn ngữ lậptrình
GV: Ngôn ngữ lập trình gồmnhững loại nào?
HS trả lời: Ngôn ngữ lập trình đợcchia làm 3 loại: Ngôn ngữ máy,hợp ngữ và ngôn ngữ bậc cao.GV: Em hãy kể một số ngôn ngữlập trình mà em biết?
HS trả lời: Pascal, C, C++,GV: Tại sao ngời ta đa ra ngônngữ bậc cao?
HS trả lời: Ngời ta đa ra ngôn ngữbậc cao nhằm giải quyết nhữnghạn chế của ngôn ngữ máy và hợpngữ: Ngôn ngữ gần với tự nhiênhơn, gần nh không phụ thuộc vàocác loại máy tính
GV: Máy tính có thể hiểu trực tiếp
Trang 21 Kiểm tra tính đúng đắn của câu lệnh tiếp theo
trong chơng trình nguồn
2 Chuyển đổi dãy câu lệnh đó thành một hay nhiều
câu lệnh tơng ứng trong ngôn ngữ máy
3 Thực hiện câu lệnh vừa chuyển đổi đợc
Các ngôn ngữ khai thác hệ quản trị cơ sở dữ liệu, ngôn
ngữ đối thoại … đều sử dụng trình thông dịch đều sử dụng trình thông dịch
+ Biên dịch: Biên dịch đợc thực hiện qua 2 bớc:
1 Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của
các câu lệnh của chơng trình nguồn
c Ngữ nghĩa: Xác định ý nghĩa thao tác cần phải thực
hiện, ứng với tổ hợp bộ kí0 tự dựa vào ngữ cảnh của nó
trình dịch
GV: Chơng trình dịch là gì và cóchức năng gì?
HS trả lời: Chơng trình dịch là
ch-ơng trình dùng để dịch các chch-ơngtrình viết bằng ngôn ngữ bậc caosang ngôn ngữ máy
GV: Chơng trình dịch nhận đầuvào là chơng trình viết bằng ngônngữ bậc cao (Chơng trình nguồn)thực hiện chuyển đổi sang ngônngữ máy (Chơng trình đích)
GV: Đa ra ví dụ, khi 1 HS nhậnnhiệm vụ giới thiệu với đoànkhách ngời Nhật về làng của mình,
bộ những điều cần giới thiệu vềlàng ra giấy sau đó đa cho ngờiphiên dịch để dịch ra giấy, rồi họ
đa cho đoàn khách bản dịch bằngtiếng Nhật cho đoàn khách đọc.GV: Một chơng không còn lỗi về
cú pháp thì mới có thể dịch sangngôn ngữ máy Các lỗi về ngữnghĩa thì khó phát hiện hơn, thôngthờng chỉ phát hiện khi thực hiệnchơng trình với dữ liệu cụ thể
V Củng cố bài.
- Nắm đợc ngôn ngữ lập trình có 3 dạng: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao
- Phân biệt đợc ngôn ngữ bậc cao với các ngôn ngữ khác
Trang 3II Ph ơng tiện dạy học
- Máy chiếu, máy tính, giáo án Powerpoint
III Hoạt động dạy học
1 Tổ chức lớp: ổn định và kiểm tra sĩ số
2 Kiểm tra bài cũ:
- GV đa ra câu hỏi và gọi HS lên bảng trả lời
Câu 1: Phân biệt thông dịch và biên dịch?
Câu 2: Nêu các thành phần cơ bản của ngôn ngữ lập trình?
- 2 HS lần lợt lên bảng trả lời từng câu hỏi
3 Tiến trình tiết dạy
Hoạt động của GV Hoạt động của HS
- Tiết trớc chúng ta đã tìm hiểu về các thành phần của
II Các khái niệm
- Trình chiếu Slide chứa một chơng trình ví dụ đơn giản,
có liên kết với turbo Pascal
+ Mọi đối tợng trong chơng trình đều phải đợc đặt tên
theo qui tắc của ngôn ngữ lập trình và từng chơng trình
dịch cụ thể
1,Tên
+ Trong Pascal, tên là một dãy liên tiếp không quá 127 kí
tự bao gồm chữ cái, chữ số và dấu gạch dới, nhng không
đợc bắt đầu bằng chữ số
- Trình chiếu slide chứa ví dụ về các tên đúng và sai, cho
HS xác định tên đúng và tên sai
Ví dụ: A, AC de, 1fe, _12d, d12, h_2,
- Theo dõi ví dụ trên màn hình
- Ghi bài vào vở
- Cả lớp theo dõi ví dụ trên mànhình và suy nghĩ
Trang 4thờng nhng một số ngôn ngữ khác thì có phân biệt chữ
hoa và chữ thờng nh C,C++… đều sử dụng trình thông dịch
+ Trong ngôn ngữ Pascal có ba loại tên: Tên dành riêng,
tên chuẩn và tên do ngời lập trình đặt
a, Tên danh riêng (Từ khoá)
- Quay lại slide chứa chơng trình ví dụ
- Mở kết nối sang pascal chơng trình đó
- Trong chơng trình trên màn hình soạn thảo của Pascal,
tên dành riêng đó là: Program, uses, const, type, var,
begin, end Em nào đa ra nhận xét gì khi nhìn trên màn
hình soạn thảo của pascal, có gì khác trong chơng trình?
+ Từ khoá là những tên đợc ngôn ngữ lập trình qui định
đúng với một ý nghĩa xác định, ngời lập trình không đợc
dùng với ý nghĩa khác
- Dựa vào tên các từ khoá trên, em nào có thể dịch từ
tiếng Anh sang tiếng Việt để thấy ý nghĩa của các từ
khoá này?
- Ngời sử dụng không đợc phép dùng từ khoá với ý nghĩa
khác, ví dụ dùng để đặt tên cho biến là không đợc hoặc
khi soạn thảo chỉ cần sai một kí tự là chơng trình báo lỗi
GV lấy ví dụ ngay trên màn hình soạn thảo Pascal các
tr-ờng hợp để HS thấy đợc từ khoá là từ dành riêng
- Mỗi tên dành riêng nó cũng phản ánh chức năng của nó
bằng cách dùng các từ hoặc từ viết tắt bằng tiếng Anh,
nh Program: chơng trình, uses: Th viện hỗ trợ, const:
Hằng; Type: Định nghĩa, var là từ viết tắt của variable:
Biến, Begin: Bắt đầu, end: Kết thúc… đều sử dụng trình thông dịch
b, Tên chuẩn
- Trình chiếu ví dụ một chơng trình pascal hoàn chỉnh
GV chỉ cho HS thấy tên chuẩn trong chơng trìh đó: Real,
sqr
+ Tên chuẩn là những tên đợc ngôn ngữ lập trình quy
định dùng với một ý nghĩa nào đó, ngời lập trình có thể
định nghĩa lại để dùng nó với ý nghĩa khác
- ý nghĩa của các tên chuẩn đợc quy định trong các th
viện của ngôn ngữ lập trình, nh real: kiểu số thực, hàm
sqr là hàm trả về bình pơng của một số
c Tên do ng ời lập trình đặt
- Trình chiếu lại ví dụ
+ Tên do ngời lập trình là những tên đợc đặt với ý nghĩa
riêng của từng ngời lập trình, tên này đợc khai báo trớc
khi sử dụng Các tên này không đợc trùng với tên dành
riêng
Trong ví dụ, tên do ngời sử dụng đặt: Vi_du_1, R, Dtich
- Trình chiếu ví dụ 2 có liên kết với môi trờng pascal và
cho HS xác định tên riêng, tên chuẩn và tên do ngời lập
Write(‘Nhap vao a va b :’); readln (a,b);
{a, b la he so cua pt bac nhat co dang: ax+b=0}
If a <> 0 then write(‘pt co nghiem duy nhat: ’, -b/a)
Else
If b <> 0 then write(‘pt vo nghiem’)
- Một HS đứng tại chỗ xác địnhtên đúng và tên sai qui định
- Cả lớp theo dõi trên màn hìnhchiếu
- Một HS trả lời: Trong chơngtrình, các từ khoá có màu trắng
- Cả lớp theo dõi trên màn hình
ví dụ
- Một em đứng tại chỗ trả lời:Program: chơng trình, uses: Thviện hỗ trợ, const: Hằng; Type:
Định nghĩa, var là từ viết tắt củavariable: Biến, Begin: Bắt đầu,end: Kết thúc
- Cr lớp theo dõi ví dụ
- Ghi bài vào vở
- Cả lớp theo dõi vào ví dụ
- HS ghi bài vào vở
- HS theo dõi ví dụ 2
- Một HS đứng tại chỗ trả lời: + Tên dành riêng: Program,uses, var, Begin, if, then, else,end
+ Tên chuẩn: crt, write, readln+ Tên do ngời lập trình đặt:vi_du_2; a, b
Trang 5- Trên ví dụ 1 và 2 sau từ khoá Var là tên biến, sau từ
khoá Const là hằng Vậy, em nào cho biết trong toán học
hằng là gì và biến là gì? Cho ví dụ?
không có dấu, dấu chấm tĩnh và dấu chấm động)
Hằng kí tự: Là một chuỗi kí tự và đợc đặt trong dấu
nháy đơn
Hằng logic là giá trị đúng (true) hoặc sai (flase)
b Biến
+ Biến là đại lợng đợc đặt tên dùng để lu giá trị và giá trị
này có thể thay đổi trong quá trình thực hiện chơng
trình Các biến dùng trong chơng trình đều phải đợc khai
báo
- Trong ví dụ 1 và 2 thì R, Dtich, a, b là biến
- Trình chiếu ví dụ 3 để HS xác định hằng và biến
c Chú thích: Chú thích đợc đặt giữa { và }, hoặc (* và *)
dùng để giải thích cho chơng trình rõ dàng và sễ hiểu
một ẩn số cần tìm giá trị, ví dụ:3x+2=0, trong đó x là ẩn
- HS ghi bài vào vở
- HS theo dõi ví dụ và trả lời
4 Củng cố bài
- Trình chiếu ví dụ tổng hợp để HS xác định từ khoá, tên chuẩn, tên do ngời lập trình đặt,biến và hằng
Trang 6Tiết 3
Bài tập
Ngày soạn: 30/08/2009 Ngày giảng: 31/08/2009 Lớp: 11A2
I Mục tiêu bài giảng
1 Kiến thức
- Biết đợc vì sao phải có chơng trình dịch
- Phân biệt đợc 2 chế độ thông dịch và biên dịch
- Nắm đợc các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa
- Nắm đợc khái niệm tên riêng, tên chuẩn và tên do ngời lập trình đặt
- Nắm đợc khái niệm hằng và biến
2 Kỹ năng
- Nắm đợc các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa
- Phân biệt đợc tên riêng, tên chuẩn và tên do ngời lập trình đặt
- Biết và phân biệt đợc hằng và biến
- Sử dụng bảng, sgk, máy chiếu projector, máy tính
III Hoạt động giảng dạy
1 ổn định lớp: Lớp trởng báo cáo sỹ số và cho HS ổn định vị trí ngồi
2 Kiểm tra bài cũ (không ktra)
3 Nội dung
- Trình chiếu nội dung bài tập 1 với chơng trình có liên kết đến
môi trờng làm việc của Pascal và đa ra câu hỏi
Bài tập 1: Cho chơng trình:
Program Amlich;
{Chuong trinh chuyen năm duong lich sang nam am lich
dang can - chi}
Trang 7write('Ban co muon tiep tuc khong (C/K)? : ');
readln(kt);
Until upcase(kt)='K';
End.
- Dựa vào chơng trình ví dụ của bài tập 1 trên màn hình có liên
kết với môi trờng làm việc Pascal để trả lời các câu hỏi sau:
1 Xác định từ khoá, tên chuẩn và tên do ngời lập trình đặt?
2 Xác định hằng, biến và đoạn chú thích trong chơng trình?
3 Nếu thay tên biến n bằng một trong các tên sau: begin; 1ab;
do; can chi;namd; abs; crt Tên nào có thể dùng để thay thế đợc?
Tên nào không thể thay thế đợc, vì sao?
- GV chiếu lại ví dụ trên môi trờng soạn thảo pascal và thay thế
trực tiếp trên môi trờng pascal, kiểm tra với từng tên để HS thấy
đợc tên nào thài chờng trình báo lỗi
- Từ đó rút ra kết luận cho việc đặt tên biến: Không đợc trùng
với từ khoá, không chứa kí tự trắng, không nên đặt tên trùng với
tên chuẩn và nên đặt tên có ý nghĩa dễ gợi nhớ, dễ đọc, dễ kiểm
tra lỗi của chơng trình
- GV yêu cầu HS làm bài tập: Bài 1.6 sgk tr.13; bài 1.9; 1.10;
- Một HS trả lời câu hỏi 2: Trong
ch-ơng trình hằng: Can, chi Biến: n, kt và
đoạn chú thích {Chuong trinh chuyen năm duong lich sang nam am lich dang can - chi}
- Cả lớp suy nghĩ
- 1 HS trả lời câu hỏi: Tên cóthể thay thế: 1ab, namd Têncrt, abs không nên đặt và cáctên còn lại không thể dùng đểthay thế đợc vì trùng tên với từkhoá và có chứa kí tự trắng
- HS cả lớp làm bài và chuẩn bịlên bảng
- 5 HS lên bảng làm, mỗi HS 1bài
Trang 8Tiết 4
Chơng II: chơng trình đơn giản
cấu trúc chơng trình
Ngày soạn: 06/09/2009 Ngày giảng: 09/09/2009 Lớp: 11A1
I Mục tiêu bài giảng
1 Kiến thức
- Hiểu đợc chơng trình là sự mô tả đợc của thuật toán bằng một ngôn ngữ lập trình
- Biết đợc cấu trúc của một chơng trình đơn giản: Cờu trúc chung và các thành phần
- Biết đợc cấu trúc chung của một chơng trình viết trên ngôn ngữ pascal
2 Kỹ năng
- Nhận biết đợc các thành phần của một chơng trình đơn giản viết bằng ngôn ngữ pascal
II Ph ơng pháp - ph ơng tiện
- Sử dụng kết hợp nhiều phơng pháp nh thuyết trình và đặt câu hỏi gợi mở vấn đề
- Sử dụng bảng, sgk, máy chiếu projector, máy tính
III Hoạt động giảng dạy
1 ổn định lớp: Lớp trởng báo cáo sỹ số và cho HS ổn định vị trí ngồi
2 Kiểm tra bài cũ (không ktra)
3 Nội dung
Hoạt động của GV Hoạt động của HS
- GV: Các em nhớ lại kiến thức về viết văn cho biết bố cục
một bài văn gồm mấy phần và vì sao lại chia nh vậy?
i3 cấu trúc chơng trình
- GV cho chiếu chơng trình và liên kết đến môi trờng soạn
thảo Pascal để chạy chơng trình ví dụ lên màn hình để HS
theo dõi
Program hoan_vi;
uses crt;
type mang_hv = array [1 20] of byte;
mang_kt = array [1 20] of boolean;
Var i, n,dem: byte;
Mở bài, thân bài và kết bài.Chia ra nh vậy để dễ đọc, dễhiểu nội dung
- HS cả lớp theo dõi ví dụ trên màn hình chiếu
- HS ghi bài
Trang 91 Cấu trúc ch ơng trình
+ Một chơng trình có cấu trúc gồm 2 phần:
[<Phần khai báo >]
<Phần thân>
- GV: Trong đó, qui ớc các thành phần trong dấu ngoặc
vuông [ ] là không bắt buộc phải có, nhng phần trong dấu
ngoặc nhọn thì bắt buộc
+ Phần khai báo có thể có hoặc không, phần thân thì bắt buộc
phải có
- GV: Trong chơng trình ví dụ thì phần khai báo từ Program
… đến END; và phần thân từ BEGIN đến END
2 Các thành phần của ch ơng trình
a Phần khai báo
+ Có thể có các khai báo cho: Tên chơng trình, th viện, hằng,
định nghĩa kiểu dữ liệu , biến và chơng trình con
- GV: Chúng ta có thể dựa vào vốn từ vựng của tiếng Anh,
- Dựa vào nghĩa tiếng Anh của các từ khoá trên, em nào cho
biết khai báo tên chơng trình, khai báo th viện, định kiểu,
biến, chơng trình con?
+ Khai báo tên chơng trình: Phần này có thể có hoặc không
Với Pascal, nếu có, phần tên chơng trình bắt đầu bằng từ khoá
program, tiếp đến là tên chơng trình do ngời lập trình đặt theo
qui tắc đặt tên
ví dụ: program hoan_vi;
+ Khai báo th viện: Mỗi ngôn ngữ lập trình có sẵn một số
ch-ơng trình thông dụng để hỗ trợ cho ngời lập trình Trong
Pascal,nếu có, khai báo th viện bằng từ khoá Uses, tiếp đến là
tên th viện Nếu có nhiều th viện thì sử dụng dấu “,” để ngăn
cách
Ví dụ: Uses crt, graph;
+ Trong pascal, nếu khai báo th viện crt (cung cấp chơng
trình để làm việc với màn hình và bàn phím), thì đầu tiên của
thân chơng trình dùng câu lệnh clrscr;
+ Khai báo hằng: Hằng là những giá trị xuất hiện nhiều lần
trong chơng trình mà không bị thay đổi giá trị.Một hằng có
thể là số, kí tự hoặc kiểu logic Trong Pascal, nếu có, hằng
đ-ợc khai báo bằng từ khoá Const, theo cú pháp:
Const ten_hang1= gia_tri1;
Ten_hang2= gia_tri2;
………
+ Định nghĩa kiểu dữ liệu của ngời dùng: Ngoài những kiểu
dữ liệu chuẩn, ngời lập trình có thể định nghĩa kiểu dữ liệu
cho mình Trong Pascal, nếu có, định nghĩa kiểu bằng từ khoá
Type, khai báo theo cú pháp:
Type ten_kieu=định nghĩa kiểu cụ thể cho từng kiểu;
Ví dụ:
type mang_hv = array [1 20] of byte;
mang_kt = array [1 20] of boolean;
- GV: Xét ví dụ: Gải và biện luận pt: ax+b=0, trong toán học
từ khoá uses (crt), định kiểu bởi từ khoá Type (can, chi), khai báo biến bằng từ khoá Var (i, n, dem, x, kt) và ch-
ơng trình con đợc khai báo sau từ khoá procedure (try)
- HS ghi bài
- HS ghi bài
- HS ghi bài
Trang 10thực hiện chơng trìnhơng trình (giá trị input, output) Giải bài
toán này bằng máy tính thì sẽ có các biến: a, b, x kiểu số
thực
+ Khai báo biến: Biến là một đại lợng nào đó Nó có thể thay
đổi giá trị trong khi chơng trình đợc thực hiện Trong Pascal,
nếu có, khai báo biến bằng từ khoá VAR, theo cấu trúc: Var
ten_bien1, ten_bien2, ten_bien3: kieu 1;
Khi đặt tên chơng trìnhơng trình, tên hằng, tên biến hoặc các
đối tợng khác, ngời lập trình không đợc đặt trùng với từ khoá
(Begin, end, program, var, if, the, while, do ), có thể đặt
trùng với tên chuẩn (read, readln Write, integer, real, true,
false ) nhng không nên vì dễ nhầm lẫn Nên đặt tên gợi nhớ
Trong Pascal, không phân biệt chơng trìnhữ hoa và chữ hoa
và chữ thờng (trừ trong các hằng lí tự và xâu kí tự), nên có thể
dùng chữ hoa hoặc chữ thờng tuỳ ý sao cho chơng trình dễ
đọc
b Thân ch ơng trình trình
- Ví dụ trên thấy, phần thân chơng trình trình từ BEGIN đến
END
+ Dãy lệnh đợc giới hạn trong phạm vi của từ khoá Begin và
End, sau end có dấu chấm “.”
- 1 HS trả lời: x là biến
- HS ghi bài
- HS trả lời: Hằng thì có giá trị không thay đổi trong suốtquá trình chơng trìnhơng trình thực hiện, còn biến thì
có giá trị thay đổi
4 Củng cố bài
- Một chơng trình trình gồm 2 phần: Phần khai báo và phần thân chơng trình trình Trong đóphần khai báo là không bắt buộc phải có nhng bắt buộc phải có phần thân
Trang 11Tiết 5
Một số kiểu dữ liệu chuẩn - khai báo biến
I-Mục tiêu:
1.Kiến thức:
-Biết đợc một số kiểu dữ liệu chuẩn: nguyên, thực, ký tự, logic
-Biết đợc cấu trúc chung của khai báo biến
2.Kỹ năng:
-Sử dụng đợc kiểu dữ liệu và khai báo biến để viết đợc một chơng trình đơn giản
II-Đồ dùng dạy học:
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu một số kiểu dữ liệu chuẩn.
1.Đặt vấn đề: Trong toán học, để thực hiện đợc tính toán
ta cần phải có các tập số Đó là các tập số nào?
-Diễn giải: Cũng tơng tự nh vậy, trong ngôn ngữ lập
trình Pascal, để lập trình giải quyết các bài toán, cần có
các tập hợp, mỗi tập hợp có một giới hạn nhất định
-Các em có thể hiểu nôm na: Kiểu dữ liệu chuẩn là một
tập hữu hạn các giá trị, mỗi kiểu dữ liệu cần một dung
lợng bộ nhớ cần thiết để lu trữ và xác định các phép toán
có thể tác động lên dữ liệu
2.Yêu cầu học sinh nghiên cứu sách giáo khoa, trả lời
các câu hỏi sau:
-Có bao nhiêu kiểu dữ liệu chuẩn trong ngôn ngữ
Pascal?
-Trong ngôn ngữ Pascal có những kiểu nguyên nào
th-ờng dùng, phạm vi biểu diễn của mỗi loại?
-Trong ngôn ngữ Pascal, có bao nhiêu kiểu ký tự?
-Trong ngôn ngữ Pascal, có bao nhiêu kiểu logic, gồm
các giá trị nào?
3.Giáo viên giải thích một số vấn đề cho học sinh:
+Vì sao phạm vi biểu diễn của các loại kiểu nguyên
khác nhau?
+Miền giá trị của các loại kiểu thực, số chữ số có nghĩa?
4.Phát vấn: Muốn tính toán trên các giá trị 4,5,6,7 ta
phải sử dụng kiểu dữ liệu gì?
1.Chú ý, lắng nghe và suynghĩ trả lời:
-Số tự nhiên, số nguyên, sốhữu tỉ, số thực
-Liên tởng các tập số trongtoán học với kiểu dữ liệutrong Pascal
2.Nghiên cứu sách giáo khoa
và trả lời
-Có 4 kiểu: Kiểu nguyên,kiểu thực, kiểu ký tự và kiểulogic
-Có 4 loại: Byte, Word,Integer và longin
-Có 2 loại: Real, extended.-Có 1 loại: Char
-Có 1 loại: Boolean, gồm 2phần tử: True, False
3.Lắng nghe và suy nghĩ4.Suy nghĩ và trả lời
Kiểu Real
Trang 123.Hoạt động 3: Tìm hiểu cách khai baó biến.
1.Yêu cầu học sinh nghiên cứu sách giáo khoa và
cho biết vì sao phải khai báo biến?
-Cấu trúc chung của khai báo biến trong ngôn ngữ
Pascal
-Cho ví dụ để khai báo một biến nguyên và một
biến kiểu ký tự
2.Chiếu chơng trình chứa một số khai báo và yêu
cầu học sinh chọn khai báo đúng trong ngôn ngữ
1.Mọi biến dùng trong chơng trình
đều phải khai báo tên biến và kiểudữ liệu của biến Tên biến dùng đểxác lập quan hệ giữa biến với địachỉ bộ nhớ nơi lu giữ giá trị củabiến
-Var <danh sách biến>: <kiểu dữ liệu>;
Var x: Word
Y: char;
2.Quan sát và chọn khai báo đúng
Var X,y,z: word
-Các kiểu dữ liệu chuẩn: kiểu số nguyên, kiểu số thực, kiểu ký tự, kiểu logic
-Mọi biến trong chơng trình phải đợc khai báo Cấu trúc chung của khai báo biếntrogn Pascal: Var tên biến: tên kiểu dữ liệu;
Trang 13Tiết 6:
phép toán, biểu thức, câu lệnh gán
Ngày soạn: 06/09/2009 Ngày giảng: 21/09/2009 Lớp: 11A11
I-Mục tiêu:
1.Kiến thức:
-Biết đợc các phép toán thông dụng trong ngôn ngữ lập trình
-Biết diễn đạt một biểu thức trong ngôn ngữ lập trình
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu một số phép toán.
1.Đặt vấn đề: Để mô tả các thao tác trong
thuật toán, mỗi ngôn ngữ lập trình đều sử
dụng một số khái niệm cơ bản: phép toán,
-Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết các nhóm phép toán
-Phép Div, Mod đợc sử dụng cho những
kiểu dữ liệu nào?
-Kết quả của phép toán quan hệ thuộc kiểu
dữ liệu nào?
1.Chú ý lắng nghe
2.Suy nghĩa và trả lời-Phép: cộng, trừ, nhân, chia, lấy số d, chialấy số nguyên, so sánh
-Các phép toán số học: +,-,*,/,div,mod.-Các phép toán quan hệ: <,>, =,>=,<= -Các phép toán logic: And, Or, Not
-Chri sử dụgn đợc cho kiểu nguyên
-Thuộc kiểu Logic
2.Hoạt động 2: Tìm hiểu biểu thức.
1.Trong toán học ta đã làm quen với khái niệm biểu
thức, hãy cho biết yếu tố cơ bản xây dựng nên biểu thức
-Nếu trong một bài toán mà toán hạng là biến số, hằng
số hoặc hàm số và toán tử là các phép toán số học thì
1.Suy nghĩ trả lời
-Gồm hai phần: Toán hạng vàtoán tử
Trang 14biÓu thøc cã tªn gäi lµ g×?
2.ChiÕu mét sè biÓu thøc to¸n häc lªn b¶ng, yªu cÇu häc
sinh biÓu diÔn thµnh biÓu thøc trong Pascal
-Nghiªn cøu SGK vµ tõ viÖc x©y dùng c¸c biÓu thøc
trªn, h·y nªu thø tù thùc hiÖn c¸c phÐp to¸n
+Thùc hiÖn phÐp to¸n quan hÖ
-Cho kÕt qu¶: KiÓu logic
5.BiÓu thøc logic:
-lµ biÕn hoÆc h»ng logic
BiÓu thøc logic cho gi¸ trÞ lµ True hoÆc False
Thø tù thùc hiÖn:
+Thùc hiÖn biÓu thøc quan hÖ
+Thùc hiÖn phÐp to¸n logic
-BiÓu thøc sè häc
2.Quan s¸t tr¶ lêi2*a+5*b+cx*y/(2*z)((x+y)/(1-(2/z)))+(x*x/(2*z))
-Thùc hiÖn trong ngoÆc tríc;ngoµi ngoÆc sau Nh©n, chia,chia nguyªn, chia lÊy d tríc;céng trõ sau
3.Suy nghÜa tr¶ lêi
(-b+sqrt(b*b-4*a*c))/(2*a)
Trang 153.Hoạt động 3: Tìm hiểu lệnh gán.
-Giới thiệu một ví dụ về lệnh gán trong Pascal nh sau:
x:=4+8;
-Giải thích: Lấy 4 cộng 8, đem kết quả đặt vào x Ta đợc
x=12
-Hãy cho biết chức năng của lệnh gán?
-Cấu trúc chung của lệnh gán:
<tên biến>:=<biểu thức>;
VD: x=
a
ac b
-Các phép toán trong Pascal: số học, quan hệ, logic
-Biểu thức trong Pascal: số học, quan hệ, logic
Trang 16-Biết nhập đúng dữ liệu khi thực hiện chơng trình.
-Biết khởi động và thoát khỏi Pascal
-Soạn đợc một chơng trình vào máy
-Dịch đợc chơng trình
-Thực hiện đợc chơng trình để nhập và thu kết quả
II-Đồ dùng dạy học:
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu thủ tục nhập dữ liệu từ bàn phím.
-Yêu cầu học sinh nghiên cứu sách giáo khoa và
cho biết thủ tục nhập dữ liệu từ bàn phím?
VD: Chơng trình giải ax+b=0, ta phải nhập những
đại lợng nào?
-Khi nhập giá trị cho nhiều biến ta phải thực hiện
nh thế nào?
- Nhập a,bRead(a,b); hoặc Readln(a,b);
-Những giá trị này cách nhau mộtdấu cách hoặc kí tự xuống dòng
2.Hoạt động 2: Tìm hiểu thủ tục đa dữ liệu ra màn hình.
-Yêu cầu học sinh nghiên cứu SGK và cho biết cấu
trúc chung của thủ tục xuất dữ liệu? Write(<tên biến 1, ,tên biến k);
Trang 17VD: Chơng trình giải ax+b=0 đa giá trị của x=-b/a
ra màn hình
Chiếu chơng trình Pascal đơn giản
?Chức năng của lệnh Writeln()?
? Khi các tham số trong lệnh Write() thuộc kiểu char
hoặc Real thì quy định vị trí nh thế nào?
3.Hoạt động 3: Làm quen với Turbo Pascal 7.0
-Để sử dụng đợc Turbo pascal trên máy phải có các
-Giới thiệu màn hình soạn thảo của pascal
-quan sát và ghi bài
4.Hoạt động 4: Tập soạn thảo chơng trình đơn giản và thực hiện chơng trình.
IV-Đánh giá cuối bài:
1.Những nội dung chính:
-Khởi động pascal, soạn thảo, dịch, sửa lỗi cú pháp, chạy chơng trình
2.Câu hỏi và bài tập về nhà:
-Làm các bài tập trang 36 SGK, Đọc trớc nội dung bài thực hành, xem phụ lục B SGKtrang 122, 136
Trang 18-Biết đợc một chơng trình pascal hoàn chỉnh.
-Làm quen với các dịch vụ chủ yếu của pascal trong việc soạn thảo, lu, dịch chơngtrình và thực hiện chơng trình
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu một chơng trình hoàn chỉnh.
1.Chiếu chơng trình lên bảng Yêu cầu học sinh thực
hiện các nhiệm vụ:
-Soạn chơng trình vào máy
-Nhập dữ liệu 1 0 2 Thông báo kết quả
-Hỏi: Vì sao có lỗi xuất hiện?
-Sửa lại?
1.Quan sát bảng, độc lập soạnthảo chơng trình vào máy
F2Alt + F9Ctrl + F9X1=1.00 X2=2.00
EnterCtrl + F9Thông báo lỗi
Do căn bậc hai của một số âm-Sửa lại
2.Hoạt động 2: Rèn kỹ năng lập chơng trình.
1.Định hớng để học sinh phân tích bài toán tính diện
tích hình tròn khi biết bán kính là a 1.Phân tích theo yêu cầu củagiáo viên
Trang 19-Cách tính.
2.Yêu cầu học sinh soạn và lu chơng trình vào đĩa
-Quan sát hớng dẫn từng học sinh trong lúc thực
hành
-Dữ liệu ra SS:=3.14*a*a;
IV-Đánh giá cuối bài:
1.Những nội dung chính:
-Các bớc hoàn thành một chơng trình: Xác định bài toán, thuật toán, soạn chơngtrình, lu, biên dịch, thực hiện và hiệu chỉnh
Trang 20-Biết đợc một chơng trình pascal hoàn chỉnh.
-Làm quen với các dịch vụ chủ yếu của pascal trong việc soạn thảo, lu, dịch chơngtrình và thực hiện chơng trình
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu một chơng trình hoàn chỉnh.
1.Chiếu chơng trình lên bảng Yêu cầu học sinh thực
hiện các nhiệm vụ:
-Soạn chơng trình vào máy
-Nhập dữ liệu 1 0 2 Thông báo kết quả
-Hỏi: Vì sao có lỗi xuất hiện?
-Sửa lại?
1.Quan sát bảng, độc lập soạnthảo chơng trình vào máy
F2Alt F9Ctrl F9X1=1.00 X2=2.00
EnterCtrl F9Thông báo lỗi
Do căn bậc hai của một số âm-Sửa lại
2.Hoạt động 2: Rèn kỹ năng lập chơng trình.
1.Định hớng để học sinh phân tích bài toán tính diện
tích hình tròn khi biết bán kính là a 1.Phân tích theo yêu cầu củagiáo viên
Trang 21-Cách tính.
2.Yêu cầu học sinh soạn và lu chơng trình vào đĩa
-Quan sát hớng dẫn từng học sinh trong lúc thực
hành
-Dữ liệu ra SS:=3.14*a*a;
IV-Đánh giá cuối bài:
1.Những nội dung chính:
-Các bớc hoàn thành một chơng trình: Xác định bài toán, thuật toán, soạn chơngtrình, lu, biên dịch, thực hiện và hiệu chỉnh
Trang 22-Biết đợc một chơng trình pascal hoàn chỉnh.
-Làm quen với các dịch vụ chủ yếu của pascal trong việc soạn thảo, lu, dịch chơngtrình và thực hiện chơng trình
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu một chơng trình hoàn chỉnh.
1.Chiếu chơng trình lên bảng Yêu cầu học sinh thực
hiện các nhiệm vụ:
-Soạn chơng trình vào máy
-Nhập dữ liệu 1 0 2 Thông báo kết quả
-Hỏi: Vì sao có lỗi xuất hiện?
-Sửa lại?
1.Quan sát bảng, độc lập soạnthảo chơng trình vào máy
F2Alt F9Ctrl F9X1=1.00 X2=2.00
EnterCtrl F9Thông báo lỗi
Do căn bậc hai của một số âm-Sửa lại
2.Hoạt động 2: Rèn kỹ năng lập chơng trình.
1.Định hớng để học sinh phân tích bài toán tính diện 1.Phân tích theo yêu cầu của
Trang 23-Dữ liệu ra.
-Cách tính
2.Yêu cầu học sinh soạn và lu chơng trình vào đĩa
-Quan sát hớng dẫn từng học sinh trong lúc thực
hành
-Dữ liệu vào a-Dữ liệu ra SS:=3.14*a*a;
IV-Đánh giá cuối bài:
1.Những nội dung chính:
-Các bớc hoàn thành một chơng trình: Xác định bài toán, thuật toán, soạn chơngtrình, lu, biên dịch, thực hiện và hiệu chỉnh
Trang 24-Hiểu đợc khái niệm rẽ nhánh trong lập trình
-Biết sử dụng các câu lệnh thực hiện rẽ nhánh trong TP (Dạng thiếu và dạng đủ)
- Hiểu đợc câu lệnh ghép
2.Kỹ năng:
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản
- Viết đợc các câu lệnh rẽ nhánh dạng thiéu và đủ và áp dụng để thể hiện đợc thuật toán củamột số bài toán đơn giản
II-Đồ dùng dạy học:
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
3 n i dung b iội dung bài ài
TG Nội dung trỡnh chiếu Hoạt động của Gv và HS
10’
* Slide 1: Đưa ra một số vớ dụ về
những cụng việc hằng ngày cú sự
lựa chọn
- Nếu trời khụng mưa thỡ tụi sẽ
mời cỏc bạn đi ăn chố bưởi, nếu
mưa thỡ tụi mời cỏc bạn ăn chố
nếu trời mưa thỡ buổi tối Ngọc sẽ
Thường ngày cú rất nhiều việc, chỉđược thực hiện khi một điều kiện nào đúđược thỏa món
GV đưa vớ dụ
GV: Em hóy lấy một số vớ dụ về nhữngcụng việc nào đú chỉ xảy ra khi một điềukiện nào đú được thỏa món?
GV: Trong tin học, để mụ tả những hànhđộng cú rẽ nhỏnh (lựa chọn) bằng cấutrỳc rẽ nhỏnh
1 Rẽ nhỏnhGV: Chỳng ta xột một số vớ dụ
Trang 25Cấu trúc điều kiện hành động
- Lần khác, Ngọc nói với Châu:
“Chiều mai nếu trời không mưa
thì Ngọc sẽ đến nhà Châu, nếu
trời mưa thì buổi tối Ngọc sẽ
điện lại cho Châu”.
- Nếu trời không mưa thì tôi sẽ
mời các bạn đi ăn chè bưởi,
ngược lại tôi mời các bạn ăn chè
ngó
Nếu (Điều kiện đúng) thì (Hoạt
động 1) còn không thì (Hoạt
động 2);
- Châu hẹn Ngọc: “Chiều mai nếu
trời không mưa thì Châu sẽ đến
If <Điều kiện> Then <Câu lệnh>;
If, Then, Else: Từ khoá
Điều kiện: Biểu thức logic hoặc
x=(-b∆)/2a
GV: Quay lại các ví dụ ở trên, chúng ta
đi phân tích cấu trúc hành động
GV: Dựa vào ví dụ, em nào có thể kháiquát dạng hành động?
HS: nếu (đk đúng) thì hoạt động 1,ngược lại hoạt động 2
GV: Từ nếu trong tiếng Anh là gì?
HS dạng 1 thì có trường hợp ngược lại,dạng 2 thì không
GV: Dạng 1 có hoạt động 2 là rỗng thìtrở về dạng 2, vậy dạng 2 là trường hợpđặc biệt của dạng 1
GV: Tương ứng với 2 dạng hành độngtrên, trong TP có cấu trúc rẽ nhánh vớicâu lệnh rẽ nhánh dạng đủ và dạngthiếu
GV: Chúng ta quay lại các ví dụ trên, em
Trang 26nhưng câu lệnh ngay trước
else không có dấu chấm phẩy.
Ví dụ: Kiểm tra tính chẵn lẻ của số
nguyên dương N?
If (n MOD 2 =0) then write(‘N la
so chan’) else write(‘N la so le’);
+ Dạng thiếu:
If <Điều kiện> Then <Câu lệnh >;
Điều kiện được tính và kiểm tra,
nếu điều kiện đúng (có giá trị
TRUE) thì câu lệnh được thực
hiện, ngược lại (điều kiện có giá
Dạng 2: Nếu điều kiện đúng thì thựchiện câu lệnh, nếu sai thì không thựchiện câu lệnh
Gv: Chúng ta quay lại ví dụ giải pt bậc2: Em hãy chuyển các câu nếu thì sang câu lệnh If Then
HS:
- IF delta<0 Then write(‘pt vo nghiem’);
- IF delta=0 Thenwrite(‘pt co 1 nghiem duy nhat’);
- IF delta>0 Thenwrite(‘pt co 2 nghiem phan biet’);
- GV: Từ ví dụ 3 với các câu lệnh if thendạng thiếu, chúng ta có thể đưa về dạng
đủ được không?
HS: Đưa về dạng đủ được
GV: Chúng ta có thể đưa về dạng đủđược và dùng các câu lenẹh if then lồngnhau
IF delta<0 Then write(‘pt vo nghiem’)Else
IF delta=0 Thenwrite(‘pt co 1 nghiem duy nhat’)Else
write(‘pt co 2 nghiem phan biet’);
GV: Với các câu lệnh trên, chúng tachưa tính được giá trị của nghiệm, màchỉ đưa thông báo có nghiệm haykhông
GV: Chúng ta theo dõi ví dụ thì thấyrằng, trường hợp delta bằng 0 hoặc lớnhơn 0 , phải thực hiện 2 thao tác: tính
Trang 27nhuận là năm chia
hết cho 400 hoặc chia
GV: Em hãy dùng câu lenẹh ghép đểviết lại ví dụ 3 trên?
HS:
IF delta<0 Then write(‘pt vo nghiem’)Else
IF delta=0 Then Begin
X:=-b/(2*a);
write(‘pt co 1 nghiem duy nhat’);
End Else Begin x1 := (-b+sqrt(delta))/(2*a);
x2 := (-b-sqrt(delta))/(2*a);
write(‘pt co 2 nghiem phan biet’);
end;
GV: Chúng ta xét một số ví dụ
Trang 28- Nắm được cú pháp của câu lệnh rẽ nhánh dạng thiếu và dạng đủ
- Nắm được khi nào thì dùng câu lệnh dạng đủ và khi nào dùng câu lệnh dạngthiếu
- Nắm được câu lệnh ghép
- Biết sử dụng if the lồng nhau
- Bài tập về nhà: Bài 4 (sgk – tr.51) và bài 3.1; bài 3.2; 3.3; 3.5; 3.14; 3.15; 3.16;3.17; 3.18; 3.19; 3.20; 3.21 (sbt)
- GV: Hướng dẫn HS bài 3.18 và 3.19:
+ 3 số a, b, c thứ tự lập thành cấp số nhân có tính chất: b2=c*a
+ 3 số a, b, c thứ tự lập thành cấp số cộng có tính chất: b=(c+a)/2
Trang 29-Biết đợc một chơng trình pascal hoàn chỉnh.
-Biết lựa chọn và tổ chức rẽ nhánh trong lập trình khi giải một bài toán cụ thể
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn, câu hỏi thảo luận
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
1.Hoạt động 1: bài toán Pitago.
10’ 1.Chiếu chơng trình lên bảng Yêu cầu học
sinh thực hiện các nhiệm vụ:
-Xác định bài toán?
- Nêu ý tởng?
- GV: Khi kiểm tra a, b, c có phải là bộ
pitago không, ta cần kiểm tra 3 số này thỏa
mãn đồng thời hay không 3 đẳng thức đó?
- Xảy ra không đồng thời, chỉ cần 1 trong 3
đúng là kết luận đợc Vậy, chúng ta dùng
hàm gì?
- Từ ý tởng xây dựng thuật toán?
1.Quan sát bảng và trả lời các câu hỏi
a2=b2+c2
b2=a2+c2
c2=b2+a2
- Không cần đồng thời Mà xảy ra 1trong 3 đẳng thức đúng là có thể kết luận
đợc nó là bộ pitago
- Dùng hàm logic OR để kiểm tra
- Thuật toán:
+ Nhập 3 số nguyên a, b, c+ Nếu (a2=b2+c2) OR (b2=a2+c2) OR(b2=a2+c2) thì thông báo “la bo pitago”rồi kết thúc
Trang 30+ Thông báo “khong la bo pitago” rồikết thúc.
2.Hoạt động 2: Rèn kỹ năng lập chơng trình.
30’ 1 Dựa vào thuật toán viết chơng trình trình hoàn
Trang 31-Biết đợc một chơng trình pascal hoàn chỉnh.
-Biết lựa chọn và tổ chức rẽ nhánh trong lập trình khi giải một bài toán cụ thể
- Viết và hiệu chỉnh, chạy chơng trình trình với các bộ dữ liệu khác nhau để kiểm trathuật toán
1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector
-Một số chơng trình mẫu viết sẵn, câu hỏi thảo luận
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi
III-Hoạt động dạy và học:
* Kiểm tra 15 phút - Thực hành:
Viết chơng trình nhập vào 3 số nguyên dơng a, b, c Kiểm tra xem a, b, c theo thức tự có lập thànhcấp số nhân không? Nếu phải thì tăng mỗi số lên 2 đơn vị, rồi đa giá trị các số a, b, c ra màn hình?(Trong đó, a, b, c thứ tự lập thành cấp số nhân có tính chất: b2= a*c)
1.Hoạt động 1: Mở chơng trình trình Pitago và thực hiện, kiểm tra lỗi, hiệu chỉnh
3 Vào bảng Dubug mở cửa sổ hiệu chỉnh
để xem xem giá trị a2, b2, c2
4 Nhấn F7 để thực hiện các câu lệnh tính
những giá trị nói trên, so sánh với kết quả
2.Hoạt động 2: Test với các bộ dữ liệu, kỹ năng lập trình, sử dụng các câu lệnh khác nhau.
20’ 1 Chạy chơng trình theo các bớc nh tiét trớc với
a=700, b= 1000, c=800 1 chạy lại chơng trình tình vớibộ dữ liệu đó
Trang 322 Thay dãy các câu lệnh:
Thì kết quả có thay đổi không với bộ dữ liệu nh trên
2 HS thay đổi câu lệnh và kiểmtra trên máy bằng cách chạy ch-
ơng trình trình với bộ dữ liệutrên và trả lời câu hỏi
IV-Đánh giá cuối bài (5 ’ ):
1.Những nội dung chính:
-Các bớc hoàn thành một chơng trình: Xác định bài toán, thuật toán, soạn chơngtrình, lu, sử dụng các hàm chuẩn, cách thao tác iệu chỉnh, chạy chơng trình với các bộ dữliệu khác nhau
Trang 33- Biết đợc ý nghĩa của cấu trúc lặp
- Biết đợc cấu trúc chung của câu lệnh lặp For - Do trong ngôn ngữ lập trình Pascal
- Biết sử dụng đúng hai dạng câu lệnh For trong ngôn ngữ lập trình Pascal
2 Kỹ năng
Bớc đầu sử dụng đợc lệnh For để lập trình giải quyết đợc một số bài toán đơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy - học
1 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp
a Mục tiêu
- Học sinh thấy đợc sự cần thiết của cấu trúc lặp trong lập trình
b Nội dung
Bài toán 1: Viết chơng trình in ra màn hình dãy số nguyên liên tiếp từ 1 đến 5?
Bài toán 2: Viết chơng trình tính tổng S= 1/1+1/2+1/3+1/4+1/5
TG Hoạt động của giáo viên Hoạt động của học sinh
3’
7’
1 Chiếu bài toán 1
- Hãy xác định cách viết ra màn hình
dãy số nguyên liên tiếp từ 1 đến 5?
- Gợi ý: Chúng ta đã có câu lệnh đa
liên hệ đến việc chia táo: Có 5 quả
táo, quả đầu tiên đợc cả, quả thức 2
chia làm đôi và đợc một phân, quả
thức ba chia làm ba, đợc một phần…,
đến quả thứ 5, chia làm 5 phần và đợc
một phần Mỗi lần chia cộng vào sẽ
đợc tổng số táo đợc chia sau 5 lần
- Cách tính tổng S?
- Tơng tự nmh bài 1, chúng ta cũng
phải thao tác cộng mấy lần?
- Thuật toán bài 1?
- Viết thuật toán bài 2?
- Với thuật toán nh vậy, có thể sử
dụng câu lệnh If - Then không?
1 Chú ý quan sát bài toán đặt vấn đề
- Dùng câu lệnh write để viết các số ra mànhình
- Để viết 5 số từ 1 đến 5 ra màn hình thì dùng
5 câu lệnh write liên tiếp
- Cách tính tổng S:
+ Tính tổng 1+1/2+ Đợc kết quả bao nhiêu cộng với 1/3+ Đợc kết quả trên cộng với ẳ
+Đợc kết quả cộng với 1/5+ Tổng là kết quả sau 5 lần cộng dồn
- Thao tác cộng 5 lần mới cho kết quả
- Thuật toán:
+ B1: i 1;
+B2: Nếu i>5 thì xuống B5 +B3: Đa giá trị của i ra màn hình+B4: i i+1, rồi quay lại B2
Trang 34- Với câu lệnh IF - THEN khi điều
kiện đợc kiểm tra và cho kết quả
đúng chỉ thực hiện đợc 1 lần, không
có sự lặp lại Để thể hiện đợc thao tác
lặp, Turbo Pascal cung cấp cấu trúc
lặp
- Với bài toán này, thao tác ghi giá trị
của i đợc lặp 5 lần, tức là đã biết trớc
số lần lặp Để diễn tả thao tác lặp biết
trớc số lần lặp trong thuật toán Pascal
cung cấp câu lệnh FOR-DO
+B4: i i+1, quay lại B2;
+B5: Đa ra S rồi kết thúc
- Không thể sử dụng câu lệnh IF - THEN vìcâu lệnh IF - THEN không thể hiện sự lặp đilặp lại 5 lần thao tác đa giá trị của i ra ngoàimàn hình
2 Hoạt động 2: Tìm hiểu câu lệnh lặp For của ngôn ngữ lập trình Pascal.
For, To, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏhơn hoặc bằng giá trị cuối
- Sự thực hiện của máy:
+ Bớc 1: Tính giá trị đầu, gán cho biến đếm
+ Bớc 2: kiểm tra, nếu biến đếm <= giá trị cuối thì
For, DownTo, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏhơn hoặc bằng giá trị cuối
- Sự thực hiện của máy:
+ Bớc 1: Tính giá trị cuối, gán cho biến đếm
+ Bớc 2: kiểm tra, nếu biến đếm >=giá trị đầu thì
Trang 35- Sau mỗi lần thực hiện in giá trị của i
hoặc cộng dồn tổng thì i thay đổi nh thế
- Sau mỗi lần thực hiện in giá trị i hoặc
cộng dồn tổng thì giá trị i thay đổi nh thế
nào?
-Phát biểu dạng lặp trong trờng hợp này?
- Từ … Lùi về (quay về) …Thực hiện
(làm), tơng ứng trong tiếng Anh?
- Dạng lặp nh vậy gọi là lặp lùi
- Cấu trúc dạng lặp tiến và lùi:
For, To, DownTo Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký
- Lần lợt với mỗi giá trị của i từ 1 đến 5thực hiện lệnh đa giá trị của i ra ngoàimàn hình
- Lần lợt với mỗi giá trị của i từ 1 đến 5,thực hiện cộng dồn 1/i vào tổng
- i đợc tăng lên một đơn vị
- Tơng ứng trong tiếng Anh:
For …….To…… Do
- Có thể tính từ số lớn lùi về đợc:
+Bài 1: Lần lợt với giá trị của i từ 5 lùi về
1 thực hiện lệnh đa giá trị của i ra ngoàimàn hình
+Bài 2: Lần lợt với mỗi giá trị của i từ 5lùi về 1, thực hiện cộng dồn 1/i vào tổng
Trang 36tự hoặc miềm con.
- Giải thích sự thực hiện của máy 1 dạng
tiến và yêu cầu học sinh giải thích dạng
lùi
Gtrị đầu, Gtrị cuối là hằng, biểu
thức cùng kiểu với biến đếm Giá trị đầu
phải nhỏ hơn hoặc bằng giá trị cuối
- ý nghĩa của giá trị đầu và giá trị cuối?
- Đối với bài 1 và 2 thì giá trị đầu và giá trị
cuối bằng bao nhiêu?
- Dùng để giới hạn biến đếm (giới hạnvòng lặp)
- Giá trị đầu và giá trị cuối trong bài 1 và
2 là: Giá trị đầu = 1, giá trị cuối = 5
3 Hoạt động 3: Rèn luyện kỹ năng dùng câu lệnh FOR.
TG Hoạt động của giáo viên Hoạt động của học sinh
10p 1 Nêu bài toán 1
+ Xác định giá trị đầu, giá trị cuối
- Giá trị đầu, giá trị cuối, lệnh lặp?
- Viết thành câu lệnh lặp For
- Giá trị đầu = 1, giá trị cuối = 5;
- Lệnh lặp là lệnh in giá trị của i ra mànhình: Write(i);
- For i:=1 To 5 Do write(i);
- For i:=5 DownTo 1 Do write(i);
- Giá trị đầu = 1, giá trị cuối = N
- S:=0
- For i:=1 To N Do S:=S+1/i;
IV Củng cố bài - bài tập về nhà (5p)
- Cú pháp câu lệnh lặp biết trớc số lần lặp ở 2 dạng: Tiến và lùi
- Bài tập về nhà sgk - tr.51, sbt - bài tập chơng trình 3 - tr.18
Trang 37- Biết đợc ý nghĩa của cấu trúc lặp với số lần cha biết trớc số lần lặp
- Biết đợc cấu trúc chung của câu lệnh lặp While - Do trong ngôn ngữ lập trình Pascal
- Biết sử dụng đúng hai dạng câu lệnh WHILE trong ngôn ngữ lập trình Pascal
2 Kỹ năng
Bớc đầu sử dụng đợc lệnh While để lập trình giải quyết đợc một số bài toán đơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy - học
* Kiểm tra bài cũ (5ph):
- Một học sinh lên viết cú pháp dạng lặp tiến và lùi, giải thích các thành phần của câu lệnh
- Một học sinh lên bảng vẽ sơ đồ thực hiện và nêu cách thực hiện của máy
1 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp cha biết trớc số lần lặp
a Mục tiêu
- Học sinh thấy đợc sự cần thiết của cấu trúc lặp có số lần cha xác định trong lập trình
b Nội dung
Bài toán 1: Bài toán bỏ bi vào thùng?
Bài toán 2: Viết chơng trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi 1/N<0.0001
c Các b ớc tiến hành
TG Hoạt động của giáo viên Hoạt động của học sịnh
10’ 1 Chiếu nội dung bài 1:
- Hỏi: Trong bài toán này có sự lặp đi lặp lại
không? Nếu có thì công việc nào đợc lặp đi
lặp lại?
- Hỏi: Trong bài toán này, chúng ta có biết bỏ
bao nhiêu lần bi thì đầy thùng không?
- Hỏi: Lặp bao nhiêu lần?
- Hỏi: Lặp đến khi nào?
- Chiếu hình ảnh mô phỏng
2 Chiếu nội dung bài 2
- Chiếu lại nội dung bài toán trớc và bài toán
2
- Hỏi: Trong 2 bài toán này có gì khác nhau?
- Hỏi: (Có biết đến khi nào thì 1/N<0.0001)
Lặp bao nhiêu lần?
- Hỏi: Đến khi nào?
- Chúng ta đã có cấu trúc câu lệnh lặp đã biết
trớc số lần lặp với câu lệnh For Nhng trong
thực tế, có nhiều sự việc, bài toán có sự lặp
mà không biết trớc số lần lặp Turbo Pascal
cung cấp câu lệnh lặp không biết trớc số lần
lặp: While - Do
- Trong bài toán có sự lặp đi lặp lại,công việc bỏ bi vào thùng đợc lặp đilặp lại
- Lặp không biết số lần lặp
- Lặp đến khi thùng đầy
- Chú ý theo dõi kỹ để trả lời câu hỏi
- Bài trớc: Lặp với số lần biết trớc (Nlần)
- Bài toán này: Lặp không biết trớc sốlần lặp
- Không biết trớc số lần lặp
- Lặp đến khi nào 1/N<0.0001
2 Hoạt động 2: Tìm hiểu cấu trúc lặp While - Do trong ngôn ngữ lập trình Pascal
a Mục tiêu:
Trang 38- Học sinh biết đợc cấu trúc chung của câu lệnh While Hiểu đợc ý nghĩa của các thành phầntrong lệnh Biết đợc sự thực hiện của máy khi gặp while Vẽ đợc sơ đồ thực hiện đó.
b Nội dung
Cấu trúc:
While <điều kiện> Do <lệnh cần lặp>;
Trong đó: While, Do: Từ khóa
Điều kiện: Là biểu thức quan hệ hoặc biểu thức logic
Câu lệnh là một câu lệnh nào đó của Pascal
- Sự thực hiện của máy:
+ Bớc 1: Tính và kiểm tra điều kiện
+ Bớc 2: Nếu điều kiện đúng (có giá trị True) thì thực hiẹn câu lệnh cần lặp, rồi quay lại ớc1 Nếu sai thì thoát khỏi câu lệnh while - do
của bài 2 nh thế nào?
- Hỏi: Điều kiện nào đợc thỏa mãn thì bỏ bi
While <điều kiện) Do <câu lệnh cần lặp>;
- Giải thích các thành phần của câu lệnh, cách
thực hiện của máy
- Hỏi: Trong bài toán 2 thì câu lệnh cần lặp?
- Hỏi: Viết sơ đồ thực hiện?
- Hỏi: Trong câu lệnh FOR biến chỉ số thay đổi
nh thế nào?
- Nhng trong câu lệnh While thì biến chỉ số
không đợc thay đổi giá trị tự động mà phải có
một câu lệnh thay đổi giá trị của biến đếm
- Hỏi: Vậy, sau từ khóa DO có ít nhất mấy câu
- Bỏ bi vào thùng đến khi nào đầythùng thì dừng
- Sau từ khóa DO có ít nhất 2 câulệnh, một câu lệnh cần lặp và một
F T
Điều kiện
Câu lệnh cần lặp
Trang 39- Hỏi: Theo cú pháp thì sau DO chỉ có một câu
lệnh nào đó của Pascal, muốn thực hiện ít nhất
2 câu lệnh sau DO thì phải sử dụng câu lenẹh
nào?
- Để sau DO thực hiện đợc ít nhất 2câu lệnh thì sau DO là câu lệnhghép, ghép các câu lệnh này thànhmột câu lệnh
3 Hoạt động 3: Rèn luyện kỹ năng vận dụng câu lệnh lặp không biết trớc số lần lặp While
a Mục tiêu:
- Học sinh biết sử dụng đúng lệnh While để lập trình giải quyết giải các bài toán đơn giản
b Nội dung
Bài 1: Viết chơng trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi 1/N<0.0001?
Bài 2: Viết chơng trình tìm ớc chung lớn nhất của hai số nguyên dơng a và b?
c Các bớc tiến hành
TG Hoạt động của giáo viên Hoạt động của học sinh
1 Chiếu nội dung bài 1 Mục tiêu là viết
ch-ơng trình hoàn thiện
- Định hớng các vấn đề chính
+ Xác định điều kiện để tiếp tục lặp
+ Xác định các lệnh cần lặp
- Yêu cầu học sinh viết chơng trình hoàn
chỉnh và gọi một học sinh lên bảng viết
ch-ơng trình hoàn chỉnh, rồi nhận xét
- Chiếu lại bài toán 2 của tiết trớc: Viết
ch-ơng trình tính tổng: S=1+1/2+…+1/N
Chúng ta có thể sử dụng câu lệnh While - Do
đợc không? Nếu đợc thì điều kiện là gì?
- Vậy, trờng hợp lặp với số lần biết trớc là
tr-ờng hợp đặc biệt của lặp không biết trớc số
lần lặp Mọi câu lệnh For - Do chúng ta đều
có thể chuyển về câu lenẹh While - Do đợc
- Hỏi: Chuyển từ câu lệnh FOR sang câu
lệnh WHILE nh thế nào?
2 Chiếu nội dung bài 2
- Hỏi: Thuật toán tìm ớc chung lớn nhất của
2 số nguyên dơng a và b?
- Hỏi: Điều kiện lặp?
- Hỏi: Lệnh cần lặp?
- yêu cầu học snh viết chơng trình?
- Hỏi: Để giải quyết đợc các bài toán lặp cần
chỉ trả lời đợc hai câu hỏi nào?
- B2: Nếu a=b thì ucln=a, rồi kết thúc
- B3: Nếu a>b thì a:=a-b, rồi quay lại b2;
- B4: b:=b-a, rồi quay lại b2;
- Điều kiện lặp: a<>b
- Lệnh cần lặp là a:=a-b hoặc b:=b-a;
- Phai trả lời đợc hai câu hỏi:
+ Điều kiện lặp?
+ lệnh cần lặp?
IV Bài tập về nhà: Bài 4, 5b, 7, 8 - sgk - tr.51 + sbt - tr 18 - tr.29
Trang 40Tiết 16
Bài tập câu lệnh lặp
Mục tiêu
1 Kiến thức
- Củng cố câu lệnh lặp For - Do và câu lệnh While - Do
- Biết vận dụng 2 câu lệnh lặp cho mỗi bài toán
- Biết cách thực hiện của máy ở cả lặp biết trớc số lần lặp và lặp không biết trớc số lần lặp
2 Kỹ năng
Bớc đầu sử dụng đợc lệnh While và câu lệnh FOR để lập trình giải quyết đợc một số bàitoán đơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy tính, máy chiếu, sách giáo khoa và sách giáo viên
2 Chuẩn bị của học sinh
For, To, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏhơn hoặc bằng giá trị cuối
- Sự thực hiện của máy:
+ Bớc 1: Tính giá trị đầu, gán cho biến đếm
+ Bớc 2: kiểm tra, nếu biến đếm <= giá trị cuối thì
For, DownTo, Do: Từ khóa
Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con
Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏhơn hoặc bằng giá trị cuối
- Sự thực hiện của máy:
+ Bớc 1: Tính giá trị cuối, gán cho biến đếm
+ Bớc 2: kiểm tra, nếu biến đếm >=giá trị đầu thì
Thực hiện câu lệnh cần lặp,
Giảm biến đếm lên 1 đơn vị rồi quay lại Bớc 2
- Dạng lặp không biết trớc số lần lặp:
Cấu trúc: