Tải bản đầy đủ (.doc) (39 trang)

GA 11 sua theo PPCT moi ki 2 nam 2020 2021

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (271.13 KB, 39 trang )

Năm học: 2020 – 2021

Bài soạn số 14
Ngày soạn: 10, 11, 12, 13/1/2020
Tiết dạy: 20, 21, 22, 23, 24, 25, 26, 27, 28
Tuần dạy: 20, 21, 22, 23, 24
CHỦ ĐỀ: KIỂU DỮ LIỆU CÓ CẤU TRÚC
PHẦN: KIỂU MẢNG
I. Xác định chủ đề bài học
- Tên chủ đề: Kiểu mảng gồm Bài 11: “Kiểu mảng” dạy trong 9 tiết gồm 4 tiết lí thuyết và 5 tiết bài
tập và thực hành. Trong khn khổ chương trình, chỉ xét mảng một chiều.
- Vấn đề cần giải quyết trong bài học này là :
• Biết kiểu mảng là một kiểu dữ liệu có cấu trúc, cần thiết và tiện dụng trong lập trình. Vì vậy, các
ngơn ngữ lập trình thơng dụng đều cho phép người lập trình dễ dàng khai báo kiểu dữ liệu mảng.
• Hiểu mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Khi khai báo mảng một chiều cần
khai báo số lượng các phẩn tử, kiểu phần tử và cách đánh số các phần tử của mảng.
• Truy cập phần tử mảng một chiều: <tên biến mảng >[chỉ số]
• Xây dựng được thuật tốn, sử dụng được kiểu mảng một chiều để giải bài tốn tìm phần tử lớn nhất
của dãy số nguyên.
II. Xác định chuẩn kiến thức kĩ năng
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 các 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 tốn sử dụng các phần tử của mảng.
3. Thái độ:
• Tạo tiền đề cho học sinh ham thích học lập trình.
4. Năng lực cần đạt được:
- Năng lực nhận biết và giải quyết vấn đề, làm quen với dữ liệu có cấu trúc.
III. CHUẨN BỊ:


Giáo viên:
– Giáo án, tranh ảnh
– Tổ chức hoạt động theo nhóm.
Học sinh:
– Sách giáo khoa, vở ghi.
– Đọc bài trước.
VI. KHUNG TIẾN TRÌNH DẠY HỌC
Hoạt động
Nội dung
Hoạt động học tập của HS
Thời gian
Khởi động
Tình huống xuất phát
Tạo động cơ xuất phát
15 phút
- Khái niệm kiểu dữ liệu mảng - Tìm hiểu kiến thức qua SGK

Hình thành kiến
thức

- Khai báo mảng và truy cập
đến từng phần tử của mảng
- Hoạt động nhóm
trong Pascal
- Nhập dữ liệu cho mảng và tìm
- Cá nhân tham khảo SGK và
phần tử lớn nhất (nhỏ nhất) của
đưa ra vấn đề
mảng
- Cá nhân tham khảo SGK và

- Sắp xếp trong mảng
đưa ra vấn đề
- Tìm kiếm phần tử thỏa mãn
- Cá nhân tham khảo SGK và
điều kiện nào đó trong mảng
đưa ra vấn đề

Luyện tập – Vận
- Làm bài tập thực hành số 3,
dụng- Tìm tịi
- Thực hiện hoạt động
số 4 và các bài tập mở rộng.
mở rộng
V. HƯỚNG DẪN CỤ THỂ TIẾN TRÌNH DẠY – HỌC
Giáo án Tin học 11

 1 

10 phút
20 phút
45 phút
45 phút
45 phút
225 phút


Năm học: 2020 – 2021

Tiết 1: Dạy xong hoạt động khởi động và khai báo biến mảng, truy cập đến từng phần tử của mảng
trong Pascal

1. Hoạt động khởi động:
- Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu về kiểu mảng
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh có nhu cầu tìm hiểu về kiểu mảng
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
Bài tốn: Lập trình nhập vào từ bàn phím nhiệt độ của 7 ngày trong - Suy nghĩ trả lời.
tuần. Sau đó, tính nhiệt độ trung bình của tuần đó và cho biết có bao
nhiêu ngày có nhiệt độ lớn hơn nhiệt độ trung bình của tuần.
- Yêu cầu: xác định số lượng và kiểu dữ liệu cho các biến của bài toán.
Để đém số ngày có nhiệt độ lớn hơn nhiệt độ trung bình của tuần ta
phải sử dụng câu lệnh nào?
- Hỏi: Khi mở rộng bài toán với nhiệt độ của một tháng, một năm thì
có những hạn chế nào?
- Dẫn dắt: Để khắc phục những hạn chế trên, người ta thường ghép
chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh
cho một phần tử một chỉ số. Đó là kiểu mảng một chiều. Dẫn dắt sang
phần tìm hiểu mảng một chiều.
2. Hoạt động hình thành kiến thức:
2. 1. Khái niệm mảng một chiều
- Mục tiêu: Biết Khái niệm mảng một chiều
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết khái niệm mảng một chiều
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Chiếu đề bài và chương trình ví dụ lên bảng. 1. Quan sát trên màn hình, suy nghĩ và trả lời.

- Hỏi: Khi N lớn thì chương trình trên có những - Phải khai báo quá nhiều biến. Chương trình
hạn chế như thế nào?
phải viết rất dài.
- Dẫn dắt: Để khắc phục những hạn chế trên,
người ta thường ghép chung 7 biến trên thành 2. Nghiên cứu sách giáo khoa để trả lời.
một dãy và đặt cho nó chung một tên và đánh - Mảng một chiều là dãy hữu hạn các phần tử có
cho một phần tử một chỉ số.
cùng kiểu dữ liệu. Các phần tử trong mảng có
2. Yêu cầu học sinh tham khảo sách giáo khoa cùng chung một tên và phân biệt nhau bởi chỉ số.
và hỏi: Em hiểu như thế nào về mảng một - Để mô tả mảng một chiều cần xác định được
chiều?
kiểu của các phần tử và cách đánh số các phần tử
- Hỏi: Để mô tả mảng một chiều, ta cần xác của nó.
định những yếu tố nào?
2.2. Tạo kiểu mảng một chiều và khai báo biến mảng một chiều, truy cập đến từng phần tử của mảng
trong Pascal
- Mục tiêu: Biết khai báo và truy cập đến từng phần tử của kiểu mảng một chiều
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết biết khai báo và truy cập đến từng phần tử của kiểu mảng một chiều

Giáo án Tin học 11

 2 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV

HOẠT ĐỘNG CỦA HS
1. Yêu cầu học sinh nghiên cứu sách giáo 1. Tham khảo sách giáo khoa và trả lời
khoa và cho biết cách tạo kiểu dữ liệu mảng TYPE
tên_km=
Array[kiểu_cs]
Of
một chiều trong ngơn ngữ lập trình Pascal.
kiểu_thành_phần;
- Tìm một ví dụ để minh họa.
- Ví dụ: Type mmc=array[1..100] of integer;
- Gọi học sinh khác, hỏi: Ý nghĩa của lệnh - Tạo một kiểu dữ liệu mới có tên mmc, gồm 100
bạn vừa viết?
phần tử, có kiểu nguyên.
- Quan sát bảng và chọn khai báo đúng.
- Chiếu lên bảng một số khai báo kiểu mảng
một chiều
Arrayr=array[1..200] of real;
Type
Arrayb=array[-100..0] of boolean;
Arrayr=array[1..200] of real;
2. Tham khảo sách giáo khoa và trả lời
Arrayr=array[byte] of real;
- VAR tên_biến : tên_km;
Arrayb=array[-100..0] of boolean;
- Ví dụ: Var a : mmc;
- Hỏi: Những khai báo nào đúng?
- Khai báo một biến mảng một chiều.
2. Yêu cầu học sinh cho biết cách khai báo
biến và một ví dụ khai báo một biến mảng - A đã chiếm 200 byte trong bộ nhớ.
ứng với kiểu dữ liệu vừa tạo.

- Gọi học sinh khác, hỏi: Ý nghĩa của lệnh
bạn vừa viết?
- Dung lượng bộ nhớ của biến a đã chiếm là
bao nhiêu?
- Chú ý cho học sinh về cách đặt tên kiểu dữ
liệu và tên biến, tránh nhầm lẫn.
3. Giới thiệu cách tham chiếu đến từng phần 3. Theo dõi hướng dẫn của GV và độc lập suy
tử của mảng một chiều. Yêu cầu học sinh lấy nghĩ để trả lời.
một ví dụ.
a[1] là phần tử ở vị trí 1 của mảng a.
a[i] là phần tử ở vị trí i của mảng a.
Tiết 2: Nhập dữ liệu cho mảng từ bàn phím và tìm giá trị lớn nhất (nhỏ nhất) trong mảng
2.3. Tìm phần tử lớn nhất của dãy số nguyên
- Mục tiêu: Biết nhập dữ liệu cho mảng và tìm phần tử lớn nhất của kiểu mảng một chiều
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh Biết nhập dữ liệu cho mảng và tìm phần tử lớn nhất của kiểu mảng một chiều

