Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 90 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
90
Dung lượng
1,49 MB
Nội dung
Ngày giảng:
Tiết theo PPCT: 01
Chương I:
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
I - MỤC TIÊU:
1. Kiến thức:
- 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:
Hoạt động của GV và HS
Nội dung
Hoạt động 1
1. Ngôn ngữ lập trình:
GV: Từ kiến thức lớp 10 em có thể
cho biết có những loại ngôn ngữ lập
• Khái niệm lập trình: là sử dụng
trình nào?
cấu trúc dữ liệu và các câu lệnh
HS1: Trả lời câu hỏi.
của ngôn ngữ lập trình cụ thể nào
HS2: Bổ sung (nếu có).
đó để mô tả dữ liệu và diễn đạt
GV: Kết luận; kể tên một số ngôn
các thao của thuật toán.
ngữ lập trình mà HS đã biết ở lớp
• Trong đó:
10.
- Câu lệnh diễn tả các thao tác trong các
GV: (nêu ví dụ) – Giả sử ta muốn gõ
bước của thuật toán;
được một trang văn bản (trong máy - Câu lệnh đơn thực hiện bước có một thao
tính thì ta cần dùng một phần mềm
tác;
cho phép gõ văn bản (như Microsoft - Câu lệnh cấu trúc thực hiện bước gồm dãy
Word chẳng hạn), tương tự như vậy
các thao tác.
để có được các chương trình ta phải
sử dụng các ngôn ngữ lập trình để
viết ra các chương trình đó. Người ta
gọi đó là lập trình.
GV: Vậy lập trình là gì?
HS: trả lời câu hỏi.
GV: nhận xét, kết luận.
Hoạt động 2
2. Chương trình dịch:
GV: ở lớp 10 chúng ta đã biết thế
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
như thế nào?
HS: Trả lời.
- Có chức năng chuyển đổi CT được viết
Giáo án Tin học 11
1
GV: 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
Hoạt động 3
GV: Hướng dẫn HS đọc ví dụ (SGK
– Tr.4).
GV: Từ ví dụ trên em hãy cho biết
thông dịch là gì, biên dịch là gì?
HS: trả lời.
GV: nhận xét, kết luận
GV: Như vậy sau khi có được khái
niệm thông dịch và biên dịch ta cần
chú ý: thông dịch không có CT đích
để lưu trữ và biên dịch cả chương
trình nguồn và CT đích có thể lưu
trữ để sử dụng về sau.
bằng ngôn ngữ LT bậc cao thành CT thực
hiện được trên máy tính;
- CT dịch nhận đầu vào là CT viết bằng
NNLT bậc cao (CT nguồn), thực hiện
chuyển đổi sang NN máy.
CT nguồn CT dịch CT đích
a) Thông dịch: (interpreter)
- Kiểm tra tính đúng đắn của câu lệnh tiếp
theo trong CT nguồn;
- Chuyển đổi câu lệnh đó thành một hay
nhiều câu lệnh tương ứng trong NN máy;
- Thực hiện các câu lệnh vừu chuyển đổi
được.
b) Biên dịch: (compiler)
- Duyệt, phát hiện lỗi, kiểm tra tính đúng
đắn của các câu lệnh trong CT nguồn;
- Dịch toàn bộ CT nguồn thành CT đích có
thể thực hiện trên máy và lưu trữ để sử
dụng khi cần thiết.
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).
-------------------------------------------Ngày giảng:
Tiết theo PPCT: 02
Bài 2 – CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I – MỤC TIÊ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;
- 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ũ:
Giáo án Tin học 11
2
Em 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:
Hoạt động của GV và HS
Nội dung
Hoạt động 1
1. Các thành phần cơ bản:
GV: Mỗi NNLT có 3 thành phần cơ
bản là: bảng chữ cái, cú pháp và
ngữ nghĩa.
GV: Để hiểu rõ chúng ta đi vào từng
thành phần cụ thể.
a) Bảng chữ cái: là tập các ký tự để viết
GV: Trước tiên ta tìm hiểu bảng chữ
chương trình.
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ý
tự đặc biệt.
GV: Em hãy đọc SGK (Tr.9) và cho
biết các thành phần cụ thể của bảng
chữ cái?
* Các chữ cái thường và các chữ cái in hoa
HS: đọc SGK; trả lời câu hỏi.
của bảng chữ cái tiếng Anh.
GV: Nhận xét, kết luận.
a b c d e f g h…
A B C D E F G H…
* 10 chữ số thập phân ả Rập:
0123456789
* Các ký tự đặc biệt:
+ - * / = < > [ ]. , ; # ^ $ @ () { }: ‘ _ và dấu
cách.
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ào
Tóm lại: Cú pháp cho biết cách viết ngữ cảnh của nó.
một CT hợp lệ, còn ngữ nghĩa xác
định ý nghĩa của các tổ hợp ký tự
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.
Hoạt động 2
2. Một số khái niệm:
GV: Khi chúng ta được sinh ra, để
a) Tên:
phân biệt được mỗi người đều được
Ví dụ: Trong ngôn ngữ Pascal:
đặt tên. Tương tự như vậy, mỗi đối - Các tên đúng:
tượng trong CT đều phải được đặt A
tên theo quy tắc của NNLT và CT GiU21
dịch cụ thể.
_3097
….
- Các tên sai:
Giáo án Tin học 11
3
S KD
5yp
c$GH
…
GV: 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.
* 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.
GV: Nhiều ngôn ngữ LT, trong đó
• Tên dành riêng:
có Pascal, phân làm 3 loại tên.
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ình
khô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ước
khi sử dụng. Các tên này không được trùng với
tên dành riêng.
Hoạt động 3
b) Hằng và biến:
GV: Em hãy cho biết em hiểu thế
• Hằng:
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.
GV: Kết luận.
KN: Hằng là đại lượng có giá trị không đổi
trong quá trình thực hiện CT.
GV: Trong các NNLT hằng thường - Hằng số học: là các số nguyên hay thực.
có 3 loại.
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 đặt
trong dấu nháy.
VD: Trong Turbo Pascal: ‘KHOI 11’…
• 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ện CT.
c) Chú thích:
SGK – Tr.13
4. CỦNG CỐ:
Giáo án Tin học 11
4
Nhắc lại:
- Bảng chữ cái.
- Cú pháp.
- Tên, cách đặt tên.
- Hằng và biến.
5. DẶN DÒ:
- Học bài cũ.
- Đọc lại bài trong SGK.
- Trả lời các câu hỏi sau bài học (SGK – Tr.13).
-----------------------------------------------Ngày giảng:
Tiết theo PPCT: 03
BÀI TẬP
I – MỤC TIÊU:
1. Kiến thức:
- Ô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ành
riê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 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, 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 của GV và HS
Nội dung
Hoạt động 1: (Cho HS làm các câu Câu 1:
hỏi trong SGK – Tr.13)
- Ngôn ngữ bậc cao gần với ngôn ngữ tự
GV: (Câu 1) – Tại sao người ta phải
nhiên hơn, thuận tiện cho đông đảo người
xây dựng các NNLT bậc cao?
lập trình;
HS1: Trả lời câu hỏi.
- CT viết bằng ngôn ngữ bậc cao nói chung
HS2: Nhận xét, bổ sung (nếu có).
không phụ thuộc vào phần cứng máy tính
GV: Nhận xét, kết luận.
và một CT có thể thực hiện trên nhiều loại
máy tính khác nhau;
- CT viết bằng NN bậc cao dễ hiểu, dễ hiệu
chỉnh và dễ nâng cấp;
- NN bậc cao 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
GV: (Câu 2) – CT dịch là gì? Tại sao
dạng, thuận lợi cho mô tả thuật toán.
phải có CT dịch? Em hãy cho biết Câu 2:
Input và Output của CT dịch?
- CT dịch là CT đặc biệt, có chức năng
Giáo án Tin học 11
5
HS: Tìm hiểu, trả lời câu hỏi.
chuyển đổi CT được viết trên ngôn ngữ LT
GV: Kết luận.
bậc cao thành CT thực hiện được trên máy
GV: (Câu 3) – Biên dịch và thông
tính cụ thể.
dịch khác nhau như thế nào?
- Input: CT nguồn; Output: CT đích.
HS1: Trả lời câu hỏi.
Câu 3:
HS2: Nhận xét, bổ sung (nếu có).
- Trình biên dịch duyệt, kiểm tra, phát hiện
GV: Nhận xét, kết luận.
lỗi, xác định CT nguồn có dịch được
khô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áy
tí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âu
GV: (Câu 4) – Hãy cho biết các điểm
lệnh ra ngôn ngữ máy rồi thực hiện ngay
khác nhau giữa tên dành riêng và tên
câu lệnh vừa dịch được hoặc báo lỗi nếu
chuẩn?
không dịch được.
HS1: Trả lời câu hỏi.
Câu 4:
HS2: Nhận xét, bổ sung (nếu có).
Tên dành riêng không được dùng khác với ý
GV: Nhận xét, kết luận.
nghĩa đã xác định, tên chuẩn có thể dùng với ý
GV: (Câu 5) – Hãy viết ra 3 tên đúng nghĩa khác.
theo quy tắc của Pascal?
HS1: Lên bảng làm bài.
HS2: Nhận xét.
Câu 5:
GV: Kết luận.
ABC_EHJ
GV: (Câu 6) – Hãy cho biết những _edrgrgrm
biểu diễn nào sau đây không phải là TIN_HOC10
biểu diễn hằng trong Pascal?
HS1, HS2: Lên bảng làm.
Câu 6:
HS3: nhận xét.
c) 6,25 – dấu phảy phải thay bằng dấu chấm.
GV: Kết luận.
e) A20 – tên chưa rõ giá trị.
h) ‘C – sai quy định về hằng xâu: thiếu nháy
đơn ở cuối.
Hoạt động 2:
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.
D. Tạo được CT đích.
3. Hãy chỉ ra tên sai (trong Pascal) trong các tên sau:
A. TinHoc
B. 3vi_du
C. ABGHDJ
D. NGAY_MAI
Giáo án Tin học 11
6
4. CỦNG CỐ:
Nhắc lại:
- Bảng chữ cái.
- Cú pháp.
- Tên, cách đặt tên.
- Hằng và biến.
5. DẶN DÒ:
- Đọc lại các câu hỏi và trả lời trong giờ bài tập.
- Đọc bài đọc thêm 2 (SGK – Tr.14).
- Đọc trước bài: Cấu trúc chương trình – SGK Tr.17.
----------------------------------------------Ngày giảng:
Tiết theo PPCT: 04
Chương II: CHƯƠNG TRÌNH ĐƠN GIẢN
Bài 3 – CẤU TRÚC CHƯƠNG TRÌNH
I – MỤC TIÊU:
1. Kiến thức:
- 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:
Hoạt động của GV và HS
Nội dung
GV: Cả lớp mở SGK (Tr.18) đọc và
1. Cấu trúc chung:
cho biết cấu trúc chung của CT gồm
mấy phần? Đó là những phần nào?
Cấu trúc của một CT có thể được mô tả như
HS: Nghiên cứu SGK.
sau:
Trả lời câu hỏi.
[]
GV: Kết luận.
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ác
thành phần của CT có thể có hoặc không có
được đặt trong cặp dấu [ và ]
2. Các thành phần của chương trình.
a) Phần khai báo:
GV: Các em hãy quan sát ví dụ sau
• Khai báo tên CT: có thể có hoặc
và cho biết cú pháp của câu lệnh
không.
khai báo tên chương trình.
Ví dụ: trong Pascal
HS: Trả lời.
Program Vi_du1;
Program giai_phuong_trinh_bac2;
Với Pascal phần khai báo tên CT như sau:
Giáo án Tin học 11
7
GV: 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.
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.
HS: Quan sát.
Trả lời.
GV: Kết luận.
GV: Các em hãy quan sát ví dụ
HS: Quan sát.
4. CỦNG CỐ:
Nhắc lại:
Giáo án Tin học 11
Program ;
-
• 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
#include
• Khai báo hằng:
- Ví dụ:
+ Trong Pascal:
const Max=300;
pi=3.14;
N=20;
+ Trong C++:
const int Max=400;
const float pi=3.14;
……
Khai báo hằng thường được sử dụng cho
những giá trị xuất hiện nhiều lần tronbg
CT.
• Khai báo biến:
- Ví dụ: khi khảo sát PT đường thẳng
ax+by+c=0, các hệ số a, b, c có thể được
khai 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.
b) Phần thân chương trình.
- Ví dụ 1:
Begin
Write(‘Nhap A, B);
Readln(A,B);
C:=A+B;
Write(C);
End.
Trong Pascal:
Begin
[];
End.
3. Ví dụ chương trình đơn giản.
SGK – Tr.20.
8
- Xác định cấu trúc chương trình.
- Khái báo hằng.
- Khai báo biến.
5. DẶN DÒ:
- Học bài cũ.
- Đọ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ải
khai báo biến?
3. Nội dung bài mới:
Hoạt động của GV và HS
Nội dung kiến thức
GV: ở CT lớp 10 chúng ta đã có Bài 4. Một số kiểu dữ liệu chuẩn
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.
Dữ liệu là thông tin đã mã hoá trong máy tính.
1. Kiểu nguyê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.
Các kiểu nguyên được lưu trữ và kết quả
GV: Nhận xét, kết luận.
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ự.
GV: Chúng ta mở SGK – Tr.21 để
Kiểu
Bộ nhớ
Phạm vi giá trị
biết miền giá trị trị của kiểu nguyên.
lưu trữ
một giá
trị
byte
1 byte
Từ 1 đến 255
Giáo án Tin học 11
9
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.
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ự?
HS:
- Đọc SGK.
- Trả lời câu hỏi.
GV: Kết luận.
GV: Lấy một ví dụ về kiểu logic.
Integer 2 byte
Từ –215 đến 215 – 1
Word 2 byte
Từ 0 đến 216 – 1
longint 4 byte
Từ – 231 đến 231 – 1
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án
thô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 trong
máy tính là hữu hạn.
Kiểu
Bộ nhớ
Phạm vi giá trị
lưu trữ
một giá trị
Real
6 byte
0 hoặc có giá trị
tuyệt đối nằm
trong phạm vi từ
10-38 đến 1038
extended 10 byte
0 hoặc có giá trị
tuyệt đối nằm
trong phạm vi từ
10-4932 đến 104932
3. 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
Phạm vi giá trị
trữ một giá
trị
Char
1 byte
256 ký tự trong bộ
mã ASCII
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.
Kiểu
Bộ nhớ
Phạm vi giá trị
lưu trữ
một giá trị
Boolean 1 byte
true hoặc false
Bài 5. Khai báo biến
GV: chúng ta hãy mở sgk – tr.22 và
cùng nhau xét các ví dụ 1 và 2.
gv: viết ví dụ lên bảng.
GV: kết luận, đó là một số ví dụ về
khai báo biến trong pascal. vậy em
Giáo án Tin học 11
10
có thể đưa ra cú pháp để khai báo
biến?
HS: trả lời câu hỏi.
Trong Pascal, khai báo biến có dạng:
GV: kết luận.
Var :;
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:
:;
4 – CỦNG CỐ:
Nhắc lại các kiểu dữ liệu
- Kiểu nguyên.
- Kiểu thực.
- Kiểu ký tự.
- Kiểu logic
- Cách khai báo biến
5 – DẶN DÒ:
- Học bài cũ.
- Trả lời câu hỏi trong SGK – Tr.35
--------------------------------------------Ngày giảng:
Tiết theo PPCT: 06
Bài 6 – PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH
GÁN
I – MỤC TIÊU:
1. Kiến thức:
- Biết các khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức
quan hệ;
- Hiểu lệnh gán;
- Biết các lênh vào ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra
màn hình.
2. Kỹ năng:
- 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ụ
Giáo án Tin học 11
11
3. Nội dung bài mới:
Hoạt động của GV và HS
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ế
nào.
GV: Giải thích một số phép toán
mới như: div, mod, not, and, or.
GV: Hãy đọc SGK – Tr.25 và quan
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ố
học?
HS: Đọc SGK, trả lời câu hỏi.
GV: Kết luận.
Nội dung kiến thức
1. Phép toán.
(Đưa ra bảng các phép toán trong toán học
và trong Pascal)
2. Biểu thức số học.
Ví dụ:
(a + b)*(z – 4)/(x + y)
5*a + 6*b
-
GV: Lấy ví dụ
Giáo án Tin học 11
Biểu thức số học là một biến kiểu số hoặc
mộ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ạn
phép toán số học.
- Viết biểu thức toán số học trong lập trình
tuâ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ần
thiết;
+ Viết lần lượt từ trái sang phải;
+ Không được bỏ qua dấu nhân (*) trong
tí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ặc
trước;
Trong dãy các phép toán không chứa ngoặc
thì thực hiện từ trái sang phải theo thứ tự
các phép toán: *, /, div, mod, +, -.
3. Hàm số học chuẩn.
Ví dụ: Để tính nghiệm của PT bậc 2
x:= (- b + sqrt(delta))/(2*a);
Để lập trình được dễ dàng, thuận tiện hơn
các NNLT đều có thư viện chứa một số
chương trình tính giá trị những hàm toán học
thường dùng. Các chương trình như vậy gọ
là các hàm số học chuẩn.
Bảng hàm số học chuẩn – SGK Tr.26.
4. Biểu thức quan hệ.
Ví dụ:
12
GV: 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.
GV: Kết luận.
GV: Các em cần biết lênh gán là
một trong những lệnh cơ bản nhất
của các ngôn ngữ lập trình.
GV: Trình bày ví dụ.
1) 2*y = 6 - x
Ta nói biểu thức (2*y) liên kết với
biểu thức (6 – x) bằng phép toán quan
hệ “=”.
2) y < 10
(Tương tự như ví dụ 1)
• Khái niệm:
Biểu thức quan hệ là biểu thức được
tạo thành bởi 2 biểu thức cùng kiểu
liên kết với nhau bởi phép toán quan
hệ.
5. Biểu thức logic.
Ví dụ:
1) not(x > 1) là một biểu thức logic.
2) (x>=2)and(x đặt tên ->Enter.
b. Biên dịch CT:
- Nhấn tổ hợp phím Alt + F9.
- Nếu CT có lỗi cú pháp, phần mềm sẽ hiểu
thị một thông báo.
c. Chạy CT:
- Nhấn tổ hợp phím Alt + F9.
d. Đóng cửa sổ CT:
- Nhấn tổ hợp phím Alt + F3.
e. Thoát khỏi phần mềm:
- Nhấn tổ hợp phím Alt + X.
4. CỦNG CỐ:
Nhắc lại:
- Thủ tục chuẩn nhập dữ liệu vào từ bàn phím;
- Thủ tục in dữ liệu ra màn hình;
5. DẶN DÒ:
- Học bài cũ;
- Trả lời và làm bài tập trong SGK – Tr.35;
----------------------------------------------Ngày giảng:
Tiết theo PPCT: 08
BÀI TẬP VÀ THỰC HÀNH 1
I – MỤC TIÊU:
1. Kiến thức:
- Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra
màn hình;
- 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 thực hành:
Hoạt động của GV và HS
Nội dung kiến thức
GV: Hướng dẫn HS khởi động phần
a) Gõ chương trình:
mềm Pascal.
GV: Hướng dẫn HS gõ chương trình
Program Giai_PTB2;
2
giải PT bậc 2: ax + bx + c = 0
Uses crt;
HS: Gõ CT.
Var a, b, c, delta, x1, x2,: real;
GV: chú ý HS: khi chạy CT, tránh
Begin
Giáo án Tin học 11
16
nhập trị cho a, b, c để Delta < 0.
Clrscr;
Write(‘Nhap a, b, c =’);
Readln(a,b,c);
Delta:=b*b – 4*a*c;
x1: = (- b – sqrt(delta))/(2*a);
x2: = - b/a – x1;
write(‘x1 = ‘, x1, ‘x2 = ‘, x2);
readln;
End.
b) 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.
e) Nhấn tổ hợp phím Ctrl + F9 rồi nhập
các giá trị 1; 0 và - 2. Kết quả thu
được: x1 = - 1.41; x2 = 1.41.
f) Sửa lại CT bằng cách thay đổi công
thức tính x2.
g) Thực hiện CT đã sửa với bộ dữ liệu 1;
-5 và 6. KQ: x1 = 2; x2 = 3.
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à
quan sát KQ trên màn hình.
4 – CỦNG CỐ:
- Về nhà làm lại bài thực hành (nếu có điều kiện).
5 – BÀI VỀ NHÀ:
- Học bài cũ;
- Làm các bài tập trong SGK – Tr.35 vào vở bài tập;
-----------------------------------------------Ngày giảng:
Tiết theo PPCT: 09
BÀI TẬP VÀ THỰC HÀNH 1
(Tiếp)
I – MỤC TIÊU:
1. Kiến thức:
- Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra
màn hình;
- 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 độ:
Giáo án Tin học 11
17
- 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 thực hành:
Hoạt động của GV và HS
Nội dung kiến thức
GV: Hướng dẫn HS khởi động phần
j) Gõ chương trình:
mềm Pascal.
GV: Hướng dẫn HS gõ chương trình
Program Giai_PTB2;
giải PT bậc 2: ax2 + bx + c = 0
Uses crt;
HS: Gõ CT.
Var a, b, c, delta, x1, x2,: real;
GV: chú ý HS: khi chạy CT, tránh
Begin
nhập trị cho a, b, c để Delta < 0.
Clrscr;
Write(‘Nhap a, b, c =’);
Readln(a,b,c);
Delta:=b*b – 4*a*c;
x1: = (- b – sqrt(delta))/(2*a);
x2: = - b/a – x1;
write(‘x1 = ‘, x1, ‘x2 = ‘, x2);
readln;
End.
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.
n) Nhấn tổ hợp phím Ctrl + F9 rồi nhập
các giá trị 1; 0 và - 2. Kết quả thu
được: x1 = - 1.41; x2 = 1.41.
o) Sửa lại CT bằng cách thay đổi công
thức tính x2.
p) Thực hiện CT đã sửa với bộ dữ liệu 1;
-5 và 6. KQ: x1 = 2; x2 = 3.
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à
quan sát KQ trên màn hình.
4 – CỦNG CỐ:
- Về nhà làm lại bài thực hành (nếu có điều kiện).
5 – BÀI VỀ NHÀ:
- Học bài cũ;
- Làm các bài tập trong SGK – Tr.35 vào vở bài tập;
Giáo án Tin học 11
18
Ngày giảng:
Tiết theo PPCT: 10
BÀI TẬP
I – MỤC TIÊU:
1. Kiến thức:
- Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra
màn hình;
- 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 :
Hoạt động của GV và HS
Nội dung kiến thức
GV: Yêu cầu HS trả lời các câu hỏi Câu 6:
từ 1 đến 5 trong SGK Tr.35 (thay A: = (1+z)*((x+y/z)/(a – 1/(1 + x*x*x)))
cho kiểm tra miệng đầu giờ).
Câu 8:
Qua hình vẽ ta có:
((y < 1) hoặc (y = 1)) và ((y > abs(x)) hoặc
(y=abs(x)))
Hay ta có thể viết:
(y =abs(x))
GV: Chúng ta hãy qaun sát kỹ hình
vẽ xem phần gạch chéo và phần
Câu 9:
trắng có tỷ lệ như thế nào?
HS:
- Quan sát.
- Trả lời.
GV: Kết luận.
Ta thấy diện tích phần gạch bằng với diện tích
phần trắng, tức là diện tích phàn gạch bằng ẵ
GV: Từ đó chúng ta cùng viết CT diện tích hình tròn tâm O(0, 0) bán kính a.
Chương trình:
cho bài toán này.
GV: Chú ý HS là “Pi” là một hằng số Var a: real;
Begin
trong Pascal và Pi = 3.1415926536
Write(‘Nhap gia tri a (a>0):’);
Readln(a);
Write(‘Dien tich phan gach la:’,
Giáo án Tin học 11
19
GV: Yêu cầu HS trả lời câu hỏi
HS:
- Suy nghĩ.
- Trả lời.
a*a*pi/2:20:4);
Readln;
End.
Câu 10:
Uses crt;
Const g = 9.8;
Var v, h: real;
Begin
Clrscr;
Write(‘Nhap do cao cua vat h =’);
Readln(h);
v: = sqrt(2*g*h);
writeln(‘Van toc cua vat khi cham dat la:’,
v:10:2, ‘m/s’);
readln;
end.
4. CỦNG CỐ:
- Sử dụng biến trung gian S để tính diện tích phần gạch trong Bài 9.
5. DẶN DÒ:
- Học bài cũ;
- Sửa lại chương trình để sao cho không phải dùng biến trung gian v.
============================
Ngày giảng:
Tiết theo PPCT: 11
Chương III
CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 9 – CẤU TRÚC RẼ NHÁNH
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:
Giáo án Tin học 11
20
Hoạt động của GV và HS
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.
Nội dung kiến thức
1. Rẽ nhánh.
* Ví dụ:
Một lần Châu hẹn với Ngọc: “Chiều mai
nếu trời không mưa thì Châu sẽ đến nhà
Ngọc”. (1)
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ì…
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.
- Ta nói cách diễn đạt như của Ngọc (2)
GV: Câu nói của Ngọc khẳng định
thuộc dạng đủ:
một trong hai việc cụ thể (Ngọc đến
Nếu… thì… nếu không thì…
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 Kết luận: Cấu trúc dùng để mô tả các mênh đề
kiện cụ thể.
có dạng như trên được gọi là cấu trúc rẽ nhánh
GV: Kết luận.
thiếu và đủ.
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
cấu trúc rẽ nhánh?
ý nghĩa của cấu trúc rẽ nhánh: cấu trúc rẽ
HS: Trả lời câu hỏi.
nhánh là một điều khiển thực hiện hay không
GV: Nhận xét, kết luận.
thực hiện công việc phù hợp với điều kiện
đang xảy ra.
2. Câu lệnh if – then (trong Pascal).
GV: Tương ứng với hai dạng thiếu a) Dạng thiếu:
và đủ đã nói ở trên, Pascal có hai Ví dụ: Nếu a>0 thì thông báo a là số dương. Ta
dạng câu lệnh if – then (thiếu và đủ). 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’);
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
Câu lệnh if – then dạng thiếu:
GV: Nhận xét, kết luận.
if then ;
b) Dạng đủ:
Ví dụ: Nếu a>0 thì thông báo a là số dương,
Giáo án Tin học 11
21
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 đủ
như sau:
if (a>0) then write(‘a la so duong’)
else write(‘a la so khong duong’);
GV: 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 đủ?
Câu lệnh if – then dạng đủ:
HS: Trả lời.
if then else ;
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).
GV: Theo cú pháp, sau một số từ
3. Câu lệnh ghép.
khoá (như then hoặc else) phải là
Ví dụ: Khi giải PTB 2 xảy ra trường hợp ta
một câu lệnh. Nhưng trong nhiều
phải dùng câu lệnh ghép như sau:
trường hợp các thao tác sau những
từ khoá đó khá phức tạp, đòi hỏi
if(delta 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.
-----------------------------------------------------
Giáo án Tin học 11
22
Ngày giảng:
Tiết theo PPCT: 12
Bài 10 – CẤU TRÚC LẶ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 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:
Hoạt động của GV và HS
Nội dung kiến thức
1. Lặp:
GV: Để hiểu thế nào là lặp ta cùng
Với a là số nguyên và a > 2, ta xét các bài
xét hai bài toán sau.
toán sau đây.
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.
GV: Em hãy cho biết hai bài toán
Hai bài toán có các điểm tương tự:
trên có gì giống và khác nhau?
- Xuất phát, S được gán giá trị 1/a;
HS: Trả lời.
- Tiếp theo cộng vào tỔng S một gía trị 1/
GV: Kết luận.
(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ệc
cộng vào tỔng sẽ kết thúc khi thực hiện
việc cộng 100 lần.
- Đối với bài toán 2, số lần lặp chưa biết
trước nhưng vịêc cộng vào tỔng S sẽ kết
GV: Từ đó em hãy cho biết có mấy
thúc khi điều kiện 1/(a+N) < 0.0001 được
loại lặp? Đó là những loại nào?
đáp ứng.
HS: Trả lời.
- Từ đó ta rút ra được: Có hai loại lặp đó là:
GV: Nhận xét, kết luận.
lặp với số lần biết trước và lặp với số lần
chưa biết trước.
2. Lặp với số lần biết trước và câu lệnh
for – do.
GV: Ta có 2 thuật toán để giải bài
Thuật toán Tong_1a
toán 1 như sau.
Bước 1: S:=1/a; N = 0;
Bước 2: N:=N+1;
Giáo án Tin học 11
23
GV: 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
này có gì khác nhau?
HS: Trả lời.
GV: Kết luận.
GV: Đưa ra dạng lặp tiến và dạng
lặp lùi.
Bước 3: Nếu N > 100 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ết
thúc.
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ết
thú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ần
lặp N tăng lên 1 cho đến khi N>100 thì kết
thú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ần
lặp giảm đi 1 cho đến khi N tb then dem:=dem+1;
GV: Biến đếm dùng để làm gì?
If t3> tb then dem:=dem+1;
HS: Trả lời câu hỏi
If t4> tb then dem:=dem+1;
If t5> tb then dem:=dem+1;
GV: Cách tính nhiệt độ trung bình tuần
If t6> tb then dem:=dem+1;
như thế nào?
If t7> tb then dem:=dem+1;
HS: Ta làm như sau: Lấy tất cả các ngày Writeln(‘Nhiet do trung binh tuan: ’,tb:8:3);
trong tuần cộng lại với nhau và chia trung
Writeln(‘ So ngay co nhiet do lon hon nhiet
bình
do tb:’dem);
Readln;
End.
GV: Nêu vấn đề sau:
*) Với bài toán trên với N khá lớn ta sử dụng
Vậy để giải quyết với bà toán trên với N kiểu mảng một chiều để mô tả như sau:
khá lớn ta sử dụng kiểu mảng một chiều Progarm Nhietdongay;
để mô tả.
Const Max=360;
Chương trình tỔng quát với N ngày trong Type Kmang1=array[1..Max] of Real;
Pascal như sau:
Var nhietdo:Kmang1;
Giáo án Tin học 11
36
dem, i, n:Byte;
tong, trungbinh:Real;
GV: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
nào?
HS: Kiểu chỉ số thường là một đoạn số
nguyên liên tục có dạng n1..n2 là các hằng
biểu thức nguyên xác định chỉ số đầu và
chỉ số cuối (n1trungbinh then dem:=dem+1;
Wrteln(‘Nhiet do trung binh ’,n,’ ngay:
‘,trungbinh:8:3);
Writeln(‘So ngay co nhiet do lon hon nhiet do
trung binh la: ’ ,dem);
Readln;
End.
a) Khai báo
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
chiều
Var :array[kiểu chỉ số] of
;
- Cách 2: Khai báo gián tiếp biến mảng qua
mảng một chiều;
Type =array[kiểu chỉ số] of
;
Var :;
Trong đó:
- Kiểu chỉ số thường là một đoạn số nguyên liên
tục có dạng n1..n2 là các hằng biểu thức nguyên
xác định chỉ số đầu và chỉ số cuối (n1 N thì đưa ra giá trị Max
N= ‘); readln(N);
rồi kết thúc
For i:=1 to N do
Bước 4:
Begin
Bước 4.1: Nếu Ai > Max thì Max←Ai;
Write(‘Phan tu thu ’,i,’ = ‘);
Bước 4.2: i←i+1 rồi quay lại bước 3;
Readln(A[i]);
End;
Max:=A[1]; csmax:=1;
For i:=1 to N do
If A[i]>Max then
Begin
Max:=A[i];
Csmax:=i;
GV:Cách duyệt các phần tử trong mảng
Giáo án Tin học 11
38
như thế nào?
HS: 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ố
nguyên dương y A1, A2,…, AN
- Output: Dãy số được sắp xếp không
giảm
GV: Hướng dẫn từng hs cách nhập dữ
liệu cho từng phần tử?
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
End;
Writeln(‘Gia tri lon nhat cua day la: ’ ,Max);
Writeln(‘Nam tai vi tri ’,csmax);
Readln;
End.
Ví dụ 2: Sắp xếp dãy số nguyên theo chiều tăng
dần
Chương trình sắp xếp dãy số:
Program Sapxep;
Const Nmax=250;
Type ArrInt=Array[ 1..Nmax] of Integer;
Var N, i, j,t:Integer;
A: ArrInt;
Begin
Write(‘Nhap so luong phan tu cua day so:
N= ‘); Readln(N);
For i:=1 to N do
Begin
Write(‘Phan tu thu ‘,i,’ = ‘);
Readln(A[i]);
End;
For j:=N dowto 2 do
For i:=1 to j-1 do
If A[i]>A[i+1] Then
Begin
t:=A[i];
A[i+1]:=A[i];
A[i+1]:=t;
End;
Writeln(‘Day da duoc sap xep la: ‘);
For i:=1 to N do
Write(A[i]:4);
Readln;
End.
3. Củng cố, luyện tập
- Nhắc nhở lại kiến thức cơ bản của bài học về cách sử dụng mảng một chiều
trong chương trình thể hiện thuật toán cơ bản tìm kiếm và sắp xếp
4. Hướng dẫn hs tự học ở nhà
- Về nhà học bài và làm bài tập ở nhà.
Giáo án Tin học 11
39
Ngày giảng:
Tiết theo PPCT: 22
BÀI TẬP THỰC HÀNH 3
I. MỤC TIÊU
1. Kiến thức:
- 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
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 được khai 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 GV VÀ HS:
1. Chuẩn bị của GV:
Giáo án, phấn, bảng, phòng máy
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ũ:
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:
Hoạt động của GV và HS
Nội dung chính
HĐ1: Giáo viên nêu yêu cầu của bài tập
I.Nội dung:
Bài 1: Tạo mảng A gồm n số (nA[j] then
Begin
Tg:=A[i];
A[i]:=A[j];
A[j]:=tg;
Dem:=Dem +1;
End;
Writeln(‘Mang da duoc sap xep la:’);
For i:=1 to n do
Write(A[i],’ ‘);
Writeln(‘ Số lần hoán đổi trong thuật toán
là:’,Dem);
Readln;
End.
Bài 2: Cho mảng A gồm n phần tử, Hãy viết
chương trình tạo mảng B[1..n]. Trong đó B[i] là
tỔng các phần tử đầu tiên của phần tử của mảng
A
Program TimMax;
Type Kieumang:Array[1..100] of Integer;
44
GV:Nhập dữ liệu?
Var A, B:Kieumang;
HS: Writeln(‘ Nhap so phan tu cua
N, i, j: Integer;
mang’);
Begin
Readln(n);
Writeln(‘ Nhap so phan tu cua mang’);
For i:=1 to n do
Readln(n);
Begin
For i:=1 to n do
Write(‘A[‘,i,’]= ‘);
Begin
Readln(A[i]);
Write(‘A[‘,i,’]= ‘);
GV:Thuật toán tính các phần tử của mảng
Readln(A[i]);
B như thế nào?
End;
HS:
B[i]:=0;
For i:=1 to n do
For j:=1 to i do
Begin
B[i]:=B[i]+A[i];
B[i]:=0;
For j:=1 to i do B[i]:=B[i]+A[i];
End;
Writeln(‘ Cac phan tu cua mang B la:);
GV:Cách viết các phần tử của mảng
For i:=1 to n do Write(B[i]:5);
HS: Trả lời câu hỏi
Readln;
End.
3. Củng cố, luyện tập:
- 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, mảng
hai chiều và cách tham chiếu đến các phần tử của mảng một chiều và hai chiều
Luyện tập: Cho mản A gồm n phần tử hãy khai báo mảng trên ?
4. Hướng dẫn học sinh tự học ở nhà;
- Về nhà học bài và làm bài tập ở nhà.
- Xem trước bài mới.
-------------------------------------------------Ngày giảng:
Tiết theo PPCT: 26
BÀI TẬP THỰC HÀNH 4
1. Kiểm tra bài cũ:
Câu hỏi: Hãy trình bày cách khai báo mảng một chiều ?
2. Bài mới:
Giáo án Tin học 11
45
Hoạt động của GV và HS
GV: Cần khai báo những biến nào?
HS: Trả lời câu hỏi và thực hiện
Nội dung chính
Bài 2: Cho mảng A gồm n phần tử, Hãy viết
chương trình tạo mảng B[1..n]. Trong đó B[i] là
tỔng các phần tử đầu tiên của phần tử của mảng
A
Program TimMax;
Type Kieumang:Array[1..100] of Integer;
GV:Nhập dữ liệu?
Var A, B:Kieumang;
HS: Writeln(‘ Nhap so phan tu cua
N, i, j: Integer;
mang’);
Begin
Readln(n);
Writeln(‘ Nhap so phan tu cua mang’);
For i:=1 to n do
Readln(n);
Begin
For i:=1 to n do
Write(‘A[‘,i,’]= ‘);
Begin
Readln(A[i]);
Write(‘A[‘,i,’]= ‘);
GV:Thuật toán tính các phần tử của mảng
Readln(A[i]);
B như thế nào?
End;
HS:
B[i]:=0;
For i:=1 to n do
For j:=1 to i do
Begin
B[i]:=B[i]+A[i];
B[i]:=0;
For j:=1 to i do B[i]:=B[i]+A[i];
End;
Writeln(‘ Cac phan tu cua mang B la:);
GV:Cách viết các phần tử của mảng
For i:=1 to n do Write(B[i]:5);
HS: Trả lời câu hỏi
Readln;
End.
3. Củng cố, luyện tập
- 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, mảng
hai chiều và cách tham chiếu đến các phần tử của mảng một chiều và hai chiều
Luyện tập: Cho mản A gồm 50 phần tử hãy khai báo mảng trên ?
4. Hướng dẫn học sinh tự học ở nhà;
- Về nhà học bài và làm bài tập ở nhà.
- Xem trước bài mới.
---------------------------------------------Ngày giảng:
Tiết theo PPCT: 27
BÀI 12: KIỂU XÂU
I. MỤC TIÊU
1. Kiến thức:
- Biết xâu là một dãy kí tự(có thể coi xâu là mảng một chiều).
- Biết cách khai báo xâu, truy cập phần tử của xâu.
2. Kỹ năng:
- Sử dụng được một số thủ tục, hàm thông dụng về xâu.
Giáo án Tin học 11
46
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ũ:
Câu hỏi: Hãy viết cách khai báo mảng một chiều và mảng hai chiều?
2. Bài mới:
Hoạt động của GV và HS
HĐ1: Đặt vấn đề
Nhập vào họ tên của hai học sinh trong
lớp:
A:=’HOANG THU TRANG’
B:=’NGUYEN THI LINH’
GV: Hãy cho biết hai biến A và B thuộc
kiểu dữ liệu gì?
HS: Hai biến trên thuộc kiểu dữ liệu xâu
GV: Kết luận
GV: Cách tham chiếu tới phần tử của xâu
có giống cách tham chiếu của mảng?
VD: Giả sử có biến Hoten lưu trữ giá trị
hằng xâu là ‘Nguyen Thanh Huyen’ thì
Hoten[6] cho ta kí tự n là kí tự thứ 6 của
biến xâu Hoten.
HS: Tham chiếu phần tử của xâu cũng
giống như tham chiếu đến phần tử của
mảng
GV: Cách khai báo dữ liệu kiểu xâu?
VD: var Hoten:String[25];
GV: Phép ghép xâu kí hiệu là gì, và được
sử dụng để làm gì?
HS: Trả lời câu hỏi
GV: Các phép so sách gồm, quy tắc so
sánh?
VD: So sách hai sâu:
1. A:=’ hong anh’
Giáo án Tin học 11
Nội dung chính
* Xâu là một dãy kí tự trong bộ mã ASCII, mỗi
kí tự được gọi là một phần tử của xâu. Số lượng
kí tự trong một xâu được gọi là độ dài của xâu.
Xâu có độ dài bằng 0 được gọi là xâu rỗng.
VD: ‘HOANG HA’
Xâu có độ dại là 8(Tính cả kí tự trống)
* Các ngôn ngữ lập trình đều có quy tắc và cách
thức cho phép xác định:
- Tên kiểu xâu;
- Cách khai báo biến kiểu xâu;
- Số lượng kí tự trong xâu;
- Cácphép toán thao tác với xâu;
- Cách tham chiếu tới phần tử của xâu;
+ Tương tự với mảng, tham chiếu tới phần tử
của xâu được xác định bởi tên biến xâu và chỉ
số đặt trong cặp ngoặc [và].
1. Cách khai báo kiểu xâu:
Để khai bao kiểu dữ liễu xâu ta sử dụng tên
dành riêng string, tiếp theo là độ dài lớn nhất
của xâu(không vuợt quá 255 kí tự) được ghi
trong cặp ngoặc [và].
Biến kiểu xâu có thể được khai báo như sau:
Var :String[độ dài lớn nhất của xâu];
Hoặc:
Var :String;
2. Các thao tác xử lý xâu:
a) Phép ghép xâu:
Kí hiệu là dấu(+), được sử dụng để ghép nhiều
xâu thành một. Có thể thực hiện phép ghép xâu
đối với các hằng và biến.
VD: ‘PHU’+’LUU’ kết quả ‘PHULUU’
b) Các phép so sánh gồm:
So sánh bằng(=), khác(), lớn hơn(>), nhỏ
hơn(=), nhỏ hơn hoặc
bằng( kết quả: Xâu A length(b) then
Writeln(a)
Else
Writeln(b);
HS: Hàm Length thực hiện thao tác trả về
Readln;
Giáo án Tin học 11
49
giá trị độ dài của xâu
Ví dụ 2: Nhập vào hai xâu, kiểm tra xem
kí tự đẫu của xâu thứ nhất có trùng với kí
tự cuối cùng của xâu thứ 2 không?
GV:Đoạn chương trình sau đây có ý nghĩa
gì?
Write(‘ Nhap xau thu nhat: ‘);
Readln(a);
Write(‘ Nhap xau thu hai: ‘);
Readln(b);
HS: Đoạn chương trình trên cho phép
nhập xâu
Ví dụ 3: Nhập vào xâu kí tự, viết ngược
lại xâu đó
GV:Để viết ngược lại xâu đó ta thực hiện
như thế nào?
HS: Ta thực hiện câu lệnh sau:
For i:=k downto 1 do
End.
Program Kiemtra;
Var a, b: String;
x: Byte;
Begin
Write(‘ Nhap xau thu nhat: ‘);
Readln(a);
Write(‘ Nhap xau thu hai: ‘);
Readln(b);
x:=length(b);
If a[1] = b[x] then
Writeln(‘Trung nhau’)
Else
Writeln(‘Khac nhau);
Readln;
End.
Program Xaunguoc;
Var a: String;
i, k: Byte;
Begin
Write(‘ Nhap xau‘); Readln(a);
k:= length(a);
For i:=1 downto 1 do
Writeln(a[i])
Readln;
End.
Ví dụ 4: Nhập vào một xâu, đưa ra màn Program Xoadaucach;
hình xâu thu được từ nó bởi việc loại bỏ Var a,b: String;
các dấu cách
i, k: Byte;
Begin
GV:Ta khai báo những biến nào?
Write(‘ Nhap xau‘); Readln(a);
HS: Ta khai báo những biến sau:a,b,i,k
k:= length(a);
b:=’’;
For i:=1 to k do
GV:Xâu b dùng để thực hiện công việc gì?
If a[i] ‘ ‘ then
HS: Xâu b dùng để khởi tạo xâu rỗng
b:=b+a[i];
Write(‘Ket qua: ‘,b);
Readln;
End.
Ví dụ 5: Chương trình nhập vào một xâu Program Xulixau;
s1, tạo xâu s2 gồm tất cả các chữ số trong Var s1, s2: String;
xâu s1
i: Byte;
Begin
GV:Khai báo những biến nào?
Write(‘ Nhap xau‘); Readln(s1);
HS: Ta khai báo háI biến xâu S1 và S2
s2:=’’;
For i:=1 to leng(s1) do
GV:Các phép toán so sanh trong xâu như
If (‘0’=< s1[i]) and (s1[i] Input: xâu a.
+>Output: a là xâu đối xứng hay không đối
xứng.
A.ý tưởng
Chúng ta sẽ đi xây dựng xâu đảo ngược của
xâu ban đầu bằng cách duyệt từ cuối xâu ban
đầu, tại mỗi lần duyệt thì kí tự đang được
duyệt sẽ được thêm vào xâu đang xây dựng.
Sau khi xây dựng xong, ta so sánh 2 xâu, nếu
chúng giống nhau thì thông báo đó là xâu
palindrome rồi kết thúc, ngược lại sẽ thông
báo đó không phải là xâu palindrome và kết
thúc.
B.Không dùng biến xâu p
Các kí tự ở vị trí đối xứng thì giống nhau.
Kí tự ở vị trí thứ i sẽ đối xứng với kí tự ở vị trí
thứ n-i+1 trong xâu (với n là độ dài của xâu.
Ta sẽ so sánh n div 2 cặp kí tự để biết xâu này
là xâu palindrome hay không.
Chương trình:
uses crt;
var a: string;
i,d,n: byte;
begin
clrscr;
write('nhap vao mot xau:');
readln(a);
d:=length(a) div 2;
n:=length(a);
i:=1;
while (id then
writeln('day la xau palindrome')
else
writeln('day khong la xau palindrome');
readln;
end.
Bài 2. Viết chương trình nhập từ bàn phím
một xâu kí tự S và thông báo ra màn hình số
lần xuất hiện của mỗi chữ cái tiếng Anh trong
S (không phân biệt chữ hoa hay chữ thường).
+>Input: xâu S.
52
+>Output: số lần xuất hiện của mỗi chữ cái
tiếng Anh trong xâu S.
+> Gợi ý:
Hàm ord(ch) cho giá trị là mã ASCII thập
GV: có thể dùng một mảng một chiều dem
phân của kí tự là giá trị của ch.
với các phần tử được đánh số thứ tự từ 1 đến Hàm chr(X) cho giá trị là kí tự có mã ASCII
26 để ghi nhận số lần xuất hiện của 26 chữ thập phân bằng giá trị của biến X kiểu byte
cái tiếng Anh theo thứ tự trong xâu.
hoặc số nguyên X trong phạm vi từ 0..255.
Có nhận xét sau:
Ord(‘A’) – ord(‘A’) + 1 = 1
Ord(‘B’) – ord(‘A’) + 1 = 2
HS : Nghe kết hợp với ghi chép.
.....
GV: Ta có nhận xét sau đây:
Ord(‘Z’) – ord(‘A’) + 1 = 26
Ord(‘A’) – ord(‘A’) + 1 = 1
Ord(‘B’) – ord(‘A’) + 1 = 2
.....
Ord(‘Z’) – ord(‘A’) + 1 = 26
GV: Như vậy từ chỉ số i của mảng ta có thể
xác định được số lần xuất hiện của kí tự thứ
i trong bảng chữ cái tiếng Anh có trong xâu.
Chr(i + ord(‘A’) -1) là kí tự được đếm bằng
phần tử thứ i của mảng một chiều dem.
GV: để giải quyết vấn đề chữ hoa hay chữ
Ta sẽ dùng hàm upcase(c) để giải quyết vấn
thường thì ta sẽ dùng hàm gì ?
đề chữ hoa hay chữ thường.
HS: Trả lời câu hỏi.
Kí tự đang xét là chữ cái nếu điều kiện sau
GV: do trong xâu có thể không là chữ cái,
được thoả mãn:
do đó cần phải kiểm tra xem kí đó có phải là
((ord(s2[i]) - ord('A') + 1)>=1) and
chữ cái hay không. Việc kiểm tra được kiểm
((ord(s2[i]) - ord('A') + 1)=1) and
((ord(s2[i]) - ord('A') + 1)= -1000) and (a[i] = -1000) and (a[i] 1 then
begin
u:= 2;
while (u sqrt(a[i]) then dn: = dn + 1 ;
end;
end;
writeln(‘ So luong so nguyen to: ‘,dn);
readln;
END.
4. Hoạt động củng cố
- Cách khai báo mảng,xâu.
- Cách tham chiếu đến phần tử của mảng, xâu.
5. Bài tập về nhà
- Hoàn thành các bài tập trong sgk.
Giáo án Tin học 11
58
Tiết theo PPCT: 36
Chương V: TỆP VÀ THAO TÁC VỚI TỆP
Bài 14: KIỂU DỮ LIỆU TỆP
Bài 15 : THAO TÁC VỚI TỆP
I. MỤC TIÊU
1. Kiến thức:
-Học sinh biết được vai trò c ủa kiểu dữ liệu tệp.
-Học sinh biết được có hai cách phân loại tệp.
-Học sinh biết khai báo biến tệp và các thao tác cơ bản đối với tệp văn bản.
2. Kỹ năng:
-Dần dần hình thành kỹ năng về các thao tác với tệp văn bản.
II. ĐỒ DÙNG DẠY HỌC
1. Chuẩn bị của giáo viên
-Dùng bảng trong in sẵn hình 16 trong SGK;
-Sách giáo khoa, sách giáo viên, Bài soạn.
2. Chuẩn bị của học sinh
-Sách giáo khoa, vở ghi bài.
III. NỘI DUNG BÀI MỚI:
1. Kiểm tra sĩ số lớp:
2. Kiểm tra bài cũ: Không
3. Nội dung bài mới
HOẠT ĐỘNG CỦA GV & HS
NỘI DUNG
Hoạt động 1: Đặt vấn đề:
GV:Trong các giờ thực hành đã học, sau khi
chạy một chương trình ta thấy kết quả in lên màn
hình, tuy nhiên muốn sử dụng kết quả đó về sau
thì không được (nó không lưu trữ lại lâu dài) =>
Để khắc phục nhược điểm này ta nghiên cứu dữ
liệu kiểu tệp.
HS: Chú ý nghe giảng.
Hoạt động 2: Vai trò kiểu tệp:
Câu hỏi 1: Trong máy tính có những loại bộ nhớ
nào ? Loại bộ nhớ nào không bị mất dữ liệu khi
tắt máy hoặc mất điện ?
HS: Lần lượt trẻ lời từng câu hỏi 1 (Dựa vào
kiến thức đã học ở lớp 10)
Câu hỏi 2: Vậy theo em thì các kiểu dữ liệu đã
học được lưu trữ ở bộ nhớ nào ? Dự đoán xem
dữ liệu kiểu tệp được lưu trữ trên bộ nhớ nào ?
HS: Dựa vào kiến thức đã học ở lớp 10 để trả lời
câu hỏi.
Câu hỏi 3: Bộ nhớ trong hay ngoài thường có
dung lượng lớn hơn ?
HS: Chú ý nghe giảng và ghi chép bài.
GV: cho hs ghi bài
1. Vai trò của kiểu tệp
Giáo án Tin học 11
59
Hoạt động 3: Phân loại tệp và thao tác với tệp.
GV: Giới thiệu cho học sinh biết được hai cách
phân loại tệp. (Không đòi hỏi học sinh phải hiểu
cặn kẽ từng loại tệp một).
Hoạt động 4: Chuyển tiếp sang bài § 15
GV: Có hai thao tác cơ bản đối với tệp là ghi dữ
liệu vào tệp và đọc dữ liệu từ tệp ra. Ta xét xem
trong Pascal các thao tác đó được thể hiện như
thế nào đối với tệp văn bản ?
Hoạt động 5: Khai báo
GV: Lấy ví dụ khai báo tệp
GV: Gọi học sinh cho biết cú pháp để khai
báo tệp
HS: trả lời câu hỏi
GV: Viết khai báo biến tệp lên bảng rồi giải
thích các từ khóa, tên biến tệp để học sinh hiểu
được.
- Dữ liệu kiểu tệp được lưu trữ lâu dài
ở bộ nhớ ngoài cho nên nó không bị mất
khi tắt máy hoặc mất điện.
- Lượng dữ liệu lưu trữ trên tệp có thể
rất lớn và chỉ phụ thuộc vào dung lượng
ổ đĩa.
2. Phân loại tệp và thao tác với tệp.
* Phân loại tệp:
- Theo cách tổ chức dữ liệu:
+ Tệp văn bản.
+ Tệp có cấu trúc.
- Theo cách thức truy cập:
+ Tệp truy cập tuần tự.
+ Tệp truy cập trực tiếp.
§ 15: THAO TÁC VỚI TỆP
1. Khai báo
VD: Var t1,t2: Text ;
Khai báo biến tệp văn bản có dạng:
Var : Text ;
HS: Chú ý nghe giảng.
2. Thao tác với tệp
Hoạt động 6: Thao tác với tệp:
a. Gắn tên tệp
HS: Mỗi học sinh tự lấy một vài ví dụ và ghi vào
vở.
GV: Nhận xét
Assign ( , ) ;
Hoạt động 6.1: Gắn tên tệp:
GV: Giải thích cho học sinh tại sao phải gắn tên
tệp cho biến tệp, rồi đưa ra thủ tục:
HS: Chú ý nghe giảng và liên hệ với bài học.
Hoạt động 6.2: Mở tệp:
GV: Lấy VD về 2 tình huống cần phải mở vở
“Tin học 11” đó là: Mở ra để ghi bài (ghi dữ
liệu) và mở ra để học bài (Đọc dữ liệu) => 2
trường hợp phải mở tệp.
GV: Giới thiệu hai thủ tục để mở tệp:
GV: Phải nhấn mạnh rằng: Trước khi sử dụng
hai thủ tục trên phải gắn tên tệp cho biến tệp
Giáo án Tin học 11
VD: Để gắn tệp KQ.TXT cho biến tệp f:
Assign (f,’KQ.TXT’);
b. Mở tệp
+ Mở tệp để ghi dữ liệu:
Rewrite();
+ Mở tệp để đọc dữ liệu:
Reset();
c. Đọc / ghi tệp văn bản:
60
đồng thời biến tệp phải được khai báo từ trước.
GV: Yêu cầu học sinh lấy ví dụ (khai báo biến
tệp, gắn tên tệp cho biến tệp, mở tệp) sau đó gọi
hai học sinh lên trình bày.
GV: Có thể nói thêm để học sinh biết về trường
hợp đã có tên tệp ở trên đĩa và trường hợp chưa
có tệp đó để học sinh hiểu thêm.
* Đọc dữ liệu từ tệp:
Read(,);
Hoặc
Readln(,);
GV: Để nhập dữ liệu từ bàn phím và để in dữ
liệu lên màn hình ta có tể dùng thủ tục gì ?
* Ghi dữ liệu vào tệp:
Write(,);
Hoặc
Writeln(,);
GV: Giới thiệu các thủ tục đọc dữ liệu từ tệp và
ghi dữ liệu vào tệp.
HS:ghi bài
* Một số hàm thường dùng đối với tệp
văn bản
Hoạt động 6.3: Đọc / ghi tệp văn bản:
GV: Đưa ra ví dụ trong SGK yêu cầu học sinh
viết câu lệnh để đọc dữ liệu từ tệp và ghi dữ liệu
vào tệp.
GV: Giới thiệu để học sinh biết hai hàm
chuẩn thường dùng và ý nghĩa của nó.
+ Hàm EOF();
+ Hàm EOLN();
d. Đóng tệp
HS: Ghi các thủ tục vào vở và tự so sánh sự khác
nhau giữa thủ tục nhập dữ liệu từ bàn phím, in
Để đóng tệp, ta dung thủ tục:
dữ liệu lên màn hình với các thủ tục đọc dữ liệu
từ tệp và ghi dữ liệu vào tệp.
Close ();
Hoạt động 6.4: Đóng tệp.
GV: Đưa ra lý do của việc phải đóng tệp để giáo
dục cho học sinh ý thức bảo mật, an toàn thông
tin.
HS: Tự lấy một vài ví dụ về thủ tục đóng tệp.
VD:
Close(f);
4. Củng cố
- Gọi 1 học sinh khái quát lại vai trò của kiểu tệp và phân loại tệp.
- Học sinh khái quát lại các thao tác phải thực hiện khi đọc dữ liệu từ tệp và ghi
dữ liệu vào tệp (dựa vào hình 16 - SGK).
- Cho học sinh làm một số bài tập trắc nghiệm khách quan.
5. Bài tập về nhà
- Làm bài 5.6 và 5.7 sách bài tập – tr55
Giáo án Tin học 11
61
Tiết theo PPCT: 37
Bài 16: VÍ DỤ LÀM VIỆC VỚI TỆP
I. MỤC TIÊU
1. Kiến thức
- Củng cố khái niệm về dữ liệu tệp và các thủ tục khi xử lí tệp
2. Kĩ năng
- Hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như:
- Mở tệp.
- Gán tên tệp cho biến tệp.
- Đọc / ghi dữ liệu đối với tệp.
- Đóng tệp.
II. ĐỒ DÙNG DẠY HỌC
1. Chuẩn bị của giáo viên
- Phương tiện: Một máy tính có TP và một máy chiếu Project.
- Sách giáo khoa, sách giáo viên, Bài soạn
2. Chuẩn bị của học sinh
- Sách giáo khoa, vở ghi bài.
III. NỘI DUNG BÀI MỚI:
1. Kiểm tra sĩ số lớp
2. Kiểm tra bài cũ: Không
3. Nội dung bài mới
HOẠT ĐỘNG CỦA GV VÀ HS
NỘI DUNG
Hoạt động 1: Ví dụ 1:
Ví dụ 1:
Hoạt động 1.1: Tìm hiểu đầu bài.
GV: Chiếu đầu bài của bài toán lên màn
Chương trình:
hình (bằng Power Point).
HS: Phân tích bài toán, xác định yêu cầu
Program khoang_cach ;
của bài toán theo sự hướng dẫn của giáo
Var
viên.
d: real;
GV: Nhắc lại công thức tính khoảng cách
f: text ;
giữa hai điểm khi biết tọa độ của chúng.
x,y: integer;
HS: Tìm hiểu chương trình.
begin
GV: Trình chiếu chương trình đầy đủ
assign(f,’Trai.txt’);
HS: Quan sát kết quả khi chạy chương
reset(f);
trình.
while not eof(f) do
Hoạt động 1.2: Tìm hiểu chương trình
beign
GV: Dùng Power Point chiếu chương trình read(f,x,y);
(đã soạn trước) lên màn hình (có đánh chỉ
d:= sqrt(x*x + y*y) ;
số các dòng lệnh).
writeln(‘khoang cach:’, d: 10:2);
GV: Gọi một vài học sinh hỏi ý nghĩa của end;
từng câu lệnh trong chương trình.
close(f);
GV: Khái quát lại cả chương trình để học
end.
sinh nắm được sau đó chạy chương trình
(tệp TRAI.TXT đã có sẵn dữ liệu từ
trước).
HS: Ghi yêu cầu vào vở để về nhà làm.
Hoạt động 1.3: Mở rộng bài toán:
Giáo án Tin học 11
Ví dụ 2:
62
GV: Có thể bổ sung thêm yêu cầu “in lên
màn hình khoảng cách của trại xa với trại
của hiệu trưởng nhất”.
Hoạt động 2: Ví dụ 2:
Hoạt động 2.1: Tìm hiểu bài toán
GV: Chiếu đầu bài và hình 17 – SGK lên
màn hình.
HS: Các nhóm xây dựng công thức tính
điện trở tương đương của 5 trường hợp
theo hình vẽ.
GV: Nhắc lại công thức tính điện trở
tương đương của 2 điện trở mắc nối tiếp và
của 2 điện trở mắc song song.
HS: Biểu diễn các biểu thức đó bằng ngôn
ngữ Pascal.
GV: Chuẩn hóa để đạt được công thức
chính xác.
Hoạt động 2.2: Xây dựng chương trình:
GV: Gọi từng học sinh xây dựng chương
trình theo từng bước 1 (có gợi ý khi học
sinh vướng mắc).
+ Khai báo.
+ Gán tên tệp cho biến tệp.
+ Đọc dữ liệu từ tệp.
+ Tính các điện trở tương đương.
+ Ghi vào tệp.
+ Đóng tệp.
Chương trình:
Program dientro;
Var
a: array[1..5] of real;
R1,R2,R3: real;
I: integer;
f1,f2: text;
begin
assign(f1,’RESIST.DAT’;
reset(f1);
assign(f2,’RESIST.EQU’);
rewrite(f2);
while not eof(f1) do
begin
readln(f1,R1,R2,R3);
a[1]:=R1*R2*R3/R1*R2+R2*R3+R3*R1);
a[2]:=R1*R2/(R1+R2)+R3 ;
a[3]:=R1*R3/(R1+R3)+R2 ;
a[4]:=R3*R2/(R3+R2)+R2 ;
a[5]:=R1+R2+R3;
for i:=1 to 5 do write(f2,a[i]:9:3,’ ‘);
writeln(f2);
end;
close(f1); close(f2);
end.
GV: Chính xác và tối ưu hóa chương trình.
Chạy chương trình trên TP.
4. Củng cố
- Giáo viên nhắc lại các thao tác khi làm việc với tệp cùng với các thủ tục của
nó.
5. Bài tập về nhà
- Làm các bài tập 5.8, 5.9 trong sách bài tập – tr 55, 56.
Giáo án Tin học 11
63
Tiết theo PPCT: 38
BÀI TẬP
I. MỤC TIÊU
1. Kiến thức
- Giúp học sinh nhận thức lại nội dung và ý nghĩa của các vấn đề lý thuyết đã
được đề cập trong các bài trước gồm: kiểu tệp, biến tệp, thao tác với tệp,...
2. Kỹ năng
- Thực hiện được những thao tác đơn giản với tệp.
- Giải quyết đựơc một số bài toán có sử dụng kiểu dữ liệu tệp.
II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC
1. Chuẩn bị của GV
- SGK, SGV, Bài soạn, máy chiếu, phòng máy.
2. Chuẩn bị của HS
- SGK, vở ghi.
III. TIẾN TRÌNH BÀI SOẠN
1. Ổn định tổ chức lớp
2. Kiểm tra bài cũ
Kiểm tra xen kẽ trong tiết dạy.
3. Nội dung bài giảng
GV: Trong các bài trước các em đã được làm quen với một kiểu dữ liệu nữa
trong ngôn ngữ lập trình đó là dữ liệu kiểu tệp, nắm được các thao tác với tệp và được
làm các ví dụ có sử dụng kiểu dữ liệu này. Bài hôm nay, chúng ta sẽ ôn tập và làm các
bài tập để nắm rõ hơn kiến thức về dữ liệu kiểu tệp.
Hoạt động của GV và HS
Nội dung kiến thức
* Hoạt động 1: Củng cố kiến thức
1. Một số trường hợp phải dùng tệp:
- GV chia lớp thành 4 nhóm, mỗi nhóm
- Lượng thông tin lưu trữ lớn.
thảo luận một câu hỏi trong SGK (trang
- Cần lưu lại thông tin để sử dụng lâu dài.
89) và lần lượt trả lời theo thứ tự các câu
2. Trong sơ đồ thao tác với tệp, khi cần nhập dữ
hỏi:
liệu cho tệp phải dùng những thao tác:
Nhóm 1: câu 1
- Gắn tên tệp
Nhóm 2: câu 2
- Mở tệp để ghi
Nhóm 3: câu 3
- Ghi dữ liệu vào tệp
Nhóm 4: câu 4
- Đóng tệp để hoàn tất việc ghi dữ liệu vào tệp.
- Các nhóm khác có thể bổ xung, nhận
3. Trước khi sử dụng tệp phải có câu lệnh mở
xét.
tệp để trình biên dịch biết mục đích mở tệp để
- GV nhận xét và bổ xung kiến thức (nếu
đọc hay ghi, đồng thời đặt con trỏ tệp vào vị trí
cần).
thích hợp.
4. Phải dùng câu lệnh đóng tệp sau khi đã kết
thúc ghi dữ liệu vào tệp để hệ thống hoàn tất
việc ghi dữ liệu ra tệp.
Chương trình giải bài toán
Giáo án Tin học 11
64
* Hoạt động 2: Giải quyết một số bài tập
đơn giản về tệp.
Bài tập 1: Viết chương trình tạo tệp
songuyen.txt gồm 100 số nguyên từ 1 đến
100, mỗi số được ghi trên một dòng.
Bài tập 1:
program bt1;
uses crt;
var i:integer;f:text;
begin
assign(f,'D:\ songuyen.txt');
rewrite(f);
for i:=1 to 100 do
writeln(f,i);
close(f);end.
GV: Phân tích đề bài và hướng dẫn học
Bài tập 2:
program tho;
uses crt;
var f1,f2,f,i:integer;
tep:text;
Bài tập 2: Trên đảo hoang có một cặp Thỏ begin
assign(tep,'tho.txt');
non, kể từ tháng thứ 3 trở đi, mỗi cặp Thỏ
rewrite(tep);
non sẽ sinh ra một cặp thỏ non khác. Hãy
f1:=1;f2:=1;
viết chương trình tạo ra một tệp ‘Tho.txt’
writeln(tep,f1);
writeln(tep,f2);
để lưu lại số cặp Thỏ trên đảo trong từng
i:=2;
tháng của 1 năm đầu tiên, số cặp Thỏ của
while(i phân loại chương trình con.
HS: Dựa vào gợi ý của thầy giáo, tư duy để
nhận thấy được hàm chuẩn thì trả về một giá
trị nào đó, còn thủ tục chuẩn thì không trả về
một giá trị nào cả qua tên của nó.
HS: Ghi khái niệm hàm và thủ tục vào vở.
Hoạt động 2.2: Cấu trúc chương trình
con:
Câu hỏi 2: Trình bày cấu trúc của một
chương trình.
HS: Trả lời câu hỏi.
GV: Dùng máy Over head để chiếu cấu trúc
của chương trình con lên màn chiếu.
Hàm (Function) là chương trình con
thực hiện một số thao tác nào đó và trả về
một giá trị qua tên của nó.
Thủ tục (Procedure) là chương trình
con thực hiện một số thao tác nào đó nhưng
không trả về một giá trị nào qua tên của nó.
Cấu trúc của một chương trình con:
Câu hỏi 3: Cấu trúc của chương trình con có []
gì giống và khác cấu trúc của một chương
trình ?
HS: Suy nghĩ và trả lời câu hỏi.
GV: Chính xác hóa kiến thức.
Hoạt động 2.3: Tham số hình thức, biến
cục bộ và biến toàn cục:
GV: Chỉ đưa ra cho học sinh biết được tham
số hình thức là gì ? Nó đóng vai trò gì ?
Biến cục bộ và biến toàn cục là gì, được
khai báo ở đâu, phạm vi hoạt động của nó
Tham số hình thức: Các biến được khai báo
chứ không đi sâu để giải thích cặn kẽ cho
cho dữ liệu ra/vào được gọi là tham số hình
học sinh.
thức. Các biến khai báo dùng riêng cho
HS: Chú ý nghe giảng.
chương trình con là biến cục bộ. Các biến
Hoạt động 2.4: Thực hiện chương trình
của chương trình chính gọi là biến toàn cục.
con
GV: Giải thích để học sinh thấy được
chương trình con chỉ có thể thực hiện khi có
lời gọi nó, đồng thời cũng chỉ ra tham số
thực sự là gì ? Có thể lấy VD về lời gọi hàm
chuẩn hoặc thủ tục chuẩn để minh họa.
4. Hoạt động củng cố
- Giáo viên khái quát lại khái niệm chương trình con và nhấn mạnh cho học sinh về ý
thức xây dựng chương trình có cấu trúc.
5. Bài tập về nhà
- Đọc trước các ví dụ của bài 18 sách giáo khoa tin học 11.
Giáo án Tin học 11
68
- Làm bài tập 6.1 đến 6.5 (trang 60 – SBT tin học 11).
Giáo án Tin học 11
69
Tiết theo PPCT: 40
Bài 18:
VÍ DỤ VỀ CÁCH VIẾT VÀ
SỬ DỤNG CHƯƠNG TRÌNH CON
I - MỤC TIÊU:
Kiến thức:
Học sinh biết được cấu trúc của một thủ tục.
Hiểu được mối liên hệ giữa chương trình và thủ tục.
Phân biệt được tham trị và tham biến.
Phân biệt được tham số hình thức và tham số thực sự.
Phân biệt được biến cục bộ và biến toàn cục.
Kỹ năng:
- Nhận biết được các thành phần trong phần đầu của thủ tục.
- Nhận biết được hai loại tham số trong phần đầu của thủ tục.
- Nhận biết được lời gọi của thủ tục ở chương trình chính cùng với tham số thực
sự.
II - CHUẨN BỊ PHƯƠG TIỆN DẠY HỌC
1. Chuẩn bị của giáo viên
- Chuẩn bị máy chiếu Project và đánh sẵn các chương trình của VD1 và VD2.
- Sách giáo khoa, sách giáo viên, sách bài tập.
2. Chuẩn bị của học sinh
Sách giáo khoa, vở ghi bài.
III - NỘI DUNG BÀI MỚI
1. Kiểm tra sĩ số lớp
2. Kiểm tra bài cũ:
a. Câu hỏi 1: Chương trình con có những loại nào ? Cấu trúc của một chương
trình con ?
b. Câu hỏi 2: Viết chương trình vẽ lên màn hình Hình chữ nhật có dạng:
********
*
*
********
3.
Nội dung bài mới
Hoạt động của GV và HS
Hoạt động 1: Đặt vấn đề:
Nội dung
1.Cách viết và sử dụng thủ tục
GV: Ta thấy chương trình trên bảng mới vẽ
được 1 hình chữ nhật, nếu muốn vẽ 3 hình chữ
nhật thì 3 câu lệnh Writeln ở trên phải lặp đi lặp
lại 3 lần
chương trình sẽ trở nên rất dài
Để khắc phục nhược điểm này ta
nên sử dụng thủ tục.
HS: Chú ý nghe giảng.
Hoạt động 2: Tìm hiểu chương trình
Giáo án Tin học 11
70
GV: Chiếu chương trình bằng máy chiếu Project
sau đó giới thiệu sau đó cho học sinh từng câu
lệnh một để học sinh thấy được:
+
Tên thủ tục.
+
Thân của thủ tục.
+
Lời gọi thủ tục.
+
Hoạt động của chương trình.
HS: Quan sát, theo dõi chương trình và lắng
nghe giáo viên giới thiệu.
Câu hỏi 1: Nếu ta muốn vẽ 4 hình chữ nhật thì
ta phải sửa chương trình trên như thế nào ?
HS: Suy nghĩ, trả lời câu hỏi.
Hoạt động 3: Cấu trúc của thủ tục:
GV: Chiếu lên màn hình cấu trúc của thủ tục.
HS: Theo dõi trên màn chiếu và ghi vào vở.
Câu hỏi 2: Chương trình con Ve_hcn ở trên
khuyết phần nào so với cấu trúc của thủ tục nói
chung ?
HS: Quan sát và trả lời câu hỏi.
GV: TỔng quát lại các phần của thủ tục, phần
nào nhất thiết phải có, phần nào có thể có hoặc
không có.
Chú ý: Giáo viên cần nhấn mạnh một số điểm để
học sinh nắm được:
Procedure Ve_Hcn ;
Begin
Writeln(‘* * * * * * *’);
Writeln(‘*
*’);
Writeln(‘* * * * * * *’);
end;
+ Kết thúc thủ tục sau từ khóa End là
dấu “;”.
+ Thủ tục phải được khai báo trong
phần khai báo của chương trình chính.
Hoạt động 4: Ví dụ 1 (Vẽ hình chữ nhật có sử
dụng tham số)
Hoạt động 4.1: Đặt vấn đề:
GV: Đặt vấn đề như trong SGK đã trình bày để
đi đến cần phải sử dụng 2 tham số dài và rộng.
Hoạt động 4.2: Xây dựng chương trình con:
GV: Hướng dẫn học sinh chia nhỏ yêu cầu để
học sinh có thể viết các câu lệnh tương ứng:
+ Vẽ cạnh trên cùng.
+ Vẽ rong-2 cạnh giữa.
+ Vẽ cạnh dưới cùng.
HS: Viết các câu lệnh theo sự hướng dẫn của
giáo viên.
GV: Chính xác hóa thủ tục rồi chiếu toàn bộ
chương trình để học sinh theo dõi.
Giáo án Tin học 11
71
HS: Quan sát chương trình trên màn chiếu.
Câu hỏi 3: Hãy chỉ ra các lời gọi thủ tục trong
chương trình trên ?
HS: Trả lời câu hỏi.
GV: Từ các lời gọi thủ tục đó giáo viên đưa học
sinh nhận biết được tham số giá trị, đi đến khái
niệm và cách khai báo tham biến và tham trị.
HS: Nghe giảng và ghi khái niệm tham trị và
tham biến vào vở.
Hoạt động 4.2: Ví dụ 2 (Hoán đổi)
Tham trị: Trong lệnh gọi thủ tục, các
tham số hình thức được thay bằng các
tham số thực sự tương ứng là các giá trị
cụ thể, nó được gọi là tham số giá trị
(tham trị).
Tham biến: Trong lện gọi thủ tục, các
tham số hình thức được thay các tham số
thực sự tương ứng là các biến chứa dữ
liệu ra được gọi là các tham số biến
(tham số biến).
Để phân biệt tham biến và tham trị,
Pascal sử dụng từ khóa var để khai báo
những tham số biến.
GV: Chiếu yêu cầu của đầu bài và hướng dẫn
học sinh đi đến thuật toán hoán đổi.
HS: Theo dõi, nghiên cứu đầu bài và tìm hiểu
thuật toán hoán đổi theo sự hướng dẫn của giáo
viên.
GV: Chiếu chương trình lên màn hình để học
sinh theo dõi .
Chạy chương trình.
GV: Phải làm sao cho học sinh nhận thấy được
hoạt động của tham số biến.
HS: Quan sát kết quả khi chạy chương trình.
•
Mở rộng ví dụ
GV: Yêu cầu học sinh về nhà tìm hiểu chương
trình trong SGK (trang 102) và giải thích kết
quả ?
4. Hoạt động củng cố
- Giáo viên yêu cầu học sinh nhắc lại cấu trúc của thủ tục, tha số hình thức, tham
số thực sự, biến cụa bộ, biến toàn cục, tham số giá trị, tham số biến.
5. Bài tập về nhà.
- Xem lại các ví dụ trong bài.
- Đọc trước cách viết và sử dụng hàm.
Giáo án Tin học 11
72
Tiết theo PPCT: 41
Bài 18:
VÍ DỤ VỀ CÁCH VIẾT VÀ
SỬ DỤNG CHƯƠNG TRÌNH CON
(Tiết 2)
I. MỤC ĐÍCH
1. Kiến thức
Học sinh cần nắm được sự giống nhau và khác nhau giữa thủ tục và hàm.
2. Kĩ năng
Học sinh có kỹ năng nhận biết được các thành phần trong đầu hàm. Nhận
biết được câu lệnh sử dụng hàm ở trong chương trình chính cùng các tham số thực sự.
II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC
1.
Chuẩn bị của giáo viên
- Chuẩn bị bảng phụ nêu sự giống nhau và khác nhau giữa thủ tục và hàm, cách
viết đầu hàm, 2 chương trình của hai ví dụ trong bài.
- Sách giáo khoa, sách giáo viên, sách bài tập
2.
Chuẩn bị của học sinh
- Sách giáo khoa, vở ghi bài.
III. NỘI DUNG BÀI MỚI
1. Kiểm tra sĩ số lớp
2. Kiểm tra bài cũ:
3. Nội dung bài mới
Hoạt động của GV và HS
Hoạt động 1: giờ trước chúng ta đã được học
cách viết và sử dụng thủ tục, hôm nay chúng ta
cùng nghiên cứu cách viết và sử dụng hàm.
Cũng như thủ tục, hàm là chương trình con.
Điểm kah1c nhau giữa thủ tục và hàm là ở chỗ
hàm luôn cho một giá trị kết quả thuộc kiểu
xác định và giá trị đó được gán cho tên hàm,
kiểu của hàm phải được khai báo trong đầu
của hàm. Vậy cách khai báo như thề nào
chúng ta vào bài mới.
GV: Đưa ra các viết đầu hàm đã viết sẵn trên
giấy to, giải thích cho học sinh hiểu các khái
niệm: tên hàm, danh sách tham số, kiểu của
hàm.
GV: Gọi một học sinh nêu sự giống nhau và
khác nhau giữa hàm và thủ tục.
HS: Trả lời
Nội dung
Cách viết và sử dụng hàm
Khai báo phần đầu một hàm như sau
Function ([]):;
Do hàm luôn trả về một giá trị qua tên của
nó cho nên trong thân hàm cần có lệnh gán
giá trị cho tên hàm:
:= ;
Hoạt động 3: VD 1: Chương trình thực hiện
giản ước một phân số trong đó có sử dụng hàm
tính ước số chung lớn nhất (USCLN) của 2 số
nguyên (đã được viết sẵn trên khổ giấy lớn)
GV: Đưa ra chương trình để học sinh theo dõi
(đã được viết sẵn trên khổ giấy lớn).
Giáo án Tin học 11
73
GV: Hãy kể tên các biến cục bộ, biến toàn
cục, tham số hình thức, tham số thực sự trong
chương trình trên ?
HS: Quan sát chương trình và trả lời câu hỏi.
GV: Giải thích từng câu lệnh và đưa nhấn
mạnh những điểm khác với thủ tục (phần đầu
hàm, câu lệnh trả giá trị cho tên hàm, lời gọi
hàm).
Hoạt động 3: VD2: Chương trình xác định số
nhỏ nhất trong 3 số nhập từ bàn phím, trong
đó có sử dụng hàm tìm số nhỏ nhất trong hai
số.
GV: Đưa ra chương trình (đã được viết sẵn
trong bảng phụ).
HS: Theo dõi vào chương trình, ghi chép theo
ý hiểu.
GV: Giải thích từng câu lệnh trong đó chú ý
về trường hợp “lời gọi hàm tham gia vào lời
gọi hàm khác và đóng vai trò là một tham số
thực sự ”.
4. Hoạt động củng cố
- Giáo viên nhắc lại cấu trúc của một hàm, nhấn mạnh điểm khác biệt so với thủ
tục.
- Cho học sinh làm một số bài tập trắc nghiệm khách quan.
5. Bài tập về nhà
- Xem lại các ví dụ trong sách giáo khoa, đọc trước bài thực hành 6.
Giáo án Tin học 11
74
Tiết theo PPCT: 42, 43
BÀI TẬP VÀ THỰC HÀNH 6
I. MỤC ĐÍCH.
1. Kiến thức:
- Củng cố khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số
biến, tham số thực sự, biến toàn cục, biến cục bộ.
2. Kỹ năng:
- Rèn luyện cho HS kỹ năng lập trình giải quyết một số bài toán đơn giản.
- Nâng cao kĩ năng viết chương trình, rèn luyện tác phong, tư duy lập trình.
II - ĐỒ DÙNG DẠY HỌC:
1. Chuẩn bị của giáo viên.
- Bài soạn.
- Sách giáo khoa, sách giáo viên, phòng máy.
2. Chuẩn bị của học sinh
- Vở ghi bài.
- Sách giáo khoa, đọc trước bài thực hành.
III - HOẠT ĐỘNG DAY-HỌC:
1. Ổn định lớp:
2. Kiểm tra bài cũ: Không
3. Nội dung:
Câu a:
Uses crt;
type
str79 = string[79];
var s1, s2: str79;
stop: boolean;
dong:byte;
procedure CatDan(s1: str79; var s2: str79);
begin
s2:= copy(s1,2,length(s1)-1)+s1[1];
end;
Procedure CanGiua(var s:str79);
Var i,n: integer;
Begin
n:=length(s); n:=(80-n) div 2; for i:=1 to n do s:= ' '+s;
end;
Procedure ChuChay(s1:str79; dong:byte);
Var s2:str79 ;
stop: boolean;
Begin
Clrscr;
CanGiua(s1);
Clrscr;
stop:=false;
While not(stop) do
Begin
Gotoxy(1,dong);
Write(s1);
Delay(100);
CatDan(s1,s2);
Giáo án Tin học 11
75
s1:=s2;
stop:= keypressed;
end;
end;
Begin {Main}
Clrscr;
Write('Nhap xau chu:'); readln(s1);
Write('Nhap dong xuat hien:');readln(dong);
ChuChay(s1,dong);
Readln
End.
Câu b:
Program Chu_chay;
Uses crt;
Type str79 = string[79];
var s1, s2: str79;
stop: boolean;
procedure CatDan(s1: str79; var s2: str79);
begin
s2:= copy(s1,2,length(s1)-1)+s1[1];
end;
Procedure CanGiua(var s:str79);
Var i,n: integer;
Begin
n:=length(s); n:=(80-n) div 2; for i:=1 to n do s:= ' '+s;
end;
begin
clrscr;
write('Nhap xau s1:');readln(s1);
CanGiua(s1);
Clrscr;
stop:=false;
While not(stop) do
Begin
Gotoxy(1,12);{*chuyen con tro ®en dau dong 12*}
Write(s1);
Delay(500); {* Dung 500 miligiay*}
CatDan(s1,s2);
s1:=s2; stop:=keypressed;{Nhan mot phim bat ky de ket thuc}
end;
readln
End.
4- CỦNG CỐ:
- Chương trình con: thủ tục, hàm, tham trị, tham biến.
5- BÀI TẬP VỀ NHÀ:
- Học bài cũ.
- Làm lại các bài thực hành.
Ngày……tháng……năm
Giáo án Tin học 11
76
Tiết theo PPCT: 44, 45
BÀI TẬP VÀ THỰC HÀNH 7
I. MỤC ĐÍCH.
1. Kiến thức:
- Củng cố khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số
biến, tham số thực sự, biến toàn cục, biến cục bộ.
2. Kỹ năng:
- Rèn luyện cho HS kỹ năng lập trình giải quyết một số bài toán đơn giản.
- Nâng cao kĩ năng viết chương trình, rèn luyện tác phong, tư duy lập trình.
II- ĐỒ DÙNG DẠY HỌC:
1. Chuẩn bị của giáo viên.
- Bài soạn.
- Sách giáo khoa, sách giáo viên, phòng máy.
2. Chuẩn bị của học sinh
- Vở ghi bài.
- Sách giáo khoa, đọc trước bài thực hành.
III- HOẠT ĐỘNG DAY-HỌC:
1. Ổn định lớp:
2. Kiểm tra bài cũ: Không
3. Nội dung:
a) Hoạt động 1:Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài
các cạnh, chu vi, diện tích, kiểm tra các tính chất đều, cân, vuông của tam giác được
trình bày dưới đây.
- Giả thiết tam giác được xác định bởi toạ độ của ba đỉnh. Ta sử dụng kiểu bản
ghi để mô tả một tam giác:
type
Diem= record
x, y: real ;
end;
Tamgiac= record
A, B, C: Diem;
end;
Ta xây dựng các thủ tục và hàm:
• Thủ tục nhập dữ liệu vào là biến mô tả tam giác R và dữ liệu ra là độ dài của
ba cạnh a, b, c:
Procedure
Daicanh(var R: Tamgiac; var a,b,c:real);
• Hàm tính chu vi của tam giác R:
function Chuvi(var R:Tamgiac): real;
• Hàm tích diện tích của tam giác R:
function Dientich(var R: Tamgiac): real;
• Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra là tích chất của tam
giác (Deu hay Can hay Vuong):
Procedure Tinhchat(var R: Tamgiac; var Deu,Can,Vuong: boolean) ;
• Thủ tục hiển thị toạ độ ba đỉnh tam giác lên màn hình:
Procedure Hienthi(var R: Tamgiac);
• Hàm tính khoảng cách giữa hai điểm P, Q:
function Kh_cach(P,Q: Diem): real;
b) Hoạt động 2:Tìm hiểu chương trình nhập vào toạ độ ba đỉnh một tam giác và
sử dụng các hàm, thủ tục được xây dựng dưới đây để khảo sát các tích chất của tam
giác.
Giáo án Tin học 11
77
uses crt;
const eps=1.0E-6;
type
Diem= record
x, y: real;
end;
Tamgiac= record
A, B, C: Diem;
End;
Var T: Tamgiac;
Deu, Can,Vuong:boolean;
function Kh_cach(P,Q: Diem): real;
begin
Kh_cach:= sqrt((P.x-Q.x)*(P.x-Q.x)+(P.y-Q.y)*(P.y-Q.y));
end;
Procedure
Daicanh(var R: Tamgiac; var a,b,c:real);
begin
a:= Kh_cach(R.B, R.C);
b:= Kh_cach(R.A, R.C);
c:= Kh_cach(R.A, R.B);
end;
function Chuvi(var R: Tamgiac): real;
var a, b, c:real;
begin
Daicanh(R, a, b, c);
Chuvi:=a+b+c;
end;
function Dientich(var R: Tamgiac): real;
var a, b, c, p: real;
begin
Daicanh(R, a, b, c);
P:=(a+b+c)/2;
Dientich:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Procedure Hienthi(var R: Tamgiac);
Begin
Writeln(‘ Toa do ba dinh cua tam giac la:’);
Writeln(‘- Dinh A(‘ ,R.A.x:0:3,’, ‘,R.A.y:0:3,’)’);
Writeln(‘- Dinh B(‘ ,R.B.x:0:3,’, ‘,R.B.y:0:3,’)’);
Writeln(‘- Dinh C(‘ ,R.C.x:0:3,’, ‘,R.C.y:0:3,’)’);
end;
Procedure Tinhchat(var R: Tamgiac; var Deu,Can,Vuong: boolean) ;
Var a, b, c: real;
begin
Deu:= false; Can:= false; Vuong:= false;
Daicanh(R, a, b, c);
if (abs(a-b)< eps) and (abs(a-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 trình bày cách khai báo biến? Cho ví dụ Giáo án Tin học 11 11 3 Nội dung bài mới: Hoạt động của GV và HS 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ừ,... GV: Kết luận Nội dung kiến thức 1 Phép toán (Đưa ra bảng các phép toán trong toán học và trong Pascal) 2 Biểu thức số học Ví dụ: (a + b)*(z – 4)/(x + y) 5*a + 6*b - GV: Lấy ví dụ Giáo án Tin học 11 Biểu thức số học là một biến kiểu số hoặc mộ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ạn phép toán số học - Viết biểu thức toán số học trong lập trình tuân theo quy tắc sau:... 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... End 4 – BÀI VỀ NHÀ: - Xem lại các bài tập đã làm; Giáo án Tin học 11 32 Tiết theo PPCT: 18 BÀI TẬP I – 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... các bài tập -Giáo án Tin học 11 33 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... 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 độ: Giáo án Tin học 11 17 - 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... 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: Giáo án Tin học 11 26 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?... BÀI 11: KIỂU MẢNG I MỤC TIÊU 1 Kiến thức: - 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. .. Bài toán: S = 1 + 2 + 3 +…+ 100 Em hãy viết đoạn CT tính tổng trên - Học bài cũ Ngày giảng : Tiết theo PPCT: 15 BÀI TẬP VÀ THỰC HÀNH 2 I – MỤC TIÊU: Kỹ năng: (Học sinh) - 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. .. 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: Hoạt động của GV và HS Nội dung ... hàm thông dụng xâu Giáo án Tin học 11 46 II CHUẨN BỊ CỦA GV VÀ HS: Chuẩn bị GV: Giáo án, phấn, bảng, phòng thực hành Chuẩn bị HS: Sách giáo khoa, ghi,… III TIẾN TRÌNH DẠY HỌC: Kiểm tra cũ: Câu... có thuật toán để giải Thuật toán Tong_1a toán sau Bước 1: S:=1/a; N = 0; Bước 2: N:=N+1; Giáo án Tin học 11 23 GV: Hai thuật toán dùng để giải toán 1, em quan sát cho biết hai thuật toán có khác... tập làm; Giáo án Tin học 11 32 Tiết theo PPCT: 18 BÀI TẬP I – MỤC TIÊU: - Củng cố kiến thức học 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: