Một số khái niệm a Tên Mọi đối tượng trong chương trình đều phải đặt tên theo quitắc của NNLT và của từng chương trình dịch cụ thể * Trong Turbo Pascal tên: - Không chứa dấu cách, không
Trang 1CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP
TRÌNH
Bài 1 KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
A MỤC ĐÍCH, YÊU CẦU:
- Kiến thức: Biết cĩ ba lớp ngơn ngữ lập trình và các mức của ngơn ngữ lập trình:
ngơn ngữ máy, hợp ngữ và ngơn ngữ bậc cao
- Kĩ năng: Phân biệt được hai khái niệm biên dịch và thơng dịch, phân biệt được các
loại ngơn ngữ lập trình
- Thái độ: Thấy được sự cần thiết và tiện lợi khi sử dụng các ngơn ngữ lập trình bậc
cao Liên hệ được với quá trình giao tiếp trong đời sống
B PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN:
1 Phương pháp:
Kết hợp phương pháp giảng dạy như: truyền thống, vấn đáp, cĩ hình minh hoạ
2 Phương tiện:
- Vở ghi lý thuyết
- Sách giáo khoa và sách giáo viên lớp 11
- Sách tham khảo (nếu cĩ)
C TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG:
I Ổn định lớp:
Yêu cầu lớp trưởng báo cáo sĩ số
II Kiểm tra bài cũ:
- Giới thiệu chương trình học lớp 11
- Giới thiệu bài học
III Bài giảng, nội dung bài giảng:
Hoạt động 1: tìm hiểu khái niệm
lập trình và ngơn ngữ lập trình
Ở lớp 10 các em đã học các loại
ngơn ngữ lập trình
Dẫn dắt vấn đề: như vậy hoạt
động diễn đạt một thuật tốn thơng
qua ngơn ngữ lập trình được gọi là
Nhưng do đặc điểm vượt trội của
ngơn ngữ bậc cao nên người ta
1 Khái niệm lập trình
Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngơn ngữ lập trình cụ thể để mơ tả dữ liệu và diễn đạt các thao tác của thuật tốn
2 Chương trình dịch
Chức năng: chuyển đổi chương trình được viết bằng NNLT bậc cao thành chương trình thực hiện trên máy được
Trang 2thường sd nó để lập trình.
? Những đặc điểm đó là những
đặc điểm nào? Và để sd ngôn ngữ
lập trình bậc cao phải có cái gì?
Đó là những đặc điểm của ngôn
ngữ lập trình Nhưng khi sd ngôn
V CỦNG CỐ - DẶN DÒ
a Củng cố:
Thế nào là lập trình?
Chức năng của chương trình dịch?
Sự giống và khác nhau của biên dịch và thông dịch?
b Dặn dò:
Soạn bài trước:
? Thành phần của NNLT?
? Thế nào là tên? Qui tắc đặt tên?
? Có mấy loại tên? tại sao phải nhớ tên riêng?
? Thế nào là hằng? thế nào là biến?
Học bài và trả lời câu hỏi SGK
Chương trình dịch
Chương trình nguồn
Chương trình đích
Trang 3Bài 2: CÁC THÀNH PHẦN CƠ BẢN CỦA
NGÔN NGỮ LẬP TRÌNH
A MỤC TIÊU, YÊU CẦU:
1 Kiến thức: 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 Kĩ năng:
- Phân biệt được tên chuẩn với tên dành riêng và tên tự đặt
- Nhớ các quy định về tên, hằng, biến
- Biết đặt tên đúng và nhận biết được tên sai quy định
Vở ghi lý thuyết, Sách giáo khoa và sách giáo viên
C TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG.
I Ổn định lớp:
Yêu cầu lớp trưởng báo cáo sĩ số
II Kiểm tra bài cũ - giới thiệu bài học.
III Bài giảng, nội dung bài giảng:
? Hãy đọc SGK trang 9 cho
thầy biết trong Pascal bảng chữ
cái bao gồm kí tự nào?
Sau khi HS trả lời treo bảng
Tập hợp kí tự được dùng để viết chương trình
Khơng được dùng bất cứ kí tự nào ngồi các kí tự qui địnhtrong bảng chữ cái
Ví dụ:
Trong Pascal bảng chữ cái bao gồm:
Chữ cái thường và chữ cái in hoa tiếng Anha z ; A Z;
10 chữ thập phân: 0 9
kí tự đặc biệt:
+ - * / = < < [ ] ,
; # ^ @ $ & ( ) { } : ‘Dấu cách (mã ASCII là 32)
b) Cú pháp Là bộ qui tắt để viết chương trình
Trang 4Nhờ vào chúng mà chương
trình dịch biết được tổ hợp nào
của các kí tự trong bảng chữ cái
Tên phải được đặt theo qui
tắc đặt tên tuỳ vào từng NNLT
? Những tên sao đây tên nào
đúng qui tắc tên nào sai qui tắc
Lưu ý: NNLT Pascal không
phân biệt chữ hoa chữ thường
Lấy ví dụ về tên HS
Tên thì có các loại tên sau:
Chúng ta không được dùng
tên này với ý nghĩa khác
? Trong Pascal có những tên
riêng nào?
Ý nghĩa của tên chuẩn được
qui định trong các thư viện của
NNLT
? Trong Pascal có những tên
chuẩn nào?
Chúng ta nên đặt tên sao cho
gợi nhớ nội dung của nó không
nên đặt quá dài hay quá ngắn
vd: để đặt tên cho điểm mô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 kí tự dựa vào ngữ cảnh của nó
2 Một số khái niệm
a) Tên
Mọi đối tượng trong chương trình đều phải đặt tên theo quitắc của NNLT và của từng chương trình dịch cụ thể
* Trong Turbo Pascal tên:
- Không chứa dấu cách, không quá 127 kí tự, không chứa
* Tên chuẩn: được dùng với một ý nghĩa nào đó Nhưng ta có
thể khai báo và dùng với ý nghĩa và mục đích khác
Vd: abs, sqr, sqrt, byte, integer, real, longin
* Tên do người lập trình đặt: tên này xác định bằng cách khaibáo trước khi sd, không được trùng với tên dành riêng
Vd: X1; X2; DELTA, CT_VD; BAI6_3
b) Hằng và biến
Trang 5toán thì ta nên đặt dtoan không
nên đặt dt hay diem_mon_toan
? Vì sao ta phải nhớ tên dành
- hằng logic: TRUE; FALSE
- hằng xâu: ‘tin hoc’; ‘nguyen_van_A’; ‘Truong THPTDuyen Hai’
* Biến:
Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị
và giá trị có thể được thay đổi trong quá trình thực hiệnchương trình
c) Chú thích:
Đặt chú thích để người đọc chương trình đó dễ hiểu hơnTrong pascal chú thích được đặt trong dấu (* và *) hoặc{ và }
V.CỦNG CỐ - DẶN DÒ
1 Củng cố:
- Thành phần của NNLT: bảng chữ cái, cú pháp, và ngữ nghĩa
- Một số khái niệm: tên, hằng, biến
2 Dặn dò:
Về nhà học bài và trả lời câu hỏi trong SGK tiết sau giải bài tập
VI Rút kinh nghiệm:
Trang 6Bài 3 BÀI TẬP CUỐI CHƯƠNG 1
I MỤC ĐÍCH - YÊU CẦU
- Củng cố lại kiến thức chương 1
- Giải một số bài tập của chương
II PHƯƠNG PHÁP
Phát vấn kết hợp làm việc theo nhóm và diễn giảng
III NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp: (Kiểm tra sĩ số)
2 Kiểm tra bài cũ
Câu 1: Hãy kể tên thành phần của NNLT?
Câu 2: Thế nào là tên dành riêng? Tại sao ta phải nhớ tên dành riêng?
Câu 3: Những tên nào sau đây là đúng qui tắc, sai qui tắc?
_VIDU1; A#B; VI_DU1; VAR; VAR1
3 Nội dung:
Câu 1 Tại sao người ta phải xây
Câu 4 Cho biết sự các điểm khác
nhau giữa tên riêng và tên chuẩn?
Gọi một em trả lời
Câu 5: Hãy viết ra 3 tên đúng và
3 tên sai theo qui tắc của Pascal
Câu 6: Hãy cho biết những biểu
diễn nào dưới đây không phải là
biểu diễn hằng trong Pascal và chỉ
Người ta phải xây dựng các NNLT bậc cao:
- NNLT bậc cao gần với NN tự nhiên hơn, thuận tiện chođông đảo người lập trình
- Chương trình viết bằng NNLT bậc cao ít phụ thuộc vàomáy
- Chương trình viết bằng NNLT bậc cao dễ hiểu, dễ hiệuchỉnh và dễ nâng cấp
- Cho phép làm việc với nhiều kiểu dữ liệu và cách tổ chức
dữ liệu đa dạng thuận tiện cho mô tả thuật toán
Câu 2:
- SGK trang 4
- Nhờ có chương trình dịch mà chương trình dịch mà máy cóthể thực hiện được chương trình viết bằng NNLT bậc cao
Câu 4: tên dành riêng không được dùng với ý nghĩa khác;
tên chuẩn có thể dùng với ý nghĩa khác
Những biểu diễn không là hằng:
6,23: dấu phẩy (nếu là dấu chấm thì đúng)A20: tên không rõ giá trị
‘C: sai qui định về hằng xâu: thiếu dấu nháy đơn ở cuối
Trang 7i) ‘TRUE”
Nếu còn thời gian cho bài tập
thêm:
Câu 7: Hãy chỉ ra những tên nào
đúng tên nào sai trong Pascal giải
thích lí do:
Câu 8: những chú thích nào sau
đây là sai? Giải thích lí do?
Soạn bài trước theo câu hỏi sau:
Câu 1: Cấu trúc của một chương trình được viết bằng NNLT?
Câu 2: Các cách khai báo trong Pascal: khai báo tên chương trình, khai báo thư viện, khai báohằng, khai báo biến
Câu 3: thân chương trình của Pascal gồm những từ khoá nào?
Câu 4: để viết được lệnh đưa thông báo ra màn hình ta dùng lệnh nào?
Trang 8CHƯƠNG II CHƯƠNG TRÌNH ĐƠN GIẢN
- BÀI 3 CẤU TRÚC CHƯƠNG TRÌNH
-I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức:
- Hiểu chương trình là sự mô tả của thuật toán bằng một ngôn ngữ lập trình.
- Biết cấu trúc của một chương trình: cấu trúc chung và các thành phần
2 Kỹ năng: Nhận biết được các phần của một chương trình đơn giản
3 Thái độ:
II PHƯƠNG PHÁP
Phát vấn kết hợp với diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Phần khai báo được đặt trong dấu
ngoặc vuông có nghĩa là có thể có
hoặc không Phần thân nhất thiết
phải có
? Trong khai báo có những loại
nào?
? Để khai báo tên chương trình ta
bắt đầu bằng từ khoá nào?
Khai báo tên chương trình chỉ có ý
nghĩa để ghi nhớ tên bài toán cần
Trang 9thư viện cung cấp một số chương
trình thông dụng đã được lập sẵn
để sử dụng chương trình đó cần
khai báo thư viện chứa nó
Trong thư viện CRT trong
pascal cung cấp các chương trình
có sẵn để làm việc với màn hình
văn bản và bàn phím
Khai báo hằng thường được sử
dụng cho những giá trị xuất hiện
nhiều lần trong chương trình
? Yêu cầu lấy ví dụ khai báo
hằng trong Pascal
Tất cả các biến dùng trong chương
trình đều phải đặt tên và phải khai
báo cho chương trình dịch biết để
lưu trữ và xử lí
Khai báo biến ta sẽ học ở bài 5
Ở đây ta làm quen khái niệm biến
đơn
Ví dụ: khi khảo sát phương
trình đường thẳng ax + by + c = 0
các hệ số a, b, c có thể được khai
báo như một biến đơn
Ngoài ra ta còn khai báo chương
trình con được trình bày ở chương
VI
? Dấu hiệu nào để nhận biết thân
chương trình
Hướng dẫn học sinh các bước
Khai báo tên chương trình
nhưng thêm câu lệnh Writeln
Yêu cầu học sinh viết chương
trình này?
Cú pháp:
USES <tên thư viện>;
Ví dụ: khai báo thư viện trong pascal:
CONST Tên _hằng = giá trị;
a4) Khai báo biến:
Biến đơn là biến chỉ nhận một giá trị tại mỗi thời điểm thực hiện chương trình
b) Phần thân chương trình:
Thân chương trình trong Pascal
3 Ví dụ chương trình đơn giản
Ví dụ 1: viết chương trình đưa ra màn hình thông báo
‘Xin chao cac ban!’
writeln(‘Xin chao cac ban’);
writeln(‘Moi cac ban lam quen voi Pascal’);
End.
V CỦNG CỐ DẶN DÒ
BEGIN
[<dãy các câu lệnh>]
END.
Trang 101 Củng cố:
Cấu trúc của chương trình có mấy phần?
Các từ khoá trong khai báo: tên chương trình; hằng; thư viện
Dấu hiệu nhận biết thân chương trình trong Pascal
2 Dặn dò
Về nhà soạn bài 4, 5 SGK
Trong Pascal sử dụng kiểu dữ liệu nào? Phạm vi của từng kiểu?
Cách khai báo biến Ví dụ khai báo biến trong Pascal
Khi khai báo biến ta cần chú ý đến điểm nào?
VI Rút kinh nghiệm:
Trang 11§ 4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN
§ 5 KHAI BÁO BIẾN
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức:
- Biết một số kiểu dữ liệu định sẵn: Nguyên, thực, kí tự, logic và miền con
- Hiểu cách khai báo biến
2 Kỹ năng:
- Xác định được kiểu cần khai báo của dữ liệu đơn giản
- Khai báo đúng; nhận biết khai báo sai
II PHƯƠNG PHÁP
Diễn giảng, phát vấn kết hợp làm việc nhóm
III PHƯƠNG TIỆN DẠY HỌC
Các bài toán trong thực tế
thường có dữ liệu vào và kết quả
ra thuộc những kiểu dữ liệu quen
biết: số nguyên, thực, kí tự…
Treo bảng vẽ lên bảng
Ta nên chọn kiểu số nguyên
sao cho phù hợp để ít tốn bộ nhớ
Có nhiều kiểu dùng để khai
báo các đại lượng nhận giá trị là
số thực Thường dung hơn cả là
các kiểu được liệt kê trong bảng
Phạm vi giá trịReal 6 Byte
0 hoặc giá trị tuyệt đối nằm trong phạm vi
Bộ nhớ lưutrữ một giátrị Phạm vi giá trịChar 1 Byte 256 Ktự trong mã
ASCII
Trang 12Chú ý: người lập trình cần tìm
hiểu đặc trưng của các kiểu dữ
liệu chuẩn được xác định bởi bộ
dịch và sử dụng để khai báo biến
Như nói ở trên, mọi biến dùng
trong chương trình đều cần khai
báo tên và kiểu dữ liệu Tên biến
dung để xác lập quan hệ giữa
biến với địa chỉ bộ nhớ nơi lưu
giữ giá trị biến
? Trong chương trình biến được
khai báo bao nhiêu lần?
Phần này được trình bày trong
- Ví dụ: cần đặt tên hai biến
biểu diễn điểm toán, điểm tin mà
Ví dụ khi khai báo biến là số học
sinh của một lớp thì nên khai báo
biến đó thuộc kiểu byte, nhưng
nếu là số HS toàn trường thì phải
là kiểu word
4 Kiểu lôgic
Kiểu
Bộ nhớ lưutrữ một giátrị Phạm vi giá trịBoolean 1 Byte True hoặc False
§ 5 KHAI BÁO BIẾN
Mọi biến dùng trong chương trình đều cần khai báo tên và kiểu dữ liệu
Trong Pascal khai báo biến bắt đầu bằng từ khoá VAR
Cú pháp VAR <danh sách biến>: <kiểu dữ liệu>;
Danh sách biến: gồm một hoặc nhiều biến, các biến được viết
cách nhau bởi dấu phẩy;
Kiểu dữ liệu là kiểu dữ liệu chuẩn hoặc kiểu dũ liệu do người
- Cần đặt tên biến sao cho gợi nhớ ý nghĩa của biến đó.
- Không nên đặt tên biến quá ngắn hay quá dài, dễ mắc lỗi khi viết tên biến nhiều lần.
- Khai báo biến cần đặc biệt lưu ý đến phạm vi giá trị của nó.
Trang 13
V CỦNG CỐ DẶN DÒ
1 Củng cố:
- Các kiểu dữ liệu chuẩn: số nguyên (integer), số thực (real), kí tự (char), logic (Boolean)
- Mọi biến trong chương trình đèu phải được khai báo tên và kiểu dữ liệu
VAR <danh sách biến>: <kiểu dữ liệu>;
2 Dặn dò
Về nhà học bài trả lời các câu hỏi 1; 2; 3; 4; 5 SGK trang 35
Soạn bài 6:
Yêu cầu 1: lớp chia làm 3 nhóm chuẩn bị bảng phụ ghi những bảng sau:
Tổ 1: ghi bảng phép toán trong Pascal
Tổ 2: ghi qui tắt viết biểu thức toán học trong Pascal
Tổ 3: chuẩn bị bảng một số hàm chuẩn
Yêu cầu 2: soạn phần 4, 5, 6
Câu 1: biểu thức quan hệ có dạng nào? Trình tự thực hiện biểu thức quan hệ? Kết quảbiểu thức quan hệ?
Câu 2: Biểu thức lôgic gồm những biểu thức nào? Các biểu thức quan hệ đặt đâu? Giátrị khi thực hiện biểu thức logic?
Câu 3: Trong Pascal câu lệnh gán có dạng nào? Kiểu của biểu thức như thế nào với kiểu của biến?
VI Rút kinh nghiệm:
Trang 14Bài 6 PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
Để mô tả các thao tác của thuật
toán, mỗi NNLT đều xác định và sd
khái niệm cơ bản: Phép toán, biểu
thức gán giá trị cho biến
Hoạt động 1
? Hãy kể những phép toán trong toán
học
Tương tự trong Pascal cũng có
những phép toán đó nhưng diễn đạt
bằng cách đó
Cho tổ 1 treo bảng phụ phép toán
trên bảng
Giải thích phép toán div, mod,
not, or, and.
Chú ý:
Kết quả các phép toán quan hệ
cho giá trị logic
Ứng dụng của phép toán logic là
để tạo ra các biểu thức phức tạp từ
các quan hệ đơn giản
Hoạt động 2
Trong lập trình, biểu thức số học
là một biến kiểu số hoặc các biến
kiểu sô và các hằng số liên kết với
nhau bởi một số hữu hạn phép toán
toán số học với số nguyên
+, -, x, /, div,mod
+, -, x, /,div, mod
Các phép toán số học với số thực
+, -, x, / +, -, x, /
Các phép toán quan
, , , , <, <=, >,
>=, =, <>
Các phép toán lôgic (phủ
dịnh), (hoặc), (và)
not, or, and
2 Biểu thức số học
Qui tắc viết biểu thức:
- Dùng dấu ngoặc tròn để xác định trình tự thực hiện phép toán
Trang 15giá trị biểu thức cũng thuộc kiểu thực
Trong một số trường hợp nên
dùng biến trung gian
Hai biểu thức cùng kiểu liên kiết
với nhau bởi phép toán quan hệ cho
Các biểu thức quan hệ thường
được được đặt trong ngoặc tròn
- Viết lần lượt từ trái sang phải
- Không được bỏ qua dấu nhân (*) trong tích
Thứ tự thực hiện phép toán:
- Trong ngoặc thực hiện trước
- Nếu không có dấu ngoặc thì thực hiện từ trái sang phảitheo thứ tự nhân, chia, div, mod, thực hiện trước sau đó cộng, trừ
Vd: 3x 7y 3 *x 7 *y
c b a c
Ax2 * * *
xy
z x x
hai 2 sqrt(x) I or R R Trị tuyệt
đối |x| Abs(x) I or R kiểu đốiTheo
số Lôgarit Lnx Ln(x) R R Lũy thừa
VD: a
a
ac b
b
2 4 2
- Kết quả: TRUE hoặc FALSE
5 Biểu thức logic
- Biểu thức logic đơn giản là biến hoặc hằng logic
Trang 16Giải thích biểu thức quan hệ
Kết quả biểu thức quan hệ cũng là
TRUE hoặc FALSE
Hoạt động 6
Trong trường hợp đơn giản tên
biến là biến đơn
Kiểu của biểu thức phải cùng kiểu
của biến
VD: biến là kiểu thực thì biểu
thức phải là kiểu thực
Dấu := có nghĩa là giá trị mới
bằng giá trị của biểu thức ở vế phải
Chú ý: viết dấu ( : )sát với dấu
Trang 17Bài 7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU CHỈNH CHƯƠNG TRÌNH
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính có soạn sẵn chương trình đơn giản, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY
gán một giá trị cho biến
Như vậy mỗi chương trình luôn
làm việc với một bộ dữ liệu vào
Để chương trình có thể làm việc
với nhiều bộ dữ liệu vào khác
nhau, thư viện của các NNLT cung
cấp một số chương trình dùng để
dưa dữ liệu vào và đưa dữ liệu ra
Các chương trình đưa dữ liệu vào
và ra được gọi chung là các thủ tục
chuẩn vào/ra đơn giản
Hoạt động 1
Danh sách biến gồm 1 hoặc nhiều
biến(trừ biến kiểu Boolean)
Trường hợp có nhiều biến thì tên
biến được viết cách nhau bởi dấu
phẩy
? Lệnh thứ nhất và lệnh thứ hai
dùng để làm gì?
Khi nhập giá trị cho nhiều biến,
những giá trị này được gõ cách
nhau ít nhất một dấu cách hoặc
xuống dòng (nhấn Enter)
Nhập giá trị biến nguyên không
được sd dấu chấm thập phân
6
Trang 18Vd để nhập giá trị cho biến M ta dùng
Writeln('nhap gia tri M’);
Readln(M);
*Chú ý:
Các thủ tục readln và write có thể không có tham số Trong thủ tục write hoặc writeln, sau mỗi kết quả có thể qui cách ra:
+ Đối với kết quả thực :<độ rộng>:<số chữ số thập phân>
+ Đối với kết quả khác:
Việc soạn thảo giống như soạn
thảo trong word và lưu ý là không
bỏ dấu
Nếu chương trình có lỗi cú pháp
phần mềm sẽ hiển thị thông báo
Cần sửa lỗi lại và biên dịch lại tới
khi không còn lỗi
§8 SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU
CHỈNH CHƯƠNG TRÌNH
- Màn hình làm việc của Pascal
- Soạn thảo: gõ nội dung chương trình gồm phần khai báo và các lệnh trong phần thân
- Lưu chương trình:
Nhấn phím F2 → gõ tên tệp
Vào File → Save → gõ tên tệp
- Biên dịch chương trình: Nhấn Alt +F9
- Chạy chương trình: nhấn Ctrl + F9
- Dóng cửa sổ chương trình: nhấn phím Alt + F3
- - - 36 - 24.00
425 - -56 - -23.200
Trang 19- Thoát khỏi phần mềm: Alt + X
Trang 20Bài 8: BÀI THỰC HÀNH 1
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản;
Làm quen với một số dịch vụ cơ bản của Turbo Pascal hoặc Free Pascal trong việc soạn thảo, lưu trữ, dịch và thực hiện chương trình
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành của trường, máy chiếu nếu có
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
Phổ biến nội qui phòng máy
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ụ
Hướng dẫn học sinh cách khởi
động chương trình Pascal
Soạn chương trình vào máy
Lưu chương trình với tên
? Vì sao có lỗi xảy ra
Sửa lại chương trình không dùng
readlnNếu còn thời gian cho thêm bài tập
Chiếu nội dung bài tập lên bản
Phân tích hướng dẫn học sinh làm
Trang 21Cách tính:
Yêu cầu HS soạn chương trình và
lưu trên đĩa
Quan sát hướng dẫn HS trong lúc
thực hành
Yêu cầu HS nhập dữ liệu và
thông báo kết quả
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Các bước để hoàn thành một chương trình
- Xác định dữ liệu vào, dữ liệu ra
Trang 22BÀI TẬP CHƯƠNG 2
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Cũng cố những nội dung đã đạt được ở tiết thực hành 1
− Biết sử dụng thủ tục chuẩn vào/ra
− Biết xác định Input và Output
II PHƯƠNG PHÁP
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ:
Câu 1 Trong Pascal, nếu một biến chỉ nhận giá trị nguyên từ phạm vi 10 đến 25532 thì biến đó
có thể được khai báo bằng các kiểu dữ liệu nào?
Câu 2 Viết dạng của thủ tục vào/ra? Cho biết sự khác nhau giữa thủ tục write và writeln? Câu 3 Biến P có thể nhận giá trị 5, 10, 15, 20, 30, 60, 90 biến X có thể nhận giá trị 0.1, 0.2, 0.3,
0.4, 0.5 Khai báo nào trong khai báo sau là đúng?
3 Nội dung
Yêu cầu 2 học sinh lên bảng biểu
1(
x a
z
y x z
1
x
yabc
Trang 23là gì?
? Vậy miền nằm trên của hai đường
thẳng có phương trình?
Tóm lại những điểm nằm trong
hình gạch chéo phải thoả điều kiện:
Hãy lên biểu diễn hình 2b
Hãy đưa ra phương án giải
Hướng dẫn sau đó yêu cầu HS lên
Program BAI_10;
Const g = 9.8;
Var v, h: real;
BEGINWrite('nhap vao do cao cua vat d = ’);
a
−1
Trang 25CHƯƠNG III: CẤU TRÚC RẼ NHÁNH LẶP
§ 9 CẤU TRÚC RẼ NHÁNH
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán;
− Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ)
− Hiểu 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âu lệnh rẽ nhánh dạng đủ, dạng thiếu và áp dụng để thể hiện được thuật toán củamột số bài toán đơn giản
Nêu ví dụ thực tiễn minh hoạ cho tổ
chức rẽ nhánh:
Chiều nay, nếu trời không mưa An sẽ
đi xem đá bóng nếu trời mưa An sẽ mở
Tivi xem
Yêu cầu HS lấy một vài ví dụ tương tự
Yêu cầu học sinh đưa ra cấu trúc chung
của cách diễn đạt đó
Yêu cầu HS lấy ví dụ dạng khuyết và
đưa ra cấu trúc chung đó
Như vậy, sau khi tính D tuỳ thuộc vào
giá trị của D, một trong hai thao tác sẽ
Trang 26Yêu cầu học sinh lên bảng viết dạng
thiếu và dạng đầy đủ
Ở dạng thiếu: điều kiện sẽ được tính và
kiểm tra Nếu điều kiện đúng thì câu lệnh
sẽ được thực hiện, ngược lại câu lệnh sẽ
bỏ qua
Ở dạng đủ: điều kiện cũng được tính và
kiểm tra Nếu điều kiện đúng thì câu lệnh
1 sẽ được thực hiện, ngược lại câu lệnh 2
sẽ được thực hiện
Theo cú pháp sau từ khoá then hoặc esle
phải là một câu lệnh Nhưng nếu sau từ
khoá đó có nhiều câu lệnh thì ta gọi câu
lệnh ghép.
Ví dụ 1: Tìm nghiệm thực của PTB2: ax2 +
bx + c = 0 (a 0)
? Hãy xác định bài toán?
Hướng dẫn HS viết chương trình
Yêu cầu HS lên bảng viết
Câu lệnh True
False
Begin
<các câu lệnh>;
End;
Trang 27Ví dụ 2: Viết chương trình tính số ngày
của năm N, biết rằng là năm chia hết cho
400 hoặc chia hết cho 4 nhưng không chia
hết cho 100
? Hãy xác định bài toán?
Hướng dẫn HS viết chương trình
Yêu cầu HS lên bảng viết
write(‘nhap nam: ’); readln(N);
if (N mod 400 = 0) or ((N mod 4 = 0) and ((N mod
100 <> 0)) then SN: =366 esle SN:=365;
Write(‘so ngay cua nam:‘, N, ‘la:’, SN);
Trang 28§ 10 CẤU TRÚC LẶP
I MỤC ĐÍCH – YÊU CẦU
1 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 với số lần biết trước bằng câu lệnh for … do …
- Biết 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 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 với số lần định trước
- Viết được thuật toán của một số bài toán đơn giản
Nêu vấn đề bài toán 1:
Ta thấy cả hai bài toán cách tính
tổng S có nhiều điểm tương tự nhau
Đối với bài toán 1: số lần lặp là
100, và việc cộng vào tổng S sẽ kết
thúc khi đã thực hiện việc cộng 100
lần
Còn ở bài toán 2: số lần lặp chưa
biết trước nhưng việc cộng vào tổng
kết thúc khi điều kiện
Nói chung một số thuật toán có
những thao tác lặp đi lặp lại một số
100
1
2
1 1
1 1
a a S
Bài toán 2: tính và đưa kết quả ra màn hình tổng
1
2
1 1
1 1
a a
0001 , 0
1
N a
+ Xuất phát S được gán cho giá trị
* Cấu trúc lặp có hai loại: lặp với số lần biết trước và lặp với số lần không biết trước.
2 Lặp với số lần biết trước và câu lệnh for……do…
Thuật toán Tong_1a
B1: S ← 1/a; N ← 0; {khởi tạo S,N};
B2: N ← N + 1;
B 3: Nếu N > 100 thì chuyển đến B5;
Trang 29bảng viết thuật toán 1a và 1b:
Nhóm 1, 2, 3 nghiên cứu thuật
toán 1a;
Nhóm 4, 5, 6 nghiên cứu thuật toán
1b;
Ta thấy thuật toán Tong_1a giá trị
N khi bắt đầu tham gia vòng lặp là 1
và sau mỗi lần lặp là tăng lên 1cho
đến khi N >100
Thuật toán Tong_1b giá trị N khi
bắt đầu tham gia vòng lặp là 100 và
sau mỗi lần lặp là giảm xuống 1 cho
đến khi N <1
Ta nói cách lặp ở thuật toán
Tong_1a là dạng tiến còn Tong_1b là
dạng lùi
Ở dạng lặp tiến câu lệnh sau từ
khoá do được thực hiện tuần tự, biến
đếm lần lược nhận giá trị liên tiếp từ
giá trị đầu đến giá trị cuối
Ở dạng lặp lùi câu lệnh sau từ khoá
do được thực hiện tuần tự, biến đếm
lần lược nhận giá trị giảm liên tiếp từ
giá trị cuối đến giá trị đầu
B 4: S ← S + 1/(a+N) rồi quay lại B2;
B5: Đưa S ra màn hình rồi kết thúc
Thuật toán Tong_1a
B1: S ← 1/a; N ← 101; {khởi tạo S,N};
Biến đếm là biến đơn và là kiểu nguyên
Giá trị đầu giá trị cuối cùng kiểu với biến đếm
* Chú ý: giá trị 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.
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cấu trúc lặp dạng lặp với số lần biết trước
Cú pháp của dạng lặp tiến và lặp lùi
2 Dặn dò
Về nhà học bài và xem tiếp phần sau
Trang 30§ 10 CẤU TRÚC LẶP (tt)
I MỤC ĐÍCH – YÊU CẦU
1 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 với số lần biết trước bằng câu lệnh for … do …
- Biết 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 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 với số lần định trước
- Viết được thuật toán của một số bài toán đơn giản
2 Kiểm tra bài cũ:
Câu hỏi: Viết cú pháp của câu lệnh lặp dạng tiến và dạng lùi và giải thích biến đếm, giá trị đầu giá trị cuối phải như thế nào ?
Write(‘tong S = ’, S:8:4);
Readln
End.
Trang 31Hãy xác định bài toán
Thảo luận trong 4 phút lên bảng trình
bày
Nhận xét đánh giá cho điểm
Thảo luận nhóm đưa để đưa ra thuật
toán tính tổng bài toán 2
Nhận xét, đánh giá cho điểm
Như vậy, việc lặp với số lần chưa
biết trước sẽ chỉ kết thúc khi một
điều cho trước được thoả mãn
Để mô tả cấu trúc lặp như vậy trong
Pascal người ta dùng câu lệnh
while−do
Nếu là câu lệnh ghép ta dùng từ
khoá gì?
Treo sơ đồ lặp while − do
Treo sơ đồ khối thuật toán Tong_2
Ví dụ2: Viết chương trình nhập từ bàn phím hai số nguyên
dương M và N (M < N) tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N
3 Lặp với số lần chưa biết trước và câu lệnh while − do
Thuật toán Tong_2B1: S ← 1/a; N ← 0; {khởi tạo S và N}
B2: Nếu 1/(a+N)<0.0001 thì chuyển đến bước 5;
Câu lệnh TRUE
FALSE
Trang 32Có nhiều thuật toán khác nhau tìm
ƯCLN của M, N Ở lớp 10 các em
đã học thuật toán này Treo hình
thuật toán liệt kê từng bước và sơ đồ
khối
Readln(a);
S:=1/a; N:= 0;
While not(1/(a+N) < 0.0001) do Begin
Write(‘nhap gia tri M= ’); readln(M);
Write(‘nhap gia tri N= ’); readln(N);
While M <> N do
If M > N then M:= M − N else N:= N − M;
writeln(‘UCLN= ’, M);
readln
end.
Chú ý: câu lệnh trong dòng lặp thường được lặp lại nhiều lần,
vì vậy để tăng hiệu quả của chương trình thì những thao táckhông cần lặp lại nên đưa ra ngoài vòng lặp
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cấu trúc lặp dạng lặp với số lần chưa biết trước
Các chương trình đơn giản
2 Dặn dò
Về nhà học bài và xem tiếp bài thực hành 2, làm bài tập chương III
Trang 33BÀI THỰC HÀNH 2
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
− Tiếp tục làm quen với việc hiệu chỉnh chương trình
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành vi tính , máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
Gợi ý để HS nêu khái niệm về bộ số
Lưu chương trình với tên
PITAGO vào thư mục lớp mình
Nhấn phím F7 để thực hiện từng
câu lệnh chương trình, nhập các giá
trị a = 3, b = 4, c=5
Vào bảng Debug mở cửa sổ hiệu
chỉnh để xem giá trị a2, b2, c2
Nhấn phím F7 để thực hiện câu
Viết chương trình nhập từ bàn phím ba số nguyên dương a,
b, c và kiểm tra xem chúng có là bộ số Pi ta go hay không
if (a2 = b2 + c2) or (b2 = a2 + c2) or (c2=a2+ b2) then
writeln('ba so da nhap la bo so Pi ta go)
else writeln('ba so da nhap khong phai la bo so Pi ta
go);
readln
end.
Trang 34lệnh tính những giá trị nói trên và so
sánh với kết quả a2=9, b2 = 16, c2 =
Trang 35KIỂM TRA ĐÁNH GIÁ 1 TIẾT
I MỤC ĐÍCH
Kiểm tra lại khã năng tiếp thu cũng như quá trình học tập của HS Từ đó có thể điều chỉnhphương pháp giảng dạy
II BẢNG RA ĐỀ KIỂM TRA
Biết Câu 1, 3, 6, 28, 30 Câu 2, 5, 9, 17, 18, 20, 21,
III NỘI DUNG
IV KẾT QUẢ KIỂM TRA
Trang 36BÀI TẬP CHƯƠNG III
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, giáo án…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ:
Câu 1: viết cấu trúc lặp trong pascal: dạng lặp tiến hoặc lặp lùi? Cho ví dụ?
Câu 2: hãy điền câu lệnh vào đoạn chương trình sau: Program Tong_2;
Yêu cầu HS thảo luận trong 3 phút
lên bảng viết câu lệnh
Điều kiện để M thuộc đường tròn
Bài 4: Viết câu lệnh rẽ nhánh tính
2 2
y x
y x
z
if (sqr(x) + sqr(y)) <= 1 then
z :=sqr(x) + sqr(y) else
if ((sqr(x) + sqr(y)) > 1) and (y>=x) then z := x+ y else z := 0.5;
y x z
if sqrt(sqr(x − a) +sqr(y − b))<= R then z:=abs(x) + abs(y) else z := x + y;
Bài 5 Lập trình tính:
nếu x 2 + y 2 ≤ 1 nếu x 2 + y 2 > 1 và y ≥ x nếu x 2 + y 2 > 1 và y < x
Nếu điểm (x, y) thuộc hình tròn bán kính r (r > 0), tâm (a,b) Trường hợp còn lại
Trang 37tâm O
Yêu cầu HS lên biểu diễn trong
Pascal
Hướng dẫn giải bài 5
? n có giá trị như thế nào?
? Vậy ta phải dùng cấu trúc lặp nào
tốt nhất?
Tương tự như chương trình tính tổng
VD1
Yêu cầu HS viết chương trình
Gơi ý HS khởi tạo giá trị ban đầu:
Gợi ý HS viết chương trình
! 2
1
! 1
1 1 )
n n
inc(n); {tăng n lên 1 đơn vị}
Trang 38Các bài tập còn lại yêu cầu HS tự về
tăng tuổi cha lên 1
tăng tuổi con lên 1
tăng năm lên 1