Giáo án Tin học 11

 3 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Trong cuộc sống có rất nhiều việc cần tìm giá trị lớn nhất, ví
dụ như cuối học kì I cần tìm người có điểm trung bình cao nhất

lớp, thấp nhất lớp, tìm người có chiều cao cao nhất lớp, hay
trong xã hội tìm người giàu nhất Việt Nam, .... Những bài tốn
đó đều có thể lập trình cho máy tính làm việc vì vậy để đơn -Input: số nguyên N (N≤250) và
giản bài toán người ta phát biểu bài toán như sau: Cho số dãy số nguyên A1, A2, ..., An
nguyên dương N (N ≤ 500) và dãy số nguyên A có N phần tử - Output: Chỉ số và giá trị của
A1, ..., AN. Tìm phần tử lớn nhất trong dãy A. Biết dữ liệu dược một phần tử lớn nhất trong dãy
nhập vào từ bàn phím.
đã cho Hs suy nghĩ trả lời
Yêu cầu học sinh xác định bài tốn?
- Đó là phần tử cuối cùng trong
- Hỏi: Em hãy nêu thuật toán để giải bài toán trên?
mảng mà bằng max
- Hướng dẫn học sinh xây dựng thuật toán
- Tập trung nghe giảng và ghi
- Theo thuật tốn nếu dãy có nhiều phần tử đạt giá trị lớn nhất bài
thì chỉ số vt tìm được trong thuật toán sẽ là chỉ số của phần tử - Thực hiện viết chương trình
max nào của mảng
- Yêu cầu học sinh lên bảng thực hiện viết chương trình
- Mở rộng bài tốn với tìm giá trị nhỏ nhất và đếm số lượng
bằng phần tử lớn nhất, nhỏ nhất.
Tiết 3: Sắp xếp trong mảng
2.4. Sắp xếp dãy số nguyên bằng thuật toán tráo đổi
- Mục tiêu: Biết nhập viết chương trình sắp xếp cho biến kiểu mảng một chiều
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh Biết nhập viết chương trình sắp xếp cho biến kiểu mảng một chiều
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Yêu cầu học sinh xác định bài toán?

-Input: số nguyên N (N≤250) và dãy số
- Hỏi: Em hãy nêu thuật toán để giải bài toán trên?
nguyên A1, A2, ..., An
- Hướng dẫn học sinh xây dựng thuật toán
- Output: Chỉ số và giá trị của một phần tử
- Yêu cầu học sinh lên bảng thực hiện viết chương lớn nhất trong dãy đã cho
trình
- Hs suy nghĩ trả lời
- Đối với lớp A1 đến A4 thì u cầu học sinh hồn - Tập trung nghe giảng và ghi bài
thiện chương trình khơng hướng dẫn bằng ngơn ngữ - Thực hiện viết chương trình
tự nhiên. Còn đối với các lớp còn lại, giáo viên
hướng dẫn các bước bằng ngôn ngữ tự nhiên rồi gọi
học sinh hồn thiện chương trình bằng ngơn ngữ
Pascal theo các bước
Tiết 4: Tìm kiếm phần tử thỏa mãn
2. 5. Tìm kiếm tuần tự
- Mục tiêu: Biết nhập viết chương trình tìm kiếm cho biến kiểu mảng một chiều
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh Biết nhập viết chương trình tìm kiếm cho biến kiểu mảng một chiều
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Đưa ra yêu cầu trong thực tế của bài tốn tìm kiếm -Input: số ngun N (N≤250) và dãy số
và phát biểu bài toán.
nguyên A1, A2, ..., An , số nguyên K
- Yêu cầu học sinh xác định bài tốn?
- Output: Vị trí i mà ai = k hoặc thơng báo
- Hỏi: Em hãy nêu thuật tốn để giải bài tốn trên?
khơng có phần tử nào trong dãy có giá trị

- Hướng dẫn học sinh xây dựng thuật toán
bằng k
- Yêu cầu học sinh lên bảng thực hiện viết chương - Suy nghĩ trả lời
Giáo án Tin học 11

 4 


Năm học: 2020 – 2021

trình
- Tập trung nghe giảng và ghi bài
- Đối với lớp A1 đến A4 thì yêu cầu học sinh hồn - Thực hiện viết chương trình
thiện chương trình khơng hướng dẫn bằng ngơn ngữ
tự nhiên. Cịn đối với các lớp còn lại, giáo viên
hướng dẫn các bước bằng ngơn ngữ tự nhiên rồi gọi
học sinh hồn thiện chương trình bằng ngơn ngữ
Pascal theo các bước
Tiết 5: Bài tập và thực hành 3
2.6. Bài thực hành số 3:
2.6.1. Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Tìm hiểu chương trình ở câu a, sách giáo 1. Quan sát, chú ý và trả lời.
khoa, trang 63 và chạy thử chương trình.
- Khai báo thư viện chương trình con Crt để sử
- Chiếu chương trình lên bảng.
dụng được thủ tục Clrscr;
- Hỏi: Khai báo Uses CRT; có ý nghĩa gì?
- Tên kiểu dữ liệu.

- Hỏi: Myarray là tên kiểu dữ liệu hay tên biến? - nmax là số phần tử tối đa có thể chứa của biến
- Hỏi: Vai trò của nmax và n có gì khác nhau?
mảng a. n là số phần tử thực tế của a.
- Hỏi: Những dòng lệnh nào dùng để tạo biến - Lệnh khai báo kiểu và khai báo biến.
mảng a?
- Quan sát chương trình thực hiện và kết quả trên
- Thực hiện chương trình để học sinh thấy kết màn hình.
quả.
- Lệnh sinh ngẫu nhíên giá trị cho mảng a từ -299
- Hỏi: Lệnh gán a[i]:=random(300)- đến 299.
random(300) có ý nghĩa gì?
- In ra màn hình giá trị của từng phần tử trong
- Hỏi: Lệnh For i:=1 to n do Write(A[i]:5); có ý mảng a.
nghĩa gì?
- Cộng các phần tử chia hết cho k.
- Hỏi: Lệnh For-Do cuối cùng thực hiện nhiệm
vụ gì?
- Có số lần đúng bằng số phần tử a[i] chia hết k.
- Hỏi: Lệnh s:=s+a[i]; được thực hiện bao nhiêu - Quan sát GV thực hiện chương trình và kết quả
lần?
trên màn hình.
- Thực hiện lại chương trình lần cuối để học 2. Quan sát và chú ý theo dõi các câu hỏi của GV:
sinh thấy kết quả.
- Quan sát các lệnh và suy nghĩ vị trí cần sửa trong
2. Sửa chương trình câu a để được chương trình chương trình câu a.
giải quyết bài toán ở câu b.
- Dùng để lưu số lượng đếm được.
- Chiếu lên màn hình các lệnh cần thêm vào - Đếm số dương hoặc đếm số âm.
chương trình ở câu a.
- Hỏi: Ý nghĩa của biến Posi và neg?

- Hỏi: Chức năng của lệnh?
If a[i]>0 then posi:=posi+1
else if a[i]<0 then neg:=neg+1;
- Yêu cầu học sinh thêm vào vị trí cần thiết để - Chỉ ra vị trí cần thêm vào trong chương trình.
chương trình đếm được số .
- Lưu chương trình. Thực hiện chương trình và
- Yêu cầu học sinh gõ nội dung và lưu lại với thơng báo kết quả.
tên caub.pas. Thực hiện chương trình và báo
cáo kết quả.
Tiết 6: Bài tập và thực hành 3
2.6.1. Bài tập tự viết
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Viết chương trình nhập vào từ bàn phím số ngun 1. Quan sát, chú ý và trả lời.
dương N (0 ≤N≤500) và dãy số thực A gồm N phần tử. - Viết đoạn chương trình nhập N và dãy A
Sau đó, hiển thị lên màn hình
a. Dãy số vừa nhập
b. Tìm phần tử lớn nhất, nhỏ nhất trong dãy
- Cho i chạy từ 1 đến N rồi dùng lệnh Write
- Nhắc lại các bước nhập dữ liệu cho mảng
hiển thị A[i]
Giáo án Tin học 11

 5 


Năm học: 2020 – 2021

B1: Nhập N
- Viết tiếp chương trình câu a

B2: Cho i: 1  N làm
- Viết chương trình
Cv1: thơng báo nhập phần tử thứ i
Cv2: Nhập A[i]
- Hiển thị mảng A lên màn hình ta làm như thế nào?
- Hs nhớ lại thuật tốn tìm max, tìm min làm tiếp.
- Đối với các lớp từ A1 đến A4 thì khơng hướng dẫn
các bước bằng lời, các lớp còn lại hướng dẫn chi tiết
bằng lời rồi yêu cầu học sinh chuyển qua chương trình
Pascal
- Lớp A1, A3 yêu cầu học sinh tìm Min, Max ngay
trong quá trình nhập dữ liệu bằng cách gán max = giá
trị nhỏ nhất của tập số thực và Min = giá trị lớn nhất
của tập số thực
Tiết 7: Bài tập và thực hành 4
2.7. Bài thực hành số 4:
2.7.1. Tìm hiểu chương trình diễn đạt của thuật tốn sắp xếp
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Chú ý theo dõi những dẫn dắt của GV để trả
1. Gợi ý cho học sinh thuật toán sắp xếp tăng dần.
lời câu hỏi
- Lấy một ví dụ thực tiễn: Người mù sắp xếp một
dãy các viên bi theo kích thước khơng giảm.
- Lần lượt lấy từng phần tử từ trái qua phải.
- Yêu cầu: Vạch ra các bước để sắp xếp các phần
- Cứ mỗi phần tử ta đem so sánh lần lượt với
tử của một mảng không giảm.
các phần tử đứng bên phải của nó.
2. Tìm hiểu chương trình ví dụ, sách giáo khoa,

