Nội dung bài mới: Chú ý: Các diễn giải bằng ngôn ngữ tự nhiên được đặt giữa cập dấu < và >, cácthành phần của CT có thể có hoặc không cóđược đặt trong cặp dấu [ và ] GV: Các em hãy quan
Trang 1- Biết khái niệm về 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 biên dịch và thông dịch
2 Kỹ năng:
- Chưa đòi hỏi kỹ năng gì
3 Thái độ:
- Nghiêm túc trong học tập, say mê với môn học
II - CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: SGK, SGV, Bài soạn
2 Học sinh: SGK, vở ghi bài
III - TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: (không)
3 Nội dung bài giảng:
GV: (nêu ví dụ) – Giả sử ta muốn gõ
được một trang văn bản (trong máy
tính thì ta cần dùng một phần mềm
cho phép gõ văn bản (như Microsoft
Word chẳng hạn), tương tự như vậy
để có được các chương trình ta phải
đó để mô tả dữ liệu và diễn đạtcác thao của thuật toán
nào là ngôn ngữ máy, ngôn ngữ bậc
cao Vậy em hãy cho biết ngôn ngữ
máy và ngôn ngữ bậc cao khác nhau
Trang 2GV: Nhận xét, kết luận.
GV: Vì lý do như vậy cho nên muốn
máy tính thực hiện được các ngôn
ngữ lập trình bậc cao người ta phải
xây dựng một chương trình dùng để
chuyển đổi, chương trình đó gọi là
chương trình dịch
bằng ngôn ngữ LT bậc cao thành CT thựchiện được trên máy tính;
- CT dịch nhận đầu vào là CT viết bằngNNLT bậc cao (CT nguồn), thực hiệnchuyển đổi sang NN máy
GV: Như vậy sau khi có được khái
niệm thông dịch và biên dịch ta cần
4 CỦNG CỐ:
- Hãy tóm tắt lại các kiến thức đã học trong bài?
- Nêu KN NNLT? Chương trình dịch? Phân biệt thông dịch và biên dịch?
5 DẶN DÒ:
- Trả lời các câu hỏi: 1 3 (SGK Tr.13)
- Đọc bài đọc thêm 1: Bạn biết gì về ngôn ngữ lập trình (SGK – Tr.6).
- Biết các thành phần cơ sở của một ngôn ngữ lập trình bậc cao cụ thể: Bảng chữ cái,
tên, tên chuẩn, tên riêng (từ khóa), hằng và biến
2 Kỹ năng:
- Phân biệt được Tên, Hằng và Biến Biết đặt tên đúng
3 Thái độ:
- Nghiêm túc trong học tập, say mê với môn học
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ:
Trang 3Em hãy cho biết chương trình dịch là gì? Tại sao cần phải có chương trình
dịch?
3 Nội dung bài mới:
GV: Trước tiên ta tìm hiểu bảng chữ
cái Bảng chữ cái bao gồm: các chữ
cái (tiếng Anh), các chữ số và các ký
trong CT Các lỗi cú pháp được CT
dịch phát hiện và thông báo cho
người lập trình biết Chỉ có các CT
không còn lỗi cú pháp mới có thể
được dịch sang NN máy
b) Cú pháp: là bộ quy tắc để viết chương trình.
Dựa vào chúng, người lập trình và CT dịch biếtđược tổ hợp nào của các ký tự trong bảng chữcái là hợp lệ và tổ hợp nào là không hợp lệ.Nhờ đó có thể mô tả chính xác thuật toán đểmáy thực hiệ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àongữ cảnh của nó
Hoạt động 2
GV: Khi chúng ta được sinh ra, để
phân biệt được mỗi người đều được
đặt tên Tương tự như vậy, mỗi đối
tượng trong CT đều phải được đặt
tên theo quy tắc của NNLT và CT
…
- Các tên sai:
Trang 4GV: Từ ví dụ trên kết hợp với đọc
SGK – Tr 10 em hãy cho biết cách
đặt tên một dãy trong Pascal?
HS: đọc SGK, trả lời câu hỏi
GV: Nhận xét, kết luận
GV: Nhiều ngôn ngữ LT, trong đó
có Pascal, phân làm 3 loại tên
S KD5ypc$GH
…
* Cách đặt tên cho một dãy trong Turbo Pascal:
- Không quá 127 ký tự
- Gồm: chữ số, chữ cái hoặc dấu gạch dưới
- Bắt đầu bằng chữ cái hặc dấu gạch dưới
Tên dành riêng:
VD: trong Pascal: program; uses, const, type,var, begin…
KN: tên dành riêng là tên được NNLT dùng
với ý nghĩa riêng xác định, người lập trìnhkhông được sử dụng với ý nghĩa khác
Tên chuẩn:
VD: trong Pascal: abs, aqr, byte, real, longint
KN: tên chuẩn là tên được NNLT dùng với ý
nghĩa nhất định nào đó, người lập trình có thểkhai báo và sử dụng chúng với ý nghĩa và mụcđích khác
Tên do người LT đặt:
VD: A, B, Delta, vi_du, x,…
KN: Tên do người LT đặt được dùng với ýnghĩa riêng, xác định bằng cách khai báo trướckhi sử dụng Các tên này không được trùng vớitên dành riêng
Hoạt động 3
GV: Em hãy cho biết em hiểu thế
nào là hằng? Theo em hằng ở đây có
giống với hằng trong toán không?
HS: Trả lời câu hỏi
KN: Hằng là đại lượng có giá trị không đổi
trong quá trình thực hiện CT
- Hằng số học: là các số nguyên hay thực.VD: 2 0 -7 1.5 +34.9
- Hằng logic: là các giá trị đúng hoặc sai(true hoặc false)
- Hằng xâu: là chuỗi ký tự trong bộ mãASCII Khi viết, chuỗi ký tự này được đặttrong dấu nháy
VD: Trong Turbo Pascal: ‘KHOI 11’…
Trang 5- Đọc lại bài trong SGK.
- Trả lời các câu hỏi sau bài học (SGK – Tr.13)
- Ôn tập lại các kiến thức đã học trong tiết 1 và 2;
- Nắm chắc hơn các khái niệm: CT dịch; trình biên dịch; trình thông dịch; tên dànhriêng…
2 Kỹ năng:
- Biết cách đặt tên trong TP;
- Nhận biết được tên đúng, sai trong Pascal
3 Thái độ:
- Nghiêm túc trong học tập, say mê môn học; rèn luyện tính cẩn thận sáng tạo tronglập trình
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK, học bài cũ ở nhà
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ:
Em hãy cho biết hằng là gì? Thường có các loại hằng nào?
3 Nội dung bài mới:
Hoạt động 1: (Cho HS làm các câu
GV: (Câu 2) – CT dịch là gì? Tại sao
phải có CT dịch? Em hãy cho biết
Input và Output của CT dịch?
Câu 1:
- Ngôn ngữ bậc cao gần với ngôn ngữ tựnhiên hơn, thuận tiện cho đông đảo ngườilập trình;
- CT viết bằng ngôn ngữ bậc cao nói chungkhông phụ thuộc vào phần cứng máy tính
và một CT có thể thực hiện trên nhiều loạimáy tính khác nhau;
- CT viết bằng NN bậc cao dễ hiểu, dễ hiệuchỉnh và dễ nâng cấp;
- NN bậc cao cho phép làm việc với nhiềukiểu dữ liệu và cách tổ chức dữ liệu đadạng, thuận lợi cho mô tả thuật toán
Câu 2:
- CT dịch là CT đặc biệt, có chức năng
Trang 6HS: Tìm hiểu, trả lời câu hỏi.
GV: Kết luận
GV: (Câu 3) – Biên dịch và thông
dịch khác nhau như thế nào?
HS1: Trả lời câu hỏi
HS2: Nhận xét, bổ sung (nếu có)
GV: Nhận xét, kết luận
GV: (Câu 4) – Hãy cho biết các điểm
khác nhau giữa tên dành riêng và tên
chuẩn?
HS1: Trả lời câu hỏi
HS2: Nhận xét, bổ sung (nếu có)
GV: Nhận xét, kết luận
GV: (Câu 5) – Hãy viết ra 3 tên đúng
theo quy tắc của Pascal?
HS1: Lên bảng làm bài
HS2: Nhận xét
GV: Kết luận
GV: (Câu 6) – Hãy cho biết những
biểu diễn nào sau đây không phải là
biểu diễn hằng trong Pascal?
- Input: CT nguồn; Output: CT đích
Câu 3:
- Trình biên dịch duyệt, kiểm tra, phát hiệnlỗi, xác định CT nguồn có dịch đượckhông, dịch toàn bộ CT nguồn thành một
CT đích có thể thực hiện được trên máytính cụ thể và có thể lưu lại để sử dụng vềsau khi cần thiết
- Trình thông dịch lần lượt dịch từng câulệnh ra ngôn ngữ máy rồi thực hiện ngaycâu lệnh vừa dịch được hoặc báo lỗi nếukhông dịch được
Hãy chọn đáp câu trả lời mà em cho là đúng nhất
1 Chương trình viết bằng NN bậc cao không có đặc điểm nào trong các đặc điểm sau?
A Không phụ thuộc vào loại máy, CT có thể thực hiện trên nhiều loại máy
B Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và nâng cấp
C Kiểu dữ liệu vàd cách tổ chức dữ liệu đa dạng
D Máy tính có thể hiểu và thực hiện trực tiếp CT này
2 CT dịch không có khả năng nào trong các khả năng sau?
A Phát hiện được lỗi ngữ nghĩa
B Phát hiện được lỗi cú pháp
C Thông báo lỗi cú pháp
Trang 7- Hiểu CT là sự mô tả của thuật toán bằng một NNLT;
- 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 thành phần của một chương trình đơn giản
3 Thái độ:
- Nghiêm túc và say mê môn học, sáng tạo trong lập trình
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: (không)
3 Nội dung bài mới:
Chú ý: Các diễn giải bằng ngôn ngữ tự
nhiên được đặt giữa cập dấu < và >, cácthành phần của CT có thể có hoặc không cóđược đặt trong cặp dấu [ và ]
GV: Các em hãy quan sát ví dụ sau
và cho biết cú pháp của câu lệnh
khai báo tên chương trình.
Trang 8GV: Kết luận.
GV: Thường ngày chúng ta muốn
làm một công việc nào đó mà không
có dụng cụ để làm thì ta phải mượn
trước Trong lập trình cũng tương tự
như vậy, ta muốn thực hiện một
công việc nào đó thì đó ta phải khai
báo thành phần đó trước
GV: Trước tiên là khai báo thư viện
GV: Đưa ra ví dụ
GV: Tại sao lại phải khai báo biến?
Nếu không khai báo biến thì trong
CT ta có thể sử dụng được biến đó
không?
HS: Đọc SGK, trả lời
GV: Kết luận
Program <tên chương trình>;
Khai báo thư viện: muốn sử dụng thư viện nào thì ta cần phải khai báo thư viện đó trước.
- Ví dụ:
+ Trong Pascal: uses crt;
+ Trong C++: #include <stdio.h>
const int Max=400;
const float pi=3.14;
……
Khai báo hằng thường được sử dụng chonhững giá trị xuất hiện nhiều lần tronbgCT
Khai báo biến:
- Ví dụ: khi khảo sát PT đường thẳngax+by+c=0, các hệ số a, b, c có thể đượckhai báo như những biến đơn
- Tất cả các biến dùng trong CTY đều phảiđặt tên và phải khai báo cho CT dịch biết
để lưu trữ và xử lý Biến chỉ nhận một giátrị tại mỗi thời điểm thực hiện CT được gọi
là biến đơn
GV: Các em hãy quan sát đoạn thân
CT trong Pascal sau và cho biết thân
CT được quy định như thế nào
Trang 9- Đọc lại bài trong SGK, làm các bài tập trong SBT
- Đọc trước bài 4 – Một số kiểu dữ liệu chuẩn.
Ngày giảng:
-Tiết theo PPCT: 05
Bài 4 – MỘT SỐ KIỂU DỮ LIỆU CHUẨN
Bài 5 – KHAI BÁO BIẾN
I – MỤC TIÊU:
1 Kiến thức:
- Biết một số kiểu dữ liệu chuẩn: nguyên, thực, ký tự, logic;
- 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;
- Biết cách khai báo biến đúng
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy choi biết sự khác nhau giữa hằng và biến? Tại sao phảikhai báo biến?
3 Nội dung bài mới:
GV: ở CT lớp 10 chúng ta đã có
khái niệm dữ liệu, vậy em hãy nhắc
lại khái niệm dữ liệu là gì?
HS: Trả lời
GV: Kết luận
GV: Trong toán học chúng ta đã
biết thế nào là số nguyên Vậy dựa
vào kiến thức đó em có thể cho biết
thế nào là kiểu nguyên?
HS: Trả lời
GV: Nhận xét, kết luận
GV: Chúng ta mở SGK – Tr.21 để
biết miền giá trị trị của kiểu nguyên
Bài 4 Một số kiểu dữ liệu chuẩn
Dữ liệu là thông tin đã mã hoá trong máy tính.
1 Kiểu nguyên.
Các kiểu nguyên được lưu trữ và kết quả
tính toán là số đúng, nhưng có hạn chế vềmiền giá trị Tập số nguyên là vô hạn và cóthứ tự, đếm được nhưng trong máy tính thìkiểu nguyên là hữu hạn, có thứ tự
Kiểu Bộ nhớ
lưu trữmột giátrị
Phạm vi giá trị
byte 1 byte Từ 1 đến 255Integer 2 byte Từ –215 đến 215 – 1
Trang 10Word 2 byte Từ 0 đến 216 – 1longint 4 byte Từ – 231 đến 231 – 1
GV: Em hiểu thế nào là số thực?
HS: Trả lời
GV: Nhận xét
GV: Chúng ta hãy xem SGK –
Tr.21 để hiểu thế nào là kiểu thực
và miền giá trị của kiểu thực
2 Kiểu thực.
Các kiểu thực được lưu trữ và kết quả tính
toán chỉ là gần đúng với sai số không đáng
kể (so với yêu cầu tính toán của các bài toánthông thường), nhưng miền giá trị được mởrộng hơn so với kiểu nguyên Số thực trongmáy tính là hữu hạn
lưu trữmột giá trị
Phạm vi giá trị
Real 6 byte 0 hoặc có giá trị
tuyệt đối nằmtrong phạm vi từ
10-38 đến 1038
extended 10 byte 0 hoặc có giá trị
tuyệt đối nằmtrong phạm vi từ
10-4932 đến 104932
GV: Em hãy đọc SGK – Tr.22 và
cho biết em hiểu thế nào là kiểu ký
tự? Khi nào thì dùng kiểu ký tự?
Kiểu ký tự có tập giá trị là các ký tự trong
bảng mã ASCII, được dùng khi thông tin làcác ký tự, xâu (string) Kiểu ký tự cũng làkiểu có thứ tự, đếm được Việc so sánh các
ký tự được thực hiện bằng cách so sánh các
mã ASCII của chúng
Kiểu Bộ nhớ lưu
trữ một giátrị
Phạm vi giá trị
Char 1 byte 256 ký tự trong bộ
mã ASCII
GV: Lấy một ví dụ về kiểu logic 4 Kiểu logic.Kiểu logic trong Pascal chỉ có hai giá trị
đúng (true) hoặc sai (false), được dùng khi kiểm tra điều kiện hay tìm giá trị của một biểu thức logic
lưu trữmột giá trị
khai báo biến trong pascal vậy em
có thể đưa ra cú pháp để khai báo
Bài 5 Khai báo biến
Trang 11HS: trả lời câu hỏi
GV: kết luận Trong Pascal, khai báo biến có dạng:Var <danh sách biến>:<kiểu dữ liệu>;
Trong đó:
- danh sách biến là một hoặc nhiều tên biến,
các tên biến được viết cách nhau bởi dấu phảy
- kiểu dữ liệu thường là một trong các kiểu
dữ liệu chuẩn hoặc kiểu dữ liệu do người lập trình định nghĩa
- Sau từ khoá var có thể khai báo nhiều danh
sách biến khác nhau, tức là cấu trúc:
<danh sách biến>:<kiểu dữ liệu>;
- Viết được lênh gán;
- Viết được các biểu thức số học và logic với các phép toán thông dụng;
- Viết được một số lênh vào ra đơn giản
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy trình bày cách khai báo biến? Cho ví dụ
3 Nội dung bài mới:
Trang 12Hoạt động của GV và HS Nội dung kiến thức
GV: Tượng tự như trong toán học,
trong các ngôn ngữ lập trình đều có
các phép toán số học như: cộng,
trừ, nhân, chia, các phép toán chia
lấy phần nguyên và chia lấy phần
dư, các phép toán quan hệ…
GV: Các em hãy quan sát bảng
(SGK – Tr.24) để thấy được các
phép toán trong toán học đó ứng
với trong Pascal thì dùng như thế
sát các ví dụ sau rồi hãy cho biết
em hiểu thế nào là biểu thức số
- Biểu thức số học là một biến kiểu số hoặcmột hằng số hoặc các biến kiểu số và hằng
số liên kết với nhau bởi một số hữu hạnphép toán số học
- Viết biểu thức toán số học trong lập trìnhtuân theo quy tắc sau:
+ Chỉ dùng cặp ngoặc tròn để xác định trình
tự thực hiện phép toán trong trường hợp cầnthiết;
+ Viết lần lượt từ trái sang phải;
+ Không được bỏ qua dấu nhân (*) trongtích;
- Các phép toán được thực hiện theo trình tự:+ Thực hiện các phép toán trong ngoặctrước;
Trong dãy các phép toán không chứa ngoặcthì thực hiện từ trái sang phải theo thứ tựcác phép toán: *, /, div, mod, +, -
Trang 13GV: Từ các ví dụ trên kết hợp với
SGK – Tr.27 em hãy cho biết khái
niệm biểu thức quan hệ?
HS: Trả lời câu hỏi
Biểu thức logic là các biểu thức logic đơn
giản, các biểu thức quan hệ liên kết với nhau
bởi phép toán logic.
Giá trị của biểu thức logic là true hoặc false.
Phép toán not dược viết trước biểu thức cần
phủ định
Các phép toán or và and dùng để liên kết
nhiều biểu thức logic hoặc quan hệ thànhmột biểu thức
Trong Pasacl câu lệnh gán có dạng:
<Tên biến>:= <biểu thức>;
Chức năng của câu lênh gán là: đặt cho biến có tên ở vế trái dấu “:=” giá trị mới bằng giá trị của biểu thức ở vế phải.
Trang 14Ngày giảng:
Tiết theo PPCT: 07
Bài 7 – CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN
GIẢN Bài 8 – SOẠN THẢO, DỊCH, THỰC HIỆN VÀ
- Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT;
- Biết một số công cụ của môi trường Turbo Pascal
2 Kỹ năng:
- Viết được một số lệnh vào ra đơn giản;
- Bước đầu sử dụng được CT dịch để phát hiện lỗi
3 Thái độ:
- Nghiêm túc, hăng hái phát biểu xây dựng bài
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy viết các biểu thức sau dưới dạng các biểu thức trongTurbo Pascal:
(cx + d)(x2 – 9)/2y
và hãy cho biết biểu thức trên được thực hiện như thế nào?
3 Nội dung bài mới:
GV: Vậy qua 2 ví dụ trên kết hợp
đọc SGK – Tr.29 em hãy cho biết
thế nào là các thủ tục vào/ra đơn
giản?
HS: Trả lời
GV: Nhận xét, kết luận
GV: Trong phần này, ta sẽ xét các
thủ tục chuẩn vào/ra đơn giản của
Pascal để nhập dữ liệu vào từ bàn
phím và đưa thông tin ra màn hình
Bài 7 – Các thủ tục chuẩn vào/ra đơn giản
Ví dụ 1: Để in ra màn hình dòng thông báo
“XIN CHAO CAC BAN” ta sử dụng câu lệnhsau:
Write(‘XIN CHAO CAC BAN’);
Ví dụ 2: Để nhập các giá trị a, b, c của phương
trình bậc 2: ax2 + bx + c = 0 vào từ bàn phím ta
sử dụng câu lệnh sau:
Readln(a,b,c);
Các thủ tục vào/ra đơn giản là các chương
trình đưa dữ liệu vào từ bàn phím hoặc từ đĩa vào gán cho các biến và các chương trình dùng để đưa các kết quả ra màn hình, in ra giấy hoặc lưu trên đĩa.
Trang 15GV: Các em hãy quan sát ví dụ trên
cho danh sách biến và nhấn Enter thì
việc nhập giá trị cho danh sách biến
mới kết thúc và lệnh tiếp theo được
Việc nhập giá trị cho danh sách biến phải chú
ý các giá trị được nhập có kiểu tương ứng vớicác biến trong danh sách; giữa hai giá trị liêntiếp phải nhấn phím Space hoặc phím Enter.Việc nhập giá trị của biến từ bàn phím đượckết thúc bởi việc nhấn phím Enter nên không
phân biệt read và readln Do đó khi nhập từ bàn phím nên dùng readln.
GV: Các em hãy quan sát ví dụ sau
Readln(a,b);
Khi thực hiện các lệnh này, trên màn hìnhxuất hiện dòng thông báo:
Hay nhap gia tri a, b=
Để đưa dữ liệu ra màn hình Pascal cung cáp thủ tục chuẩn:
write(<danh sách kết quả ra>);hoặc:
writeln(<danh sách kết quả ra>);
Trong đó: danh sách KQ ra có thể là tên biến đơn, biểu thức hoặc hằng
Chú ý: Với thủ tục write, sau khi đưa các
kết quả ra màn hình, con trỏ không chuyển xuống dòng tiếp theo Với thủ tục writeln, sau khi đưa thông tin ra màn hình con trỏ chuyển xuống đầu dòng tiếp theo.
Trang 16GV: Các em hãy tìm hiểu trong
SGK – Tr.32, 33 và cho biết thế nào
là soạn thảo, dịch, thực hiện CT
- Lưu CT: Nhấn phím F2 -> đặt tên ->Enter
- Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT;
- Biết một số công cụ của môi trường Turbo Pascal
2 Kỹ năng:
- Viết được một số lệnh vào ra đơn giản;
- Bước đầu sử dụng được CT dịch để phát hiện lỗi
3 Thái độ:
- Nghiêm túc trong quá trình thực hành
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
Trang 17b) Nhấn phím F2 để lưu lại chương trình
với tên là PTB2.PAS lên đĩa.
c) Nhấn tổ hợp phím Alt + F9 để dịch và
sửa lỗi cú pháp (nếu có).
d) Nhấn tổ hợp phím Ctrl + F9 để thực
hiện chương trình.Nhập các giá trị 1; -3
và 2 Kết quả thu được: x1 = 1; x2 = 2.
h) Sửa lại CT sao cho không cần dùng
biến trung gian Delta Thực hiện CT đã sửa với bộ dữ liệu trên rồi quan sát KQ.
i) Thực hiện CT với bộ dữ liệu 1; 1; 1 và
- Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT;
- Biết một số công cụ của môi trường Turbo Pascal
2 Kỹ năng:
- Viết được một số lệnh vào ra đơn giản;
- Bước đầu sử dụng được CT dịch để phát hiện lỗi
3 Thái độ:
- Nghiêm túc trong quá trình thực hành
Trang 18II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
k) Nhấn phím F2 để lưu lại chương trình
với tên là PTB2.PAS lên đĩa.
l) Nhấn tổ hợp phím Alt + F9 để dịch và
sửa lỗi cú pháp (nếu có).
m) Nhấn tổ hợp phím Ctrl + F9 để thực
hiện chương trình.Nhập các giá trị 1; -3
và 2 Kết quả thu được: x1 = 1; x2 = 2.
q) Sửa lại CT sao cho không cần dùng
biến trung gian Delta Thực hiện CT đã sửa với bộ dữ liệu trên rồi quan sát KQ.
r) Thực hiện CT với bộ dữ liệu 1; 1; 1 và
Trang 19- Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT;
- Biết một số công cụ của môi trường Turbo Pascal
2 Kỹ năng:
- Viết được một số lệnh vào ra đơn giản;
- Bước đầu sử dụng được CT dịch để phát hiện lỗi
3 Thái độ:
- Nghiêm túc trong quá trình thực hành
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV
2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: không
3 Nội dung :
GV: Yêu cầu HS trả lời các câu hỏi
Chương trình:
Var a: real;
Begin Write(‘Nhap gia tri a (a>0):’);
Readln(a);
Write(‘Dien tich phan gach la:’,a*a*pi/2:20:4);
Trang 20Write(‘Nhap do cao cua vat h =’);
I – MỤC TIÊU:
1 Kiến thức: (Học sinh)
- 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ác lệnh rẽ nhánh dạng khuyết, rẽ nhánh dạng đầy đủ và áp dụng để thểhiện được thuật toán của một số bài toán đơn giản
3 Thái độ:
- Nghiêm túc, tích cực phát biểu xây dựng bài
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV.
2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ.
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy viết các biểu thức sau dưới dạng các biểu thức trong
Turbo Pascal:
(cx + d)(x2 – 9)/2y
và hãy cho biết biểu thức trên được thực hiện như thế nào?
3 Nội dung bài mới:
Trang 21Hoạt động của GV và HS Nội dung kiến thức
GV: Như chúng ta đã biết, thường
ngày có rất nhiều việc chỉ được thực
hiện khi một điều kiện cụ thể nào đó
xảy ra
GV: Câu nói của Châu cho ta biết
một việc làm cụ thể (Châu đến nhà
Ngọc) sẽ được thực hiện nếu điều
kiện (trời không mưa) thoả mãn
Còn nếu không thì không đề cập đến
việc gì khác
GV: Câu nói của Ngọc khẳng định
một trong hai việc cụ thể (Ngọc đến
nhà Châu) chắc chắn xảy ra, tuy
nhiên việc nào trong 2 việc sẽ được
thực hiện thì phụ thuộc vào điều
kiện cụ thể
GV: Kết luận
GV: Vậy qua những gì chúng ta vừa
tìm hiểu em hãy cho biết ý nghĩa của
Một 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 mưa thì sẽ gọi cho Châu để trao đổi” (2)
- Ta nói cách diễn đạt như của Châu (1)thuộc dạng thiếu:
Nếu… thì…
- Ta nói cách diễn đạt như của Ngọc (2)thuộc dạng đủ:
Nếu… thì… nếu không thì…
Kết luận: Cấu trúc dùng để mô tả các mênh đề
có dạng như trên được gọi là cấu trúc rẽ nhánhthiếu và đủ
ý nghĩa của cấu trúc rẽ nhánh: cấu trúc rẽnhánh là một điều khiển thực hiện hay khôngthực hiện công việc phù hợp với điều kiệnđang xảy ra
GV: Tương ứng với hai dạng thiếu
và đủ đã nói ở trên, Pascal có hai
dạng câu lệnh if – then (thiếu và đủ)
GV: Qua ví dụ trên kết hợp với đọc
SGK – Tr.39 em hãy cho biết cấu
trúc của if – then dạng thiếu được
viết như thế nào?
HS: Trả lời
GV: Nhận xét, kết luận
2 Câu lệnh if – then (trong Pascal).
a) Dạng thiếu:
Ví dụ: Nếu a>0 thì thông báo a là số dương Ta
có thể viết bằng câu lệnh if – then dạng thiếu
như sau:
if a>0 then write(‘a la so duong’);
Câu lệnh if – then dạng thiếu:
if <điều kiện> then <câu lệnh>;
b) Dạng đủ:
Ví dụ: Nếu a>0 thì thông báo a là số dương,
Trang 22GV: Tương tự như với if – then dạng
thiếu em hãy cho biết cấu trúc của if
– then dạng đủ?
HS: Trả lời
GV: Nhận xét, kết luận
GV: Các em về nhà hãy tham khảo
thêm cách viết câu lệnh if – then
bằng sơ đồ khối (SGK – Tr.39)
nếu không thì thông báo a là số không dương
Ta có thể viết bằng câu lệnh if – then dạng đủ
khoá (như then hoặc else) phải là
một câu lệnh Nhưng trong nhiều
trường hợp các thao tác sau những
từ khoá đó khá phức tạp, đòi hỏi
phải dùng nhiều câu lệnh để mô tả
Khi đó NNLT cho phép gộp nhiều
câu lệnh thành một câu lệnh ghép
GV: Chỉ ra câu lệnh ghép
GV: Vậy em hãy cho biết câu lệnh
ghép của Pascal có dạng như thế
nào?
HS: trả lời
GV: Kết luận
GV: Chú ý cấu trúc của câu lệnh
ghép khác so với cấu trúc của thân
Em hãy viết đoạn CT cho bài toán sau:
Nếu x > 0 thì y = a + b nếu không thì y = a – b
5 DẶN DÒ:
- Học bài cũ;
- Trả lời các câu hỏi và bài tập 1, 2, 4 ở cuối chương
Trang 23
- 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 trúc lặp với số lần định trước
- 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 lặp 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
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
1 Giáo viên: Bài soạn, SGK, SGV.
2 Học sinh: Vở ghi bài, SGK, chuẩn bị bài cũ.
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy trình bày cấu trúc của câu lệnh if – then dạng thiếu và
dạng đủ, lấy ví dụ?
3 Nội dung bài mới:
GV: Để hiểu thế nào là lặp ta cùng
xét hai bài toán sau
GV: Em hãy cho biết hai bài toán
trên có gì giống và khác nhau?
HS: Trả lời
GV: Kết luận
GV: Từ đó em hãy cho biết có mấy
loại lặp? Đó là những loại nào?
Bài toán 1: Tính và đưa ra màn hình tỔng
S = 1/a + 1/(a+1) + 1/(a+2)+…+1/(a+100)
Bài toán 2: Tính và đưa ra màn hình tỔng
S = 1/a + 1/(a+1) + 1/(a+2)+…+1/(a+N)+ Cho đến khi 1/(a+N) < 0.0001
Hai bài toán có các điểm tương tự:
- Xuất phát, S được gán giá trị 1/a;
- Tiếp theo cộng vào tỔng S một gía trị1/(a+N) với N = 1, 2, 3,… và việc cộng nàyđược lặp lại một số lần
Khác nhau:
- Đối với bài toán 1, số lần lặp là 100 và việccộng vào tỔng sẽ kết thúc khi thực hiệnviệc cộng 100 lần
- Đối với bài toán 2, số lần lặp chưa biếttrước nhưng vịêc cộng vào tỔng S sẽ kếtthúc khi điều kiện 1/(a+N) < 0.0001 đượcđáp ứng
- Từ đó ta rút ra được: Có hai loại lặp đó là:lặp với số lần biết trước và lặp với số lầnchưa biết trước
GV: Ta có 2 thuật toán để giải bài
toán 1 như sau
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
Bước 1: S:=1/a; N = 0;
Bước 2: N:=N+1;
Trang 24GV: Hai thuật toán trên đều dùng để
giải bài toán 1, nhưng các em hãy
quan sát và cho biết hai thuật toán
Thuật toán Tong_1b
Bước 1: S:=1/a; N = 101;
Bước 2: N:=N – 1;
Bước 3: Nếu N < 1 thì chuyển đến bước 5;Bước 4: S:=S+1/(a+N) rồi quay lại bước 2;Bước 5: Đưa tỔng S ra màn hình, rồi kếtthúc
Nhận xét:
Trong thuật toán Tong_1a, giá trị của N bắt
đầu tham gia vòng lặp là 1 và sau mỗi lầnlặp N tăng lên 1 cho đến khi N>100 thì kếtthúc lặp
Trong thuật toán Tong_1b, giá trị của N bắt
đầu tham gia vòng lặp là 100 và sau mỗi lầnlặp giảm đi 1 cho đến khi N<1 thì kết thúclặp
Kết luận: Cách lặp trong thuật toán Tong_1a là dạng lặp tiến, cách lặp trong thuật toán Tong_1b là dạng lặp lùi.
Để mô tả cấu trúc lặp với số lần biết trướcPascal dùng câu lệnh for – do với hai dạngtiến và lùi như sau:
f Dạng lặp tiến:
for <biến đếm>:=<giá trị đầu> to
<giá trị cuối> do <câu lệnh>;
Hoạt động của lệnh for – do
- ở dạng lặp tiến: câu lệnh viết sau từ khoá
do được thực hiện tuần tự, với biến đếm nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
- ở dạng lặp lùi: câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu.
4 CỦNG CỐ:
Bài toán: S = 1 + 2 + 3 +…+ 100
Trang 25Em hãy cho biết: Đây có phải bài toán dạng lặp không? Nếu là dạng lặp thì là lặp loạinào?
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán;
- Hiểu rõ hơn về cấu trúc lặp với số lần biết trước
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 lệnh lặp với số lần biết trước
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: Em hãy viết hai câu lệnh for – do (dạng tỔng quát) ứng với
dạng lặp tiến và dạng lặp lùi?
3 Nội dung bài mới:
GV: Chúng ta cùng tìm hiểu chương
trình cài đặt thuật toán Tong_1a và
Tong_1b Hai thuật toán này chúng
ta đã tìm hiểu trong bài trước
GV: giải thích CT, giải thích hoạt
động của vòng lặp for …to… do
Readln(a)S:=1/a;
For N:=1 to 100 do S:=S+1/(a+N);
Writeln(‘Tong S la:’,S);
ReadlnEnd
GV: Trình bày thuật toán Tong_1b.
GV: Em hãy quan sát cả hai thuật
toán và cho biết sự giống và khác
nhau của hai chương trình này
HS: Trả lời câu hỏi
Program Tong_1b;
Var S:real;
a, N: integer;
BeginWrite(‘Nhap a=’);
Readln(a)S:=1/a;
For N:=100 downto 1 do S:=S+1/(a+N);
Writeln(‘Tong S la:’,S);
Readln
Trang 26GV: Nhận xét, kết luận End.Giống nhau: Hai chương trình cùng thực hiện
một công việc, đó là tính tỔng S (của ví dụ 1).Khác nhau: Chương trình Tong_1a tính theocách cộng dần các số từ nhỏ đến lớn, còn CTTong_1b thì thực hiện ngược lại
GV: Trình bày CT và giải thích
những thắc mắc của HS Ví dụ 2: Nhập tự bàn phím hai số nguyêndươ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
(Tiếp)
I – MỤC TIÊ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 chưa biết trước
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 lệnh lặp với số lần chưa biết trước
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
Trang 272 Kiểm tra bài cũ: Em hãy viết hai câu lệnh for – do (dạng tỔng quát) ứng với
dạng lặp tiến và dạng lặp lùi?
3 Nội dung bài mới:
GV: Để hiểu thế nào là lặp với số lần
chưa biết trước ta tìm hiểu thuật toán
để giải bài toán 2 như sau
GV: Quan sát thuật toán trên ta thấy
thuật toán khi nào thì kết thúc?
HS: Trả lời
GV: Nhận xét, kết luận
GV: Kết luận
GV: (Giải thích) số lần lặp chưa biết
trước là vì điều kiện 1/(a+N)<0.0001
phụ thuộc rất nhiều vào giá trị a
GV: Để hiểu câu lệnh while – do
thực hiện như thế nào ta cùng quan
sát thuật toán Tong_2 dưới dạng sơ
đồ khối và đoạn CT sau
GV: giải thích về hoạt động của sơ
đồ và CT
GV: Vậy qua ví dụ trên em hãy cho
biết để mô tả cấu trúc lặp với số lần
1 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_2
KL: Như vậy việc lặp lại trong bài toán làlặp với số lần chưa biết trước
Câu lệnh while – do Thuật toán Tong_2.
Write(‘Hay nhap gia tri a vao:’); Readln(a);
While not (1/(a+N)<0.0001) do Begin
N:=N+1; S:=S+1/(a+N);
End;
Writeln(‘Tong S la:’,S:8:4); Readln
End.
Để mô tả cấu trúc lặp với số lần chưa biết
trước Pascal dùng câu lệnh while – do có
dạng:
while <điều kiện> do <câu lệnh>;
Hay ta có thể thể hiện bằng sơ đồ như sau:
§ a ra s, råi kÕt thóc
Sai
Trang 28chưa biết trước Pascal dùng câu lệnh
If M>N then M:=M-N else N:=N-M;Writeln(‘Uoc chung lon nhat la:’,N);Readln
- Biết xây dựng chương trình có cấu trúc rẽ nhánh;
- Làm quen với việc hiệu chỉnh CT
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV, phòng máy thực hành
- Học sinh: vở ghi bài, SGK, chuẩn bị bài thực hành
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: không
3 Nội dung thực hành:
Hoạt động 1: Viết CT cho bài toán a) Gõ chương trình:
Trang 29Pi – ta – go.
HS: Xác định bài toán
GV: Giúp HS phân tích thuật toán
GV: Yêu cầu HS gõ CT và dành thời
gian cho HS gõ xong CT
writeln(‘Ba so da nhap la bo so go’)
else writeln(‘Ba so da nhap khong la bo so
b) Nhấn phím F2 để lưu CT với tên
PITAGO lên đĩa;
c) Nhấn F7 để theo dõi từng lệnh
của CT Đến lệnh readln(a,b,c)
thì GV hướng dẫn HS nhập 3
giá trị a=3, b=4, c=5 Các giá trị
cách nhau bởi dấu cách
d) Tiếp tục theo dõi các lệnh của
CT bằng cách nhấn phím F7 và
theo dõi các giá trị của biến trên
cửa sổ Watches, để hiện cửa sổ
Watches nhấn Ctrl+F7 để hiện
cửa sổ Add watch, sau đó nhập
tên biến (ví dụ a2 là biến đang
cần theo dõi giá trị) và nhấn
phím Enter sẽ có tên biến a2
các thao tác như trên trong thời
gian này hướng dẫn một số học
sinh thực hiện các thao tác trong
b) Lưu CT với tên PITAGO lên đĩa;
c) Nhấn phím F7 để thực hiện từng câu lệnh của CT; Nhập các giá trị a=3, b=4, c=5;
d) Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2;
e) Nhấn phím 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ả a=9, b=16, c=25;
f) Quan sát quá trình rẽ nhánh;
g) Lặp lại các bước nói trên với a=700, b=1000, c=800;
Trang 30bài thực hành.
GV: Hướng dẫn thêm cho nhóm HS
khá, giỏi cải tiến CT
-Tiết theo PPCT: 16
BÀI TẬP THỰC HÀNH 2 (tiếp)
I Mục tiê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
- Làm quen với việc hiệu chỉnh chương trình
2 Kỹ năng:
- Thực hiện được các bài tập trong sách giáo khoa
II Chuẩn bị của GV và HS.
1 Chuẩn bị của GV:
- Giáo án, phấn, bảng, phòng thực hành
2 Chuẩn bị của HS
- Sách giáo khoa, vở ghi,…
III Tiến trình dạy học:
1 Kiểm tra bài cũ: Kết hợp kiểm tra trong giờ học
2 Bài mới:
GV: Nêu yêu cầu của bài:
Bài toán: Cho bộ ba số nguyên a, b, c
được gọi là bộ số Pi-ta-go nếu tỔng các
bình phương của hai số bằng bình phương
của số còn lại Viết chương trình nhập từ
bàn phím ba số nguyên a, b, c và kiểm tra
xem chúng xem chúng có là bộ số Pi-ta-go
không?
- ý tưởng: Kiểm tra đẳng thức sau đây có
xảy ra hay không:
a2 = b2 + c2
b2 = a2 + c2
c2 = a2 + b2
GV: Hướng dẫn học sinh thực hiện nhập
chương trình, lưư chương trình với tên là
PITAGO và thực hiện với các bộ số trong
sách giáo khoa
HS: Nhập chương trình
GV: Hướng dẫn học sinh cách lưu chương
I Nội dung:
Bài toán: Bộ số Pitago
a) Gõ chương trình kiểm tra bộ số Pi-ta-go
Writeln(‘ Day la bo so Pi-ta-go’)
Else Writeln(‘ Day khong phai bo so
Pi-ta-go’);
End
b) Lưu chương trình với tên Pitago lên đĩa
Muốn lưu tên chương trình được thì sau khi
gõ xong chương trình ta nhấn phím F2 hoặc chọn vào File-> Saves hiển thị hộp thoại ta
Trang 31- Củng cố thêm kiến thức về cấu trúc rẽ nhánh;
- Luyện tập cấu trúc lặp, chú ý bài toán tìm tổng của dãy số;
2 Kỹ năng:
- Tiếp tục làm quen với các công cụ phục vụ hiệu chỉnh CT
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK, làm bài tập ở nhà
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: (không)
3 Nội dung bài mới:
1 Hướng dẫn và giải đáp các thắc mắc của HS về một số bài tập ở nhà;
a) if (sqr(x) + sqr(y))<=1 then z:= sqr(x) + sqr(y) else
Trang 32if y>=x then z:=x+y else z:=0.5;
b) if (sqr(x-a) + sqr(y-b) <= sqr (r) then z:=abs(x) + abs(y) else z:=x+y;
2 GV: Yêu cầu HS chữa bài tập 4, sau đó GV chữa lại;
3 Giáo viên yêu cầu cả lớp cùng giải bài tập 5.a trên máy tính, lập trình tính a) Y=1/2+2/3+3/4+…+50/51
Var Y: real; N: byte;
sh:=1/2; N:=2; e:=2 + sh; while sh>=2*1E – 6 do
Begin Inc(N); Sh:=sh*(1/N); E:=e + sh; End;
Writeln(‘Gia tri e(N) la:’,e:10:6); Readln
End
Trong thời gian HS chữa bài tập GV chú ý rèn luyện, uốn nắn HS về cách viết câulệnh sao cho chính xác và gọn gàng, câu lệnh nên viết trong một dòng cho thuậnlợi trong việc quan sát, hiệu chỉnh
4 Đối với các bài 6, 7, 8 GV có thể chọn một bài gợi ý cho HS tìm Input, Output,chọn biến, kiểu dữ liệu của biến, công thức liên hệ giữa các biến Sau đó có thểviết CT
Var ga, cho: byte;
Begin
For cho:=1 to 24 do
Begin Ga:=36 – cho;
If 2*ga + 4*cho = 100 then Writeln(‘Ga:’, ga, ‘ Cho:’, cho); Readln; End.Program cha_con;
Var cha,con,nam:word;
Begin
Writeln(‘nhap vao tuoi cha va tuoi con’); readln(cha,con);
While not(cha>2*con and cha-con>=25) do
Begin cha:=cha+1; con:=con+1; nam:=nam+1; end;
Writeln (‘sau’, nam,’ nam tuoi cha gap doi tuoi con’); Readln; End
Begin c:=c+a*0.003; t:=t+1; end;
Writeln (‘sau’, t,’ thang nhan duoc so tien’ ,b); Readln; End
4 – BÀI VỀ NHÀ:
- Xem lại các bài tập đã làm;
Trang 33I – MỤC TIÊU:
- Củng cố những kiến thức đã học trong chương 1,2,3
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, SGK, SGV
- Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: (không)
3 Nội dung bài mới:
Lý thuyết:
Chương 1: Một số khái niệm về lập trình và ngôn ngữ lập trình
- Chương trình dịch (hai loại);
- Mọi đối tượng trong CT đều phải được đặt tên (3 loại tên – Tên dành riêng; Tênchuẩn; Tên do người lập trình đặt);
- Hằng;
- Biến
Chương 2: Chương trình đơn giản
- Cấu trúc CT: thường có hai phần (phần khai báo và phần thân CT);
- Kiểu dữ liệu chuẩn: kiểu nguyên; kiểu thực; kiểu ký tự; kiểu logic;
- Phép toán: Số học; quan hệ và logic;
- Biểu thức: Số học; quan hệ và logic;
- Câu lệnh gán;
- Tổ chức vào/ra đơn giản;
Chương 3: Cấu trúc rẽ nhánh và lặp
- Các NNLT đều có câu lệnh thể hiện cấu trúc rẽ nhánh và lặp;
- Câu lệnh rẽ nhánh có hai dạng: thiếu và đủ;
For i:=1 to N do S:=S+i;
Write(‘Tong S la:’,S); Readln
- Ôn lại lý thuyết;
- Xem lại các bài tập
Trang 34
-Tiết theo PPCT: 19 KIỂM TRA MỘT TIẾT
(Thời gian 45’)
I – MỤC TIÊU:
- Kiểm tra kiến thức của học sinh trong chương 1, 2, 3
II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:
- Giáo viên: Bài soạn, phòng máy tính
- Học sinh: chuẩn bị cho bài kiểm tra
III – TIẾN TRÌNH DẠY HỌC:
1 Ổn định tổ chức lớp:
2 Kiểm tra bài cũ: không
3 Nội dung kiểm tra.
Câu 1: (1 điểm) Biến A có thể nhận các giá trị 7; 30; 40; 256 và biến B có thể
nhận các giá trị 0,5; 0,7; 10,3; 0,2 Vậy khai báo nào sau đây là đúng?
B: real; B: real;
Câu 2: (1 điểm) Hãy chỉ ra lỗi sai trong đoạn chương trình sau:
If (a>b) then x:=a+b;
Else x:=a – b;
Sai do:………
Câu 3: (1 điểm) Hãy chỉ bốn lỗi (ba lỗi dịch, một lỗi thực hiện) trong chương trình
Chú ý: sai ở dòng lệnh nào thì chỉ ra lỗi sai ở bên phải của dòng lệnh đó.
Câu 4: (1 điểm) Không thực hiện chương trình, hãy đoán kết quả nhận được khi
thực hiện chương trình Pascal sau:
Var x,y: integer
Trang 35writeln(‘Gia tri moi cua x la:’,x);
writeln(‘Gia tri moi cua y la:’,y);
Câu 2: Không được sử dụng dấu chấm phảy (;) trước từ khoá else.
Câu 3: Lỗi 1: dấu bằng ở dòng 1 phải đổi thành dấu hai chấm;
Lỗi 2: Ký hiệu sai lệnh gán ở dòng 4;
Lỗi 3: Thiếu dấu chấm phảy ở dòng 6;
Lỗi 4: Biểu thức x*y không được xác định đúng vì khai báo z có kiểubyte nên z không thể nhận giá trị 30*40=1200
Câu 4: Kết quả là x và y sẽ đổi giá trị cho nhau.
If (a>b) then writeln(‘Gia tri lon hon la:’,a)
Else writeln(‘Gia tri lon nhat la:’,b);
- Hiểu khái niệm mảng một chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng
2 Kỹ năng
- Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một
chiều
- Thực hiện đượckhai báo mảng, truy cập, tính toán các phần tử của mảng
II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Chuẩn bị của GV:
Giáo án, phấn, bảng
2 Chuẩn bị của HS:
Sách giáo khoa, vở ghi,…
III TIẾN TRÌNH DẠY HỌC.
1 Ổn định tổ chức:
2 Kiểm tra bài cũ:
Câu hỏi: Kết hợp kiểm tra trong giảng dạy
3 Nội dung bài:
Trang 36Hoạt động của GV và HS Nội dung chính
HĐ1: Hiểu khái niệm mảng một chiều và
cách khai báoi mảng một chiều
GV:Yêu cầu hs đọc sgk trả lời câu hỏi sau:
- Mảng một chiều là gì?
HS: Trả lời câu hỏi
GV:Để mô tả mảng một chiều ta thực hiện
Bài toán nhập vào nhiệt độ trung bình của
mỗi ngày trong tuần, tinh và đưa ra màn
hình nhiệt độ trung bình của tuần và số
lượng ngày trong tuần có nhiệt độ lớn hơn
nhiệt độ trung bình
GV: Nêu câu hỏi sau:
-Ta cần khai báo những biến nào?
HS: Ta cần khai báo những biến sau:
t1, t2, t3, t4, t5, t6, t7, tb
dem
GV: Biến đếm dùng để làm gì?
HS: Trả lời câu hỏi
GV: Cách tính nhiệt độ trung bình tuần
như thế nào?
HS: Ta làm như sau: Lấy tất cả các ngày
trong tuần cộng lại với nhau và chia trung
Chương trình tỔng quát với N ngày trong
Pascal như sau:
1 Kiểu mảng một chiều
- Mảng một chiều là dãy hữu hạn các phần tửcùng kiểu Mảng được đặt tên và mỗi phần tửcủa nó có một chỉ số Để mô tả mảng một chiềucần xác định kiểu của các phần tử và cách đánh
số các phần tử của mảng
- Để có thể lập trình và sử dụng kiểu mảng mộtchiều các ngôn ngữ lập trình có quy tắc và cáchthức cho phép xác định
+ Tên mảng một chiều + Số lượng các phần tử
+ Kiểu dữ liệu của phần tử + Cách khai báo mảng + Cách tham chiếu đến phần tử
*) Ta xét ví dụ sau:
*) Chương trình Program Nhietdotuan;
Trang 37GV:Cách nhập dữ liệu trong Pascal?
HS: Làm theo hướng dẫn của GV
Giáo viên: Viết chương trình nhập nhiệt
độ các ngày trong năm và tính nhiệt độ
trung bình
GV:Để khai báo trực tiếp ta thực hiện như
thế nào?
HS: Ta có 2 cách khai báo mảng một
chiều như sau:
GV:Kiểu chỉ số thường là kiểu dữ liệu
HS: Tham chiếu tới phần tử của mảng một
chiều được xác định bởi tên mảng cùng
với chỉ số, được viết trong cặp ngoặc [và]
Writeln(‘ Nhap vao nhiet do ngay ’,i,’:’);
If nhietdo[i]>trungbinh then dem:=dem+1;
Wrteln(‘Nhiet do trung binh ’,n,’ ngay:
Cách khai báo mảng một chiều có dạng:
- Cách 1: Khai báo trực tiệp biến mảng một
- Kiểu phần tử là kiểu phần tử của mảng
*) Tham chiếu tới phần tử của mảng một chiềuđược xác định bởi tên mảng cùng với chỉ số,được viết trong cặp ngoặc [và]
VD: Tham chiếu tới phần tử thứ 3 của mảng A
ta viết A[3]
3 Củng cố, luyện tập
Trang 38- Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiều
- Hình thành kỹ năng cơ bản về sử dụng kiểu mảng trong cài đặt chương trình
II CHUẨN BỊ CỦA GV VÀ HS.
1 Kiểm tra bài cũ:
Câu hỏi: Trình bày cách khai báo mảng một chiều?
2 Bài mới:
HĐ2: áp dụng khai báo mảng một chiều
thực hiện viết chương trình các bài toán
Ví dụ 1: Tìm phần tử lớn nhất của dãy số
nguyên
Ta có thuật toán tim giá trị lớn nhất của
dãy số nguyên như sau:
Bước 1: Nhập giá trị N và dãy A1, A2,…,
AN
Bước 2: MaxA1; i2;
Bước 3: Nếu i > N thì đưa ra giá trị Max
rồi kết thúc
Bước 4:
Bước 4.1: Nếu Ai > Max thì MaxAi;
Bước 4.2: ii+1 rồi quay lại bước 3;
Write(‘Phan tu thu ’,i,’ = ‘);
Trang 39HS: Trả lời câu hỏi
GV:Nêu yêu cầu của bài toán
- Input: Số nguyên dương N và dãy số
HS: Làm theo hướng dẫn của GV
GV:Tại sao phải dùng biến t làm biến
trung gian?
HS: Trả lời câu hỏi
Writeln(‘Gia tri lon nhat cua day la: ’ ,Max); Writeln(‘Nam tai vi tri ’,csmax);
Write(‘Phan tu thu ‘,i,’ = ‘);
Readln(A[i]);
End;
For j:=N dowto 2 do For i:=1 to j-1 do
Trang 40- Hiểu khái niệm mảng một chiều và mảng hai chiều
- Hiểu cách khai báo và truy cập đến phần tử của mảng
Sách giáo khoa, vở ghi,…
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ:
Câu hỏi: Hãy trình bày khái niệm mảng 2 chiều là gì? quy tắc cách thức cho
phép xác định mảng 2 chiều, cách khai báo?
2 Nội dung:
HĐ1: Giáo viên nêu yêu cầu của bài tập
GV:Với đầu bài toán cho điều kiện
HS: Ta nhập lần lươit từ phần tử đầu tiên
cho đến phần tử cuối cùng của mảng
GV:Cách duyệt các phần tử của mảng?
HS: Trả lời câu hỏi
GV:Lệnh S:=S+A[i]; thực hiện thao tác