- Nếu nhỏ hơn thì đổi chỗ.
trang 65.
2. Quan sát chương trình, suy nghĩ câu hỏi và
- Chiếu chương trình ví dụ lên bảng.
trả lời.
- Hỏi: Vai trò của biến i, j trong chương trình? mỗi
- Biến i, j dùng làm chỉ số.
vịng lặp For trong đoạn chương trình sắp xếp có
- Mỗi vịng lặp For ứng với mỗi phép duyệt lần
ý nghĩa gì?
lượt.
- Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg;
- Dùng để đổi giá trị của hai phần tử a[i] với
có ý nghĩa gì?
a[i+1].
- Thực hiện chương trình, nhập dữ liệu để học
- Quan sát GV thực hiện chương trình.
sinh thấy kết quả chương trình.
- Chương trình sắp xếp dãy số thao thứ tự
- Hỏi: Chương trình làm cơng việc gì?
khơng giảm.
3. Sửa chương trình để giải quyết bài tốn ở câu b.
3. Quan sát yêu cầu mới, chú ý định hướng giải
- Đặt yêu cầu mới: Khai báo thêm biến nguyên
quyết của GV.
Dem và bổ sung vào chương trình đoạn lệnh cần
thiết để biến Dem tính số lần thực hiện tráo đổi
trong thuật tốn. In kết quả tìm được ra màn hình.
tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg;
- Hỏi: Đoạn chương trình nào dùng để thực hiện

tráo đổi giá trị?
- Dem := Dem+1;
- Yêu cầu hoc sinh viết lệnh để đếm số lần tráo
đổi.
- Ngay sau đoạn lệnh tráo đổi.
- Hỏi: Lệnh này được viết ở vị trí nào trong
chương trình?
- Soạn chương trình vào máy, thực hiện chương
- Yêu cầu học sinh soạn chương trình vào máy.
trình và thơng báo kết quả.
- u cầu học sinh nhập dữ liệu vào của GV và
- Nhập dữ liệu theo yêu cầu của GV, thực hiện
thông báo kết quả.
chương trình và thơng báo kết quả sau khi thực
- Đánh giá kết quả của học sinh.
hiện.
Tiết 8: Bài tập và thực hành 4
2.7.2. Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài tốn sao cho chương trình chạy
nhanh hơn
Giáo án Tin học 11

 6 


Năm học: 2020 – 2021

HOẠT ĐỘNG CỦA GV
1. Xác định bài toán.
- Chiếu đề bài lên bảng.
- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?

- Gợi ý để học sinh đề xuất thuật tốn thơ.
2. Giới thiệu chương trình chưa cải tiến.
- Chiếu chương trình diễn đạt thuật tốn.
- Thực hiện chương trình để học sinh biết thời gian
thực hiện chương trình và kết quả của chương trình.
- Hỏi: Trong chương trình phải thực hiện bao nhiêu
phép cộng?
- Hỏi: Có cách nào để cải tiến?

HOẠT ĐỘNG CỦA HS
1. Quan sát đề bài và trả lời câu hỏi.
- Vào: Mảng A gồm n phần tử.
- Ra: Mảng B gồm n phần tử.
- Tại vị trí i ta tính tổng giá trị các phần tử
từ 1 đến i.
2. Quan sát chương trình trên bảng.

- Quan sát GV thực hiện, nhận xét về thời
gian thực hiện chương trình.
- Phải thực hiện n(n+1)/2 phép cộng.
- Để tính bước thứ i, ta sử dụng kết quả đã
tính ở bước thứ i-1.
B[i]:=B[i-1]+A[i];
- Thay đoạn lệnh
- Lệnh này được thay lệnh nào trong chương trình? For j:=1 to i do B[i]:=B[i]+A[j];
Viết ở vị trí nào?
3. Soạn chương trình vào máy, thực hiện
3. Yêu cầu: Viết chương trình hồn thiện.
chương trình và thơng báo kết quả.
- Nhận xét về thời gian thực hiện của

4. Tiểu kết: Cùng một bài tốn, có nhiều cách giải chương trình này so với chương trình trước
quyết khác nhau. Người lập trình cần chọn cách sao khi cải tiến.
cho máy thực hiện nhanh nhất.
Tiết 9: Bài tập - Rèn luyện kĩ năng viết chương trình
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Đưa bài toán 1: Cho số nguyên dương N (1 < N < 1. Quan sát đề bài và trả lời câu hỏi.
500) và dãy số nguyên A gồm N phần tử A 1, ..., AN.
Hãy lập trình
a. Nhập vào từ bàn phím N và dãy A
b. Đếm và hiển thị lên màn hình số lượng các số
dương của dãy A
c. Tính tổng và hiển thị lên màn hình số lượng các số
chia hết cho 2 của dãy A
- Yêu cầu học sinh xác định bài toán.
- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?
- Gợi ý để học sinh đề xuất thuật tốn thơ.
- Viết chương trình trên giấy.
- u cầu: Viết chương trình hồn thiện.
- Soạn chương trình vào máy, thực hiện
- Tiểu kết: Cùng một bài tốn, có nhiều cách giải quyết chương trình và thơng báo kết quả.
khác nhau. Người lập trình cần chọn cách sao cho máy - Nhận xét về thời gian thực hiện của
thực hiện nhanh nhất. Khi nhập dữ liệu, chúng ta có chương trình này so với chương trình trước
thể gộp các cơng việc tính tốn, tìm kiếm trên mảng.
khi cải tiến.
2. Đưa bài toán 2: Cho số nguyên dương N (1 < N <
500) và dãy số nguyên A gồm N phần tử A 1, ..., AN. - Suy nghĩ làm bài.
Hãy lập trình
a. Nhập vào từ bàn phím N và dãy A
b. Sắp xếp dãy A theo thứ tự khơng giảm

c. Hiển thị lên màn hình số lượng số có giá trị lớn
nhất, số lượng số có giá trị nhỏ nhất trong dãy A
- Yêu cầu học sinh xác định bài toán.
- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?
- Gợi ý để học sinh đề xuất thuật tốn thơ.
- u cầu: Viết chương trình hoàn thiện.
RÚT KINH NGHIỆM GIỜ DẠY
Giáo án Tin học 11

 7 


Năm học: 2020 – 2021

.....................................................................................................................................................................
...............................................................................................................................................................
..................................................................................................................................................................
Yên Dũng, ngày ... tháng ... năm 2020
Duyệt của tổ bộ môn

Giáo án Tin học 11

 8 


Năm học: 2020 – 2021

Bài soạn số 15
Tiết dạy: 29


Ngày soạn: 18/3/2020
Tuần dạy: 25
KIỂM TRA MỘT TIẾT

I. Xác định chủ đề bài học
- Đánh giá kiến thức đã học bài: Kiểu mảng và các kiến thức đã học trong học kì I
II. Xác định chuẩn kiến thức kĩ năng
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 các phần tử của mảng.
2. Kĩ năng:
• Cài đặt được thuật tố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 tốn sử dụng các phần tử của mảng.
3. Thái độ:
• Tạo tiền đề cho học sinh ham thích học lập trình.
4. Năng lực cần đạt được:
- Năng lực nhận biết và giải quyết vấn đề, làm quen với dữ liệu có cấu trúc.
III. MA TRẬN ĐỀ KIỂM TRA:
Các mức độ nhận thức
Bài học

Biết

Thông hiểu

Vận dụng

Vận dụng cao

Tự


Trắc

Tự

Trắc

Tự

Trắc

Tự

Trắc

luận

nghiệm

luận

nghiệm

luận
2 câu

nghiệm
3 câu

luận

1 câu

nghiệm

(3

(1,2

(1

điểm)

điểm)

điểm)

Chủ đề: Kiểu mảng và

7 câu

5 câu

biến có chỉ số

(2,8đ)

(2,0 đ)

Tổng số điểm
2,8 điểm

2,0 điểm
4,2 điểm
1,0 điểm
IV. ĐỀ KIỂM TRA:
I. Trắc nghiệm: Em hãy chọn một đáp án đúng nhất rồi điền vào bảng phía dưới (5 điểm)
Câu 1. Thế nào là khai báo biến mảng gián tiếp?
A. Khai báo mảng xâu kí tự;
B. Khai báo mảng của các bản ghi;
C. Khai báo mảng hai chiều;
D. Khai báo thông qua kiểu mảng đã có;
Câu 2. Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?
A. Dùng để quản lí kích thước của mảng;
B. Dùng trong vịng lặp với mảng;
C. Dùng trong vịng lặp với mảng để quản lí kích thước của mảng; D. Dùng để truy cập đến một phần
tử bất kì trong mảng;
Câu 3. Cho khai báo mảng như sau: Var M : array[0..10] of integer ;
Phương án nào dưới đây gọi phần tử thứ 10 của mảng?
A. M(10)
B. M[10]
C. M[i]
D. M[9]
Câu 4. Trong ngôn ngữ lập trình Pascal, với khai báo như sau :
Type mang = ARRAY[1..100] of integer ;
Var a, b : mang ;
c : array[1..100] of integer ;
Câu lệnh nào dưới đây là hợp lệ?
A. a := b ;
B. b := c ;
C. c := b ;
D. a := c ;

Câu 5. Trong ngôn ngữ lập trình Turbo Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng?
A. Type mang=array[1-100] of char;
B. Type mang1c=array(1..100) of
char;
Giáo án Tin học 11

 9 


Năm học: 2020 – 2021

C. Type mang1c=array[1..100] of char;
D. Type 1chieu=array[1..100] of char;
Câu 6. Trong ngơn ngữ lập trình Pascal, để khởi tạo cơ chế sinh số ngẫu nhiên, ta dùng lệnh:
A. Randomize;
B. Random(N);
C. Radomize;
D. Randomsize;
Câu 7. Trong Pascal, phương án nào dưới đây là khai báo mảng hợp lệ?
A. Var mang : ARRAY[0..10] INTERGER;
B. Var mang : INTEGER OF
ARRAY[0..10];
C. Var mang : ARRAY[0..10] OF INTEGER;
D. Var mang : ARRAY(0..10) :
INTEGER;
Câu 8. Hãy chọn phương án ghép đúng nhất. Để khai báo số phần tử của mảng trong PASCAL, người
lập trình cần:
A. Khai báo một hằng số là số phần tử của mảng;
B. Khai báo chỉ số bắt đầu và chỉ
số kết thúc của mảng;

C. Khai báo chỉ số kết thúc của mảng;
D. Khơng cần khai báo gì, hệ thống sẽ tự
xác định;
Câu 9. Phát biểu nào sau đây là đúng?
A. Có thể dùng bất cứ một kiểu dữ liệu chuẩn nào để đánh chỉ số cho các phần tử của mảng một
chiều.
B. Mảng một chiều là một dãy hữu hạn các số nguyên.
C. Khi xây dựng kiểu mảng một chiều, người lập trình khơng cần khai báo kiểu dữ liệu của phần tử
D. của mảng.
D. Mảng một chiều là một dãy hữu hạn các phần tử cùng tên và cùng kiểu dữ liệu.
Câu 10. Phát biểu nào dưới đây về kiểu mảng là phù hợp?
A. Độ dài tối đa của mảng là 255;
B. Mảng khơng thể chứa kí tự;
C. Là một dãy hữu hạn các phần tử cùng kiểu;
D. Là một tập hợp các số nguyên;
Câu 11. Cho khai báo sau a : array[0..16] of integer ; Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử
của mảng a?
A. for k := 16 down to 0 write(a[k]);
B. for k := 16 downto 0 do write(a[k]);
C. for k := 1 to 16 do write(a[k]);
D. for k:= 0 to 15 do write(a[k]);
Câu 12. Cho khai báo mảng Var a : array[0..50] of real ; và đoạn chương trình như sau:
k := 0 ;
for i := 1 to 50 do if a[i] > a[k] then k := i ;
Đoạn chương trình trên thực hiện cơng việc gì dưới đây?
A. Tìm chỉ số của phần tử lớn nhất trong mảng;
B. Tìm phần tử lớn nhất trong mảng;
C. Tìm chỉ số của phần tử nhỏ nhất trong mảng;
D. Tìm phần tử nhỏ nhất trong mảng;
Câu 13. Phát biểu nào sau đây về mảng là khơng chính xác?

A. Chỉ số của mảng không nhất thiết bắt đầu từ 1;
B. Độ dài tối đa của mảng là 255;
C. Có thể xây dựng mảng nhiều chiều;
D. Mảng có số phần tử là hữu hạn;
Câu 14. Trong ngơn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau
(A là mảng số có N phần tử)?
S := 0 ;
For i := 1 to N do S := S + A[i] ;
A. In ra màn hình mảng A;
B. Khơng thực hiện việc nào trong 3 việc trên.
C. Đếm số phần tử của mảng A;
D. Tính tổng các phần tử của mảng A;
Câu 15. Trong ngơn ngữ lập trình Pascal, để đổi giá trị hai phần tử mảng một chiều A tại hai vị trí i và
j , ta viết lệnh như sau :
A. Tag := A[i]; A[i] := A[j]; A[j] := Tag;
B. A[i] := Tag; A[i] := A[j]; A[j] := Tag;
Giáo án Tin học 11

 10 


Năm học: 2020 – 2021

C. Tag := A[i]; A[j] := A[i]; A[j] := Tag;
Trả lời trắc nghiệm
1.

2.

3.


4.

5.

6.

D. Tag := A[i]; A[i] := A[j]; Tag := A[j];

7.

8.

9.

10.

11.

12.

13.

14.

15.

II. Tự luận (5 điểm)
Cho số nguyên dương N ( 1 ≤ N ≤ 500) và dãy số nguyên A có N phần tử A1, …, AN . Hãy lập trình:
a. Nhập vào từ bàn phím N và dãy A.

b. Hiển thị dãy A vừa nhập lên màn hình
c. Tính trung bình cộng các số chẵn của dãy A
V. ĐÁP ÁN
I. Trả lời trắc nghiệm (mỗi đáp án đúng được 1/3 điểm)
1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.


14.

15.

D

D

B

A

C

A

C

B

D

C

B

A

B


D

A

II. Tự luận
Chương trình

Điểm

Var A : Array[1..500] of integer;
T, Sl, I, N: integer;
Begin
Write(‘Nhap n = ’); readln(n);
T := 0; sl := 0;
For I := 1 to n do
Begin
Write(‘Nhap A[ ’,I, ‘]= ’);
Readln(A[i]);
If A[i] mod 2 = 0 then
Begin
T:= T +A[i];
Sl := sl +1;
End;
End;
Writeln(‘Day so vua nhap la:’);
For I := 1 to n do WriteA[i]:4);
Writeln;
Writeln(‘Trung binh cong cua cac so chan la: ’, T/sl:8:2);
Readln
END.


0,5

0,5
0,5
2

1

0,5

(Lưu ý: Nếu học sinh làm theo các khác đúng vẫn cho điểm)
VI. Rút kinh nghiệm giờ dạy
.....................................................................................................................................................................
...............................................................................................................................................................
..................................................................................................................................................................
Giáo án Tin học 11

 11 


Năm học: 2020 – 2021

Yên Dũng, ngày ... tháng ... năm 2020
Duyệt của tổ bộ môn

Bài soạn số 16
Tiết dạy: 30, 31, 32, 33

Ngày soạn: 2/5/2020

Tuần dạy: 28, 29
CHỦ ĐỀ: KIỂU DỮ LIỆU CÓ CẤU TRÚC
KIỂU DỮ LIỆU XÂU

I. Xác định chủ đề bài học
- Tên chủ đề: Kiểu xâu gồm Bài 12: “Kiểu xâu” dạy trong 6 tiết gồm 2 tiết lí thuyết và 2 tiết bài tập và
thực hành.
II. Xác định chuẩn kiến thức kĩ năng
1. Kiến thức:
- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu.
- Phân biệt được sự giống và khác giữa kiểu mảng ký tự với xâu ký tự.
- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu.
- Biết các phép toán liên quan xâu
2. Kĩ năng:
- Khai báo được biến kiểu xâu trong ngơn ngữ lập trình Pascal. Sử dụng biến xâu và các phép toán trên
xâu để giải quyết một bài tốn đơn giản.
3. Thái độ:
• Tạo tiền đề cho học sinh ham thích học lập trình.
4. Năng lực cần đạt được:
- Hs biết sử dụng kiểu xâu trong một ngơn ngũ lập trình cụ thể để giải quyết các bài toán đơn giản
III. CHUẨN BỊ:
Giáo viên:
– Giáo án, tranh ảnh
– Tổ chức hoạt động theo nhóm.
Học sinh:
– Sách giáo khoa, vở ghi.
– Đọc bài trước.
VI. KHUNG TIẾN TRÌNH DẠY HỌC
- Chủ đề này dạy trong 1 tiết học 45 phút.
Hoạt động

Nội dung
Hoạt động học tập của HS
Thời gian
Khởi động
Tình huống xuất phát
Tạo động cơ xuất phát
10 phút

Hình thành kiến
thức

- Khái niệm kiểu dữ liệu xâu

- Tìm hiểu kiến thức qua SGK

10 phút

- Các phép toán trên xâu: So
sánh, ghép xâu.

- Hoạt động nhóm

10 phút

- Cá nhân tham khảo SGK và
đưa ra vấn đề
- Cá nhân tham khảo SGK và
đưa ra vấn đề
- Cá nhân tham khảo SGK và
đưa ra vấn đề


- Các thủ tục trên xâu
- Các hàm trên xâu
- Xâu trong Pascal

15 phút
10 phút
35 phút

Luyện tập – Vận
- Làm bài tập áp dụng phần ví
dụng- Tìm tịi
- Thực hiện hoạt động
90 phút
dụ và bài tập thực hành số 5
mở rộng
Tiết 1: Dạy xong hoạt động khởi động và khái niệm xâu, các phép ghép xâu, so sánh xâu.
V. HƯỚNG DẪN CỤ THỂ TIẾN TRÌNH DẠY – HỌC
1. Hoạt động khởi động:
Giáo án Tin học 11

 12 


Năm học: 2020 – 2021

- Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu về kiểu xâu
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh có nhu cầu tìm hiểu về kiểu xâu

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Chiếu đề bài của bài toán đặt vấn đề: Viết
- 1. Quan sát, suy nghĩ và trả lời.
chương trình nhập họ tên của 30 học sinh
trong lớp.
- Kiểu mảng một chiều gồm 30 ký tự.
- Hỏi: Ta sẽ chọn kiểu dữ liệu như thế nào?
- Khai báo một biến mảng A để lưu họ tên của
Khai báo biến như thế nào?
một học sinh.
- Yêu cầu học sinh: Viết đoạn lệnh để nhập và
Readln(A[1]);Readln(A[2]);
xuất dữ liệu cho từng phần tử.
Readln(A[3]);Readln(A[4]);
- Hỏi: Có những khó khăn gì gặp phải?
...
- Dẫn dắt: Cần có một kiểu dữ liệu mới cho
- Chương trình được viết dài dịng. Khi nhập dữ
phép ta nhập/xuất dữ liệu cho xâu bằng một
liệu, phải thực hiện gõ nhiều phím.
lệnh.
2. Hoạt động hình thành kiến thức:
2. 1. Khái niệm xâu
- Mục tiêu: Biết khái niệm xâu và bản chất của xâu là mảng một chiều các kí tự
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết khái niệm xâu


Giáo án Tin học 11

 13 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Tìm hiểu về kiểu xâu.
1. Quan sát cấu trúc khai báo và tham
- Chiếu lên bảng cách khai báo biến xâu trong ngôn ngữ khảo sách giáo khoa.
lập trình Pascal.
- Hỏi: Ý nghĩa của từ String, [n]
- String là tên kiểu xâu.
- Hỏi: Khi khai báo khơng có [n] thì số lượng ký tự tối - [n] là giá trị quy định số lượng ký tự tối
đa là bao nhiêu?
đa mà biến xâu có thể chứa.
- Yêu cầu học sinh cho ví dụ một xâu ký tự
- Số ký tự tối đa là 255
- Hỏi: Xâu có bao nhiêu ký tự?
- Ví dụ: ‘HA NOI’
- Diễn giải: Mỗi ký tự được gọi là một phần tử của xâu. - Xâu có 6 ký tự, dấu cách là một ký tự.
Số lượng ký tự trong xâu được gọi là độ dài của xâu.
- Ký hiệu của xâu gồm một ký tự trống là
- Hỏi: Xâu chỉ gồm một ký tự trống được viết như thế ‘ ’. Xâu này có độ dài là 1.
nào? số lượng ký tự bao nhiêu?
- Ký hiệu của xâu rỗng là ‘ ’. Xâu này
- Hỏi: Xâu rỗng được viết như thế nào? số lượng ký tự có độ dài là 0.

bao nhiêu?
2. Quan sát bảng để trả lời.
2. Nhập/xuất dữ liệu cho biến xâu trong ngơn ngữ
Pascal.
- Ví dụ: Readln(hoten);
- Giới thiệu cấu trúc chung của thủ tục nhập/xuất dữ - Ví dụ: Write(‘Ho ten ’,hoten);
liêu.
- Viết một lệnh nhập nguyên cho cả xâu.
- u cầu học sinh tìm ví dụ cụ thể.
Viết lệnh gọn hơn, chương trình gọn.
- Hỏi: Khi viết lệnh nhập/xuất dữ liệu cho biến xâu, có
gì khác so với biến mảng các ký tự.
- Ví dụ: St:= ‘HA NOI’;
- Dẫn dắt: Ta có thể sử dụng lệnh gán để nhập giá trị 3. Quan sát và suy nghĩ để trả lời.
cho
biến
xâu.
Cấu
trúc
chung: - Giống cấu trúc chung khi tham chiếu
tên_biến_xâu:=hằng_xâu;
tên biến[chỉ số]
- Yêu cầu học sinh tìm một ví dụ cụ thể.
- Ví dụ: st[2].
3. Tham chiếu đến từng ký tự của xâu.
4. Quan sát chương trình trên bảng và
- Giới thiệu cấu trúc chung.
độc lập suy nghĩ.
- Hỏi: Có gì giống và khác nhau so với cách tham chiếu - Lệnh {1} đúng.
đến từng phần tử của mảng.

- Lệnh {2} sai. Không thể gán một xâu
- Yêu cầu học sinh tìm một ví dụ.
cho một ký tự.
4. Kiểm tra kiến thức.
- Chiếu nội dung bài tập kiểm tra kiến thức:
Var st:string[1]; c:char;
Begin
c:=st[1]; {1}
c:=st;
{2}
End.
- Hỏi: Trong hai lệnh {1} và {2}, lệnh nào đúng?
- Thực hiện chương trình để học sinh tự kiểm nghiệm
suy luận.
2. 2. Các phép toán trên xâu
- Mục tiêu: Biết ghép xâu và so sánh xâu
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết kết quả của ghép xâu và so sánh xâu
Giáo án Tin học 11

 14 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Gợi nhớ các phép toán đã học.

1. Chú ý theo dõi, suy nghĩ và trả lời.
- Hỏi: Hãy nhắc lại các phép toán đã học trên kiểu - Phép toán số học.
dữ liệu chuẩn.
- Phép toán so sánh.
2. Tìm hiểu chức năng của một số phép toán trong - Phép toán logic.
kiểu xâu qua một số ví dụ.
2. Quan sát ví dụ, suy nghĩ và trả lời.
- Chiếu chương trình ví dụ:
- Quan sát chương trình.
Var st:string;
Begin
st:= ‘Ha’+‘Noi’;
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn hình?
- Kết quả cho ta: st = ‘HA NOI’
- Thực hiện chương trình để học sinh thấy kết
quả.
- Quan sát kết quả chương trình.
- Yêu cầu học sinh tìm một số ví dụ khác.
- Ví dụ: st:= ‘HA NOI’ + ‘Co ho GUOM’. Kết
- Hỏi: Chức năng của phép cộng ?
quả:
- Giới thiệu thêm một số ví dụ khác và yêu cầu
st = ‘HA NOICo ho GUOM’
học sinh cho biết kết quả.
- Là phép toán nối xâu thứ hai vào cuối xâu thứ
st:= ‘Ha’ +‘Noi’;
nhất.

st:= ‘Ha ’+‘Noi’;
st:= ‘HaNoi’;
st:= ‘ ’ + ‘Ha Noi’;
st:= ‘Ha Noi’;
st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’;
st:= ‘ Ha Noi’;
- Chiếu chương trình ví dụ về phép so sánh xâu.
st:= ‘Ha NoiViệtNam’;
Var bo:boolean;
- Quan sát chương trình để dự tính kết quả.
Begin
bo:= ‘AB’ < ‘AC’;
Write(bo);
- Kết quả là: TRUE
readln;
End.
- Quan sát kết quả chương trình để kiểm chứng
- Hỏi: Kết quả của chương trình in ra màn hình?
suy luận.
- Thực hiện chương trình để học sinh thấy kết - Có các phép <, <=, >=, <>, =
quả.
- Kết quả: True.
- Hỏi: Còn các phép so sánh nào nữa?
- Kết quả: False.
- Chiếu các ví dụ về các phép so sánh và yêu cầu
học sinh cho biết kết quả của các phép so sánh đó.
‘AB’ < ‘ABC’
‘AC’ < ‘ABC’
- Lưu ý cho học sinh: Một xâu có độ dài nhỏ hơn
có thể lớn hơn (>) xâu có độ dài lớn.

2. 3. Các thủ tục trên xâu
- Mục tiêu: Biết thủ tục xóa và chèn xâu
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết cú pháp và áp dụng các thủ tục
Giáo án Tin học 11

 15 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
- Giới thiệu cấu trúc chung của thủ tục delete(st,vt,n);
- Hỏi: Kết quả của chương trình in ra màn hình?
- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi chức năng của thủ tục delete();
- Thay lệnh gán st:= ‘HaNoi’; và thủ tục xóa bởi các
lệnh sau và hỏi kết quả in ra màn hình.
st:=’abc’; Delete(st,1,5);
st:=’abc’; Delete(st,5,2);
st:=’abc’; Delete(st,1,0);
- Chiếu bài tập ứng dụng: Viết chương trình nhập một
xâu và xoá đi các dấu cách thừa ở đầu xâu.
- Giới thiệu cấu trúc chung của thủ tục Insert(st1,st2,vt);
- Chiếu chương trình ví dụ:
Var st1,st2:string;
Begin
st2:=‘HaNoi’;

st1:= ‘ ’;
insert(st1,st2,3);
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn hình?
- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi chức năng của thủ tục insert();
- Thay lệnh gán st2:=‘HaNoi’; và thủ tục chèn bởi các
lệnh như sau và hỏi kết quả:
st2:=‘ef’; Insert(‘abc’,st2, 5);
st2:=‘ef’; Insert(‘abc’,st2, 0);

HOẠT ĐỘNG CỦA HS
- Quan sát cấu trúc chung của thủ tục
Insert và các ví dụ.
- Quan sát chương trình để dự tính kết
quả.
st=’Hai’
- Quan sát kết quả của chương trình.
- Thủ tục thực hiện việc xóa đi trong
biến xâu st gồm n ký tự, bắt đầu từ vị
trí vt.
st:= ‘’; xâu rỗng.
st:= ‘abc’;
st:= ‘abc’;
Var st:string;
begin
readln(st);
while st[1]= ‘ ’ do delete(st,1,1);

writeln(st);
readln;
end.
- Quan sát cấu trúc chung của thủ tục
Insert.
- Quan sát chương trình để dự tính kết
quả.
- Kết quả st2=’Ha Noi’
- Quan sát kết quả của chương trình.
- Thủ tục thực hiện việc chèn xâu st1
vào trong biến xâu st2 bắt đầu tại vị trí
vt.
st2= ‘efabc’;
st2= ‘abcef’;

Tiết 2: Các hàm trên xâu và xâu trong Pascal
2. 4. Các hàm trên xâu
- Mục tiêu: Biết các hàm trên xâu
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết cú pháp và áp dụng các hàm
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Giới thiệu cấu trúc chung của hàm length(st) lên 1. Quan sát cấu trúc chung.
bảng.
- Length: là tên hàm, có nghĩa là độ dài,
- Hỏi: Ý nghĩa của Length và của st?
st: là một biểu thức xâu ký tự.
- Chiếu chương trình ví dụ:

- Quan sát chương trình để dự tính kết quả.
Var st:string;
- Kết quả là: 6
Begin
st:= ‘Ha Noi’;
- Quan sát kết quả của chương trình.
Write(length(st));
Giáo án Tin học 11

 16 


Năm học: 2020 – 2021

readln;
End.
- Hỏi: Kết quả của chương trình in ra màn hình?
- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi: Chức năng của hàm length() là gì?
- Chiếu đề bài tập ứng dụng: Viết chương trình nhập
một xâu, in ra màn hình số ký tự ‘a’ có trong xâu.
2. Giới thiệu cấu trúc chung của hàm Upcase(ch).
- Chiếu chương trình ví dụ:
Var ch:char;
Begin
ch:= ‘h’;
Write(upcase(ch));
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn hình?

- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi: Chức năng của hàm upcase()?
- Chiếu bài tập ứng dụng: Viết chương trình nhập
một xâu, in ra màn hình xâu đó dạng in hoa
3. Giới thiệu cấu trúc chung của hàm Pos(s1,s2).
- Hỏi: Kết quả của chương trình in ra màn hình?
- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi: Chức năng của hàm pos?
- Thay tham số của hàm Pos trong chương trình bằng
Pos(‘k’, ‘abc’). Hỏi kết quả của hàm bằng bao
nhiêu?
- Chiếu bài tập ứng dụng: Viết chương trình nhập
vào một xâu st. Xét xem trong xâu có dấu cách hay
khơng?
- Hỏi: Có cách giải nào khác?
4. Giới thiệu cấu trúc chung của hàm copy(st,vt,n).
- Hỏi: Kết quả của chương trình in ra màn hình?
- Thực hiện chương trình để học sinh thấy kết quả.
- Hỏi: Chức năng của hàm copy?
- Thay các tham số của hàm copy trong chương trình
ví dụ trên như sau và hỏi kết quả in ra màn hình:
Copy(‘abc’,1,5)
Copy(‘abc’,5,2)
Copy(‘abc’,1,0)
- Thực hiện chương trình để học sinh thấy kết quả.

- Hàm cho số lượng ký tự của xâu st.
2. Quan sát cấu trúc chung của hàm
Upcase.
- Quan sát chương trình để dự tính kết quả.

- Kết quả là: H
- Quan sát kết quả của chương trình.
- Cho giá trị là chữ cái in hoa của ch.
Var st:string;
Begin
readln(st);
For i:=1 to length(st) do
write(upcase(st[i]));
End.
3. Quan sát cấu trúc chung của hàm Pos và
các ví dụ để biết chức năng.
- Quan sát chương trình để dự tính kết quả.
- Kết quả là: 3
- Quan sát kết quả của chương trình.
- Hàm cho giá tri là một số nguyên là vị trí
của xâu st2 trong xâu st2.
- Bằng không 0.
Var st:string;
Begin
readln(st);
if pos(‘ ’, st)<>0 then write(‘Co’)
else write(‘Khong’);
End.
- Có thể sử dụng For để tìm dấu cách trong
xâu.
4. Quan sát cấu trúc chug của hàm copy và
ví dụ để biết chức năng.
- Quan sát chương trình để dự tính kết quả.
- Kết quả là: ‘i ta’
- Quan sát kết quả của chương trình.

- Hàm cho giá trị là một xâu ký tự được
lấy trong xâu st, gồm n ký tự bắt đầu tại vị
trí vt.
Cho giá trị là: ‘abc’
Cho giá trị là xâu rỗng
Cho giá trị là xâu rỗng
- Quan sát kết quả của chương trình để
kiểm nghiệm suy luận.

2.5. Xâu trong Pascal
- Mục tiêu: Biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bàn phím cho
xâu
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
Giáo án Tin học 11

 17 


Năm học: 2020 – 2021

- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bàn
phím cho xâu
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Đặt vấn đề cách khai báo biến trong Pascal
- Nêu hiểu biết
- Nêu cách khai báo kiểu xâu
- Ghi bài

- ĐVĐ kiểu xâu thực chất là kiểu mảng
Vậy để truy cập đến từng phần tử của xâu ta truy cập như mảng một - Nghe và ghi bài
chiều. Nêu qui ước.
- Lấy ví dụ: Nhập vào từ bàn phím họ tên của một bạn trong lớp. Sau
đó hiển thị lên màn hình chữ cái đầu trong tên bạn đó.
HD:
b1: Khai báo biến
- Suy nghĩ làm bài
B2: Nhập giá trị của xâu vào từ bàn phím
B3: n  độ dài của xâu; i n
B4: Chừng nào mà S[i] <> dấu cách và i <> 0 thì i  i-1
B5: Hiển thị lên màn hình S[i]
Tiết 3: Bài tập
2.6. Rèn luyện kĩ năng lập trình
- Mục tiêu: Biết vận dụng các hàm và thủ tục trên xâu vào làm bài tập
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bàn
phím cho xâu, xử lí các phép tốn trên xâu
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
1. Tìm hiểu đề bài
1. Quan sát, đọc kỹ đề.
- Cho xâu S và xâu S1 được nhập từ bàn phím.
Hãy đưa ra màn hình:
a. Xâu có độ dài dài hơn, nếu hai xâu có độ dài
bằng nhau thì đưa ra xâu nập trước.
b. Xxâu S bằng cách loại bỏ hết dấu cách trong S. Suy nghĩ để viết chương trình
Gợi ý:

B1: nhập dữ liệu
B2: Gán L  độ dài xâu S,
. Quan sát đề và xác định những công việc
cần thực hiện. Độc lập soạn chương trình
Gán L1  độ dài xâu S
B3: Nếu L < L1 thì hiển thị xâu S1 nếu khơng thì vào máy.
- Tìm test
hiển thị xâu S
- Nhập dữ liệu của GV và thực hiện chương
B4: Cho i : 1 đến L kiểm tra
trình để xem kết quả.
+ Nếu S[i] = ‘ ’ thì xóa phần tử thứ i trong S
- Thông báo kết quả cho GV.
B5: hiển thị giá trị S lên màn hình
Tiết 4: Bài tập áp dụng và bài tập và thực hành 5
2.6. Rèn luyện kĩ năng lập trình
- Mục tiêu: Biết vận dụng các hàm và thủ tục trên xâu vào làm bài tập
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bàn
phím cho xâu, xử lí các phép tốn trên xâu
Giáo án Tin học 11

 18 


Năm học: 2020 – 2021

Nội dung hoạt động
HOẠT ĐỘNG CỦA HS

1. Quan sát, đọc kỹ đề.

HOẠT ĐỘNG CỦA GV
1. Tìm hiểu đề bài
- Giới thiệu nội dung đề bài lên bảng.
- Diễn giải: Một xâu được gọi là Palidrom
nếu ta đọc các ký tự từ phải sang trái sẽ
giồng khi đọc từ trái sang phải.
- Yêu cầu học sinh cho hai ví dụ về xâu
palidrom và một ví dụ khơng phải là
palidrom.
2. Tìm hiểu chương trình gợi ý.
- Chiếu chương trình lên bảng.
- Hỏi: Chương trình sau đây có chức năng
làm gì? Kết quả in ra màn hình như thế nào?
- Thực hiện chương trình để học sinh kiểm
nghiệm suy luận của mình.

Phải: 12321 abccba
Khơng phải: abcdea
2. Quan sát chương trình, suy nghĩ phân tích để
hiểu chương trình.
- Kiểm tra một xâu có phải Palidrom hay khơng?
- In ra: ‘xau la palidrom’
‘Xau khong la palidrom’
- Quan sát GV thực hiện chương trình, nhập dữ
liệu và kết quả của chương trình.

V. RÚT KINH NGHIỆM GIỜ DẠY
.....................................................................................................................................................................

...............................................................................................................................................................
Yên Dũng, ngày ... tháng ... năm 2019
Duyệt của tổ trưởng bộ môn
Bài soạn số 17
Ngày soạn: 10/05/2020
Tiết dạy: 34, 35, 36
Tuần dạy: 29, 30, 31
CHỦ ĐỀ: TỆP VÀ CÁC THAO TÁC VỚI TỆP
I. Xác định chủ đề bài học
- Tên chủ đề: Tệp và các thao tác với tệp gồm 3 bài là: Bài 14 - “Kiểu dữ liệu tệp”, Bài 15 – “Các
thao tác với tệp”, Bài 16 – “Ví dụ làm việc với tệp” dạy trong 3 tiết gồm 2 tiết lí thuyết và 1 tiết dạy
bài 16 là tiết bài tập (chỉ dạy ví dụ 1).
- Vấn đề cần giải quyết trong bài học này là :
• Biết vai trị của kiểu tệp và tệp văn bản
• Biết các thao tác với tệp và 2 thao tác cơ bản là đọc tệp, ghi tệp.
II. Xác định chuẩn kiến thức kĩ năng
1. Kiến thức:
- Biết được đặc điểm của kiểu dữ liệu tệp.
- Biết khái niệm tệp văn bản.
- Biết các thao tác với tệp đặc biệt thao tác đọc tệp và ghi tệp
2. Kĩ năng:
- Khai báo đúng biến kiểu tệp.
- Thực hiện được thao tác xử lý tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp.
- Sử dụng được các thủ tục, hàm liên quan để đọc/ghi dữ liệu của tệp.
3. Thái độ:
- Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp.
- Có ý thức lưu trữ dữ liệu một cách khoa học.
- Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa, sao chép các phần mềm chưa
mua bản quyền.
III. ĐỒ DÙNG DẠY HỌC

1. Chuẩn bị của GV
- Máy vi tính, máy chiếu projector để giới thiệu ví dụ.
2. Chuẩn bị của học sinh
- Sách giáo khoa.
Giáo án Tin học 11

 19 


Năm học: 2020 – 2021

- Đọc trước bài mới
VI. KHUNG TIẾN TRÌNH DẠY HỌC
Hoạt động
Nội dung
Khởi động
Tình huống xuất phát

Hoạt động học tập của HS
Tạo động cơ xuất phát

- Vai trò của kiểu dữ liệu tệp.
- Khai báo và gắn tên tệp
Hình thành kiến
thức

- Ghi dữ liệu vào tệp
- Đọc dữ liệu từ tệp
- Các hàm với biến kiểu tệp
- Đóng tệp


- Tìm hiểu kiến thức qua SGK
- Cá nhân tham khảo SGK và
đưa ra vấn đề
- Cá nhân tham khảo SGK và
đưa ra vấn đề
- Cá nhân tham khảo SGK và
đưa ra vấn đề
- Đọc SGK và trả lời
- Đọc SGK và trả lời

Thời gian
5 phút
15 phút
10 phút
15 phút
25 phút
15 phút
5 phút

Luyện tập – Vận
- Ví dụ làm việc với tệp và các
dụng- Tìm tịi
- Thực hiện hoạt động
45 phút
bài tập mở rộng.
mở rộng
V. HƯỚNG DẪN CỤ THỂ TIẾN TRÌNH DẠY – HỌC
Tiết 1: Dạy hoạt động khởi động và hoạt động ghi dữ liệu vào tệp
1. Hoạt động khởi động (5 phút)

- Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu về kiểu tệp
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh có nhu cầu tìm hiểu về kiểu tệp
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Đặt câu hỏi: Em hãy cho biết các kiểu dữ liệu đã học? - Bộ nhớ RAM.
Hỏi: Khi thực hiện chương trình, giá trị của các biến có kiểu
- Mất dữ liệu khi mất điện.
dữ liệu đó được lưu trữ ở đâu?
- Khơng mất thơng tin khi tắt máy.
- Hỏi: Vì sao em biết điều đó?
- Dung lượng dữ liệu được lưu trữ
- Diễn giải: Vậy để lưu trữ được dữ liệu, ta phải lưu nó ở bộ
lớn.
nhớ ngồi thơng qua kiểu dữ liệu tệp.
- Chúng ta cùng đi tìm hiểu về kiểu dữ liệu tệp
2. Hoạt động 2: Hình thành kiến thức
2.1. Tìm hiểu vai trị của kiểu dữ liệu tệp. (15 phút)
- Mục tiêu: Biết vai trò của kiểu dữ liệu tệp và phân loại tệp, tệp văn bản
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết vai trò của kiểu dữ liệu tệp, khái niệm tệp văn bản
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Hỏi: Em hãy cho biết vai trò của kiểu dữ liệu
- HS đọc SGK trả lời
tệp

- Dựa vào cách tổ chức dữ liệu phân thành hai
- Phân loại tệp - Tệp văn bản
loại kiểu tệp: tệp có cấu trúc và tệp văn bản.
- YC HS nêu khái niệm tệp văn bản?
- HS đọc SGK và nêu khái niệm
- Em hãy cho một số ví dụ về tệp văn bản?
+ Tệp có cấu trúc là loại tệp mà các thành phần
Mọi ngơn ngữ lập trình đều có các thao tác: khai của nó được tổ chức theo một cấu trúc nhất
báo biến tệp, mở tệp, đọc/ghi dữ liệu, đóng tệp.
định
Trong khn khổ chương trình chúng ta chỉ xét
+ Tệp văn bản: là tệp mà dữ liệu được ghi dưới
các thao tác với tệp trong Pascal
dạng các kí tự theo mã ASCII.
- Một số tệp văn bản như: Các tệp có phần mở
rộng là DOC, DOCX, Pas, ....
2.2. Khai báo và gắn tên tệp (10 phút).
Giáo án Tin học 11

 20 


Năm học: 2020 – 2021

- Mục tiêu: Biết khai báo biến tệp, vì sao phải gắn tên tệp, thủ tục gắn tên tệp
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết khai báo biến tệp và gắn tên tệp
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV

HOẠT ĐỘNG CỦA HS
1. Giới thiệu cấu trúc chung của khai báo biến tệp.
1. Quan sát cấu trúc và suy nghĩ
Var <tên_biến_tệp>: Text;
trả lời.
- u cầu học sinh tìm ví dụ cụ thể:
- Var f,g:text;
2. Giới thiệu các thao tác gán tên tệp
2. Quan sát và suy nghĩ để trả lời
- Mục đích của gắn tên tệp:
câu hỏi.
+ Tên tệp do ai đặt?
+ Tên tệp do thành phần nào quản lí?
- Mỗi tệp có một tên để tham
+ Vì sao phải gắn tên tệp cho biến tệp?
chiếu, tên tệp do người lập trình
- GV chốt: - Mỗi tệp có một tên để tham chiếu, tên tệp do đặt
người lập trình đặt. Mọi thao tác với tệp đều được thực hiện - Tên tệp do thành phần quản lý
thơng qua biến tệp. Vì vậy cần phải gắn tên tệp với biến tệp để tệp của hệ điều hành quản lí
chắc chắn cùng chỉ vào một tệp.
- Mọi thao tác với tệp đều được
- Thủ tục gắn tên tệp:
thực hiện thông qua biến tệp. Vì
Assign(<tên_biến_tệp>,<tên_tệp>);
vậy cần phải gắn tên tệp với biến
- Giải thích:
tệp để chắc chắn cùng chỉ vào
+ Tên tệp là một hằng xâu
một tệp.
- Lấy ví dụ minh họa:

Assign(f,’D:\lop11.txt’);
- Thực hiện yêu cầu
- Gọi hs lên bảng gắn tên tệp cho biến tệp g ở trên với tên
Asign(g,’lop.inp’);
lop.inp
2.3. Ghi dữ liệu vào tệp (15 phút).
- Mục tiêu: Biết mở tệp để ghi, ghi dữ liệu vào tệp
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết mở tệp để ghi, ghi dữ liệu vào tệp
Nội dung hoạt động

Giáo án Tin học 11

 21 


Năm học: 2020 – 2021

HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
- Em hãy cho biết cách mở một tệp chương trình chạy trong
- Trả lời: Nháy đúp chuột vào
Windows?
biểu tượng của tệp đó
- Để người sử dụng làm được điều đó, người lập trình phải viết
câu lệnh cho máy tính thực hiện. Câu lệnh đó trong Pascal là:
- Lắng nghe và ghi bài
REWRITE(biến tệp);
- HS đọc sách giáo khoa rồi trả

- Ý nghĩa của lệnh rewrite(biến tệp); ?
lời
- GV chốt: Nếu tại vị trí định vị đã có tệp với tên được gắn thì
tồn bộ dữ liệu trong tệp bị xóa để chuẩn bị ghi dữ liệu mới,
cịn nếu khơng thì sẽ tạo ra một tệp mới với tên được gắn để
chuẩn bị ghi dữ liệu mới.
- Ví dụ: Rewrite(f);
- Để hiển thị dữ liệu lên màn hình ta có câu lệnh nào?
Write/Writeln(dskq);
- Tương tự như vậy, để ghi dữ liệu vào tệp ta có câu lệnh:
Write/Writeln(biến tệp, dskq);
+ Trong đó dskq là tên biến, biểu thức, hằng
- Lấy 1 chương trình ví dụ về ghi tệp. Ghi 2 biến x, y vào tệp
- HS ghi bài, theo dõi
có tên lop11.text trên ổ đĩa D
Var f : text; x , y : byte;
Begin
Assign(f,’D:\lop11.txt’);
Rewrite(f);
X := 10; y := 67;
Write(f,x,’ ‘,y);
Close(f)
End.
- Trước khi chạy thử chương trình, mở ổ đĩa D để tìm tệp
lop11.txt xho hs theo dõi đã có tệp đó hay chưa. Nếu đã có thì
mở xem nội dung tệp. Đóng tệp rồi chạy thử chương trình ví dụ
- Mở tệp tạo ra và giải thích kết quả cho HS
- Bài tập: Yêu cầu học sinh ghi vào Yendung tệp dòng ‘Chao
cac ban’
Tiết 2: Dạy hoạt động đọc dữ liệu từ tệp, đóng tệp và các hàm với biến tệp

2.4. Đọc dữ liệu từ tệp (25 phút).
- Mục tiêu: Biết mở tệp để đọc, đọc dữ liệu từ tệp
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết mở tệp để đọc, đọc dữ liệu từ tệp
Nội dung hoạt động

Giáo án Tin học 11

 22 


Năm học: 2020 – 2021

HOẠT ĐỘNG CỦA GV
- Em hãy cho biết cách mở một tệp chương trình chạy trong
Windows?
- Để người sử dụng làm được điều đó, người lập trình phải viết
câu lệnh cho máy tính thực hiện. Câu lệnh đó trong Pascal là:
Reset(biến tệp);
- Ý nghĩa của lệnh Reset (biến tệp); ?
- GV chốt: Mở tệp để đọc dữ liệu
- Ví dụ: Reset(f);
- Để nhập dữ liệu từ bàn phím ta có câu lệnh nào?
- Tương tự như vậy, để đọc dữ liệu từ tệp ta có câu lệnh:
Read/Readln (biến tệp, ds tên biến);
+ Trong đó ds tên biến là tên biến đơn
- Lấy 1 chương trình ví dụ về đọc tệp. Đọc tệp có tên
’D:\lop11.txt’, kết quả lưu vào 2 biến x, y . Sau đó hiển thị lên
màn hình giá trị của x, y.

Var f : text; x , y : byte;
Begin
Assign(f,’D:\lop11.txt’);
Reset(f);
Read(f,x,,y);
Writeln(‘x = ’, x,’ y = ’, y);
Readln;
Close(f)
End.
- Trước khi chạy thử chương trình, em hãy dự đốn kết quả
hiển thị lên màn hình? Chạy chương trình cho hs theo dõi.
- Bài tập: Yêu cầu học sinh ghi vào Yendung tệp dịng ‘Chao
cac b’
2.5. Đóng tệp và các hàm với biến tệp (25 phút).
- Mục tiêu: Biết đóng tệp và các hàm với biến tệp
- Phương pháp, kĩ thuật dạy học: nêu vấn đề, thảo luận chung.
- Phương tiện dạy học: SGK
- Sản phẩm: học sinh biết đóng tệp và các hàm với biến tệp
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV
- Em hãy cho biết cách đóng một tệp chương trình đang chạy
trong Windows?
- Để người sử dụng làm được điều đó, người lập trình phải viết
câu lệnh cho máy tính thực hiện. Câu lệnh đó trong Pascal là:
Close(biến tệp);
- Ý nghĩa của lệnh Close (biến tệp); ?
- GV chốt: Đóng tệp để hồn tất việc đọc/ghi dữ liệu vào tệp,
đặc biệt là ghi dữ liệu vào tệp. Chỉ khi nào nhận được lệnh
đóng tệp thì dữ liệu mới thực sự được chuyển từ bộ nhớ đêm
vào tệp

- Ví dụ: close(f);
- Một số hàm với biến tệp:
Hàm eoln(biến tệp): cho kết quả là true nếu con trỏ tệp chỉ đến
cuối dòng
Hàm eof(biến tệp): cho kết quả là true nếu con trỏ tệp chỉ đến
cuối tệp
Giáo án Tin học 11

 23 

HOẠT ĐỘNG CỦA HS
- Trả lời: Nháy đúp chuột vào
biểu tượng của tệp đó
- Lắng nghe và ghi bài
- HS đọc sách giáo khoa rồi trả
lời

Read/Readln(ds tên biến );

- HS ghi bài, theo dõi

- Nêu ý kiến

HOẠT ĐỘNG CỦA HS
- Trả lời: Nháy chuột vào biểu
tượng Close
- Lắng nghe và ghi bài
- HS đọc sách giáo khoa rồi trả
lời



Năm học: 2020 – 2021

Tiết 3: Ví dụ làm việc với tệp và luyện tập
3. Ví dụ làm việc với tệp
- Mục tiêu: Giúp học sinh biết cách sử dụng các thao tác cơ bản như: khai báo, gắn tên tệp, mở tệp, đọc
/ghi tệp, đóng tệp để viết chương trình.
- Phương pháp/kĩ thuật: Đàm thoại, phát hiện. Khai thác mối quan hệ giữa thực tiễn với tin học.
- Hình thức tổ chức hoạt động: Thảo luận nhóm.
- Phương tiện dạy học: SGK, Projector, máy tính.
- Kết quả: Học sinh biết sử dụng các thao tác cơ bản như: khai báo, gắn tên tệp, mở tệp, đọc /ghi tệp,
đóng tệp để viết chương trình hồn chỉnh.
Nội dung hoạt động
HOẠT ĐỘNG CỦA GV

HOẠT ĐỘNG CỦA HS

- Chiếu và giải thích ví dụ .
(?) Để giải quyết bài toán trên trước tiên ta phải làm
gì?
- Nhận xét, chốt nội dung.
(?) Xác định bài toán là xác định những thành phần
nào?
- Nhận xét, chốt nội dung.
(?) Input và Output trong ví dụ ?

- Gọi HS khác nhận xét, bổ sung nếu có thiếu sót.
- Nhận xét, chốt nội dung.
(?) Sau khi xác định bài tốn bước tiếp theo ta phải
làm gì?

- Nhận xét, chốt nội dung, giới thiệu 3 bước để giải
bài toán và trình tự các bước thực hiện.
- Yêu cầu HS thảo luận nhóm và viết chương trình
hồn chỉnh.
- Quan sát HS làm bài, chọn 1 nhóm làm nhanh nhất
và 1 nhóm bất kì treo kết quả.
- Gọi các nhóm khác nhận xét.
- Nhận xét, chấm điểm.
- Minh họa chương trình.
Ví dụ 2: Viết chương trình nhập vào một xâu bất kì
từ file XAU.INP. Cho biết trong xâu có bao nhiêu
chữ số. Ghi kết quả vào tệp XAU.OUT.
Giáo án Tin học 11

 24 

Quan sát, lắng nghe
- Gợi nhớ và trả lời: Xác định bài toán.
- Lắng nghe, ghi bài.
- Xác định Input và Output.
- Lắng nghe, ghi bài.
- Input: Toạ độ các điểm x,y kiểu thực lấy từ
file
TRAI.INP.
Output: Tệp TRAI.OUT
Các khoảng cách.
- Nhận xét.
Thuật toán
- B1. Nhập toạ độ các điểm trại TRAI.INP.
- B2. Tính các khoảng cách .

- B3. Ghi các khoảng cách vào tệp TRAI.OUT

- Lắng nghe, ghi bài.
- Gợi nhớ và trả lời: Xây dựng thuật toán.
- Lắng nghe, quan sát, ghi bài.

- HS về nhà thực hiện viết chương trình


Năm học: 2020 – 2021

IV. ĐÁNH GIÁ CUỐI BÀI
- Các kiến thức đã học: Các thao tác với tệp
- BTVN: xem trước bài 15: Các thao tác với tệp
V. RÚT KINH NGHIỆM GIỜ DẠY
..................................................................................................................................................................
Yên Dũng, ngày ... tháng ... năm 2019
Duyệt của tổ trưởng bộ môn

Giáo án Tin học 11

 25 


×