SlideShare a Scribd company logo
1 of 93
Trường THPT Trần Nhật Duật

Chương I
Tiết 1

Tin học 11

MỘT SỐ KN VỀ LT VÀ NNLT
Khái niệm lập trình và ngôn ngữ lập trình
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được ngôn ngữ máy và
hợp ngữ.
- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và
thông dịch.
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án.
2. Học sinh: SGK, vở ghi.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

Trong chương trình lớp 11 chúng ta đã
được biết qua về ngôn ngữ lập trình. Trong
chương trình lớp 11 chúng ta sẽ tìm hiểu
chi tiết hơn về nnlt.
- Ngôn ngữ máy
Bạn nào cho biết ở lớp 11 chúng ta đã
- Hợp ngữ
nhắc tới những loại ngôn ngữ lập trình
- Ngôn ngữ lập trình bậc cao
nào?
Lập trình: là sử dụng cấu trúc dữ liệu và HS: Trả lời câu hỏi. HS khác bổ xung.
các câu lệnh của ngôn ngữ lập trình cụ thể
để mô tả dữ liệu và diễn đạt các thao tác
của thuật toán.
Chương trình viết bằng ngôn ngữ bậc
Chương trình dịch: Là chương trình đặc cao nói chung không phụ thuộc vào loại
biệt có chức năng chuyển đổi chương trình máy (chương trình có thể chạy trên nhiều
được viết bằng ngôn ngữ lập trình bậc cao loại máy tính khác nhau).
thành chương trình thực hiện được trên
Chương trình dịch được chia thành hai
máy tính.
loại: Thông dịch và biên dịch.
(Lấy ví dụ minh họa để HS phân biệt được
Outpu
Input
CTD
hai loại ctd này).
t
- Thông dịch (interpreter): được thực hiện
bằng cách lặp lại dãy các bước sau:
. Kiểm tra tính đúng đắn của câu lệnh
tiếp theo trong chương trình nguồn.
. Chuyển đổi câu lệnh đó thành một hay
nhiều câu lệnh tương ứng trong ngôn ngữ
máy.
. Thực hiện các câu lệnh vừa chuyển đổi
được.
- Biên dịch (compiler) được thực hiện qua
hai bước:
. Duyệt, phát hiện lỗi, kiểm tra tính đúng
đắn của các câu lệnh trong chương trình
nguồn.
. Dịch toàn bộ chương trình nguồn thành
một chương trình đích có thể thực hiện
trên máy và có thể lưu trữ thực hiện lại khi
cần thiết.

HS: Nghe giảng, ghi chép.

Trong thông dịch không có chương trình
đích để lưu trữ, trong biên dịch cả chương
trình nguồn và chương trình đích có thể
lưu trữ lại để sử dụng về sau.

IV. Củng cố: Kể tên một số ngôn ngữ lập trình mà em biết?
(Một HS trả lời, HS khác bổ sung).
V. Dặn dò: Đọc trước bài 2.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 2

Tin học 11

Các thành phần của ngôn ngữ lập trình
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Biết ngôn ngữ lập trình có ba thành phần cơ bản là: bảng chữ cái, cú pháp, ngữ
nghĩa. Hiểu và phân biệt được ba thành phần này.
- Biết một số khái niệm: tên, tên chuẩn, tên dành riêng (từ khóa), hằng và biến.
2. Kỹ năng:
- Ghi nhớ các quy định về tên, hằng, biến trong một ngôn ngữ lập trình.
- Cách đặt tên đúng và nhận biết được tên sai quy định.
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án, bảng phụ.
2. Học sinh: SGK, vở ghi.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Chương trình dịch là gì? Tại sao cần phải có chương trình dịch?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
1. Các thành phần cơ bản.
Mỗi ngôn ngữ lập trình thường có ba
thành phần cơ bản là bảng chữ cái, cú pháp
a) Bảng chữ cái.
và ngữ nghĩa.
Trong Pascal, bảng chữ cái bao gồm các
kí tự sau:
• Các chữ cái thường và chữ cái in hoa
Các kí tự trong bảng chữ cái và cú pháp
của bảng chữ cái tiếng Anh.
của ngôn ngữ lập trình có thể tạo thành các
‘A’...’Z’ có mã 65..90
câu lệnh và chương trình tương tự như từ
‘a’...’z’ có mã 97..122
bảng chữ cái và ngữ pháp của ngôn ngữ tự
‘0’...’9’ có mã 48..57
nhiên có thể diễn đạt thành câu và văn bản.
• 10 Chữ số thập phân Ả rập.
HS: nghe giảng, ghi chép.
• Các kí tự đặc biệt.
Bảng chữ cái của các ngôn ngữ lập trình
nói chung không khác nhau nhiều.
b) Cú pháp:
Là bộ quy tắc để viết chương trình.
c) Ngữ nghĩa:
Xác định ý nghĩa thao tác cần thực hiện,
ứng với tổ hợp kí tự dựa vào ngữ cảnh của
nó.
Vd: (SGK)

Dựa vào chúng, người lập trình và
chương trình dịch biết được tổ hợp nào của
các kí tự trong bảng chữ cái là hợp lệ và tổ
hợp nào là không hợp lệ.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tóm lại: Cú pháp cho biết cách viết một
chương trình hợp lệ, còn ngữ nghĩa xác
định ý nghĩa của các tổ hợp kí tự trong
chương trình.
2. Một số khái niệm.
a) Tên
Trong TP, tên là một dãy liên tiếp không
quá 127 kí tự bao gồm chữ cái, chữ số
hoặc dấu gạch dưới.
Vd:
Tên đúng: (lấy 3 vd)
Tên sai: (lấy 3 vd)
Ngôn ngữ Pascal không phân biệt chữ hoa,
chữ thường trong tên.
Trong Pascal phân biệt 3 loại tên:
- Tên dành riêng;
- Tên chuẩn;
- Tên do người dùng đặt.
Tên dành riêng: là tên được dùng với ý
nghĩa riêng xác định.
Tên chuẩn: là tên được dùng với ý nghĩa
nhất định nào đó.
Tên do người lập trình đặ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.
b) Hằng và biến
* Hằng
là đại lượng có giá trị không thay đổi trong
quá trình thực hiện chương trình.
- Hằng số học: là các số nguyên hay
số thực.
- Hằng logic: True hoặc False
- Hằng xâu:
* 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 chương trình.
c) Chú thích: Được đặt trong chương
trình, giúp cho người đọc chương trình
nhận biết ý nghĩa của chương trình hay của
từng câu lệnh trong chương trình.

Tin học 11

Mọi đối tượng trong chương trình đều
phải được đặt tên theo quy tắc của ngôn
ngữ lập trình và từng chương trình dịch cụ
thể.
HS: Lấy ví dụ về tên đúng và sai.

Người lập trình không được dùng với ý
nghĩa khác.
Có thể khai báo và dùng chúng với ý
nghĩa và mục đích khác.

Trong ngôn ngữ lập trình thường có các
hằng số học, hằng logic, hằng xâu.

HS: Nghe giảng, ghi chép.
IV. Củng cố: Lấy ví dụ về tên đúng, tên sai trong TP?
V. Dặn dò: Trả lời các câu hỏi cuối bài. Làm bài tập trong SBT.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 3

Tin học 11

Bài tập
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Biết được đặc điểm của ngôn ngữ lập trình bậc cao, chức năng của chương
trình dịch.
- Biết các thành phần của ngôn ngữ lập trình.
2. Kỹ năng:
- Phân biệt được trình thông dịch và biên dịch.
- Đặt được tên đúng và nhận biệt tên sai quy định.
II. Chuẩn bị của GV và HS:
11 Giáo viên: SBT, giáo án.
11 Học sinh: SBT, vở bài tập.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn? Lấy
ví dụ về 3 tên đúng theo quy tắc của Pascal?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Gọi một số HS đứng tại chỗ chữa các
Chữa một số bài tập trong SBT.
bài từ 1..8.
HS khác nhận xét và bổ sung.
GV củng cố lại các câu trả lời
Gọi 3 HS lên bảng chữa các bài 9, 10,
Chữa bài tập theo yêu cầu của HS.

11.
Trong sách bài tập số lượng bài tập
nhiều, có một số bài khó. Để mở rộng kiến
thức đã học thì nên hoàn thành những bài
tập này.

Kiểm tra lại kiến thức đã học.
Cho HS làm bài kiểm tra 15’. Có thể sử
dụng các câu 13, 14 làm đề kiểm tra.
IV. Củng cố:
V. Dặn dò: Về nhà đọc trước bài 3 - Cấu trúc chương trình.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 4

Tin học 11

Cấu trúc chương trình
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu chương trình là sự mô tả của thuật toán bằng một ngôn ngữ lập trình.
- Biết cấu trúc của một chương trình đơn giản: 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.
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án, bảng phụ.
2. Học sinh: SGK, vở ghi.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Chữa bài tập số 6 (tr 13-SGK)?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
1. Cấu trúc chung
Chương trình được viết bằng ngôn ngữ
lập trình bậc cao thường gồm phần khai
báo và phần thân.
Phần khai báo có thể có hoặc không tùy
theo từng chương trình cụ thể.
Các diễn giải bằng ngôn ngữ tự nhiên Khi diễn giải cú pháp của ngôn ngữ lập
được đặt trong cặp dấu < và >. Các thành trình người ta thường sử dụng ngôn ngữ tự
phần của chương trình có thể có hoặc nhiên.
không được đặt trong cặp dấu [ và ].
Cấu trúc của một chương trình có thể mô
tả như sau:
[<phần khai báo>]
HS: nghe giảng, ghi bài.
<phần thân>
2. Các thành phần của chương trình
a)Phần khai báo
Có thể khai báo cho: tên chương trình,
thư viện, hằng, biến và chương trình con.
* Khai báo tên chương trình
Phần này có thể có hoặc không.
Program <tên chương trình>
tên chương trình là tên do người lập trình
đặt theo đúng quy định về tên.
* Khai báo thư viện
Mỗi ngôn ngữ lập trình thường có sẵn
Uses <tên thư viện>
một số thư viện cung cấp một số chương
vd: Uses crt, graph;
trình thông dụng đã được lập sẵn.
* Khai báo hằng
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

const <tên hằng> = <giá trị>
* Khai báo biến
b) Phần thân chương trình
Begin
[<Dãy lệnh>]
End.
3. Ví dụ chương trình đơn giản
Ví dụ SGK.

Tin học 11

Khai báo hằng thường được sử dụng cho
những giá trị xuất hiện nhiều lần trong
chương trình.
(Trình bày chi tiết ở bài 5)
Dãy lệnh trong phạm vi được xác định
bởi cặp dấu hiệu mở đầu và kết thúc tạo
thành thân chương trình.
Viết ví dụ, phân tích để HS hiểu rõ cấu
trúc của một chương trình Pascal đơn giản.

IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 5
biến

Tin học 11

Một số kiểu dữ liệu chuẩn. Khai báo
Ngày soạn:...../......; Ngày giảng:..../......

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 khái báo biến đúng.
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án, bảng phụ.
2. Học sinh: SGK, vở ghi.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Cho biết cách khai báo tên chương trình, thư viện, hằng, biến trong TP?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
MỘT SỐ KIỂU DỮ LIỆU CHUẨN

Một số kiểu dữ liệu chuẩn thường dùng
Dữ liệu là thông tin đã mã hóa trong máy
cho các biến đơn trong Pascal.
tính. Dữ liệu trong mỗi ngôn ngữ lập trình
chỉ có một số kiểu chuẩn nhất định mặc dù
thông tin rất đa dạng. Mỗi kiểu được đặc
trưng bởi tên kiểu, miền giá trị, kích thước
trong bộ nhớ, các phép toán, các hàm và
thủ tục sử dụng chúng.
1. Kiểu nguyên
Byte: 0..255
Interger: -215..215-1
Word: 0..216-1
Longint: -231..231-1
2. Kiểu thực
Real: -10-38..1038
Extended: -10-4932..104932

Các số nguyên được lưu trữ và kết quả
tính toán là số đúng, nhưng có hạn chế về
miền giá trị.

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 trong 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.
Phép toán chứa các toán hạng gồm cả kiểu
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

nguyên và kiểu thực sẽ cho kết quả kiểu
thực.
3. Kiểu kí tự
Char: 256 kí tự trong bộ mã ASCII

Kiểu kí tự có tập giá trị là các kí tự trong
bộ mã ASCII, được dùng khi thông tin là
các kí tự, xâu. Vì vậy hầu hết các ngôn
ngữ lập trình đều có kiểu kí tự để làm việc
với văn bản. 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.

4. Kiểu logic
Boolean: True hoặc False.

Kiểu logic được dùng khi kiểm tra một
điều kiện hoặc tìm giá trị của một biểu
thức logic.

KHAI BÁO BIẾN

Trong Pascal, mọi biến trong chương
trình đều phải khai báo tên và kiểu dữ liệu
của nó (một số ngôn ngữ coi đó là định
nghĩa biến). Khai báo để cấp phát bộ nhớ
cho biến.
Cấn đặt tên biến sao cho gợi nhớ đến ý
nghĩa của biến đó. Điều này rất có lợi cho
việc học, hiểu và sửa đổi chương trình khi
cần thiết.
Không nên đặt tên biến quá ngắn hay
quá dài, dễ mắc lỗi khi viết nhiều lần tên
biến.
Khi khai báo biến cần đặc biệt lưu ý đến
phạm vi của nó.

Trong Pascal, khai báo biến bắt đầu bằng
từ khóa Var có dạng:
Var <danh sách biến>:<kiểu dữ liệu>;
trong đó:
- danh sách biến là một hoặc nhiều
tên biến, tên biến được viết cách
nhau bởi dấu phẩy;
- kiểu dữ liệu thường là 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.
Cấu trúc <danh sách biến>:<kiểu
dữ liệu> có thể xuất hiện nhiều lần.

IV. Củng cố:
Đưa ra câu hỏi: Trong Pascal, nếu một biến chỉ nhận giá trị nguyên trong phạm vi
từ 10 đến 25532 thì biến đó có thể được khai báo bằng các kiểu dữ liệu nào?
Gọi một HS đứng tại chỗ trả lời. HS khác nhận xét, bổ xung.
V. Dặn dò: Đọc trước bài 6. Làm bài tập trong sách bài tập.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 6

Tin học 11

Phép toán, biểu thức, câu lênh gán
Ngày soạn:...../......; Ngày giảng:..../......

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;
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.
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án.
2. Học sinh: SGK, vở ghi.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Hãy cho biết một số kiểu dự liệu chuẩn được dùng trong TP? Cách khai
báo biến?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
GV: Để mô tả các thao tác trong thuật
toán, mỗi ngôn ngữ lập trình đều xác định
và sử dụng một số khái niệm cơ bản: phép
toán, biểu thức, gán giá trị cho biến.
1. Phép toán:
Bảng kí hiệu các phép toán trong toán
và trong Pascal: (SGK – t24).
.
Chú ý:
- Kết quả của các phép toán quan hệ
cho giá trị logic;
- Một trong những ứng dụng của phép
toán logic là để tạo ra các biểu thức
phức tạp từ các quan hệ đơn giản
GV: Trong lập trình, biểu thức số học là
2. Biểu thức số học
một biến số hoặc một hằng số hoặc các
Quy tắc:
biến kiểu số và các hằng kiểu số liên kết
- Chỉ dùng cặp ngoặc tròn để xác định với nhau bởi một số hữu hạn các phép toán
trình tự thực hiện phép toán trong số học, các dấu ngoặc tròn tạo thành một
trường hợp cần thiết;
biểu thức có dạng tương tự như cách viết
- Viết lần lượt từ trái sang phải;
trong toán học.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

- Không được bỏ qua dấu nhân trong
tích.
Các phép toán được thực hiện theo thứ 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 qua
phải, theo thứ tự các phép toán
nhân, chia, chia nguyên, lấy phần dư
thực hiện trước và các phép toán
cộng, trừ thực hiện sau.
GV: Lấy ví dụ trong SGK để giải thích cho
Ví dụ: SGK
HS. Có thể đưa ra một biểu thức trong toán
Chú ý (SGK)
học, HS viết lại biểu thức đó trong Pascal.
3. Hàm số học chuẩn
Bảng một số hàm số học chuẩn thường
dùng: SGK
Kết quả của hàm có thể là nguyên hay
hoặc thực hay phụ thuộc vào kiểu của đối
số.
Ví dụ: SGK
4. Biểu thức quan hệ
Biểu thức quan hệ có dạng:
<biểu thức 1><phép toán quan hệ><biểu
thức 2>
trong đó, biểu thức 1 và biểu thức 2 cùng
là xâu hoặc cùng là biểu thức số học.
Biểu thức quan hệ được thực hiện theo
trình tự:
- Tính giá trị các biểu thức
- Thực hiện phép toán quan hệ.
Kết quả của phép toán quan hệ là biểu thức
logic.
5. Biểu thức logic
Biểu thức logic đơn giản là biến logic
hoặc hằng logic.
Các biểu thức quan hệ thường được đặt
trong trong cặp dấu ngoặc ( và ).
Phép toán not được viết trước biểu thức
cần phủ định.
Các phép toán and và or dùng để kết
hợp nhiều biểu thức logic hoặc quan hệ
thành một biểu thức, thường được dùng để
diễn tả các điều kiện phức tạp.
ví dụ: SGK

GV: Để lập trình được dễ dàng, thuận tiện,
các ngôn ngữ lập trình đề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 được gọi là hàm số
học chuẩn.
GV: Hai biểu thức cùng liên kết với nhau
bởi phép toán quan hệ cho ta một biểu thức
quan hệ.

GV: Biểu thức logic là các biểu thức logic
đơn giản, các biểu thức quan hệ liên kết
nhau bởi phép toán logic.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

6. Câu lệnh gán
GV: Lệnh gán là một trong những lệnh cơ
Trong Pascal câu lệnh gán có dạng:
bản nhất của các ngôn ngữ lập trình.
<tên biến> := <biểu thức>;
Chức năng của lệnh gán là đặt cho biến
có tên ở vế trái dấu “:=” giá trị bằng giá trị HS: nghe giảng, ghi chép.
của biểu thức ở vế phải.
VD: SGK
IV. Củng cố:
Hãy viết biểu thức toán học dưới đây trong Pascal:
y
x
( 1+ x)
1
z+
1 + x2
x+

V. Dặn dò: Làm bài tập trong SBT. Đọc trước bài 7 và 8.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 7
dịch,

Tin học 11

Các thủ tục chuẩn vào/ra đơn giản. Soạn thảo,
thực hiện và hiệu chỉnh chương trình
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Biết các lệnh vào/ra đơn giản để nhập thông tin từ bàn phím và đưa thông
tin 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 chương trình;
- Biết một số công cụ của môi trường TP.
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 chương trình dịch để phát hiện lỗi;
- Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương
trình dịch và tính hợp lý của kết quả thu được.
II. Chuẩn bị của GV và HS:
1. Giáo viên: SGK, giáo án.
2. Học sinh: vở ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Hãy viết biểu thức toán học dưới đây trong Pascal:
y
 1
x
1+ x ÷ 1
1

 +
z 1 + x2
1+

. Bài giảng:
Nội dung
Hoạt động của GV và HS
A. Các thủ tục chuẩn vào/ra đơn giản
Trong ngôn ngữ Pascal các thủ tục vào/ra
chuẩn viết như sau:
GV: Khi sử dụng các ứng dụng ta
1. Nhập dữ liệu vào từ bàn phím
thường phải nhập thông tin vào, như vậy
bằng cách nào ta nhập được thông tin vào
khi lập trình?
Ta dùng thủ tục chuẩn READ hoặc
Làm thế nào để nhập giá trị từ bàn phím
READLN có cấu trúc như sau:
vào cho biến?
READ/READLN(<danh sách biến vào>); GV: Diễn giải hoạt động của
Ví dụ: Read(N);
READ/READLN, nêu sự khác nhau khi
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

Read(a,b,c);
dùng Read/Readln.
Chú ý: Khi nhập dữ liệu từ bàn phím
READ và READLN có ý nghĩa như nhau. GV: Đưa ra hai ví dụ về chương trình có
nhập thông tin vào từ bàn phím.
Ví dụ 1: Chương trình nhập tuổi.
Ví dụ 2: Nhập ba số nguyên.
GV: Nhận xét về chương trình. Giải thích
Việc nhập dữ liệu cho nhiều biến thì giá trị việc nhập giá trị cho nhiều biến đồng thời.
mỗi biến phải cách nhau ít nhất một dấu Giải thích sự khác biệt giữa READ và
cách hoặc dâu Enter, máy sẽ gán giá trị READLN.
cho biến theo thứ tự như trong lệnh nhập
tương ứng.
GV: Trong ví dụ 2, ta thấy 3 giá trị a, b, c
11 Đưa dữ liệu ra màn hình
Để đưa dữ liệu ra màn hình tại vị trí con dính liền vào nhau và người sử dụng không
trỏ, ta dùng thủ tục WRITE hoặc WRITE thể phân biệt được giá trị của từng biến.
Vậy làm thế nào và có những cách nào để
với cấu trúc:
hiển thị dữ liệu theo ý muốn của người lập
Write/Writeln(<Giá trị 1>,...<Giá trị n>);
trong đó các giá trị có thể là tên biến, trình.
tên hằng, giá trị cụ thể, biểu thức hoặc tên GV: Mỗi ngôn ngữ có cách đưa thông tin
ra màn hình khác nhau.
hàm.
Ví dụ: Write(a, b, c);
Writeln(‘ Giá trị của N là:’,N);
Thủ tục Writeln sau khi đưa kết quả ra
sẽ chuyển con trỏ màn hình xuống dòng
tiếp theo.
Ngoài ra TP còn có quy cách đưa thông
tin ra như sau:
Kết quả thực: <độ rộng>:<số chữ số thập
phân>
Kết quả khác: <độ rộng>
Ví dụ: Write(N:8);
Write(‘X=’,X:8:2);

GV: Giải thích sự khác nhau giữa Write và
Writeln.

GV: Minh họa cách đưa thông tin ra bằng
chương trình.
GV: Đưa ra hai ví dụ.
Ví dụ 1: Để nhập giá trị từ bàn phím, ta GV: Ví dụ 2 là một ví dụ đầy đủ của một
chương trình nhập dl từ bàn phím và hiển
thường dùng:
thị dữ liệu đó ra màn hình.
{1.}Write(‘ Nhập giá trị của N:’);
GV: Viết nhanh ví dụ
{2.}Readln(N);
Trong đó: {1} đưa ra thông báo: nhập giá HS: Nhận xét từng câu lệnh trong đoạn
chương trình.
trị của N
{2} dùng để đọc giá trị và gán cho biến N.
Cấu trúc {1}, {2} được gọi là giao tiếp
người – máy.
B. Soạn thảo, dịch, thực hiện và hiệu
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

chỉnh chương trình
Để thực hiện được các ví dụ và bài thực
hành trong máy tính bằng Turbo Pascal
cần có các tệp: turbo.exe, turbo.tpl,
graph.tpu, egavga.bgi.
Màn hình làm việc của ngôn ngữ Pascal
có dạng như sau:
( Hình 1. T32-SGK)
Một số thao tác thường dùng trong Pascal:
- Xuống dòng: Enter
- Ghi file vào đĩa: F2
- Mở file đã có: F3
- Biên dịch chương trình: Alt + F9
- Soát lỗi chương trình: F9
- Chạy chương trình: Ctrl + F9
- Đóng cửa sổ chương trình: Alt + F3
- Chuyển qua lại giữa các cửa sổ: F6
- Xem lại màn hình kết quả: Alt + F5
- Thoát khỏi TP: Alt + X

Tin học 11

GV: Giới thiệu một số tập tin cần thiết để
TP có thể chạy được, hướng dẫn HS cách
khởi động Pascal trên máy tính.
HS: Quan sát hình vẽ trong SGK.
GV: Giới thiệu một số thao tác thường
dùng khi soạn thảo chương trình trong môi
trường soạn thảo TP.
GV: Viết một chương trình ví dụ, thực
hiện các thao tác sửa lỗi...

IV. Củng cố: Giải thích từng dòng lệnh của đoạn chương trình sau:
Program VD;
Var N: Integer;
Begin
Write(‘ Lop ban co bao nhieu nguoi: ’);
Readln(N);
Writeln(‘ Vay la lop ban co ‘,N-1,’ nguoi ban trong lop’);
Readln;
End.
V. Dặn dò:
- Nhắc lại sự hoạt động của Write/Writeln, Read/Readln.
- Ra bài tập về nhà.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 8

Tin học 11

Bài tập
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Củng cố những nội dung chính trong chương II qua các bài tập
2. Kỹ năng:
- Biết sử dụng các thủ tục chuẩn vào/ra;
- Biết xác định input và output.
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Hãy cho biết các thủ tục vào/ra chuẩn của TP? Lấy vi dụ đơn giản để
minh họa?
. Bài giảng:
Nội dung
Hoạt động của GV và HS
GV: Chữa các bài tập từ 6 đến 10.
GV: Các bài tập 9 và 10 yêu cầu viết
chương trình nhập các giá trị của các biến
từ bàn phím, sau đó tính giá trị một biểu
thức chứa các biến này và hiện kết quả ra
màn hình.
GV: Yêu cầu HS phân tích tìm ra input và
output của bài toán.
Bài 6 – 7 (SGK)

GV: Hướng dẫn HS phân biệt cách viết
công thức trong toán học với trong Pascal
(chú ý chỉ dùng một loại dấu ngoặc tròn)
HS: Lên bảng viết các biểu thức.

Bài 8 (SGK)

GV: Hướng dẫn HS phát hiện những đặc
điểm của tọa độ (x,y) của điểm thuộc vùng
gạch trong các hình 2a và 2b.

2a) bt:= (y>abs(x)) and (y<=1)
2b) bt:= (abs(x) <= 1) and (abs(y) <=1)
Câu 9 (SGK)

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

Nhận xét: Diện tích phần gạch bằng ½ GV: Gợi ý đề HS nhận xét bài toán
diện tích hình tròn tâm O(0,0) bán kính GV: Hướng dẫn HS viết chương trình đầy
R= a. Lưu ý số π là hằng trong Pascal và đủ.
được kí hiệu là Pi.
Chương trình:
var a: read;
Begin
write(‘ Nhap gia tri a (a>0):’);readln(a);
write(‘ Dien tich phan gach la:
‘,a*a*pi/2:15:3);
readln
end.
Câu 10 (SGK)
GV: Viết sẵn chương trình giải bài 10 trên
giấy khổ lớn dạng đồ dùng học tập, nhưng
chương trình còn sai một vài chỗ để học
sinh tìm lỗi và sửa.
IV. Củng cố: Hoàn thiện bài tập số 10 vào vở.
V. Dặn dò: Làm các bài tập trong sách bài tập. Chuẩn bị bài để giờ sau thực hành tại
phòng máy.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 9 + 10

Tin học 11

Bài tập và thực hành 1
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản;
- Làm quen với một số dịch vụ cơ bản của TP trong việc soạn thảo, lưu trữ,
dịch và thực hiện chương trình.
2. Kỹ năng:
- Biết viết một chương trình Pascal đơn giản;
- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch
và thực hiện chương trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK.
2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
GV: Hướng dẫn lại cho HS biết cách khởi
động máy, kích hoạt phần mềm Pascal,
làm quen với một chương trình đơn giản
(giải phương trình bậc hai một ẩn) theo
từng bước.
GV: Thực hiện theo hướng dẫn như trong
a) Gõ chương trình sau:
SGK.
Program Giai_PTB2;
HS: Làm theo từng bước.
Uses crt;
Var a, b, c, D: real;
HS: Mở chương trình Turbo Pascal.
x1, x2: real;
HS: Gõ chương trình.
Begin
clrscr;
write(‘ a, b, c: ‘);
readln(a,b,c);
D:=b*b – 4*a*c;
x1:= (-b – sqrt(D))/(2*a);
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

x2:= - b/a – x1;
write(‘ x1=’,x1:8:3,’ x2 = ‘,x2:8:3);
readln;
End.
b) Nhấn phím F2 và lưu chương trình với GV: Hướng dẫn chung cho HS cách lưu
tên là PTB2.PAS lên đĩa.
chương trình của mình (đặt tên, lưu tại đâu,
...
c) Nhấn tổ hợp phím Alt + F9 để dịch và
sửa lỗi cú pháp (nếu có).
GV: Sửa những lỗi chung lên bảng.
GV: Giúp HS dịch và sửa lỗi chương trình
trực tiếp trên máy tính với từng HS (vì đây
là bài thực hành đầu tiên).
d) Nhấn tổ hợp phím Ctrl + F9 để thực
hiện chương trình.
HS: Nhập các giá trị: 1, -3, 2. Quan sát kết
quả trên màn hình.
e) Nhấn tổ hợp phím Ctrl + F9 rồi nhập
các giá trị 1; 0; -2.
HS: Quan sát kết quả hiển thị trên màn
hình.
f) Sửa lại chương trình trên sao cho không GV: Gợi ý để HS thực hiện việc sửa đổi
dùng biến trung gian D. Thực hiện chương chương trình.
trình đã sửa với bộ dữ liệu trên.
g) Sửa lại chương trình nhận được ở câu c)
bằng cách thay đổi công thức tính x2.
h) Thực hiện chương trình đã sửa với bộ
dữ liệu 1; -5; 6.
HS: Thực hiện theo yêu cầu. Quan sát kết
quả trên màn hình.
g) Thực hiện chương trình với bộ dữ liệu
1; 1; 1 và quan sát kết quả trên màn hình.
GV: Sau khi học sinh hoàn thành bài thực
hành 1, có thể hướng dẫn HS làm các bài
Bài 9
tập 9 và 10 trong SGK.
uses crt;
var a, s: real;
begin
clrscr;
write(‘ a= ‘);
readln(a);
s:=pi*sqr(a)/2;
writeln(‘ dien tich phan gach cheo la: ‘, HS: Làm bài tập dưới sự hướng dẫn của
s:4:2);
GV.
readln
end.
IV. Củng cố:
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

V. Dặn dò: Làm bài tập 9, 10 (t36 – SGK). Giờ thực hành sau cho chạy thử trên máy.

Tiết 11

Cấu trúc rẽ nhánh
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu nhu cầu 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 thiếu, 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.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Giáo án, SGK, bảng phụ, phiếu học tập.
2. Học sinh: Vỏ ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Néi dung
Ho¹t ®éng cña GV
Ho¹t ®éng cña HS
- Ph¸t phiÕu häc - NhËn phiÕu häc
tËp cho HS.

tËp.

- Híng dÉn HS sö dông
®Çy

phiÕu:
®ñ

c¸c

§iÒn

c¸c

th«ng

®iÒn tin c¸ nh©n.
th«ng - Xem vµ nghe GV

tin ngµy th¸ng, hä híng dÉn c¸ch thøc
tªn,

Sử
dụng

líp,

®äc

kü ®Ó tr¶ lêi c¸c yªu

c¸c yªu cÇu vµ tr¶ cÇu
lêi

vµo

quy ®Þnh.

phÇn

trong

phiÕu

®· häc tËp.
-

Hái

- HS cã 15 phót tù nh÷ng

lu«n
ý

mµ

GV
m×nh

nghiªn cøu SGK vµ cha hiÓu.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

phiếu
học tập

tr¶

Tin học 11

lêi

c¸c

yªu - Trong 15 phót tù

cÇu trong phiÕu.
-

Quan

s¸t

nghiªn cøu SGK vµ

HS, hoµn

gi¶i ®¸p c¸c th¾c HS
m¾c

trong

thµnh

phiÕu

ph¶i

®äc

thËt

c¸c

yªu

cÇu

PhiÕu

häc

qu¸ kü

tr×nh HS thùc hiÖn trong

c¸c yªu cÇu trong tËp. Sö dông hiÖu
phiÕu.

qu¶

SGK

nh

tµi

liÖu nghiªn cøu.
- HS cã thÓ trao
®æi

vµ

th¶o

luËn

víi c¸c thµnh viªn
xung
- Sau 15 phót b¾t ®îc

quanh
c©u

®Ó

tr¶

cã
lêi

®Çu hoµn thiÖn c¸c ®óng ý, ng¾n gän.
néi

dung

trong -

phiÕu.

Tr×nh

dung

- Khi ®Ò cËp ®Õn häc

bµy

trong
tËp

néi
phiÕu

theo

yªu

phÇn nµo trong bµi cÇu cña GV.
th× yªu cÇu 1 HS -

Theo

dâi

GV

h·y tr×nh bµy néi tr×nh bµy vµ nhËn
dung phÇn ®ã.
-

ViÕt

néi

lªn

b¶ng

cÇu

c¸c

vµ
HS

xÐt

Sau

khi

tr¶

lêi

dung cña b¹n.
yªu
kh¸c - Hoµn thiÖn phiÕu

nhËn xÐt.
-

phÇn

häc tËp.
hoµn

thµnh c¸c ý trong
phiÕu th× yªu cÇu
HS

hoµn

thiÖn
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

phiÕu cña m×nh.
IV. Củng cố:
V. Dặn dò: Đọc trước bài 10 – Cấu trúc lặp.

Ngµy.........th¸ng.........n¨m 2007

PhiÕu häc tËp c¸ nh©n- tin häc 11
TiÕt 11: CÊu tróc rÏ nh¸nh
Hä vµ tªn:

.....................................................................................,

Líp:

..........................................

C¸c yªu cÇu ®èi víi HS
PhÇn tr¶ lêi cña HS
1. RÏ nh¸nh
VÝ dô: §Ó gi¶i ph¬ng NÕu ∆ < 0 th×
tr×nh bËc hai, ta ph¶i tÝnh: .................................................
∆ = b2 − 4ac

...................................

NÕu ∆ ≥ 0 th×
Tïy thuéc vµo ∆ ®Ó ®a ra kÕt .................................................
..................................
luËn nghiÖm.
Quan s¸t s¬ ®å. §iÒn vµo hoÆc
chç trèng? Tõ ®ã suy ra mét NÕu ∆ < 0 th×
.................................................
sè mÖnh ®Ò?
................................... ngîc l¹i
th×

...........................................
............................................

⇒ mÖnh ®Ò:

.................................................
.................................................
..................
.................................................
.................................................
..................

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

2. C©u lÖnh if – then
ý nghÜa c¸c c©u lÖnh:
Quan s¸t cÊu tróc c©u D¹ng
thiÕu:
lÖnh vµ s¬ ®å khèi. ChØ ra ý .................................................
nghÜa c¸c c©u lÖnh?
.......................................
.................................................
.................................................
...................
.................................................

VÝ dô: §äc vÝ dô 3
t40)
§iÒn vµo chç trèng?

(SGK

–

.................................................
...................
.................................................
.................................................

C¸ch nµo nhanh h¬n, tiÖn h¬n?

...................

D¹ng

®ñ:

.................................................
.............................................
.................................................
.................................................
...................
.................................................
.................................................
...................
.................................................
.................................................
...................

Thùc hiÖn b»ng hai c¸ch:
C1: max := a; if .............. then
..............

C2: if

............

...................

C¸ch:

then

else..................

..........

3. C©u lÖnh ghÐp
Trong c©u lÖnh if-then Tr¶
lêi:
.................................................
muèn thùc hiÖn nhiÒu lÖnh sau
................................................
then hay nhiÒu lÖnh sau else .................................................
.................................................
ta lµm thÕ nµo?
...................
.................................................
.................................................
...................
.................................................
.................................................
...................
.................................................
.................................................
...................

4. Mét sè vÝ dô
§äc vÝ
tr41).

dô

1

(SGK

–

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật
Quan s¸t ch¬ng tr×nh trªn
b¶ng.
Th¶o luËn vÒ ch¬ng tr×nh nµy.

Tin học 11

Bµi tËp:
Sö dông cÊu tróc rÏ nh¸nh viÕt c©u lÖnh gi¶i ph¬ng tr×nh
bËc nhÊt: ax + b = 0.

Tiết 12+13

Cấu trúc lặp
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán;
- Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện 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 với số lần biết trước, lệnh lặp kiểm tra điều kiện
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 GV và HS:
1. Giáo viên: Giáo án, SGK, bảng phụ.
2. Học sinh: Vở ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc câu lệnh sẽ nhánh dạng thiếu và dạng đủ? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung

GV : Đưa ra bài toán, yêu cầu học sinh tìm
cách để lập trình giải các bài toán này .
1. Khái niệm lặp
HS : Đưa ra cách giải của mình, học sinh - Xét 2 bài toán như sau với a > 2 là số
có thể đưa ra những cách giải khác nhau .
nguyên cho trước :
GV : Đưa ra cách giải cho bài toán .
Giải theo các lệnh tuần tự

Bài toán 1 : Tính tổng
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

S1:=0;
If (1/a>0.0001) then S1:=S1+ 1/a;
If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1);
If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2);
If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3);
…

Tin học 11
1

1

1

1

S1= a + a + 1 + a + 2 + ... + a + 100
Bài toán 2 : Tính Tổng
1

1

1

1

S2= a + a + 1 + a + 2 + ... + a + N
Với điều kệin

+ ...

1
< 0.0001
a+N

HS : Nhận xét với việc giải bài toán theo
cách đó ?
Cách giải :
Với N = 100 thì lặp 100 lần như thế nhưng
theo việc kiểm tra điều kiện thì không biết
- Bắt đầu S được gán giá trị 1/a.
phải làm theo cách nào? Theo cả hai trường
hợp thì đều quá dài.
- Tiếp theo mỗi lần cộng thêm vào S là
1/(a+N) với N = 1, 2, 3, …
-

Để học sinh hiểu được khái niệm lặp, giáo
viên đưa ra một số ví dụ trong thực tế được
tính toán lặp đi lặp lại nhiều lần.
VD1 : Bài toán gửi tiền vào ngân hàng.
Hằng tháng phải tính lãi và cộng thêm vào
gốc đang gửi hay nói cách khác gốc của
tháng sau = gốc + lãi tháng trước.
VD 2: Tính tổng của một đoạn số nguyên
mà không được dùng công thức.

GV : Đưa ra ví dụ:
So sánh hai thuật toán sau:

Với bài toán 1, việc cộng thêm dừng
khi 1/(a+N) < 0.0001, => số lần lặp
chưa biết.

-

Với bài toán 2, việc cộng thêm dừng
khi N = 100, => số lần lặp đã biết
trước.

Trong lập trình, có những thao tác phải
lặp lại nhiều lần, khi đó ta gọi là cấu trúc
lặp.
Lặp thường có 2 loại :
 Lặp với số lần biết trước .
 Lặp với số lần không biết trước .
NNLT nào cũng cung cấp một số câu lệnh
để mô tả các cấu trúc lặp như trên.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh
trong ngôn ngữ Pascal.
2. Lặp có số lần biết trước và câu lệnh for
– do
Trong Pascal, có 2 lọai câu lệnh lặp có số
lần biết trước :
- Lặp dạng tiến:
For <biến đếm> := <giá trị đầu> to <giá
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Thuật toán
Thuật toán
Tong_1a
Tong_1b
B1:
S:=1/a; B1:
S:=1/a;
N:=0;
N:=101;
B2: N:=N+1;
B2: N := N -1;
B3: Nếu N >100 B3: Nếu N < 1
thì chuyển sang thì chuyển sang
bước 5;
bước 5;
B4: S:= S + 1/ B4: S:= S+ 1/
(a+ N) rồi quay (a+N) rồi quay
lại B2;
lại B2;
B5: Đưa ra S rồi B5: Đưa ra S rồi
kết thúc.
kết thúc.
GV : Gọi một số học sinh nhận xét về 2
thuật toán trên về một số vấn đề :
 Thuật toán có lặp không?
 Lặp bao nhiêu lần?
 Hai thuật toán giống và khác nhau
như thế nào?
 Cái gì thay đổi trong thuật toán này?

Tin học 11

trị cuối> do <câu lệnh>;
- Lặp dạng lùi
For <biến đếm> := <giá trị cuối> downto
<giá trị đầui> do <câu lệnh>;
Trong đó:
 Biến đếm thường là biến kiểu số
nguyên.
 Giá trị đầu, giá trị cuối là các biểu
thức cùng kiểu với biến đếm. Giá trị
đầu phải nhỏ hơn hay bằng giá trị
cuối.
 Ở dạng lặp tiến: Biến đếm tự tăng dần
từ giá trị đầu đến giá trị cuối.
 Ở dạng lặp lùi: Biến đếm tự giảm dần
từ giá trị cuối đến giá trị đầu.
 Tương ứng với mỗi giá trị của biến
đếm, câu lệnh sau do thực hiện 1 lần

Ví dụ 1 : Hai chương trình cài đặt thuật toán
Sau khi so sánh hai thuật toán trên, giáo tong_1a và tong_1b .
viên đưa ra hai cách lặp trong ngôn ngữ
Pascal, giải thích ý nghĩa của các thành
phần trong câu lệnh .
Ví dụ 2 : Tính tổng các số nguyên chia hết
GV : Lấy ví dụ minh họa trong Pascal để cho 3 hoặc 5 trong phạm vi từ M đến N
các em thấy được sự thay đổi giá trị của (M<N).
biến đếm trong một chương trình thực sự
của Pascal .
Với 2 ví dụ này, giáo viên nên gõ sẵn
chương trình và cho học sinh quan sát việc
chạy chương trình, giáo viên vừa cho chạy
chương trình vừa giải thích ý nghĩa các
lệnh trong chương trình (chú ý nhiều đến
lệnh lặp) .
GV : Đưa ra thuật toán hoặc có thể yêu
cầu học sinh tự xây dựng thuật toán giải bài 3. Lặp với số lần chưa biết trước và câu
toán 2, nếu tự xây dựng được thuật toán thì lệnh while – do
các em sẽ hiểu hơn về lặp không biết trước Để giải bài toán 2 ta dùng thuật toán như sau
số lần
:
Đưa thêm ví dụ : Nhắc lại bài toán gửi Bước 1 : S :=1/a; N :=0;
tiền vào ngân hàng: Nếu có số tiền là A, Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển
muốn gửi vào ngân hàng để được số tiền là đến bước 5 ;
B > A thì cần gửi trong bao lâu với lãi suất
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

là k%.
Bước 3: N :=N +1;
Yêu cầu học sinh đưa ra cách giải cho Bước 4: S := S+ 1/(a+N) rồi quay lại bước
bài toán này .
2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết
GV : Phân tích phương án trả lời của học thúc
sinh sau đó đưa ra lời giải cho bài toán.
- Từ bước 2 đến bước 4 được lặp lại nhiều
lần nếu điều kiện 1/(a+N) < 0.0001 chưa
GV : Đưa ra cấu trúc câu lệnh While – Do được thỏa mãn.
Trong Pascal, giải thích ý nghĩa các thành _ Pascal sử dụng câu lệnh lặp While
phần.
- Do để tổ chức lặp với số lần chưa viết như
HS : Lắng nghe và ghi chép.
sau
While <Điều kiện> Do <Câu lệnh>;
Trong đó
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Ý nghĩa : Khi điều kiện còn đúng thì còn
thực hiện câu lệnh sau Do sau đó lại quay lại
kiểm tra điều kiện.
GV: Nên gõ sãn những ví dụ này để học
sinh có thể quan sát chương trình, giáo viên
chạy thử chương trình trong Pascal.
Riêng với VD 2, trước khi đưa ra thuật
toán, GV nên cho học sinh xây dựng thuật
toán tìm ước chung lớn nhất (đã học ở lớp
10)
Chạy chương trình với nhiều cặp M, N
khác nhau.

Ví dụ 1 : Chương trình của bài toán 1.
Ví dụ 2 : Tìm ước chung lớn nhất của M và
N.

Thuật toán :
B1: Nếu M = N thì ƯCLN := M;
Kết thúc.
Tốt nhất chạy từng bước, cho học sinh thấy B2: Nếu M > N thì M := M – N rồi quay lại
sự thay đổi của các biến.
B1, ngược lại N := N – M rồi quay lại B1
Sau đây là chương trình tìm UCLN;

IV. Củng cố:
 Nhắc lại một số khái niệm mới;
 Nhắc lại cấu trúc câu lệnh.
V. Dặn dò:
 Cho bài tập về nhà.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 14 + 15

Tin học 11

Bài tập và thực hành 2
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
- 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.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK.
2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Bài toán. Bộ số Pi-ta-go.
Biết rằng bộ ba số nguyên dương a, b, c
được gọi là bộ số Pi-ta-go nếu tổng các
bình phương của hai số bằng bình phương
của số còn lại. Viết chương trình nhập từ
bàn phím ba số nguyên dương a, b, c và
kiểm tra xem chúng có là bộ số Pi-ta-go GV: giải thích bài toán.
hay không?
HS: Đưa phương án có thể xảy ra của bài
toán.
Kiểm tra xem có đẳng thức nào trong ba
đẳng thức sau đây xảy ra hay không:
Những công việc cần thực hiện:
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

a) Gõ chương trình sau:
a 2 = b2 + c 2
program Pi_ta_go;
b2 = a 2 +c 2
uses crt;
var a, b, c: integer;
c 2 = a 2 +b 2
a2, b2, c2: longint;
begin
clrscr;
write(‘a, b, c:’);
HS: gõ đoạn chương trình.
readln(a, b, c);
GV: Chú ý, trước else không có dấu chấm
a2:=a;
phẩy (;).
b2:=b;
c2:=c;
a2:=a2*a;
b2:=b2*b;
c2:=c2*c;
if (a2 = b2 + c2) or (b2 = c2 + a2) or
(c2 = a2 + b2) then
writeln(‘ Ba so da nhap la bo so Pi-tago’) else
write(‘ Ba so da nhap khong la bo so
Pi-ta-go’);
readln
end.
b) Lưu chương trình với tên PITAGO lên
đĩa.
c) Nhấn phím F7 để thực hiện từng câu
lệnh chương trình, nhập các giá trị a = 3, b
= 4, c = 5.
HS: Thực hiện thao tác lưu chương trình.
d) Vào bảng chọn Debug mở cửa sổ hiệu
chỉnh để xem giá trị a2, b2, c2.
e) Nhấn phím F7 để thực hiện các câu lệnh
tính những giá trị nói trên, so sánh với kết GV: Theo dõi và hướng dẫn HS thực hiện
quả a2 = 9, b2 = 16, c2 = 25.
các phần của bài thực hành.
GV: Hướng dẫn cụ thể ở từng máy một.
f) Quan sát quá trình rẽ nhánh.
g) Lặp lại các bước trên với bộ dữ liệu a =
700, b = 1000, c = 800.
h) Nếu thay dãy lệnh
a2:=a;
b2:=b;
c2:=c;
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

a2:=a2*a;
b2:=b2*b;
c2:=c2*c;
bằng dãy lệnh
a2:=a*a;
b2:=b*b;
c2:=c*c;
thì kết quả có gì thay đổi với bộ dữ liệu HS: Nếu thực hiện xong các yêu cầu trong
cho ở câu g?
bài thực hành thì có thể làm một số bài tập
trong SGK (t.51).
GV: Gợi ý cho HS thực hiện các bài tập
này.
IV. Củng cố:
V. Dặn dò:

Tiết 16

Kiểm tra 1 tiết
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Củng cố và ghi nhớ kiến thức cơ bản của chương 2
2. Kỹ năng:
- Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được
những chương trình TP.
II. Chuẩn bị của GV và HS:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Kiểm tra bằng bài viết trên lớp.
GV: Phát đề cho HS, quan sát HS làm bài.
Bài kiểm tra gồm 20 câu trắc nghiệm.
HS: Làm bài nghiêm túc, không sử dụng
tài liệu.
IV. Củng cố:
V. Dặn dò: Ôn tâp toàn bộ chương 2 và bài “Cấu trúc rẽ nhánh”.
Giờ sau kiểm tra học kì.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 18

Tin học 11

Kiểm tra học kì I
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Củng cố và ghi nhớ kiến thức cơ bản của toàn bộ nội dung học kì I.
2. Kỹ năng:
- Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được
những chương trình viết bằng ngôn ngữ lập trình Pascal.
II. Chuẩn bị của GV và HS:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Nội dung
Hoạt động của GV và HS
Kiểm tra bằng bài viết trên lớp.
GV: Phát đề cho HS, quan sát HS làm bài.
Bài kiểm tra gồm 30 câu trắc nghiệm.
HS: Làm bài nghiêm túc, không sử dụng
tài liệu.
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 19

Tin học 11

Cấu trúc lặp (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Giáo án, SGK, bảng phụ.
2. Học sinh: Vở ghi, SGK.
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc của câu lệnh lặp với số lần biết trước? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
3. Lặp với số lần chưa biết trước và câu
lệnh while – do
GV : Đưa ra cấu trúc câu lệnh While – Do Để giải bài toán 2 ta dùng thuật toán như sau
Trong Pascal, giải thích ý nghĩa các thành :
phần.
Bước 1 : S :=1/a; N :=0;
HS : Lắng nghe và ghi chép.
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển
đến bước 5 ;
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước
2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết
thúc
- Từ bước 2 đến bước 4 được lặp lại nhiều
lần nếu điều kiện 1/(a+N) < 0.0001 chưa
GV: Nên gõ sãn những ví dụ này để học được thỏa mãn.
sinh có thể quan sát chương trình, giáo viên _ Pascal sử dụng câu lệnh lặp While
chạy thử chương trình trong Pascal.
- Do để tổ chức lặp với số lần chưa viết như
Riêng với VD 2, trước khi đưa ra thuật sau
toán, GV nên cho học sinh xây dựng thuật
toán tìm ước chung lớn nhất (đã học ở lớp While <Điều kiện> Do <Câu lệnh>;
10)
Chạy chương trình với nhiều cặp M, N Trong đó
khác nhau.
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Tốt nhất chạy từng bước, cho học sinh thấy
sự thay đổi của các biến.
Ý nghĩa : Khi điều kiện còn đúng thì còn
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

thực hiện câu lệnh sau Do sau đó lại quay lại
kiểm tra điều kiện.
Ví dụ 1 : Chương trình của bài toán 1.
Ví dụ 2 : Tìm ước chung lớn nhất của M và
N.
Thuật toán :
B1: Nếu M = N thì ƯCLN := M;
Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại
B1, ngược lại N := N – M rồi quay lại B1
Sau đây là chương trình tìm UCLN;
IV. Củng cố:
 Nhắc lại một số khái niệm mới;
 Nhắc lại cấu trúc câu lệnh.
V. Dặn dò:
 Cho bài tập về nhà.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

Tiết 20

Bài tập
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Củng cố thêm về cấu trúc rẽ nhánh;
2. Kỹ năng:
- Luyện cấu trúc lặp, chú ý bài tìm tổng của dãy số;
- Tiếp tục làm quen với các công cụ hiệu chỉnh chương trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV: Hướng dẫn và giải đáp các thắc mắc
của HS về một số bài tập ở nhà.
GV: Yêu cầu HS chữa bài tập 4 trên bảng.
HS: Lên bảng chữa bài.
GV: Sửa lỗi và hoàn chỉnh bài 4.
GV: Rèn luyệ, uốn nắn HS về cách viết các
câu lệnh sao cho chính xác và gọn gàng,
mỗi câu lệnh nên viết trên một dòng để
thuận tiện cho quá trình theo dõi thực hiện
từng lệnh.

Bài 4
a)
if (sqr(x)+sqr(y)<=1) then z:= sqr(x) +
sqr(y) else if y>=x then z:=x + y else
z:=0.5;
b)
if (sqr(x-a) + sqr(y-b))<=sqr(r) then
z:=abs(x) + abs(y) else z:=x+y;

HS: Rèn luyện tính cẩn thận, chu đáo khi
lập trình, rèn luyện cách hiệu chỉnh chương
trình khi gặp lỗi và cách kiểm thử lại
chương trình thông qua một số test.
Bài 5
GV: Yêu cầu cả lớp cùng giải bài tập 5.b.
IV. Củng cố:
V. Dặn dò: Đọc trước bài Kiểu mảng.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 21

Tin học 11

Kiểu mảng
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Hiểu khái niệm mảng một chiều và hai 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 toán các phần tử của mảng .
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
Trước khi vào bài, giáo viên đưa ra một số
vấn đề cần giải quyết như sau :
Với những kiểu dữ liệu như đã biết, làm thế
nào để :
- Lưu trữ và xử lý một dãy số ?
- Lưu trữ và xử lý Họ và tên của một Có thể sử dụng ví dụ trong SGK để học sinh
dễ theo dõi, gõ trước chương trình để có thể
người ?
- Lưu trữ và xử lý bảng kết quả thi tốt sử dụng cho các phần tiếp theo .
nghiệp ?
HS : Đưa ra các phương án để trả lời cho 3
câu hỏi trên .
GV : Các ngôn ngữ lập trình thường cung
cấp một số kiểu dữ liệu được xây dựng từ
những kiểu dữ liệu chuẩn gọi là kiểu dữ
liệu có cấu trúc .
Chương này chúng ta sẽ tìm hiểu một Trong lập trình thường có 2 loại mảng :
- Mảng một chiều .
số kiểu dữ liệu trong ngôn ngữ Pascal để trả
- Mảng hai chiều .
lời 3 câu hỏi trên .
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

GV : Đưa ra ví dụ, cần lập lập trình xử lý 1. Kiểu mảng một chiều
một dãy số nguyên, hãy tìm cách lưu trữ
một dãy số nguyên trong khi lập trình ?
- Mảng một chiều là một dãy hữu hạn các
phần tử có cùng kiểu, mảng được đặt tên và
Bằng cách nào để lưu trữ được thông tin mỗi phần tử mang một chỉ số. Để mô tả
dưới dạng bảng khi lập trình ?
mảng một chiều ta cần xác định kiểu của các
phần tử và cách đánh chỉ số các phần tử .
HS : Đưa ra ý kiến .
Với mảng một chiều ta quan tâm đến :
GV : Đánh giá ý kiến của học sinh, sau đó
- Tên mảng một chiều .
đưa ra mục đích của việc sử dụng cấu trúc
- Số lượng phần tử trong mảng .
mảng trong chương trình .
- Kiểu dữ liệu của phần tử .
- Cách khai báo biến mảng một chiều .
GV : Đưa ra khái niệm mảng một chiều và
- Cách truy cập vào từng phần tử của
một số yếu tố liên quan trong lập trình nói
mảng .
chung .
Xét ví dụ : Nhập vào nhiệt độ trung bình
mỗi ngày trong tuần . Tính và đưa ra màn
hình nhiệt độ trung bình của cả tuần và đếm
số ngày có nhiệt độ lớn hơn nhiệt độ trung
bình này .
GV : Đi sâu phân tích hai chương trình để
cho học sinh nhận thấy sự tiện lợi khi sử Quan sát hai chương trình viết bằng ngôn
dụng mảng .
ngữ Pascal cùng để giải bài toán trên .

HS : Trong khi giáo viên phân tích hai
chương trình, học sinh sẽ đưa ra ý kiến
nhận xét về 2 chương trình.
HS : Trong khi giáo viên phân tích hai
chương trình, học sinh sẽ đưa ra ý kiến
nhận xét về 2 chương trình.

- Chương trình 1 : Không sử dụng kiểu
mảng .
- Chương trình 2 : Sử dụng kiểu mảng
một chiều .
a> Khai báo mảng một chiều
Trong ngôn ngữ Pascal, mảng một chiều
được khai báo bằng hai cách như sau :
Cách 1 :
Var <Tên mảng> : Array[kiểu chỉ số] of
<kiểu phần tử> ;
Cách 2 :
Type <Tên kiểu mảng> = Array [<kiểu chỉ
số>] of <kiểu phần tử> ;
Var <Tên mảng> : <tên kiểu mảng> ;

GV : Đưa ra cách khai báo mảng một chiều
trong ngôn ngữ Pascal, giải thích ý nghĩa Trong đó :
của các từ khóa mới .
- Type là từ khóa dùng để khai báo biến,
Array là từ khóa để khai báo mảng .
GV : Khai báo bằng cách nào tiện lợi hơn ?
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

- Kiểu chỉ số thường là đoạn số nguyên
liên tục có n1..n2, với n1 là chỉ số đầu
HS : Thường thì học sinh trả lời cách 1 tiện
và n2 là chỉ số cuối.
lợi hơn ?
- Kiểu thành phần là kiểu dữ liệu của
phần tử mảng .
- Để truy cập vào phần tử mảng ta viết :
GV : Tùy trường hợp cụ thể mà ta dùng
- <Tên biến mảng>[Chỉ số]
cách 1 hay cách 2 nhưng thông thường ta
Ví dụ :
sử dụng cách 1 .
A[20] Truy cập phần tử mang chỉ số 20
trong mảng A .
Ví dụ :
GV : Sử dụng một sồ hình ảnh trực quan
Khai báo biến mảng thông qua kiểu mảng
minh họa cho học sinh cấu trúc mảng và
:
chỉ số của phần tử
Type
ArrayInteger=Array[1..100] of Integer;
Chỉ
ArrayReal=Array[1.50] of Real;
1 2 3 4 5 6 7 8
số
Var A : Array[1..50];
B : Array[1..50] of Real;
Giá 5
81 62 18 26 41 24 53
trị 3
Khai báo mảng trực tiếp :
Đưa ra một số khai báo mảng trong Pascal . Var A : Array[1..100] of Integer ;
B : Arrat[1..50] of Real ;
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 22

Tin học 11

Kiểu mảng (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ: Cho biết cách khai báo mảng một chiều?
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
b> Một số ví dụ :
GV : Đưa ra ví dụ .
Ví dụ 1 : Tìm phần tử lớn nhất của một dãy
số nguyên .
HS : Xây dựng thuật toán để giải bài toán - Input : Số nguyên dương N và dãy số
(thuật toán đã học ở lớp 10) .
A1, A2, ….., AN
- Output : Chỉ số và giá trị của số lớn
nhất trong dãy
GV soạn sẵn chương trình và cho học sinh - Ý tưởng :
quan sát chương trình .
+ Đặt số A1 là số lớn nhất (max)
+ Cho i lặp từ 2 đến N, nếu A[i]> thì đổi
max = A[i] vả lưu lại vị trí i .
Nếu có nhiều thời gian, giáo viên sẽ tiến Chương trình như sau :
hành soạn chương trình từ đầu để học sinh
có thể dễ dàng nhận ra các thao tác cần phải Program timmax ;
thực hiện khi viết chương trình .
Uses crt ;
var a : array[1..250] of integer ;
n,i,max,csmax : Integer ;
Begin
clrscr ;
Write('Nhap n = ') ;
Readln(n) ;
For i := 1 to n do
Begin
Write('a[',i,'] = ') ;
readln(a[i]) ;
End ;
max := a[i] ;
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

csmax := 1 ;
For i := 2 to n do
If a[i] > max then
Begin
max := a[i] ;
csmax :=i ;
End ;
Writeln('Gia tri lon nhat : ',max) ;
Writeln('chi so ptu lon nhat : ',csmax) ;
Readln ;
End .
Ví dụ 2 : Sắp xếp dãy số nguyên theo bằng
thuật toán tráo đổi .
GV : Đưa ra ví dụ, nhắc lại ý tưởng của - Input : Số nguyên dương N và dãy số
thuật toán .
A1, A2, …, AN
- Output : Dãy A được sắp xếp theo thứ
tự không giảm .
HS : Xây dựng thuật toán để giải bài toán
(thuật toán đã học ở lớp 10) .
- Ý tưởng :
+ Đổi để đưa số lớn nhất về vị trí cuối
cùng .
GV: soạn sẵn chương trình và cho học sinh
+ Làm tương tự đối với những số còn
quan sát chương trình .
lại .
Chương trình như sau :

Nếu có thời gian, giáo viên sẽ tiến hành
soạn chương trình từ đầu để học sinh có thể Program sapxep ;
dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ;
từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ;
trình .
n,i,j,tg : Integer ;
Begin
clrscr ;
Write('Nhap so phan tu mang n = ') ;
Readln(n) ;
For i := 1 to n do
Begin
Write('A[',i,'] = ') ;
readln(A[i]) ;
End ;
For j := n downto 2 do
Begin
For i := 1 to j-1 do
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

If A[i] > A[i+1] then
Begin
tg := A[i] ;
A[i] := A[i+1] ;
A[i+1] := tg ;
End ;
End ;
Writeln('day sau khi sap xep : ') ;
For i := 1 to n do
write(a[i]:8) ;
readln ;
End .
Writeln('chi so ptu lon nhat : ',csmax);
readln ;
End .
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 23

Tin học 11

Kiểu mảng (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C5:
11C6:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh

11C3:
11C7:

11C4:

Nội dung
Ví dụ 3 : Tìm kiếm nhị phân .

GV : Đưa ra ví dụ, nhắc lại ý tưởng của
thuật toán .
HS : Xây dựng thuật toán để giải bài toán
(thuật toán đã học ở lớp 10) .

- Input : Dãy số A1, A2,………, AN đã
được sắp xếp tăng dần .
- Output : Có hay không chỉ số i mà
A[i] = k hoặc thông báo không tìm
thấy .
GV soạn sẵn chương trình và cho học sinh
- Ý tưởng :
quan sát chương trình .
Xem lại thuật toán tìm kiếm nhị phân
trong SGK lớp 10 .
Chương trình như sau :
Nếu có thời gian, giáo viên sẽ tiến hành
soạn chương trình từ đầu để học sinh có thể Program sapxep ;
dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ;
từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ;
trình .
n,i,k : Integer ;
dau,cuoi,giua : Integer ;
TK : boolean ;
Begin
clrscr ;
Write('Nhap so ptu mang n = ') ;
Readln(n) ;
For i := 1 to n do
Begin
Write('A[',i,'] = ') ;
readln(A[i]) ;
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

End ;
Write('nhap so can tim k : ') ;
Readln(k);
dau := 1 ; cuoi := n ;
TK := false ;
while (dau <= cuoi) and Not TK Do
Begin
giua := (dau+cuoi) div 2 ;
If A[giua] = k then TK := true
Else
If a[giua]>k then cuoi := giua - 1
Else dau := giua + 1 ;
End ;
If TK then write('Chi so la : ',giua)
else write(' Khong tim thay ');
readln ;
End .
2. Kiểu mảng 2 chiều :
GV : Quay lại ví dụ về lưu trữ dữ liệu dạng - Mảng hai chiều là một bảng các phần tử
bảng để các em nhận ra nhu cầu phải sử cùng kiểu .
dụng mảng 2 chiều trong lập trình .
Với mảng hai chiều ta quan tâm đến :
- Tên kiểu mảng hai chiều .
- Số lượng phần tử của mỗi chiều trong
mảng .
- Kiểu dữ liệu của phần tử .
- Cách khai báo biến mảng hai chiều .
- Cách truy cập vào từng phần tử của
mảng .
a> Khai báo mảng hai chiều
- Trong ngôn ngữ Pascal, mảnh hai chiều
được khai báo như sau :
GV : Khai báo cách nào tiện lợi hơn (tương Cách 1 : Khai báo trực tiếp
tự mảng 1 chiều) ?
HS : Thường thì học sinh vẫn chọn cách 1 .
GV : Tùy theo trường hợp cụ thể nhưng

Var : <Tên mảng> : Array[kiểu chỉ số dòng,
kiểu chỉ số cột] of < kiểu phần tử> ;
Cách 2 : Khai báo gián tiếp thông qua khai
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

thường thì cách 1 hay được dùng hơn .
báo kiểu mảng
Type <Tên kiểu mảng> = Array[kiểu chỉ số
dòng, kiểu chỉ số cột] of <kiểu phần tử> ;
Var <Tên mảng> : <Tên kiểu mảng> ;

Ví dụ :
Khai báo biến mảng thông qua kiểu mảng
:
GV : Khi khai báo mảng 2 chiều cần chú ý Type
điều gì ?
ArrayInteger = Array[1..10,1..15] of
Integer ;
HS : Tìm câu trả lời, GV gợi ý để các em ArrayReal=Array[1..50,1..100] of Real ;
chỉ ra được chỉ số của mảng, số dòng, số
cột và kiểu của mỗi phần tử trong mảng .
Var A : ArrayInteger ;
B : ArrayReal ;
Khai báo mảng trực tiếp :
Var A : Array[1..10,1..15] og Integer ;
B : Aarray[1..50,1..100] og Real ;
GV : Gọi một số học sinh lên khai báo một
số biến mảng một chiều theo yêu cầu của Cách truy cập vào phần tử của mảng hai
giáo viên .
chiều :
<Tên mảng>[chỉ số dòng, chỉ số cột]
Minh họa bằng hình ảnh mảng 2 chiều và Ví dụ : A[1,3], B[23,66],……
chỉ số các phần tử mảng hai chiều cũng như
cách viết truy cập phần tử mảng .
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 24

Tin học 11

Kiểu mảng (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên:
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C5:
11C6:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
GV cho học sinh quan sát chương trình và
giải thích các lệnh trong chương trình, chú
ý đi sâu vào các lệnh lặp để các em nhận ra
thường thì ta sử dụng vòng lặp for - do để
duyệt qua các phần tử mảng .

11C3:
11C7:

11C4:

Nội dung
b> Một số ví dụ :
Ví dụ 1 :
Chương trình sau đưa ra màn hình bảng cửu
chương .

Program cuuchuong;
GV nên soạn sẵn chương trình và cho các Uses crt ;
em quan sát chương trình, và chạy thử var A : Array[1..9,1..9] of Integer ;
chương trình trên máy để các em tiện theo i, j : Byte ;
dõi .
Begin
Program Timkiem;
Clrscr ;
Uses crt;
Writeln('Bang cuu chuong 1 -> 9 : ');
var A : Array[1..100,1..100] of Integer;
Writeln ;
i,j,n,m : Byte ;
For i := 1 to 9 do
k,d : integer ;
For j := 1 to 9 do
A[i,j] := i*j ;
Begin
For i := 1 to 9 do
Clrscr ;
Begin
Write(' Nhap so dong, so cot cua mang :
For j := 1 to 9 do Write(a[i,j]:4);
') ;
Writeln ;
Readln(m,n);
Writeln ;
For i := 1 to m do
End ;
For j := 1 to n do
Readln ;
Begin
End .
Write(' A[',i,',',j,'] = ');
Readln(A[i,j]);
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

End ;
Writeln(' Mang vua nhap vao la : ');
Writeln;
For i := 1 to m do
Begin
For j := 1 to n do
Write(a[i,j]:4) ;
Writeln;
Writeln;
End;
Write(' Nhap gia tri k : ');
Readln(k) ;
d := 0 ;
For i := 1 to m do
For j := 1 to n do
If a[i,j] < k then
Begin
write('So nho hon ',k,' la ');
write(a[i,j]:8);
d := d+1 ;
End ;
If d = 0 then
Write('Khong co ptu nao nho hon ',k);
readln;
End .

Ví dụ 2 :
Chương trình sau nhập vào một mảng 2
chiều và số nguyên k, sau đó in ra các phần
tử có giá trị nhỏ hơn k của mảng .

IV. Củng cố:
 Nhắc lại một số khái niệm mới .
 Nhắc lại cấu trúc câu lệnh bằng cách chia bảng thành 4 phần đồng thời gọi 4 học
sinh lên bảng viết lại các cách khai báo, truy xuất, và hiển thị để nhập dữ liệu .
 Ra bài tập về nhà .
V. Dặn dò: Đọc lại các kiến thức đã học trong bài 11. Chuẩn bị các chương trình để
chạy trong giờ thực hành sau.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 25

Tin học 11

Bài tập và thực hành 3
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng;
2. Kỹ năng:
+ Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông
qua việc tìm hiểu, chạy thử các chương trình có sẵn;
+ Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.
+ Tổ chức những hoạt động trong phòng máy để HS có được kĩ năng cơ bản
trong làm việc với kiểu mảng (một chiều) trong lập trình, cụ thể là:
- Khai báo kiểu dữ liệu mảng;
- Nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần
tử của mảng;
- Duyệt qua tất cả các phần tử của mảng để sử lí từng phần tử.
+ Cung cấp cho HS 3 thuật toán cơ bản và đơn giản thường gặp với dữ liệu
kiểu mảng:
- Tính tổng các phần tử thỏa mãn điều kiện nào đó;
- Đếm số phần tử thỏa mãn điều kiện nào đó;
- Tìm phần tử lớn nhất (hay nhỏ nhất) của mảng cùng với vị trí của
nó trong mảng.
+ Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập
trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, pascal.
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
HS: phải hiểu được chương trình đã viết Bài 1: Tạo mảng A gồm n (n<=100) số
sẵn ở câu a) và thấy được kết quả chạy nguyên, mỗi số có trị tuyệt đối không vượt
chương trình này, trên cơ sở đó tìm ra cách quá 300. Tính tổng các phần tử của mảng là
giải quyết vấn đề đặt ra ở câu b.
bối số của một số nguyên dương k cho
GV: cần cho HS thấy được điểm khác nhau trước.
cơ bản của các chương trình ở câu a và câu a) Hãy tìm hiểu và chạy thử chương trình
b.
sau đây:
Thủ tục randomize khởi tạo bộ lấy số ngẫu Program Sum1;
nhiên trước khi dùng lệnh random(n) để lấy (tr 63 SGK)
một số nguyên ngẫu nhiên trong phạm vi từ b) Hãy đưa các câu lệnh sau đây vào những
0 đến n-1.
vị trí cần thiết nhằm sửa đổi chương trình
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

GV: đưa ra một số câu hỏi (phù hợp với
trình độ HS ở mỗi lớp), hướng dẫn HS tìm
hiểu chương trình:
- MyArray là tên một kiểu dữ liệu hay
tên một biến?
- Vai trò của nmax và n khác nhau
ntn?
- Những dòng lệnh nào nhằm tạo ra
mảng A?
- Lệnh
gán:
A[i]:=random(300)random(300);
có ý nghĩa gì?
……….
IV. Củng cố:
V. Dặn dò:

Tin học 11

trong câu a) để có được chương trình đưa ra
số các số dương và số các số âm trong
mảng.
posi, neg : integer;
posi:= 0; neg:= 0;
if A[i] > 0 then posi:= posi + 1
else if A[i] < 0 then neg:=neg+1;
writeln(posi:4,neg:4);

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 26

Tin học 11

Bài tập và thực hành 3(T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, pascal.
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C5:
11C6:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
GV: Nêu gợi ý cho HS thấy được chương
trình 2a thể hiên thuật toán tìm phần tử lớn
nhất.
GV: Hướng dẫn HS tìm hiểu vai trò của
biến j qua các câu lệnh của bài toán.
GV: Có thể cho HS một ví dụ bộ dữ liệu
input nhỏ và yêu cầu HS mô phỏng việc
chạy chương trình thể hiện thuật toán trên
giấy nháp.

11C3:
11C7:

11C4:

Nội dung
Bài 2: Viết chương trình tìm phần tử có giá
trị lớn nhất của mảng và đưa ra màn hình
chỉ số và giá trị của phần tử tìm được. Nếu
có nhiều phần tử có cùng giá trị lớn nhất thì
đưa ra phần tử có chỉ số nhỏ nhất.
a) Tìm hiểu chương trình sau đây:
Program max;
Const nmax=100;
Type myarray=array[1..nmax] of interger;
Var a:myarray;
HS: Tích cực tìm hiểu bài toán, thực hiện
n, i, j:integer;
bài toán trên máy tính, sửa lỗi chạy chương Begin
trình.
Write(‘Nhap so luong phan tu day, n=’);
Readln(n);
For i:= 1 to n do
Begin
Write(‘ phan tu thu ‘,i,’ =’);
1
readln(a[i]);
2
end;
j:=1;
for i:=2 to n do if a[i]>a[j] then j:=i;
write(‘ chi so:’,j,’ Gia tri:’,a[j]:4);
readln
end.
Nếu còn thời gian thì HS hoàn thành phần b) Chỉnh sửa chương trình trên để đưa ra chỉ
b) dưới sự hướng dẫn của GV.
số các phần tử có cùng giá trị lớn nhất.
IV. Củng cố: Có thể thay thế câu lệnh a[i]:=random(300)-random(300) cho hai lệnh 1,2
V. Dặn dò:
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 27

Tin học 11

Bài tập và thực hành 4
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Củng cố cho HS những kiến thức cơ bản đã có khi lập trình với kiểu dl
mảng;
- Củng cố cho HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo
đổi);
2. Kỹ năng:
- Rèn luyện kĩ năng diễn đạt thuật toán sắp xếp bằng chương trình sử dụng
dữ liệu kiểu mảng;
- Rèn luyện cho HS một ý thức cần có của người lập trình là viết chương
trình với khối lượng tính toán ít nhất có thể;
- Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập
trình.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, pascal.
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV: Bài này giúp chúng ta củng cố thuật
toán sắp xếp (bằng tráo đổi) và kĩ năng cài
đặt bằng ngôn ngữ lập trình.
Bài 1:
a) Hãy tìm hiểu và chạy thử chương trình
HS: Tích cực tìm hiểu bài toán, thực hiện
thực hiện thuật toán sắp xếp dãy số nguyên
bài toán trên máy tính, sửa lỗi chạy chương
bằng thuật toán tráo đổi với các giá trị khác
trình.
nhau của n dưới đây. Qua đó, nhận xét thời
gian chạy của chương trình.
GV: Yêu cầu HS sửa lại một chỗ để có
(chương trình SGK – t65)
chương trình sắp xếp các phần tử theo thứ
b) Khai báo thêm biến Dem và bổ xung vào
tự không tăng.
chương trình những câu lệnh cần thiết để
HS: Chạy thử để kt kết quả.
biến Dem tính số lần thực hiện tráo đổi
GV: Để đáp ứng yêu cầu ở câu b, đưa ra
trong thuật toán. Đưa kết quả ra màn hình.
một số câu hỏi để gợi ý.
HS: Trả lời các câu hỏi của GV và thực
hiện theo yêu cầu ở câu b.
IV. Củng cố:
V. Dặn dò:
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 28

Tin học 11

Bài tập và thực hành 4 (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, pascal.
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C5:
11C6:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh

HS: Tích cực tìm hiểu bài toán, thực hiện
bài toán trên máy tính, sửa lỗi chạy chương
trình.
GV: Sửa lỗi cho HS trong quá trình gõ và
chạy chương trình. Giải thích những thắc
mắc về bài toán mà HS đưa ra.

11C3:
11C7:

11C4:

Nội dung
Bài 2: Hãy đọc và tìm hiểu những phân tích
để viết chương trình giải bài toán: 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
i phần tử đầu tiên của A.
Chương trình: SGK-t66.
Để ý rằng ta có các hệ thức sau:
B[1] = A[1]
B[i] = B[i-1] + A[i];
Do đó, ta thay đoạn chương trình bởi hai
lệnh sau:
B[1] = A[1];
For i:= 2 to n do B[i]:= B[i-1]+A[i];
Với hai lệnh này máy chỉ phải thực hiện n-1
phép cộng, trong khi với đoạn chương trình
trong SGK máy phải thực hiện n(n+1)/2
phép cộng.

GV: Nhờ việc phân tích như trên ta tiết
kiệm được một lượng tính toán đáng kể.
IV. Củng cố: Tuy tốc độ tính toán của máy tính nhanh nhưng có giới hạn. Do đó, khi viết
chương trình ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng
tốt.
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 29

Tin học 11

Kiểu xâu
Ngày soạn:...../......; Ngày giảng:..../......

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ột 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à thông dụng về xâu .
- Cài đặt được một số chương trình đơn giản có sử dụng xâu .
II. Chuẩn bị của GV và HS:
1. Giáo viên: Phòng máy, pascal.
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV : Để lưu trữ và xử lý Họ tên của một Một số khái niệm
người, các kiểu dữ liệu đã học có đáp ứng - Xâu là một dãy kí tự trong bảng mã
ASCII .
được ?
- Mỗi kí tự được gọi là một phần tử của
xâu .
HS : Đưa ra một số phương án .
- Số lượng kí tự trong xâu được gọi là độ
dài của xâu .
- Xâu có độ dài bằng 0 gọi là xâu rỗng.
GV : Phân tích các phương án của học - Tham chiếu tới phần tử trong xâu được
sinh, từ đó đưa ra yêu cầu cần sử dụng một
xác định thông qua chỉ số của phần tử
kiểu mới : Kiểu xâu .
trong xâu .
- Chỉ số phần tử trong xâu thường được
đánh số là 1 .
- Trong ngôn ngữ Pacal, tham chiếu tới
GV : Giới thiệu một số khái niệm và thao
phần tử thường được viết :
tác thường dùng khi làm việc với xâu ký tự
<Tên biến xâu>[chỉ số]
trong lập trình nói chung .
Cách khai báo và xử lí xâu trong ngôn
ngữ Pascal :
GV : Đây là cách khai báo trong ngôn ngữ
Pascal, trong các ngôn ngữ khác nhau có
thể có cách khai báo khác nhau . Do đó khi
viết chương trình bằng ngôn ngữ nào cần

1 Khai báo biến xâu :
Pascal sử dụng từ khóa STRING để khai
báo xâu . Độ dài tối đa của xâu được viết
trong [ ] sau từ khóa STRING . Khai báo
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

tìm hiểu rõ các đối tượng của ngôn ngữ đó .

Tin học 11

như sau :
Var <tên biến> : String[độ dài lớn nhất
của xâu] ;
Ví dụ :
Var Ten : String[10] ;
Ho_dem : String[50] ;
Que : String ;

Độ dài tối đa của xâu phụ thuộc vào ngôn
ngữ lập trình, thường là 255 ký tự .
Cách viết hằng xâu trong các ngôn ngữ
khác nhau cũng có sự khác nhau .

Xét ví dụ như sau : Có xâu kí tự :
‘ nGuyen vaN A ’

Chú ý :
- Nếu không khai báo độ dài tối đa cho
biến xâu kí tự thì độ dài ngầm định của
xâu là 255 .
- Độ dài lớn nhất của xâu là 255 ký tự .
- Hằng xâu kí tự được đặt trong cặp nháy
đơn ‘ ’ .
2 Các thao tác xử lí xâu
- Với các xâu kí tự có các phép phép xâu
và phép so sánh hai xâu kí tự .
- Phép ghép xâu : Kí hiệu bằng dấu cộng
+ .

Hỏi cần có các thao tác gì để chỉnh sửa xâu
kí tự này ? (cần đưa xâu về dạng ‘Nguyen Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha
Van A’)
Noi’
HS : Đưa ra ý kiến của mình .

Phép so sánh : <, <=, >, >=, = , <>, Pascal
tự động so sánh lần lượt từ kí tự từ trái sang
GV : Phân tích ý kiến và gợi ý để các em phải .
nhận ra cần :
- Xóa bớt một số dấu cách .
Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’,
- Chuyển chữ hoa về chữ thường và ‘ABC’ <’ABCD’
ngược lại .

GV : Đưa ra một số câu hỏi :
- Làm sao biết một ký tự là dấu cách ?
- Làm sao để xóa đi một vài kí tự ?
- Làm sao để thêm vào một xâu một
vài kí tự ?
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

- Làm sao để có được chữ in hoa
tương ứng với chữ thường.
Một số thủ tục chuẩn dùng để xử lí xâu :
- Làm sao có được chữ cái thường
tương ứng với chữ hoa ?
- Delete(St,vt,n) xóa n kí tự của xâu St
- Làm sao biết xâu hiện có bao nhiêu
bắt đầu từ vị trí vt .
kí tự ?
- Insert(S1,S1,vt) chèn sâu S1 vào S2
bắt đầu từ vị trí vt của S2
- Val(St,x,m) Đổi giá trị xâu St thành
Từ đó đưa ra các thủ tục chuẩn và hàm
số ghi giá trị vào biến X, nếu không
chuẩn của Pascal thường dùng để xử lí
đổi được thì vị trí gây lỗi ghi trong m,
xâu .
nếu đổi thành công thì m = 0
- Str(X,St) chuyển số X thành xâu kí
Ứng với mỗi thủ tục hoặc hàm, giáo viên
tự lưu trong St .
lấy ví dụ trong một chương trình Pascal cụ
thể để các em hiểu được ý nghĩa các thủ tục Một số hàm chuẩn :
và hàm này .
Trong môi trường soạn thảo của Pascal,
giáo viên chỉ cần làm một chương trình đơn
giản có sử dụng một trong các thủ tục hoặc
hàm này để các em theo dõi .

- Copy(St,vt,n) sao chép từ xâu St n kí
tự từ vị trí vt .
- Pos(S1,S2) tìm vị trí xuất hiện đầu
tiên của S1 trong S2 .
- Length(St) : cho độ dài xâu St .
- Upcase(ch) : cho chữ cái viết hoa
tương ứng với chữ thường trong ch .
- CHR(X) : cho kí tự có mã X trong
bảng mã ASCII .
- Ord(ch) : cho mã của kí tự ch trong
bảng mã .

IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 30

Tin học 11

Kiểu xâu (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng .
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
Giáo viên soạn sẵn các ví dụ này để tiện
3 Một số ví dụ :
cho học sinh theo dõi trên màn hình cũng
như việc chạy thử và không làm mất thời
VD 1 :
gian ngồi viết chương trình .
Program vd1 ;
Uses crt ;
Với mỗi ví dụ, giáo viên đi sâu vào câu Var s1,s2 : String ;
lệnh trực tiếp đáp ứng yêu cầu của ví dụ,
Begin
như vậy các em sẽ tiếp thu nhanh hơn .
Clrscr ;
Write('Nhap xau thu 1 : ') ;
Readln(s1) ;
Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu
Write('Nhap xau thu 2 : ') ;
dài hơn .
Readln(s2) ;
If length(s1) > Length(s2) then
Write(s1)
else
Write(s2);
Readln ;
Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự End .
đầu tiên của xâu S1 có trùng với ký tự cuối
VD 2 :
cùng của xâu S2 hay không ?
Program vd2 ;
Uses crt ;
Var s1,s2 : String ;
x : Byte ;
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

Begin
Clrscr ;
Write('Nhap xau thu 1 : ');
Readln(s1) ;
Write('Nhap xau thu 2 : ');
Readln(s2) ;
x := length(s2) ;
If s1[1] = s2[x] then
Write('Trung nha')
else
Write('Khac nhau');
Readln ;
Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu End .
đó theo thứ tự ngược lại của các ký tự trong
xâu .
VD 3 :
Program vd3 ;
Uses crt ;
Var i,k : Byte ;
a : String ;
Begin
Clrscr ;
Write('Nhap xau : ') ;
Readln(a) ;
k := length(a) ;
For i := k downto 1 do
Write(a[i]) ;
Readln ;
End .
Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu
đó nhưng đã được bỏ tất cả các ký tự là dấu VD 4 :
cách .
Program vd4 ;
Uses crt ;
Var i,k : Byte ;
a,b : String ;
Begin
Clrscr ;
Write('Nhap xau : ') ;
Readln(a) ;
k := length(a) ;
b :='' ;
For i := 1 to k do
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tin học 11

if a[i] <> '' then
b := b+a[i] ;
Write(b) ;
Readln ;
End .
VD 5 :
Program Xulixau ;
Uses crt ;
Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu
Var s1,s2 : String ;
gồm các ký tự số của xâu đó .
i : Byte ;
Begin
Clrscr ;
Write('Nhap xau s1 : ') ;
Readln(s1) ;
s2 := '' ;
For i := 1 to length(s1) do
If ('0'<s1[i]) and (s1[i]<='9') then
s2 := s2 + s1[i] ;
Write(s2);
Readln ;
End .
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 31

Tin học 11

Bài tập và thực hành 5
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu.
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng .
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV: Đưa ra ví dụ hoặc yêu cầu HS cho ví
dụ về xâu đối xứng và xâu không đối xứng.
HS: Tích cực tìm hiểu bài toán, thực hiện
Bài 1: Nhập vào từ bàn phím một xâu. Kiểm
bài toán trên máy tính, sửa lỗi chạy chương
tra xâu đó có phải là xâu đối xứng không.
trình.
a) Chạy thử chương trình sau:
var x,i : byte;
a,p: string;
GV: Sửa lỗi cho HS trong quá trình gõ và
begin
chạy chương trình. Giải thích những thắc
write(‘ Nhap vao xau:’);
mắc về bài toán mà HS đưa ra.
readln(a);
x:=length(a);
p:=’’;
for i:=x downto 1 do
p:=p+a[i];
if a=p then
write(‘ Xau doi xung’)
else write(‘Xau khong doi xung’);
readln
end.
b) Hay viết lại chương trình trên, trong đó
GV: Không cần thiết phải tạo một xâu mới
không dùng biến xâu p.
để so sánh hai xâu mà chỉ so sánh các cặp
kí tự ở vị trí đối xứng nhau để kết luận xâu
đó có đối xứng không
IV. Củng cố:
V. Dặn dò:

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 32

Tin học 11

Bài tập và thực hành 5 (T)
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu.
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng .
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
Bài 2: Cho xâu s. Viết chương trình đếm số
từ có trong xâu s này?
Program Demtu;
Var s:string;
GV: Để giải quyết được bài toán này thì
d, x, i:byte;
trước hết ta phải cộng thêm một kí tự trống Begin
vào đầu xâu s.
Write(‘ Nhap xau:’);readln(s);
s:= ‘ ‘+s;
x:=length(s);
GV: Khi đó điều kiện để xác định xem đâu for i:=1 to x do
là một từ là gì?
if (s[i]=’ ‘ ) and (s[i+1]<>’ ‘) then d:=d+1;
write(‘ So tu co trong xau la:’,d);
HS: Trả lời câu hỏi.
readln
end.
GV: Kết luận và đưa ra hướng giải quyết
bài toán.
Khi đó để kiểm tra xem đâu là một từ thì ta
phải xét điều kiện: xâu s tại vị trí thứ i là kí
tự trống, đồng thời tại vị trí thứ i+1 phải là
kí tự khác trống.
HS: suy nghĩ và đưa ra phương hướng giải Sử dụng phương pháp chuẩn hóa xâu s. Từ
quyết vấn đề này.
đó có thể tìm ra số từ có trong xâu s này?
IV. Củng cố:
V. Dặn dò: Chuẩn bị trước bài tập trong SBT.

Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 33

Tin học 11

Bài tập
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức: Củng cố cho HS những hiểu biết cơ bản nhất về kiểu dữ liệu có cấu
trúc.
2. Kỹ năng:
- Rèn luyện kĩ năng giải một bài toán với dữ liệu kiểu mảng và dữ liệu kiểu
xâu.
- Dần hình thành tư duy trong việc giải toán bằng ngôn ngữ TP với những
kiểu dữ liệu có cấu trúc.
II. Chuẩn bị của GV và HS:
1. Giáo viên: Giáo án, SGK, SBT .
2. Học sinh: Vở BT, SBT
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
GV: Qua quá trình chuẩn bị bài tập trong
SBT từ nhà, có ai có thắc mắc về bài tập
nào không?
HS: Đưa ra những vướng mắc cần giải đáp.
GV: Giải đáp các thắc mắc của HS.
Chữa bài tập trong SBT
GV: Gọi một số HS lên chữa một số bài tập
tiêu biểu (cả bài tập phần mảng và phần
xâu).
HS: Lên bảng chữa bài.
HS khác nhận xét bài làm của bạn.
GV: nhận xét và chỉnh sửa lại bài tập một
cách hoàn chỉnh.
IV. Củng cố:
V. Dặn dò: chuẩn bị trước bài 13.
Nguyễn Huy Bình
Trường THPT Trần Nhật Duật

Tiết 34

Tin học 11

Kiểu bản ghi
Ngày soạn:...../......; Ngày giảng:..../......

I. Mục tiêu
1. Kiến thức:
- Biết khái niệm kiểu bản ghi .
- Biết cách khai báo bản ghi, truy cập trường của bản ghi .
2. Kỹ năng:
II. Chuẩn bị của GV và HS:
1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng .
2. Học sinh:
III. Nội dung:
. Ổn định lớp:
Kiểm diện:
11C1:
11C2:
11C3:
11C4:
11C5:
11C6:
11C7:
. Kiểm tra bài cũ:
. Bài giảng:
Hoạt động của Giáo viên và Học sinh
Nội dung
Xét ví dụ sau :
Một số khái niệm
Viết chương trình dùng để quản lí các - Kiểu bản ghi được dùng để mô tả cho
thí sinh của một kỳ thi tuyển sinh .
các đối tượng có cùng một số thuộc tính
Chương trình của chúng ta cần quản lí
mà các thuộc tính có thể có các kiểu dữ
được :
liệu khác nhau .
+ SBD của thí sinh,
- Bản ghi thường được gọi là Record, mỗi
+ Họ tên thí sinh,
Record sẽ lưu trữ dữ liệu về một đối
+ Giới tính,
tượng cần quản lí .
+ Điểm của các môn …
- Mỗi thuộc tính của đối tượng tương ứng
với một trường của bản ghi . Các trường
GV : Đưa ra một số câu hỏi sau :
khác nhau có thể có dữ liệu khác nhau .
- Làm thế nào để quản lý toàn bộ - Các ngôn ngữ lập trình thường cho cách
thông tin trên của học sinh ?
để xác định :
- Mỗi thông tin trên có kiểu dữ liệu là
+ Tên kiểu bản ghi .
gì ?
+ Tên các trường .
+ Kiểu dữ liệu của trường .
HS : Có thể quản lý mỗi dữ kiện trên là
+ Cách khai báo biến .
một mảng một chiều
+ Cách tham chiếu đến trường .
Cách khai báo và sử dụng kiểu bản ghi
Ngôn ngữ lập trình bậc cao có cách tốt hơn trong ngôn ngữ Pascal
để quản lý dữ liệu trên -> Bản ghi .
1. Khai báo
GV lấy một bảng điểm của học sinh rồi chỉ
rõ : Mỗi hàng ta gọi là một bản ghi, mỗi cột Để khai báo biến bản ghi, thường khai báo
là một trường .
một kiểu bản ghi sau đó khai báo biến bản
Nguyễn Huy Bình
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11
Chuong 5 tin 11

More Related Content

What's hot

phuong trinh vo ti File10779
phuong trinh vo ti  File10779phuong trinh vo ti  File10779
phuong trinh vo ti File10779
Phuong Nguyen
 
Ke hoach giang day
Ke hoach giang dayKe hoach giang day
Ke hoach giang day
Tâm Phan
 
Một số kiểu dữ liệu chuẩn
Một số kiểu dữ liệu chuẩnMột số kiểu dữ liệu chuẩn
Một số kiểu dữ liệu chuẩn
vothanhdoit
 
Lớp 11: Bai 9 cau truc re nhanh tiet 1
Lớp 11: Bai 9 cau truc re nhanh tiet 1Lớp 11: Bai 9 cau truc re nhanh tiet 1
Lớp 11: Bai 9 cau truc re nhanh tiet 1
Heo_Con049
 
Giáo trình pascal cho gv hs thpt
Giáo trình pascal cho gv hs thptGiáo trình pascal cho gv hs thpt
Giáo trình pascal cho gv hs thpt
Tâm Phan
 
Lớp 8: Bai 3 chuong trinh may tinh va du lieu
Lớp 8: Bai 3 chuong trinh may tinh va du lieuLớp 8: Bai 3 chuong trinh may tinh va du lieu
Lớp 8: Bai 3 chuong trinh may tinh va du lieu
Heo_Con049
 
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biếnBài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
indochinasp
 
Bài 12
Bài 12Bài 12
Bài 12
pl6102
 
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ NhánhKbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
tin_k36
 
[Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10][Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10]
MasterCode.vn
 
Bai 6, Phep toan bieu thuc cau lenh gan
Bai 6, Phep toan bieu thuc cau lenh ganBai 6, Phep toan bieu thuc cau lenh gan
Bai 6, Phep toan bieu thuc cau lenh gan
indochinasp
 

What's hot (20)

phuong trinh vo ti File10779
phuong trinh vo ti  File10779phuong trinh vo ti  File10779
phuong trinh vo ti File10779
 
Ke hoach giang day
Ke hoach giang dayKe hoach giang day
Ke hoach giang day
 
Một số kiểu dữ liệu chuẩn
Một số kiểu dữ liệu chuẩnMột số kiểu dữ liệu chuẩn
Một số kiểu dữ liệu chuẩn
 
Lớp 11: Bai 9 cau truc re nhanh tiet 1
Lớp 11: Bai 9 cau truc re nhanh tiet 1Lớp 11: Bai 9 cau truc re nhanh tiet 1
Lớp 11: Bai 9 cau truc re nhanh tiet 1
 
Ngôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal fullNgôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal full
 
Giáo trình pascal cho gv hs thpt
Giáo trình pascal cho gv hs thptGiáo trình pascal cho gv hs thpt
Giáo trình pascal cho gv hs thpt
 
Lớp 8: Bai 3 chuong trinh may tinh va du lieu
Lớp 8: Bai 3 chuong trinh may tinh va du lieuLớp 8: Bai 3 chuong trinh may tinh va du lieu
Lớp 8: Bai 3 chuong trinh may tinh va du lieu
 
Tin11 c4 bai12-kieu-xau_gtga
Tin11 c4 bai12-kieu-xau_gtgaTin11 c4 bai12-kieu-xau_gtga
Tin11 c4 bai12-kieu-xau_gtga
 
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biếnBài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
Bài 4,5:Một số kiểu dữ liệu chuẩn,Khai báo biến
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vn
 
Giaoan bai2 tinhoc11
Giaoan bai2 tinhoc11Giaoan bai2 tinhoc11
Giaoan bai2 tinhoc11
 
Bài 12
Bài 12Bài 12
Bài 12
 
Bài 12
Bài 12Bài 12
Bài 12
 
Giao trinh pascal toan tap
Giao trinh pascal toan tapGiao trinh pascal toan tap
Giao trinh pascal toan tap
 
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ NhánhKbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
Kbdh Tin Học 11_ Chương 3_ Bài 9_ Cấu Trúc Rẽ Nhánh
 
[Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10][Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10]
 
Lap trinh pascal
Lap trinh pascalLap trinh pascal
Lap trinh pascal
 
Bồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánBồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toán
 
Bai 6, Phep toan bieu thuc cau lenh gan
Bai 6, Phep toan bieu thuc cau lenh ganBai 6, Phep toan bieu thuc cau lenh gan
Bai 6, Phep toan bieu thuc cau lenh gan
 
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danGiao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
 

Viewers also liked

Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
nguyennhuhaiau
 
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giảnLớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Heo_Con049
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Ngoc Vu Thi Quynh
 
Giáo trình
Giáo trìnhGiáo trình
Giáo trình
Dế Mèn
 
Bai giang15 01_lam quen voi writer
Bai giang15 01_lam quen voi writerBai giang15 01_lam quen voi writer
Bai giang15 01_lam quen voi writer
Cam Tu Chau
 
Bai 17_Chương 3_Lớp 10
Bai 17_Chương 3_Lớp 10Bai 17_Chương 3_Lớp 10
Bai 17_Chương 3_Lớp 10
Dế Mèn
 
Download giao an_tin_hoc_10_chuong_4
Download giao an_tin_hoc_10_chuong_4Download giao an_tin_hoc_10_chuong_4
Download giao an_tin_hoc_10_chuong_4
Sunkute
 
De kt15 p_lythuyet
De kt15 p_lythuyetDe kt15 p_lythuyet
De kt15 p_lythuyet
Sunkute
 
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
Ngoc Vu Thi Quynh
 

Viewers also liked (20)

Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
 
Tin11 bai16-giao an
Tin11 bai16-giao anTin11 bai16-giao an
Tin11 bai16-giao an
 
Bai tap-pascal-lop-11
Bai tap-pascal-lop-11Bai tap-pascal-lop-11
Bai tap-pascal-lop-11
 
GIÁO ÁN HÓA 9
GIÁO ÁN HÓA 9GIÁO ÁN HÓA 9
GIÁO ÁN HÓA 9
 
Tin11 bai16-phieu hoctap
Tin11 bai16-phieu hoctapTin11 bai16-phieu hoctap
Tin11 bai16-phieu hoctap
 
String c++
String c++String c++
String c++
 
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giảnLớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
Lớp 11: Bài 7 +8 Các thủ tục vào ra đơn giản
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
 
Giáo trình
Giáo trìnhGiáo trình
Giáo trình
 
Bai giang15 01_lam quen voi writer
Bai giang15 01_lam quen voi writerBai giang15 01_lam quen voi writer
Bai giang15 01_lam quen voi writer
 
Mind map
Mind mapMind map
Mind map
 
Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15
 
Bai 17_Chương 3_Lớp 10
Bai 17_Chương 3_Lớp 10Bai 17_Chương 3_Lớp 10
Bai 17_Chương 3_Lớp 10
 
Bài giảng Excel 2003 Toàn tập
Bài giảng Excel 2003 Toàn tậpBài giảng Excel 2003 Toàn tập
Bài giảng Excel 2003 Toàn tập
 
Download giao an_tin_hoc_10_chuong_4
Download giao an_tin_hoc_10_chuong_4Download giao an_tin_hoc_10_chuong_4
Download giao an_tin_hoc_10_chuong_4
 
Bai 15
Bai 15Bai 15
Bai 15
 
De kt15 p_lythuyet
De kt15 p_lythuyetDe kt15 p_lythuyet
De kt15 p_lythuyet
 
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
Giao an tin hoc 11 - Tuan 10 - Bai 14 - 15 Tep va thao tac voi tep - v04 - vt...
 
Open office & Microsoft office
Open office & Microsoft officeOpen office & Microsoft office
Open office & Microsoft office
 
Bai18 Tin học 10
Bai18 Tin học 10Bai18 Tin học 10
Bai18 Tin học 10
 

Similar to Chuong 5 tin 11

Kich ban bai 3 chuong 2(đinh thị hà k33103225)
Kich ban bai 3 chuong 2(đinh thị hà k33103225)Kich ban bai 3 chuong 2(đinh thị hà k33103225)
Kich ban bai 3 chuong 2(đinh thị hà k33103225)
Tin 5CBT
 
Kbdh bai8 c2_11
Kbdh bai8 c2_11Kbdh bai8 c2_11
Kbdh bai8 c2_11
tin_k36
 
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasfgoap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
saochoi871
 
Bai8_C2_11
Bai8_C2_11Bai8_C2_11
Bai8_C2_11
tin_k36
 
KBDH_BAI8_C2_LOP11
KBDH_BAI8_C2_LOP11KBDH_BAI8_C2_LOP11
KBDH_BAI8_C2_LOP11
tin_k36
 
Kịch bản dạy học_Nhom09
Kịch bản dạy học_Nhom09Kịch bản dạy học_Nhom09
Kịch bản dạy học_Nhom09
TranThiDieu
 
45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef
Phi Phi
 
Kịch bản dạy học bài 16
Kịch bản dạy học bài 16Kịch bản dạy học bài 16
Kịch bản dạy học bài 16
Pham Tram
 
Bài 3: Cấu Trúc Chương Trình
Bài 3: Cấu Trúc Chương TrìnhBài 3: Cấu Trúc Chương Trình
Bài 3: Cấu Trúc Chương Trình
Heo_Con049
 
K33103249 pham nguyen thu nhi tin5_cbt
K33103249 pham nguyen thu nhi tin5_cbtK33103249 pham nguyen thu nhi tin5_cbt
K33103249 pham nguyen thu nhi tin5_cbt
Tin 5CBT
 

Similar to Chuong 5 tin 11 (20)

Giáo án tin học 11 c++ theo 5 hoạt động (khởi động, hình thành kiến thức, luy...
Giáo án tin học 11 c++ theo 5 hoạt động (khởi động, hình thành kiến thức, luy...Giáo án tin học 11 c++ theo 5 hoạt động (khởi động, hình thành kiến thức, luy...
Giáo án tin học 11 c++ theo 5 hoạt động (khởi động, hình thành kiến thức, luy...
 
Kichbandayhoc bai2 tinhoc11
Kichbandayhoc bai2 tinhoc11Kichbandayhoc bai2 tinhoc11
Kichbandayhoc bai2 tinhoc11
 
Kich ban bai 3 chuong 2(đinh thị hà k33103225)
Kich ban bai 3 chuong 2(đinh thị hà k33103225)Kich ban bai 3 chuong 2(đinh thị hà k33103225)
Kich ban bai 3 chuong 2(đinh thị hà k33103225)
 
Kb
KbKb
Kb
 
2.cac thanh phan cua nnlt
2.cac thanh phan cua nnlt2.cac thanh phan cua nnlt
2.cac thanh phan cua nnlt
 
Kich bandayhoc
Kich bandayhocKich bandayhoc
Kich bandayhoc
 
Kbdh bai8 c2_11
Kbdh bai8 c2_11Kbdh bai8 c2_11
Kbdh bai8 c2_11
 
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasfgoap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
goap nfa ffafdafadf dfadsfasdfasf dfafafadfdasf
 
Bai8_C2_11
Bai8_C2_11Bai8_C2_11
Bai8_C2_11
 
KBDH_BAI8_C2_LOP11
KBDH_BAI8_C2_LOP11KBDH_BAI8_C2_LOP11
KBDH_BAI8_C2_LOP11
 
Kich ban day_hoc
Kich ban day_hocKich ban day_hoc
Kich ban day_hoc
 
Kịch bản dạy học_Nhom09
Kịch bản dạy học_Nhom09Kịch bản dạy học_Nhom09
Kịch bản dạy học_Nhom09
 
45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef
 
Kịch bản dạy học bài 16
Kịch bản dạy học bài 16Kịch bản dạy học bài 16
Kịch bản dạy học bài 16
 
Bài 3: Cấu Trúc Chương Trình
Bài 3: Cấu Trúc Chương TrìnhBài 3: Cấu Trúc Chương Trình
Bài 3: Cấu Trúc Chương Trình
 
Bgdt th11 b1
Bgdt th11 b1Bgdt th11 b1
Bgdt th11 b1
 
Ngon ngu lap trinh_Chuong I_Lop 10
Ngon ngu lap trinh_Chuong I_Lop 10Ngon ngu lap trinh_Chuong I_Lop 10
Ngon ngu lap trinh_Chuong I_Lop 10
 
Xuan2
Xuan2Xuan2
Xuan2
 
K33103308
K33103308K33103308
K33103308
 
K33103249 pham nguyen thu nhi tin5_cbt
K33103249 pham nguyen thu nhi tin5_cbtK33103249 pham nguyen thu nhi tin5_cbt
K33103249 pham nguyen thu nhi tin5_cbt
 

More from Sunkute

Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5
Sunkute
 
Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5
Sunkute
 
Kieu xau tiet 1 da soan
Kieu xau tiet 1 da soanKieu xau tiet 1 da soan
Kieu xau tiet 1 da soan
Sunkute
 
Kieu xau tiet 2 da soan
Kieu xau tiet 2 da soanKieu xau tiet 2 da soan
Kieu xau tiet 2 da soan
Sunkute
 
Bai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdhBai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdh
Sunkute
 
Chương II: Hệ điều hành
Chương II: Hệ điều hànhChương II: Hệ điều hành
Chương II: Hệ điều hành
Sunkute
 
Tron bo giao_an_tin_hoc_10
Tron bo giao_an_tin_hoc_10Tron bo giao_an_tin_hoc_10
Tron bo giao_an_tin_hoc_10
Sunkute
 
Hd tap danh_may
Hd tap danh_mayHd tap danh_may
Hd tap danh_may
Sunkute
 
C fakepathphimtat
C fakepathphimtatC fakepathphimtat
C fakepathphimtat
Sunkute
 
C fakepathphim
C fakepathphimC fakepathphim
C fakepathphim
Sunkute
 
Kịch bản dạy học bài 16
Kịch bản dạy học   bài 16Kịch bản dạy học   bài 16
Kịch bản dạy học bài 16
Sunkute
 
Kbdh bài 17
Kbdh bài 17Kbdh bài 17
Kbdh bài 17
Sunkute
 
Một số chức năng khác
Một số chức năng khácMột số chức năng khác
Một số chức năng khác
Sunkute
 
Kich bản dh
Kich bản dhKich bản dh
Kich bản dh
Sunkute
 
Bai 5 cac thao tac co ban tren bang
Bai 5 cac thao tac co ban tren bangBai 5 cac thao tac co ban tren bang
Bai 5 cac thao tac co ban tren bang
Sunkute
 
Dekiemtra15p1
Dekiemtra15p1Dekiemtra15p1
Dekiemtra15p1
Sunkute
 
Baigiang bai2c1lop10
Baigiang bai2c1lop10Baigiang bai2c1lop10
Baigiang bai2c1lop10
Sunkute
 
Kt ly thuyet_1tiet
Kt ly thuyet_1tietKt ly thuyet_1tiet
Kt ly thuyet_1tiet
Sunkute
 

More from Sunkute (20)

Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5
 
Chude01 nhom5
Chude01 nhom5Chude01 nhom5
Chude01 nhom5
 
Kieu xau tiet 1 da soan
Kieu xau tiet 1 da soanKieu xau tiet 1 da soan
Kieu xau tiet 1 da soan
 
Kieu xau tiet 2 da soan
Kieu xau tiet 2 da soanKieu xau tiet 2 da soan
Kieu xau tiet 2 da soan
 
Bai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdhBai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdh
 
Chương II: Hệ điều hành
Chương II: Hệ điều hànhChương II: Hệ điều hành
Chương II: Hệ điều hành
 
Tron bo giao_an_tin_hoc_10
Tron bo giao_an_tin_hoc_10Tron bo giao_an_tin_hoc_10
Tron bo giao_an_tin_hoc_10
 
Hd tap danh_may
Hd tap danh_mayHd tap danh_may
Hd tap danh_may
 
C fakepathphimtat
C fakepathphimtatC fakepathphimtat
C fakepathphimtat
 
C fakepathphim
C fakepathphimC fakepathphim
C fakepathphim
 
Bai giang 16 chuong 3 lop 10
Bai giang 16 chuong 3 lop 10Bai giang 16 chuong 3 lop 10
Bai giang 16 chuong 3 lop 10
 
Kịch bản dạy học bài 16
Kịch bản dạy học   bài 16Kịch bản dạy học   bài 16
Kịch bản dạy học bài 16
 
Kbdh bài 17
Kbdh bài 17Kbdh bài 17
Kbdh bài 17
 
Một số chức năng khác
Một số chức năng khácMột số chức năng khác
Một số chức năng khác
 
Kich bản dh
Kich bản dhKich bản dh
Kich bản dh
 
Bai 5 cac thao tac co ban tren bang
Bai 5 cac thao tac co ban tren bangBai 5 cac thao tac co ban tren bang
Bai 5 cac thao tac co ban tren bang
 
Dekiemtra15p1
Dekiemtra15p1Dekiemtra15p1
Dekiemtra15p1
 
Kbdh bai2c1lop10 thongtinvadulieu
Kbdh bai2c1lop10 thongtinvadulieuKbdh bai2c1lop10 thongtinvadulieu
Kbdh bai2c1lop10 thongtinvadulieu
 
Baigiang bai2c1lop10
Baigiang bai2c1lop10Baigiang bai2c1lop10
Baigiang bai2c1lop10
 
Kt ly thuyet_1tiet
Kt ly thuyet_1tietKt ly thuyet_1tiet
Kt ly thuyet_1tiet
 

Chuong 5 tin 11

  • 1. Trường THPT Trần Nhật Duật Chương I Tiết 1 Tin học 11 MỘT SỐ KN VỀ LT VÀ NNLT Khái niệm lập trình và ngôn ngữ lập trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được ngôn ngữ máy và hợp ngữ. - Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Nguyễn Huy Bình
  • 2. Trường THPT Trần Nhật Duật Tin học 11 Trong chương trình lớp 11 chúng ta đã được biết qua về ngôn ngữ lập trình. Trong chương trình lớp 11 chúng ta sẽ tìm hiểu chi tiết hơn về nnlt. - Ngôn ngữ máy Bạn nào cho biết ở lớp 11 chúng ta đã - Hợp ngữ nhắc tới những loại ngôn ngữ lập trình - Ngôn ngữ lập trình bậc cao nào? Lập trình: là sử dụng cấu trúc dữ liệu và HS: Trả lời câu hỏi. HS khác bổ xung. các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. Chương trình viết bằng ngôn ngữ bậc Chương trình dịch: Là chương trình đặc cao nói chung không phụ thuộc vào loại biệt có chức năng chuyển đổi chương trình máy (chương trình có thể chạy trên nhiều được viết bằng ngôn ngữ lập trình bậc cao loại máy tính khác nhau). thành chương trình thực hiện được trên Chương trình dịch được chia thành hai máy tính. loại: Thông dịch và biên dịch. (Lấy ví dụ minh họa để HS phân biệt được Outpu Input CTD hai loại ctd này). t - Thông dịch (interpreter): được thực hiện bằng cách lặp lại dãy các bước sau: . Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn. . Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh tương ứng trong ngôn ngữ máy. . Thực hiện các câu lệnh vừa chuyển đổi được. - Biên dịch (compiler) được thực hiện qua hai bước: . Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn. . Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ thực hiện lại khi cần thiết. HS: Nghe giảng, ghi chép. Trong thông dịch không có chương trình đích để lưu trữ, trong biên dịch cả chương trình nguồn và chương trình đích có thể lưu trữ lại để sử dụng về sau. IV. Củng cố: Kể tên một số ngôn ngữ lập trình mà em biết? (Một HS trả lời, HS khác bổ sung). V. Dặn dò: Đọc trước bài 2. Nguyễn Huy Bình
  • 3. Trường THPT Trần Nhật Duật Tiết 2 Tin học 11 Các thành phần của ngôn ngữ lập trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết ngôn ngữ lập trình có ba thành phần cơ bản là: bảng chữ cái, cú pháp, ngữ nghĩa. Hiểu và phân biệt được ba thành phần này. - Biết một số khái niệm: tên, tên chuẩn, tên dành riêng (từ khóa), hằng và biến. 2. Kỹ năng: - Ghi nhớ các quy định về tên, hằng, biến trong một ngôn ngữ lập trình. - Cách đặt tên đúng và nhận biết được tên sai quy định. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Chương trình dịch là gì? Tại sao cần phải có chương trình dịch? . Bài giảng: Nội dung Hoạt động của GV và HS 1. Các thành phần cơ bản. Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản là bảng chữ cái, cú pháp a) Bảng chữ cái. và ngữ nghĩa. Trong Pascal, bảng chữ cái bao gồm các kí tự sau: • Các chữ cái thường và chữ cái in hoa Các kí tự trong bảng chữ cái và cú pháp của bảng chữ cái tiếng Anh. của ngôn ngữ lập trình có thể tạo thành các ‘A’...’Z’ có mã 65..90 câu lệnh và chương trình tương tự như từ ‘a’...’z’ có mã 97..122 bảng chữ cái và ngữ pháp của ngôn ngữ tự ‘0’...’9’ có mã 48..57 nhiên có thể diễn đạt thành câu và văn bản. • 10 Chữ số thập phân Ả rập. HS: nghe giảng, ghi chép. • Các kí tự đặc biệt. Bảng chữ cái của các ngôn ngữ lập trình nói chung không khác nhau nhiều. b) Cú pháp: Là bộ quy tắc để viết chương trình. c) Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. Vd: (SGK) Dựa vào chúng, người lập trình và chương trình dịch biết được tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ và tổ hợp nào là không hợp lệ. Nguyễn Huy Bình
  • 4. Trường THPT Trần Nhật Duật Tóm lại: Cú pháp cho biết cách viết một chương trình hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình. 2. Một số khái niệm. a) Tên Trong TP, tên là một dãy liên tiếp không quá 127 kí tự bao gồm chữ cái, chữ số hoặc dấu gạch dưới. Vd: Tên đúng: (lấy 3 vd) Tên sai: (lấy 3 vd) Ngôn ngữ Pascal không phân biệt chữ hoa, chữ thường trong tên. Trong Pascal phân biệt 3 loại tên: - Tên dành riêng; - Tên chuẩn; - Tên do người dùng đặt. Tên dành riêng: là tên được dùng với ý nghĩa riêng xác định. Tên chuẩn: là tên được dùng với ý nghĩa nhất định nào đó. Tên do người lập trình đặ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. b) Hằng và biến * Hằng là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình. - Hằng số học: là các số nguyên hay số thực. - Hằng logic: True hoặc False - Hằng xâu: * 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 chương trình. c) Chú thích: Được đặt trong chương trình, giúp cho người đọc chương trình nhận biết ý nghĩa của chương trình hay của từng câu lệnh trong chương trình. Tin học 11 Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình và từng chương trình dịch cụ thể. HS: Lấy ví dụ về tên đúng và sai. Người lập trình không được dùng với ý nghĩa khác. Có thể khai báo và dùng chúng với ý nghĩa và mục đích khác. Trong ngôn ngữ lập trình thường có các hằng số học, hằng logic, hằng xâu. HS: Nghe giảng, ghi chép. IV. Củng cố: Lấy ví dụ về tên đúng, tên sai trong TP? V. Dặn dò: Trả lời các câu hỏi cuối bài. Làm bài tập trong SBT. Nguyễn Huy Bình
  • 5. Trường THPT Trần Nhật Duật Tiết 3 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết được đặc điểm của ngôn ngữ lập trình bậc cao, chức năng của chương trình dịch. - Biết các thành phần của ngôn ngữ lập trình. 2. Kỹ năng: - Phân biệt được trình thông dịch và biên dịch. - Đặt được tên đúng và nhận biệt tên sai quy định. II. Chuẩn bị của GV và HS: 11 Giáo viên: SBT, giáo án. 11 Học sinh: SBT, vở bài tập. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn? Lấy ví dụ về 3 tên đúng theo quy tắc của Pascal? . Bài giảng: Nội dung Hoạt động của GV và HS Gọi một số HS đứng tại chỗ chữa các Chữa một số bài tập trong SBT. bài từ 1..8. HS khác nhận xét và bổ sung. GV củng cố lại các câu trả lời Gọi 3 HS lên bảng chữa các bài 9, 10, Chữa bài tập theo yêu cầu của HS. 11. Trong sách bài tập số lượng bài tập nhiều, có một số bài khó. Để mở rộng kiến thức đã học thì nên hoàn thành những bài tập này. Kiểm tra lại kiến thức đã học. Cho HS làm bài kiểm tra 15’. Có thể sử dụng các câu 13, 14 làm đề kiểm tra. IV. Củng cố: V. Dặn dò: Về nhà đọc trước bài 3 - Cấu trúc chương trình. Nguyễn Huy Bình
  • 6. Trường THPT Trần Nhật Duật Tiết 4 Tin học 11 Cấu trúc chương trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu chương trình là sự mô tả của thuật toán bằng một ngôn ngữ lập trình. - Biết cấu trúc của một chương trình đơn giản: 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Chữa bài tập số 6 (tr 13-SGK)? . Bài giảng: Nội dung Hoạt động của GV và HS 1. Cấu trúc chung Chương trình được viết bằng ngôn ngữ lập trình bậc cao thường gồm phần khai báo và phần thân. Phần khai báo có thể có hoặc không tùy theo từng chương trình cụ thể. Các diễn giải bằng ngôn ngữ tự nhiên Khi diễn giải cú pháp của ngôn ngữ lập được đặt trong cặp dấu < và >. Các thành trình người ta thường sử dụng ngôn ngữ tự phần của chương trình có thể có hoặc nhiên. không được đặt trong cặp dấu [ và ]. Cấu trúc của một chương trình có thể mô tả như sau: [<phần khai báo>] HS: nghe giảng, ghi bài. <phần thân> 2. Các thành phần của chương trình a)Phần khai báo Có thể khai báo cho: tên chương trình, thư viện, hằng, biến và chương trình con. * Khai báo tên chương trình Phần này có thể có hoặc không. Program <tên chương trình> tên chương trình là tên do người lập trình đặt theo đúng quy định về tên. * Khai báo thư viện Mỗi ngôn ngữ lập trình thường có sẵn Uses <tên thư viện> một số thư viện cung cấp một số chương vd: Uses crt, graph; trình thông dụng đã được lập sẵn. * Khai báo hằng Nguyễn Huy Bình
  • 7. Trường THPT Trần Nhật Duật const <tên hằng> = <giá trị> * Khai báo biến b) Phần thân chương trình Begin [<Dãy lệnh>] End. 3. Ví dụ chương trình đơn giản Ví dụ SGK. Tin học 11 Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần trong chương trình. (Trình bày chi tiết ở bài 5) Dãy lệnh trong phạm vi được xác định bởi cặp dấu hiệu mở đầu và kết thúc tạo thành thân chương trình. Viết ví dụ, phân tích để HS hiểu rõ cấu trúc của một chương trình Pascal đơn giản. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 8. Trường THPT Trần Nhật Duật Tiết 5 biến Tin học 11 Một số kiểu dữ liệu chuẩn. Khai báo Ngày soạn:...../......; Ngày giảng:..../...... 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 khái báo biến đúng. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Cho biết cách khai báo tên chương trình, thư viện, hằng, biến trong TP? . Bài giảng: Nội dung Hoạt động của GV và HS MỘT SỐ KIỂU DỮ LIỆU CHUẨN Một số kiểu dữ liệu chuẩn thường dùng Dữ liệu là thông tin đã mã hóa trong máy cho các biến đơn trong Pascal. tính. Dữ liệu trong mỗi ngôn ngữ lập trình chỉ có một số kiểu chuẩn nhất định mặc dù thông tin rất đa dạng. Mỗi kiểu được đặc trưng bởi tên kiểu, miền giá trị, kích thước trong bộ nhớ, các phép toán, các hàm và thủ tục sử dụng chúng. 1. Kiểu nguyên Byte: 0..255 Interger: -215..215-1 Word: 0..216-1 Longint: -231..231-1 2. Kiểu thực Real: -10-38..1038 Extended: -10-4932..104932 Các số nguyên được lưu trữ và kết quả tính toán là số đúng, nhưng có hạn chế về miền giá trị. 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 trong 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. Phép toán chứa các toán hạng gồm cả kiểu Nguyễn Huy Bình
  • 9. Trường THPT Trần Nhật Duật Tin học 11 nguyên và kiểu thực sẽ cho kết quả kiểu thực. 3. Kiểu kí tự Char: 256 kí tự trong bộ mã ASCII Kiểu kí tự có tập giá trị là các kí tự trong bộ mã ASCII, được dùng khi thông tin là các kí tự, xâu. Vì vậy hầu hết các ngôn ngữ lập trình đều có kiểu kí tự để làm việc với văn bản. 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. 4. Kiểu logic Boolean: True hoặc False. Kiểu logic được dùng khi kiểm tra một điều kiện hoặc tìm giá trị của một biểu thức logic. KHAI BÁO BIẾN Trong Pascal, mọi biến trong chương trình đều phải khai báo tên và kiểu dữ liệu của nó (một số ngôn ngữ coi đó là định nghĩa biến). Khai báo để cấp phát bộ nhớ cho biến. Cấn đặt tên biến sao cho gợi nhớ đến ý nghĩa của biến đó. Điều này rất có lợi cho việc học, hiểu và sửa đổi chương trình khi cần thiết. Không nên đặt tên biến quá ngắn hay quá dài, dễ mắc lỗi khi viết nhiều lần tên biến. Khi khai báo biến cần đặc biệt lưu ý đến phạm vi của nó. Trong Pascal, khai báo biến bắt đầu bằng từ khóa Var có dạng: Var <danh sách biến>:<kiểu dữ liệu>; trong đó: - danh sách biến là một hoặc nhiều tên biến, tên biến được viết cách nhau bởi dấu phẩy; - kiểu dữ liệu thường là 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. Cấu trúc <danh sách biến>:<kiểu dữ liệu> có thể xuất hiện nhiều lần. IV. Củng cố: Đưa ra câu hỏi: Trong Pascal, nếu một biến chỉ nhận giá trị nguyên trong phạm vi từ 10 đến 25532 thì biến đó có thể được khai báo bằng các kiểu dữ liệu nào? Gọi một HS đứng tại chỗ trả lời. HS khác nhận xét, bổ xung. V. Dặn dò: Đọc trước bài 6. Làm bài tập trong sách bài tập. Nguyễn Huy Bình
  • 10. Trường THPT Trần Nhật Duật Tiết 6 Tin học 11 Phép toán, biểu thức, câu lênh gán Ngày soạn:...../......; Ngày giảng:..../...... 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; 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết một số kiểu dự liệu chuẩn được dùng trong TP? Cách khai báo biến? . Bài giảng: Nội dung Hoạt động của GV và HS GV: Để mô tả các thao tác trong thuật toán, mỗi ngôn ngữ lập trình đều xác định và sử dụng một số khái niệm cơ bản: phép toán, biểu thức, gán giá trị cho biến. 1. Phép toán: Bảng kí hiệu các phép toán trong toán và trong Pascal: (SGK – t24). . Chú ý: - Kết quả của các phép toán quan hệ cho giá trị logic; - Một trong những ứng dụng của phép toán logic là để tạo ra các biểu thức phức tạp từ các quan hệ đơn giản GV: Trong lập trình, biểu thức số học là 2. Biểu thức số học một biến số hoặc một hằng số hoặc các Quy tắc: biến kiểu số và các hằng kiểu số liên kết - Chỉ dùng cặp ngoặc tròn để xác định với nhau bởi một số hữu hạn các phép toán trình tự thực hiện phép toán trong số học, các dấu ngoặc tròn tạo thành một trường hợp cần thiết; biểu thức có dạng tương tự như cách viết - Viết lần lượt từ trái sang phải; trong toán học. Nguyễn Huy Bình
  • 11. Trường THPT Trần Nhật Duật Tin học 11 - Không được bỏ qua dấu nhân trong tích. Các phép toán được thực hiện theo thứ 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 qua phải, theo thứ tự các phép toán nhân, chia, chia nguyên, lấy phần dư thực hiện trước và các phép toán cộng, trừ thực hiện sau. GV: Lấy ví dụ trong SGK để giải thích cho Ví dụ: SGK HS. Có thể đưa ra một biểu thức trong toán Chú ý (SGK) học, HS viết lại biểu thức đó trong Pascal. 3. Hàm số học chuẩn Bảng một số hàm số học chuẩn thường dùng: SGK Kết quả của hàm có thể là nguyên hay hoặc thực hay phụ thuộc vào kiểu của đối số. Ví dụ: SGK 4. Biểu thức quan hệ Biểu thức quan hệ có dạng: <biểu thức 1><phép toán quan hệ><biểu thức 2> trong đó, biểu thức 1 và biểu thức 2 cùng là xâu hoặc cùng là biểu thức số học. Biểu thức quan hệ được thực hiện theo trình tự: - Tính giá trị các biểu thức - Thực hiện phép toán quan hệ. Kết quả của phép toán quan hệ là biểu thức logic. 5. Biểu thức logic Biểu thức logic đơn giản là biến logic hoặc hằng logic. Các biểu thức quan hệ thường được đặt trong trong cặp dấu ngoặc ( và ). Phép toán not được viết trước biểu thức cần phủ định. Các phép toán and và or dùng để kết hợp nhiều biểu thức logic hoặc quan hệ thành một biểu thức, thường được dùng để diễn tả các điều kiện phức tạp. ví dụ: SGK GV: Để lập trình được dễ dàng, thuận tiện, các ngôn ngữ lập trình đề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 được gọi là hàm số học chuẩn. GV: Hai biểu thức cùng liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức quan hệ. GV: Biểu thức logic là các biểu thức logic đơn giản, các biểu thức quan hệ liên kết nhau bởi phép toán logic. Nguyễn Huy Bình
  • 12. Trường THPT Trần Nhật Duật Tin học 11 6. Câu lệnh gán GV: Lệnh gán là một trong những lệnh cơ Trong Pascal câu lệnh gán có dạng: bản nhất của các ngôn ngữ lập trình. <tên biến> := <biểu thức>; Chức năng của lệnh gán là đặt cho biến có tên ở vế trái dấu “:=” giá trị bằng giá trị HS: nghe giảng, ghi chép. của biểu thức ở vế phải. VD: SGK IV. Củng cố: Hãy viết biểu thức toán học dưới đây trong Pascal: y x ( 1+ x) 1 z+ 1 + x2 x+ V. Dặn dò: Làm bài tập trong SBT. Đọc trước bài 7 và 8. Nguyễn Huy Bình
  • 13. Trường THPT Trần Nhật Duật Tiết 7 dịch, Tin học 11 Các thủ tục chuẩn vào/ra đơn giản. Soạn thảo, thực hiện và hiệu chỉnh chương trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết các lệnh vào/ra đơn giản để nhập thông tin từ bàn phím và đưa thông tin 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 chương trình; - Biết một số công cụ của môi trường TP. 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 chương trình dịch để phát hiện lỗi; - Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương trình dịch và tính hợp lý của kết quả thu được. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy viết biểu thức toán học dưới đây trong Pascal: y  1 x 1+ x ÷ 1 1   + z 1 + x2 1+ . Bài giảng: Nội dung Hoạt động của GV và HS A. Các thủ tục chuẩn vào/ra đơn giản Trong ngôn ngữ Pascal các thủ tục vào/ra chuẩn viết như sau: GV: Khi sử dụng các ứng dụng ta 1. Nhập dữ liệu vào từ bàn phím thường phải nhập thông tin vào, như vậy bằng cách nào ta nhập được thông tin vào khi lập trình? Ta dùng thủ tục chuẩn READ hoặc Làm thế nào để nhập giá trị từ bàn phím READLN có cấu trúc như sau: vào cho biến? READ/READLN(<danh sách biến vào>); GV: Diễn giải hoạt động của Ví dụ: Read(N); READ/READLN, nêu sự khác nhau khi Nguyễn Huy Bình
  • 14. Trường THPT Trần Nhật Duật Tin học 11 Read(a,b,c); dùng Read/Readln. Chú ý: Khi nhập dữ liệu từ bàn phím READ và READLN có ý nghĩa như nhau. GV: Đưa ra hai ví dụ về chương trình có nhập thông tin vào từ bàn phím. Ví dụ 1: Chương trình nhập tuổi. Ví dụ 2: Nhập ba số nguyên. GV: Nhận xét về chương trình. Giải thích Việc nhập dữ liệu cho nhiều biến thì giá trị việc nhập giá trị cho nhiều biến đồng thời. mỗi biến phải cách nhau ít nhất một dấu Giải thích sự khác biệt giữa READ và cách hoặc dâu Enter, máy sẽ gán giá trị READLN. cho biến theo thứ tự như trong lệnh nhập tương ứng. GV: Trong ví dụ 2, ta thấy 3 giá trị a, b, c 11 Đưa dữ liệu ra màn hình Để đưa dữ liệu ra màn hình tại vị trí con dính liền vào nhau và người sử dụng không trỏ, ta dùng thủ tục WRITE hoặc WRITE thể phân biệt được giá trị của từng biến. Vậy làm thế nào và có những cách nào để với cấu trúc: hiển thị dữ liệu theo ý muốn của người lập Write/Writeln(<Giá trị 1>,...<Giá trị n>); trong đó các giá trị có thể là tên biến, trình. tên hằng, giá trị cụ thể, biểu thức hoặc tên GV: Mỗi ngôn ngữ có cách đưa thông tin ra màn hình khác nhau. hàm. Ví dụ: Write(a, b, c); Writeln(‘ Giá trị của N là:’,N); Thủ tục Writeln sau khi đưa kết quả ra sẽ chuyển con trỏ màn hình xuống dòng tiếp theo. Ngoài ra TP còn có quy cách đưa thông tin ra như sau: Kết quả thực: <độ rộng>:<số chữ số thập phân> Kết quả khác: <độ rộng> Ví dụ: Write(N:8); Write(‘X=’,X:8:2); GV: Giải thích sự khác nhau giữa Write và Writeln. GV: Minh họa cách đưa thông tin ra bằng chương trình. GV: Đưa ra hai ví dụ. Ví dụ 1: Để nhập giá trị từ bàn phím, ta GV: Ví dụ 2 là một ví dụ đầy đủ của một chương trình nhập dl từ bàn phím và hiển thường dùng: thị dữ liệu đó ra màn hình. {1.}Write(‘ Nhập giá trị của N:’); GV: Viết nhanh ví dụ {2.}Readln(N); Trong đó: {1} đưa ra thông báo: nhập giá HS: Nhận xét từng câu lệnh trong đoạn chương trình. trị của N {2} dùng để đọc giá trị và gán cho biến N. Cấu trúc {1}, {2} được gọi là giao tiếp người – máy. B. Soạn thảo, dịch, thực hiện và hiệu Nguyễn Huy Bình
  • 15. Trường THPT Trần Nhật Duật chỉnh chương trình Để thực hiện được các ví dụ và bài thực hành trong máy tính bằng Turbo Pascal cần có các tệp: turbo.exe, turbo.tpl, graph.tpu, egavga.bgi. Màn hình làm việc của ngôn ngữ Pascal có dạng như sau: ( Hình 1. T32-SGK) Một số thao tác thường dùng trong Pascal: - Xuống dòng: Enter - Ghi file vào đĩa: F2 - Mở file đã có: F3 - Biên dịch chương trình: Alt + F9 - Soát lỗi chương trình: F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3 - Chuyển qua lại giữa các cửa sổ: F6 - Xem lại màn hình kết quả: Alt + F5 - Thoát khỏi TP: Alt + X Tin học 11 GV: Giới thiệu một số tập tin cần thiết để TP có thể chạy được, hướng dẫn HS cách khởi động Pascal trên máy tính. HS: Quan sát hình vẽ trong SGK. GV: Giới thiệu một số thao tác thường dùng khi soạn thảo chương trình trong môi trường soạn thảo TP. GV: Viết một chương trình ví dụ, thực hiện các thao tác sửa lỗi... IV. Củng cố: Giải thích từng dòng lệnh của đoạn chương trình sau: Program VD; Var N: Integer; Begin Write(‘ Lop ban co bao nhieu nguoi: ’); Readln(N); Writeln(‘ Vay la lop ban co ‘,N-1,’ nguoi ban trong lop’); Readln; End. V. Dặn dò: - Nhắc lại sự hoạt động của Write/Writeln, Read/Readln. - Ra bài tập về nhà. Nguyễn Huy Bình
  • 16. Trường THPT Trần Nhật Duật Tiết 8 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố những nội dung chính trong chương II qua các bài tập 2. Kỹ năng: - Biết sử dụng các thủ tục chuẩn vào/ra; - Biết xác định input và output. II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết các thủ tục vào/ra chuẩn của TP? Lấy vi dụ đơn giản để minh họa? . Bài giảng: Nội dung Hoạt động của GV và HS GV: Chữa các bài tập từ 6 đến 10. GV: Các bài tập 9 và 10 yêu cầu viết chương trình nhập các giá trị của các biến từ bàn phím, sau đó tính giá trị một biểu thức chứa các biến này và hiện kết quả ra màn hình. GV: Yêu cầu HS phân tích tìm ra input và output của bài toán. Bài 6 – 7 (SGK) GV: Hướng dẫn HS phân biệt cách viết công thức trong toán học với trong Pascal (chú ý chỉ dùng một loại dấu ngoặc tròn) HS: Lên bảng viết các biểu thức. Bài 8 (SGK) GV: Hướng dẫn HS phát hiện những đặc điểm của tọa độ (x,y) của điểm thuộc vùng gạch trong các hình 2a và 2b. 2a) bt:= (y>abs(x)) and (y<=1) 2b) bt:= (abs(x) <= 1) and (abs(y) <=1) Câu 9 (SGK) Nguyễn Huy Bình
  • 17. Trường THPT Trần Nhật Duật Tin học 11 Nhận xét: Diện tích phần gạch bằng ½ GV: Gợi ý đề HS nhận xét bài toán diện tích hình tròn tâm O(0,0) bán kính GV: Hướng dẫn HS viết chương trình đầy R= a. Lưu ý số π là hằng trong Pascal và đủ. được kí hiệu là Pi. Chương trình: var a: read; Begin write(‘ Nhap gia tri a (a>0):’);readln(a); write(‘ Dien tich phan gach la: ‘,a*a*pi/2:15:3); readln end. Câu 10 (SGK) GV: Viết sẵn chương trình giải bài 10 trên giấy khổ lớn dạng đồ dùng học tập, nhưng chương trình còn sai một vài chỗ để học sinh tìm lỗi và sửa. IV. Củng cố: Hoàn thiện bài tập số 10 vào vở. V. Dặn dò: Làm các bài tập trong sách bài tập. Chuẩn bị bài để giờ sau thực hành tại phòng máy. Nguyễn Huy Bình
  • 18. Trường THPT Trần Nhật Duật Tiết 9 + 10 Tin học 11 Bài tập và thực hành 1 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản; - Làm quen với một số dịch vụ cơ bản của TP trong việc soạn thảo, lưu trữ, dịch và thực hiện chương trình. 2. Kỹ năng: - Biết viết một chương trình Pascal đơn giản; - Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK. 2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS GV: Hướng dẫn lại cho HS biết cách khởi động máy, kích hoạt phần mềm Pascal, làm quen với một chương trình đơn giản (giải phương trình bậc hai một ẩn) theo từng bước. GV: Thực hiện theo hướng dẫn như trong a) Gõ chương trình sau: SGK. Program Giai_PTB2; HS: Làm theo từng bước. Uses crt; Var a, b, c, D: real; HS: Mở chương trình Turbo Pascal. x1, x2: real; HS: Gõ chương trình. Begin clrscr; write(‘ a, b, c: ‘); readln(a,b,c); D:=b*b – 4*a*c; x1:= (-b – sqrt(D))/(2*a); Nguyễn Huy Bình
  • 19. Trường THPT Trần Nhật Duật Tin học 11 x2:= - b/a – x1; write(‘ x1=’,x1:8:3,’ x2 = ‘,x2:8:3); readln; End. b) Nhấn phím F2 và lưu chương trình với GV: Hướng dẫn chung cho HS cách lưu tên là PTB2.PAS lên đĩa. chương trình của mình (đặt tên, lưu tại đâu, ... c) Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp (nếu có). GV: Sửa những lỗi chung lên bảng. GV: Giúp HS dịch và sửa lỗi chương trình trực tiếp trên máy tính với từng HS (vì đây là bài thực hành đầu tiên). d) Nhấn tổ hợp phím Ctrl + F9 để thực hiện chương trình. HS: Nhập các giá trị: 1, -3, 2. Quan sát kết quả trên màn hình. e) Nhấn tổ hợp phím Ctrl + F9 rồi nhập các giá trị 1; 0; -2. HS: Quan sát kết quả hiển thị trên màn hình. f) Sửa lại chương trình trên sao cho không GV: Gợi ý để HS thực hiện việc sửa đổi dùng biến trung gian D. Thực hiện chương chương trình. trình đã sửa với bộ dữ liệu trên. g) Sửa lại chương trình nhận được ở câu c) bằng cách thay đổi công thức tính x2. h) Thực hiện chương trình đã sửa với bộ dữ liệu 1; -5; 6. HS: Thực hiện theo yêu cầu. Quan sát kết quả trên màn hình. g) Thực hiện chương trình với bộ dữ liệu 1; 1; 1 và quan sát kết quả trên màn hình. GV: Sau khi học sinh hoàn thành bài thực hành 1, có thể hướng dẫn HS làm các bài Bài 9 tập 9 và 10 trong SGK. uses crt; var a, s: real; begin clrscr; write(‘ a= ‘); readln(a); s:=pi*sqr(a)/2; writeln(‘ dien tich phan gach cheo la: ‘, HS: Làm bài tập dưới sự hướng dẫn của s:4:2); GV. readln end. IV. Củng cố: Nguyễn Huy Bình
  • 20. Trường THPT Trần Nhật Duật Tin học 11 V. Dặn dò: Làm bài tập 9, 10 (t36 – SGK). Giờ thực hành sau cho chạy thử trên máy. Tiết 11 Cấu trúc rẽ nhánh Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu nhu cầu 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 thiếu, 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ, phiếu học tập. 2. Học sinh: Vỏ ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Néi dung Ho¹t ®éng cña GV Ho¹t ®éng cña HS - Ph¸t phiÕu häc - NhËn phiÕu häc tËp cho HS. tËp. - Híng dÉn HS sö dông ®Çy phiÕu: ®ñ c¸c §iÒn c¸c th«ng ®iÒn tin c¸ nh©n. th«ng - Xem vµ nghe GV tin ngµy th¸ng, hä híng dÉn c¸ch thøc tªn, Sử dụng líp, ®äc kü ®Ó tr¶ lêi c¸c yªu c¸c yªu cÇu vµ tr¶ cÇu lêi vµo quy ®Þnh. phÇn trong phiÕu ®· häc tËp. - Hái - HS cã 15 phót tù nh÷ng lu«n ý mµ GV m×nh nghiªn cøu SGK vµ cha hiÓu. Nguyễn Huy Bình
  • 21. Trường THPT Trần Nhật Duật phiếu học tập tr¶ Tin học 11 lêi c¸c yªu - Trong 15 phót tù cÇu trong phiÕu. - Quan s¸t nghiªn cøu SGK vµ HS, hoµn gi¶i ®¸p c¸c th¾c HS m¾c trong thµnh phiÕu ph¶i ®äc thËt c¸c yªu cÇu PhiÕu häc qu¸ kü tr×nh HS thùc hiÖn trong c¸c yªu cÇu trong tËp. Sö dông hiÖu phiÕu. qu¶ SGK nh tµi liÖu nghiªn cøu. - HS cã thÓ trao ®æi vµ th¶o luËn víi c¸c thµnh viªn xung - Sau 15 phót b¾t ®îc quanh c©u ®Ó tr¶ cã lêi ®Çu hoµn thiÖn c¸c ®óng ý, ng¾n gän. néi dung trong - phiÕu. Tr×nh dung - Khi ®Ò cËp ®Õn häc bµy trong tËp néi phiÕu theo yªu phÇn nµo trong bµi cÇu cña GV. th× yªu cÇu 1 HS - Theo dâi GV h·y tr×nh bµy néi tr×nh bµy vµ nhËn dung phÇn ®ã. - ViÕt néi lªn b¶ng cÇu c¸c vµ HS xÐt Sau khi tr¶ lêi dung cña b¹n. yªu kh¸c - Hoµn thiÖn phiÕu nhËn xÐt. - phÇn häc tËp. hoµn thµnh c¸c ý trong phiÕu th× yªu cÇu HS hoµn thiÖn Nguyễn Huy Bình
  • 22. Trường THPT Trần Nhật Duật Tin học 11 phiÕu cña m×nh. IV. Củng cố: V. Dặn dò: Đọc trước bài 10 – Cấu trúc lặp. Ngµy.........th¸ng.........n¨m 2007 PhiÕu häc tËp c¸ nh©n- tin häc 11 TiÕt 11: CÊu tróc rÏ nh¸nh Hä vµ tªn: ....................................................................................., Líp: .......................................... C¸c yªu cÇu ®èi víi HS PhÇn tr¶ lêi cña HS 1. RÏ nh¸nh VÝ dô: §Ó gi¶i ph¬ng NÕu ∆ < 0 th× tr×nh bËc hai, ta ph¶i tÝnh: ................................................. ∆ = b2 − 4ac ................................... NÕu ∆ ≥ 0 th× Tïy thuéc vµo ∆ ®Ó ®a ra kÕt ................................................. .................................. luËn nghiÖm. Quan s¸t s¬ ®å. §iÒn vµo hoÆc chç trèng? Tõ ®ã suy ra mét NÕu ∆ < 0 th× ................................................. sè mÖnh ®Ò? ................................... ngîc l¹i th× ........................................... ............................................ ⇒ mÖnh ®Ò: ................................................. ................................................. .................. ................................................. ................................................. .................. Nguyễn Huy Bình
  • 23. Trường THPT Trần Nhật Duật Tin học 11 2. C©u lÖnh if – then ý nghÜa c¸c c©u lÖnh: Quan s¸t cÊu tróc c©u D¹ng thiÕu: lÖnh vµ s¬ ®å khèi. ChØ ra ý ................................................. nghÜa c¸c c©u lÖnh? ....................................... ................................................. ................................................. ................... ................................................. VÝ dô: §äc vÝ dô 3 t40) §iÒn vµo chç trèng? (SGK – ................................................. ................... ................................................. ................................................. C¸ch nµo nhanh h¬n, tiÖn h¬n? ................... D¹ng ®ñ: ................................................. ............................................. ................................................. ................................................. ................... ................................................. ................................................. ................... ................................................. ................................................. ................... Thùc hiÖn b»ng hai c¸ch: C1: max := a; if .............. then .............. C2: if ............ ................... C¸ch: then else.................. .......... 3. C©u lÖnh ghÐp Trong c©u lÖnh if-then Tr¶ lêi: ................................................. muèn thùc hiÖn nhiÒu lÖnh sau ................................................ then hay nhiÒu lÖnh sau else ................................................. ................................................. ta lµm thÕ nµo? ................... ................................................. ................................................. ................... ................................................. ................................................. ................... ................................................. ................................................. ................... 4. Mét sè vÝ dô §äc vÝ tr41). dô 1 (SGK – Nguyễn Huy Bình
  • 24. Trường THPT Trần Nhật Duật Quan s¸t ch¬ng tr×nh trªn b¶ng. Th¶o luËn vÒ ch¬ng tr×nh nµy. Tin học 11 Bµi tËp: Sö dông cÊu tróc rÏ nh¸nh viÕt c©u lÖnh gi¶i ph¬ng tr×nh bËc nhÊt: ax + b = 0. Tiết 12+13 Cấu trúc lặp Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán; - Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện 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 với số lần biết trước, lệnh lặp kiểm tra điều kiện 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 GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh sẽ nhánh dạng thiếu và dạng đủ? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV : Đưa ra bài toán, yêu cầu học sinh tìm cách để lập trình giải các bài toán này . 1. Khái niệm lặp HS : Đưa ra cách giải của mình, học sinh - Xét 2 bài toán như sau với a > 2 là số có thể đưa ra những cách giải khác nhau . nguyên cho trước : GV : Đưa ra cách giải cho bài toán . Giải theo các lệnh tuần tự Bài toán 1 : Tính tổng Nguyễn Huy Bình
  • 25. Trường THPT Trần Nhật Duật S1:=0; If (1/a>0.0001) then S1:=S1+ 1/a; If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1); If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2); If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3); … Tin học 11 1 1 1 1 S1= a + a + 1 + a + 2 + ... + a + 100 Bài toán 2 : Tính Tổng 1 1 1 1 S2= a + a + 1 + a + 2 + ... + a + N Với điều kệin + ... 1 < 0.0001 a+N HS : Nhận xét với việc giải bài toán theo cách đó ? Cách giải : Với N = 100 thì lặp 100 lần như thế nhưng theo việc kiểm tra điều kiện thì không biết - Bắt đầu S được gán giá trị 1/a. phải làm theo cách nào? Theo cả hai trường hợp thì đều quá dài. - Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, … - Để học sinh hiểu được khái niệm lặp, giáo viên đưa ra một số ví dụ trong thực tế được tính toán lặp đi lặp lại nhiều lần. VD1 : Bài toán gửi tiền vào ngân hàng. Hằng tháng phải tính lãi và cộng thêm vào gốc đang gửi hay nói cách khác gốc của tháng sau = gốc + lãi tháng trước. VD 2: Tính tổng của một đoạn số nguyên mà không được dùng công thức. GV : Đưa ra ví dụ: So sánh hai thuật toán sau: Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết. - Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước. Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp. Lặp thường có 2 loại :  Lặp với số lần biết trước .  Lặp với số lần không biết trước . NNLT nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặp như trên. Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal. 2. Lặp có số lần biết trước và câu lệnh for – do Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước : - Lặp dạng tiến: For <biến đếm> := <giá trị đầu> to <giá Nguyễn Huy Bình
  • 26. Trường THPT Trần Nhật Duật Thuật toán Thuật toán Tong_1a Tong_1b B1: S:=1/a; B1: S:=1/a; N:=0; N:=101; B2: N:=N+1; B2: N := N -1; B3: Nếu N >100 B3: Nếu N < 1 thì chuyển sang thì chuyển sang bước 5; bước 5; B4: S:= S + 1/ B4: S:= S+ 1/ (a+ N) rồi quay (a+N) rồi quay lại B2; lại B2; B5: Đưa ra S rồi B5: Đưa ra S rồi kết thúc. kết thúc. GV : Gọi một số học sinh nhận xét về 2 thuật toán trên về một số vấn đề :  Thuật toán có lặp không?  Lặp bao nhiêu lần?  Hai thuật toán giống và khác nhau như thế nào?  Cái gì thay đổi trong thuật toán này? Tin học 11 trị cuối> do <câu lệnh>; - Lặp dạng lùi For <biến đếm> := <giá trị cuối> downto <giá trị đầui> do <câu lệnh>; Trong đó:  Biến đếm thường là biến kiểu số nguyên.  Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.  Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.  Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.  Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần Ví dụ 1 : Hai chương trình cài đặt thuật toán Sau khi so sánh hai thuật toán trên, giáo tong_1a và tong_1b . viên đưa ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý nghĩa của các thành phần trong câu lệnh . Ví dụ 2 : Tính tổng các số nguyên chia hết GV : Lấy ví dụ minh họa trong Pascal để cho 3 hoặc 5 trong phạm vi từ M đến N các em thấy được sự thay đổi giá trị của (M<N). biến đếm trong một chương trình thực sự của Pascal . Với 2 ví dụ này, giáo viên nên gõ sẵn chương trình và cho học sinh quan sát việc chạy chương trình, giáo viên vừa cho chạy chương trình vừa giải thích ý nghĩa các lệnh trong chương trình (chú ý nhiều đến lệnh lặp) . GV : Đưa ra thuật toán hoặc có thể yêu cầu học sinh tự xây dựng thuật toán giải bài 3. Lặp với số lần chưa biết trước và câu toán 2, nếu tự xây dựng được thuật toán thì lệnh while – do các em sẽ hiểu hơn về lặp không biết trước Để giải bài toán 2 ta dùng thuật toán như sau số lần : Đưa thêm ví dụ : Nhắc lại bài toán gửi Bước 1 : S :=1/a; N :=0; tiền vào ngân hàng: Nếu có số tiền là A, Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển muốn gửi vào ngân hàng để được số tiền là đến bước 5 ; B > A thì cần gửi trong bao lâu với lãi suất Nguyễn Huy Bình
  • 27. Trường THPT Trần Nhật Duật Tin học 11 là k%. Bước 3: N :=N +1; Yêu cầu học sinh đưa ra cách giải cho Bước 4: S := S+ 1/(a+N) rồi quay lại bước bài toán này . 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết GV : Phân tích phương án trả lời của học thúc sinh sau đó đưa ra lời giải cho bài toán. - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa GV : Đưa ra cấu trúc câu lệnh While – Do được thỏa mãn. Trong Pascal, giải thích ý nghĩa các thành _ Pascal sử dụng câu lệnh lặp While phần. - Do để tổ chức lặp với số lần chưa viết như HS : Lắng nghe và ghi chép. sau While <Điều kiện> Do <Câu lệnh>; Trong đó - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. GV: Nên gõ sãn những ví dụ này để học sinh có thể quan sát chương trình, giáo viên chạy thử chương trình trong Pascal. Riêng với VD 2, trước khi đưa ra thuật toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp 10) Chạy chương trình với nhiều cặp M, N khác nhau. Ví dụ 1 : Chương trình của bài toán 1. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. Tốt nhất chạy từng bước, cho học sinh thấy B2: Nếu M > N thì M := M – N rồi quay lại sự thay đổi của các biến. B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Nguyễn Huy Bình
  • 28. Trường THPT Trần Nhật Duật Tiết 14 + 15 Tin học 11 Bài tập và thực hành 2 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: - 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK. 2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Bài toán. Bộ số Pi-ta-go. Biết rằng bộ ba số nguyên dương a, b, c được gọi là bộ số Pi-ta-go nếu tổng các bình phương của hai số bằng bình phương của số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có là bộ số Pi-ta-go GV: giải thích bài toán. hay không? HS: Đưa phương án có thể xảy ra của bài toán. Kiểm tra xem có đẳng thức nào trong ba đẳng thức sau đây xảy ra hay không: Những công việc cần thực hiện: Nguyễn Huy Bình
  • 29. Trường THPT Trần Nhật Duật Tin học 11 a) Gõ chương trình sau: a 2 = b2 + c 2 program Pi_ta_go; b2 = a 2 +c 2 uses crt; var a, b, c: integer; c 2 = a 2 +b 2 a2, b2, c2: longint; begin clrscr; write(‘a, b, c:’); HS: gõ đoạn chương trình. readln(a, b, c); GV: Chú ý, trước else không có dấu chấm a2:=a; phẩy (;). b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; c2:=c2*c; if (a2 = b2 + c2) or (b2 = c2 + a2) or (c2 = a2 + b2) then writeln(‘ Ba so da nhap la bo so Pi-tago’) else write(‘ Ba so da nhap khong la bo so Pi-ta-go’); readln end. b) Lưu chương trình với tên PITAGO lên đĩa. c) Nhấn phím F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a = 3, b = 4, c = 5. HS: Thực hiện thao tác lưu chương trình. d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2. e) Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết GV: Theo dõi và hướng dẫn HS thực hiện quả a2 = 9, b2 = 16, c2 = 25. các phần của bài thực hành. GV: Hướng dẫn cụ thể ở từng máy một. f) Quan sát quá trình rẽ nhánh. g) Lặp lại các bước trên với bộ dữ liệu a = 700, b = 1000, c = 800. h) Nếu thay dãy lệnh a2:=a; b2:=b; c2:=c; Nguyễn Huy Bình
  • 30. Trường THPT Trần Nhật Duật Tin học 11 a2:=a2*a; b2:=b2*b; c2:=c2*c; bằng dãy lệnh a2:=a*a; b2:=b*b; c2:=c*c; thì kết quả có gì thay đổi với bộ dữ liệu HS: Nếu thực hiện xong các yêu cầu trong cho ở câu g? bài thực hành thì có thể làm một số bài tập trong SGK (t.51). GV: Gợi ý cho HS thực hiện các bài tập này. IV. Củng cố: V. Dặn dò: Tiết 16 Kiểm tra 1 tiết Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố và ghi nhớ kiến thức cơ bản của chương 2 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình TP. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 20 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Ôn tâp toàn bộ chương 2 và bài “Cấu trúc rẽ nhánh”. Giờ sau kiểm tra học kì. Nguyễn Huy Bình
  • 31. Trường THPT Trần Nhật Duật Tiết 18 Tin học 11 Kiểm tra học kì I Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố và ghi nhớ kiến thức cơ bản của toàn bộ nội dung học kì I. 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình viết bằng ngôn ngữ lập trình Pascal. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 30 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 32. Trường THPT Trần Nhật Duật Tiết 19 Tin học 11 Cấu trúc lặp (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc của câu lệnh lặp với số lần biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung 3. Lặp với số lần chưa biết trước và câu lệnh while – do GV : Đưa ra cấu trúc câu lệnh While – Do Để giải bài toán 2 ta dùng thuật toán như sau Trong Pascal, giải thích ý nghĩa các thành : phần. Bước 1 : S :=1/a; N :=0; HS : Lắng nghe và ghi chép. Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ; Bước 3: N :=N +1; Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa GV: Nên gõ sãn những ví dụ này để học được thỏa mãn. sinh có thể quan sát chương trình, giáo viên _ Pascal sử dụng câu lệnh lặp While chạy thử chương trình trong Pascal. - Do để tổ chức lặp với số lần chưa viết như Riêng với VD 2, trước khi đưa ra thuật sau toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp While <Điều kiện> Do <Câu lệnh>; 10) Chạy chương trình với nhiều cặp M, N Trong đó khác nhau. - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Tốt nhất chạy từng bước, cho học sinh thấy sự thay đổi của các biến. Ý nghĩa : Khi điều kiện còn đúng thì còn Nguyễn Huy Bình
  • 33. Trường THPT Trần Nhật Duật Tin học 11 thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. Ví dụ 1 : Chương trình của bài toán 1. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Nguyễn Huy Bình
  • 34. Trường THPT Trần Nhật Duật Tin học 11 Tiết 20 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh; 2. Kỹ năng: - Luyện cấu trúc lặp, chú ý bài tìm tổng của dãy số; - Tiếp tục làm quen với các công cụ hiệu chỉnh chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Hướng dẫn và giải đáp các thắc mắc của HS về một số bài tập ở nhà. GV: Yêu cầu HS chữa bài tập 4 trên bảng. HS: Lên bảng chữa bài. GV: Sửa lỗi và hoàn chỉnh bài 4. GV: Rèn luyệ, uốn nắn HS về cách viết các câu lệnh sao cho chính xác và gọn gàng, mỗi câu lệnh nên viết trên một dòng để thuận tiện cho quá trình theo dõi thực hiện từng lệnh. Bài 4 a) if (sqr(x)+sqr(y)<=1) then z:= sqr(x) + sqr(y) else if y>=x then z:=x + y else z:=0.5; b) if (sqr(x-a) + sqr(y-b))<=sqr(r) then z:=abs(x) + abs(y) else z:=x+y; HS: Rèn luyện tính cẩn thận, chu đáo khi lập trình, rèn luyện cách hiệu chỉnh chương trình khi gặp lỗi và cách kiểm thử lại chương trình thông qua một số test. Bài 5 GV: Yêu cầu cả lớp cùng giải bài tập 5.b. IV. Củng cố: V. Dặn dò: Đọc trước bài Kiểu mảng. Nguyễn Huy Bình
  • 35. Trường THPT Trần Nhật Duật Tiết 21 Tin học 11 Kiểu mảng Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu khái niệm mảng một chiều và hai 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 toán các phần tử của mảng . II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Trước khi vào bài, giáo viên đưa ra một số vấn đề cần giải quyết như sau : Với những kiểu dữ liệu như đã biết, làm thế nào để : - Lưu trữ và xử lý một dãy số ? - Lưu trữ và xử lý Họ và tên của một Có thể sử dụng ví dụ trong SGK để học sinh dễ theo dõi, gõ trước chương trình để có thể người ? - Lưu trữ và xử lý bảng kết quả thi tốt sử dụng cho các phần tiếp theo . nghiệp ? HS : Đưa ra các phương án để trả lời cho 3 câu hỏi trên . GV : Các ngôn ngữ lập trình thường cung cấp một số kiểu dữ liệu được xây dựng từ những kiểu dữ liệu chuẩn gọi là kiểu dữ liệu có cấu trúc . Chương này chúng ta sẽ tìm hiểu một Trong lập trình thường có 2 loại mảng : - Mảng một chiều . số kiểu dữ liệu trong ngôn ngữ Pascal để trả - Mảng hai chiều . lời 3 câu hỏi trên . Nguyễn Huy Bình
  • 36. Trường THPT Trần Nhật Duật Tin học 11 GV : Đưa ra ví dụ, cần lập lập trình xử lý 1. Kiểu mảng một chiều một dãy số nguyên, hãy tìm cách lưu trữ một dãy số nguyên trong khi lập trình ? - Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu, mảng được đặt tên và Bằng cách nào để lưu trữ được thông tin mỗi phần tử mang một chỉ số. Để mô tả dưới dạng bảng khi lập trình ? mảng một chiều ta cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử . HS : Đưa ra ý kiến . Với mảng một chiều ta quan tâm đến : GV : Đánh giá ý kiến của học sinh, sau đó - Tên mảng một chiều . đưa ra mục đích của việc sử dụng cấu trúc - Số lượng phần tử trong mảng . mảng trong chương trình . - Kiểu dữ liệu của phần tử . - Cách khai báo biến mảng một chiều . GV : Đưa ra khái niệm mảng một chiều và - Cách truy cập vào từng phần tử của một số yếu tố liên quan trong lập trình nói mảng . chung . Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này . GV : Đi sâu phân tích hai chương trình để cho học sinh nhận thấy sự tiện lợi khi sử Quan sát hai chương trình viết bằng ngôn dụng mảng . ngữ Pascal cùng để giải bài toán trên . HS : Trong khi giáo viên phân tích hai chương trình, học sinh sẽ đưa ra ý kiến nhận xét về 2 chương trình. HS : Trong khi giáo viên phân tích hai chương trình, học sinh sẽ đưa ra ý kiến nhận xét về 2 chương trình. - Chương trình 1 : Không sử dụng kiểu mảng . - Chương trình 2 : Sử dụng kiểu mảng một chiều . a> Khai báo mảng một chiều Trong ngôn ngữ Pascal, mảng một chiều được khai báo bằng hai cách như sau : Cách 1 : Var <Tên mảng> : Array[kiểu chỉ số] of <kiểu phần tử> ; Cách 2 : Type <Tên kiểu mảng> = Array [<kiểu chỉ số>] of <kiểu phần tử> ; Var <Tên mảng> : <tên kiểu mảng> ; GV : Đưa ra cách khai báo mảng một chiều trong ngôn ngữ Pascal, giải thích ý nghĩa Trong đó : của các từ khóa mới . - Type là từ khóa dùng để khai báo biến, Array là từ khóa để khai báo mảng . GV : Khai báo bằng cách nào tiện lợi hơn ? Nguyễn Huy Bình
  • 37. Trường THPT Trần Nhật Duật Tin học 11 - Kiểu chỉ số thường là đoạn số nguyên liên tục có n1..n2, với n1 là chỉ số đầu HS : Thường thì học sinh trả lời cách 1 tiện và n2 là chỉ số cuối. lợi hơn ? - Kiểu thành phần là kiểu dữ liệu của phần tử mảng . - Để truy cập vào phần tử mảng ta viết : GV : Tùy trường hợp cụ thể mà ta dùng - <Tên biến mảng>[Chỉ số] cách 1 hay cách 2 nhưng thông thường ta Ví dụ : sử dụng cách 1 . A[20] Truy cập phần tử mang chỉ số 20 trong mảng A . Ví dụ : GV : Sử dụng một sồ hình ảnh trực quan Khai báo biến mảng thông qua kiểu mảng minh họa cho học sinh cấu trúc mảng và : chỉ số của phần tử Type ArrayInteger=Array[1..100] of Integer; Chỉ ArrayReal=Array[1.50] of Real; 1 2 3 4 5 6 7 8 số Var A : Array[1..50]; B : Array[1..50] of Real; Giá 5 81 62 18 26 41 24 53 trị 3 Khai báo mảng trực tiếp : Đưa ra một số khai báo mảng trong Pascal . Var A : Array[1..100] of Integer ; B : Arrat[1..50] of Real ; IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 38. Trường THPT Trần Nhật Duật Tiết 22 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Cho biết cách khai báo mảng một chiều? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung b> Một số ví dụ : GV : Đưa ra ví dụ . Ví dụ 1 : Tìm phần tử lớn nhất của một dãy số nguyên . HS : Xây dựng thuật toán để giải bài toán - Input : Số nguyên dương N và dãy số (thuật toán đã học ở lớp 10) . A1, A2, ….., AN - Output : Chỉ số và giá trị của số lớn nhất trong dãy GV soạn sẵn chương trình và cho học sinh - Ý tưởng : quan sát chương trình . + Đặt số A1 là số lớn nhất (max) + Cho i lặp từ 2 đến N, nếu A[i]> thì đổi max = A[i] vả lưu lại vị trí i . Nếu có nhiều thời gian, giáo viên sẽ tiến Chương trình như sau : hành soạn chương trình từ đầu để học sinh có thể dễ dàng nhận ra các thao tác cần phải Program timmax ; thực hiện khi viết chương trình . Uses crt ; var a : array[1..250] of integer ; n,i,max,csmax : Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := 1 to n do Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ; max := a[i] ; Nguyễn Huy Bình
  • 39. Trường THPT Trần Nhật Duật Tin học 11 csmax := 1 ; For i := 2 to n do If a[i] > max then Begin max := a[i] ; csmax :=i ; End ; Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End . Ví dụ 2 : Sắp xếp dãy số nguyên theo bằng thuật toán tráo đổi . GV : Đưa ra ví dụ, nhắc lại ý tưởng của - Input : Số nguyên dương N và dãy số thuật toán . A1, A2, …, AN - Output : Dãy A được sắp xếp theo thứ tự không giảm . HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học ở lớp 10) . - Ý tưởng : + Đổi để đưa số lớn nhất về vị trí cuối cùng . GV: soạn sẵn chương trình và cho học sinh + Làm tương tự đối với những số còn quan sát chương trình . lại . Chương trình như sau : Nếu có thời gian, giáo viên sẽ tiến hành soạn chương trình từ đầu để học sinh có thể Program sapxep ; dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ; từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ; trình . n,i,j,tg : Integer ; Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; For j := n downto 2 do Begin For i := 1 to j-1 do Nguyễn Huy Bình
  • 40. Trường THPT Trần Nhật Duật Tin học 11 If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do write(a[i]:8) ; readln ; End . Writeln('chi so ptu lon nhat : ',csmax); readln ; End . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 41. Trường THPT Trần Nhật Duật Tiết 23 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh 11C3: 11C7: 11C4: Nội dung Ví dụ 3 : Tìm kiếm nhị phân . GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật toán . HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học ở lớp 10) . - Input : Dãy số A1, A2,………, AN đã được sắp xếp tăng dần . - Output : Có hay không chỉ số i mà A[i] = k hoặc thông báo không tìm thấy . GV soạn sẵn chương trình và cho học sinh - Ý tưởng : quan sát chương trình . Xem lại thuật toán tìm kiếm nhị phân trong SGK lớp 10 . Chương trình như sau : Nếu có thời gian, giáo viên sẽ tiến hành soạn chương trình từ đầu để học sinh có thể Program sapxep ; dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ; từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ; trình . n,i,k : Integer ; dau,cuoi,giua : Integer ; TK : boolean ; Begin clrscr ; Write('Nhap so ptu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; Nguyễn Huy Bình
  • 42. Trường THPT Trần Nhật Duật Tin học 11 End ; Write('nhap so can tim k : ') ; Readln(k); dau := 1 ; cuoi := n ; TK := false ; while (dau <= cuoi) and Not TK Do Begin giua := (dau+cuoi) div 2 ; If A[giua] = k then TK := true Else If a[giua]>k then cuoi := giua - 1 Else dau := giua + 1 ; End ; If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ; End . 2. Kiểu mảng 2 chiều : GV : Quay lại ví dụ về lưu trữ dữ liệu dạng - Mảng hai chiều là một bảng các phần tử bảng để các em nhận ra nhu cầu phải sử cùng kiểu . dụng mảng 2 chiều trong lập trình . Với mảng hai chiều ta quan tâm đến : - Tên kiểu mảng hai chiều . - Số lượng phần tử của mỗi chiều trong mảng . - Kiểu dữ liệu của phần tử . - Cách khai báo biến mảng hai chiều . - Cách truy cập vào từng phần tử của mảng . a> Khai báo mảng hai chiều - Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau : GV : Khai báo cách nào tiện lợi hơn (tương Cách 1 : Khai báo trực tiếp tự mảng 1 chiều) ? HS : Thường thì học sinh vẫn chọn cách 1 . GV : Tùy theo trường hợp cụ thể nhưng Var : <Tên mảng> : Array[kiểu chỉ số dòng, kiểu chỉ số cột] of < kiểu phần tử> ; Cách 2 : Khai báo gián tiếp thông qua khai Nguyễn Huy Bình
  • 43. Trường THPT Trần Nhật Duật Tin học 11 thường thì cách 1 hay được dùng hơn . báo kiểu mảng Type <Tên kiểu mảng> = Array[kiểu chỉ số dòng, kiểu chỉ số cột] of <kiểu phần tử> ; Var <Tên mảng> : <Tên kiểu mảng> ; Ví dụ : Khai báo biến mảng thông qua kiểu mảng : GV : Khi khai báo mảng 2 chiều cần chú ý Type điều gì ? ArrayInteger = Array[1..10,1..15] of Integer ; HS : Tìm câu trả lời, GV gợi ý để các em ArrayReal=Array[1..50,1..100] of Real ; chỉ ra được chỉ số của mảng, số dòng, số cột và kiểu của mỗi phần tử trong mảng . Var A : ArrayInteger ; B : ArrayReal ; Khai báo mảng trực tiếp : Var A : Array[1..10,1..15] og Integer ; B : Aarray[1..50,1..100] og Real ; GV : Gọi một số học sinh lên khai báo một số biến mảng một chiều theo yêu cầu của Cách truy cập vào phần tử của mảng hai giáo viên . chiều : <Tên mảng>[chỉ số dòng, chỉ số cột] Minh họa bằng hình ảnh mảng 2 chiều và Ví dụ : A[1,3], B[23,66],…… chỉ số các phần tử mảng hai chiều cũng như cách viết truy cập phần tử mảng . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 44. Trường THPT Trần Nhật Duật Tiết 24 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh GV cho học sinh quan sát chương trình và giải thích các lệnh trong chương trình, chú ý đi sâu vào các lệnh lặp để các em nhận ra thường thì ta sử dụng vòng lặp for - do để duyệt qua các phần tử mảng . 11C3: 11C7: 11C4: Nội dung b> Một số ví dụ : Ví dụ 1 : Chương trình sau đưa ra màn hình bảng cửu chương . Program cuuchuong; GV nên soạn sẵn chương trình và cho các Uses crt ; em quan sát chương trình, và chạy thử var A : Array[1..9,1..9] of Integer ; chương trình trên máy để các em tiện theo i, j : Byte ; dõi . Begin Program Timkiem; Clrscr ; Uses crt; Writeln('Bang cuu chuong 1 -> 9 : '); var A : Array[1..100,1..100] of Integer; Writeln ; i,j,n,m : Byte ; For i := 1 to 9 do k,d : integer ; For j := 1 to 9 do A[i,j] := i*j ; Begin For i := 1 to 9 do Clrscr ; Begin Write(' Nhap so dong, so cot cua mang : For j := 1 to 9 do Write(a[i,j]:4); ') ; Writeln ; Readln(m,n); Writeln ; For i := 1 to m do End ; For j := 1 to n do Readln ; Begin End . Write(' A[',i,',',j,'] = '); Readln(A[i,j]); Nguyễn Huy Bình
  • 45. Trường THPT Trần Nhật Duật Tin học 11 End ; Writeln(' Mang vua nhap vao la : '); Writeln; For i := 1 to m do Begin For j := 1 to n do Write(a[i,j]:4) ; Writeln; Writeln; End; Write(' Nhap gia tri k : '); Readln(k) ; d := 0 ; For i := 1 to m do For j := 1 to n do If a[i,j] < k then Begin write('So nho hon ',k,' la '); write(a[i,j]:8); d := d+1 ; End ; If d = 0 then Write('Khong co ptu nao nho hon ',k); readln; End . Ví dụ 2 : Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng . IV. Củng cố:  Nhắc lại một số khái niệm mới .  Nhắc lại cấu trúc câu lệnh bằng cách chia bảng thành 4 phần đồng thời gọi 4 học sinh lên bảng viết lại các cách khai báo, truy xuất, và hiển thị để nhập dữ liệu .  Ra bài tập về nhà . V. Dặn dò: Đọc lại các kiến thức đã học trong bài 11. Chuẩn bị các chương trình để chạy trong giờ thực hành sau. Nguyễn Huy Bình
  • 46. Trường THPT Trần Nhật Duật Tiết 25 Tin học 11 Bài tập và thực hành 3 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng; 2. Kỹ năng: + Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn; + Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính. + Tổ chức những hoạt động trong phòng máy để HS có được kĩ năng cơ bản trong làm việc với kiểu mảng (một chiều) trong lập trình, cụ thể là: - Khai báo kiểu dữ liệu mảng; - Nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng; - Duyệt qua tất cả các phần tử của mảng để sử lí từng phần tử. + Cung cấp cho HS 3 thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểu mảng: - Tính tổng các phần tử thỏa mãn điều kiện nào đó; - Đếm số phần tử thỏa mãn điều kiện nào đó; - Tìm phần tử lớn nhất (hay nhỏ nhất) của mảng cùng với vị trí của nó trong mảng. + Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung HS: phải hiểu được chương trình đã viết Bài 1: Tạo mảng A gồm n (n<=100) số sẵn ở câu a) và thấy được kết quả chạy nguyên, mỗi số có trị tuyệt đối không vượt chương trình này, trên cơ sở đó tìm ra cách quá 300. Tính tổng các phần tử của mảng là giải quyết vấn đề đặt ra ở câu b. bối số của một số nguyên dương k cho GV: cần cho HS thấy được điểm khác nhau trước. cơ bản của các chương trình ở câu a và câu a) Hãy tìm hiểu và chạy thử chương trình b. sau đây: Thủ tục randomize khởi tạo bộ lấy số ngẫu Program Sum1; nhiên trước khi dùng lệnh random(n) để lấy (tr 63 SGK) một số nguyên ngẫu nhiên trong phạm vi từ b) Hãy đưa các câu lệnh sau đây vào những 0 đến n-1. vị trí cần thiết nhằm sửa đổi chương trình Nguyễn Huy Bình
  • 47. Trường THPT Trần Nhật Duật GV: đưa ra một số câu hỏi (phù hợp với trình độ HS ở mỗi lớp), hướng dẫn HS tìm hiểu chương trình: - MyArray là tên một kiểu dữ liệu hay tên một biến? - Vai trò của nmax và n khác nhau ntn? - Những dòng lệnh nào nhằm tạo ra mảng A? - Lệnh gán: A[i]:=random(300)random(300); có ý nghĩa gì? ………. IV. Củng cố: V. Dặn dò: Tin học 11 trong câu a) để có được chương trình đưa ra số các số dương và số các số âm trong mảng. posi, neg : integer; posi:= 0; neg:= 0; if A[i] > 0 then posi:= posi + 1 else if A[i] < 0 then neg:=neg+1; writeln(posi:4,neg:4); Nguyễn Huy Bình
  • 48. Trường THPT Trần Nhật Duật Tiết 26 Tin học 11 Bài tập và thực hành 3(T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh GV: Nêu gợi ý cho HS thấy được chương trình 2a thể hiên thuật toán tìm phần tử lớn nhất. GV: Hướng dẫn HS tìm hiểu vai trò của biến j qua các câu lệnh của bài toán. GV: Có thể cho HS một ví dụ bộ dữ liệu input nhỏ và yêu cầu HS mô phỏng việc chạy chương trình thể hiện thuật toán trên giấy nháp. 11C3: 11C7: 11C4: Nội dung Bài 2: Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất. a) Tìm hiểu chương trình sau đây: Program max; Const nmax=100; Type myarray=array[1..nmax] of interger; Var a:myarray; HS: Tích cực tìm hiểu bài toán, thực hiện n, i, j:integer; bài toán trên máy tính, sửa lỗi chạy chương Begin trình. Write(‘Nhap so luong phan tu day, n=’); Readln(n); For i:= 1 to n do Begin Write(‘ phan tu thu ‘,i,’ =’); 1 readln(a[i]); 2 end; j:=1; for i:=2 to n do if a[i]>a[j] then j:=i; write(‘ chi so:’,j,’ Gia tri:’,a[j]:4); readln end. Nếu còn thời gian thì HS hoàn thành phần b) Chỉnh sửa chương trình trên để đưa ra chỉ b) dưới sự hướng dẫn của GV. số các phần tử có cùng giá trị lớn nhất. IV. Củng cố: Có thể thay thế câu lệnh a[i]:=random(300)-random(300) cho hai lệnh 1,2 V. Dặn dò: Nguyễn Huy Bình
  • 49. Trường THPT Trần Nhật Duật Tiết 27 Tin học 11 Bài tập và thực hành 4 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố cho HS những kiến thức cơ bản đã có khi lập trình với kiểu dl mảng; - Củng cố cho HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi); 2. Kỹ năng: - Rèn luyện kĩ năng diễn đạt thuật toán sắp xếp bằng chương trình sử dụng dữ liệu kiểu mảng; - Rèn luyện cho HS một ý thức cần có của người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể; - Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Bài này giúp chúng ta củng cố thuật toán sắp xếp (bằng tráo đổi) và kĩ năng cài đặt bằng ngôn ngữ lập trình. Bài 1: a) Hãy tìm hiểu và chạy thử chương trình HS: Tích cực tìm hiểu bài toán, thực hiện thực hiện thuật toán sắp xếp dãy số nguyên bài toán trên máy tính, sửa lỗi chạy chương bằng thuật toán tráo đổi với các giá trị khác trình. nhau của n dưới đây. Qua đó, nhận xét thời gian chạy của chương trình. GV: Yêu cầu HS sửa lại một chỗ để có (chương trình SGK – t65) chương trình sắp xếp các phần tử theo thứ b) Khai báo thêm biến Dem và bổ xung vào tự không tăng. chương trình những câu lệnh cần thiết để HS: Chạy thử để kt kết quả. biến Dem tính số lần thực hiện tráo đổi GV: Để đáp ứng yêu cầu ở câu b, đưa ra trong thuật toán. Đưa kết quả ra màn hình. một số câu hỏi để gợi ý. HS: Trả lời các câu hỏi của GV và thực hiện theo yêu cầu ở câu b. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 50. Trường THPT Trần Nhật Duật Tiết 28 Tin học 11 Bài tập và thực hành 4 (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh HS: Tích cực tìm hiểu bài toán, thực hiện bài toán trên máy tính, sửa lỗi chạy chương trình. GV: Sửa lỗi cho HS trong quá trình gõ và chạy chương trình. Giải thích những thắc mắc về bài toán mà HS đưa ra. 11C3: 11C7: 11C4: Nội dung Bài 2: Hãy đọc và tìm hiểu những phân tích để viết chương trình giải bài toán: 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 i phần tử đầu tiên của A. Chương trình: SGK-t66. Để ý rằng ta có các hệ thức sau: B[1] = A[1] B[i] = B[i-1] + A[i]; Do đó, ta thay đoạn chương trình bởi hai lệnh sau: B[1] = A[1]; For i:= 2 to n do B[i]:= B[i-1]+A[i]; Với hai lệnh này máy chỉ phải thực hiện n-1 phép cộng, trong khi với đoạn chương trình trong SGK máy phải thực hiện n(n+1)/2 phép cộng. GV: Nhờ việc phân tích như trên ta tiết kiệm được một lượng tính toán đáng kể. IV. Củng cố: Tuy tốc độ tính toán của máy tính nhanh nhưng có giới hạn. Do đó, khi viết chương trình ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng tốt. V. Dặn dò: Nguyễn Huy Bình
  • 51. Trường THPT Trần Nhật Duật Tiết 29 Tin học 11 Kiểu xâu Ngày soạn:...../......; Ngày giảng:..../...... 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ột 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à thông dụng về xâu . - Cài đặt được một số chương trình đơn giản có sử dụng xâu . II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV : Để lưu trữ và xử lý Họ tên của một Một số khái niệm người, các kiểu dữ liệu đã học có đáp ứng - Xâu là một dãy kí tự trong bảng mã ASCII . được ? - Mỗi kí tự được gọi là một phần tử của xâu . HS : Đưa ra một số phương án . - Số lượng kí tự trong xâu được gọi là độ dài của xâu . - Xâu có độ dài bằng 0 gọi là xâu rỗng. GV : Phân tích các phương án của học - Tham chiếu tới phần tử trong xâu được sinh, từ đó đưa ra yêu cầu cần sử dụng một xác định thông qua chỉ số của phần tử kiểu mới : Kiểu xâu . trong xâu . - Chỉ số phần tử trong xâu thường được đánh số là 1 . - Trong ngôn ngữ Pacal, tham chiếu tới GV : Giới thiệu một số khái niệm và thao phần tử thường được viết : tác thường dùng khi làm việc với xâu ký tự <Tên biến xâu>[chỉ số] trong lập trình nói chung . Cách khai báo và xử lí xâu trong ngôn ngữ Pascal : GV : Đây là cách khai báo trong ngôn ngữ Pascal, trong các ngôn ngữ khác nhau có thể có cách khai báo khác nhau . Do đó khi viết chương trình bằng ngôn ngữ nào cần 1 Khai báo biến xâu : Pascal sử dụng từ khóa STRING để khai báo xâu . Độ dài tối đa của xâu được viết trong [ ] sau từ khóa STRING . Khai báo Nguyễn Huy Bình
  • 52. Trường THPT Trần Nhật Duật tìm hiểu rõ các đối tượng của ngôn ngữ đó . Tin học 11 như sau : Var <tên biến> : String[độ dài lớn nhất của xâu] ; Ví dụ : Var Ten : String[10] ; Ho_dem : String[50] ; Que : String ; Độ dài tối đa của xâu phụ thuộc vào ngôn ngữ lập trình, thường là 255 ký tự . Cách viết hằng xâu trong các ngôn ngữ khác nhau cũng có sự khác nhau . Xét ví dụ như sau : Có xâu kí tự : ‘ nGuyen vaN A ’ Chú ý : - Nếu không khai báo độ dài tối đa cho biến xâu kí tự thì độ dài ngầm định của xâu là 255 . - Độ dài lớn nhất của xâu là 255 ký tự . - Hằng xâu kí tự được đặt trong cặp nháy đơn ‘ ’ . 2 Các thao tác xử lí xâu - Với các xâu kí tự có các phép phép xâu và phép so sánh hai xâu kí tự . - Phép ghép xâu : Kí hiệu bằng dấu cộng + . Hỏi cần có các thao tác gì để chỉnh sửa xâu kí tự này ? (cần đưa xâu về dạng ‘Nguyen Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha Van A’) Noi’ HS : Đưa ra ý kiến của mình . Phép so sánh : <, <=, >, >=, = , <>, Pascal tự động so sánh lần lượt từ kí tự từ trái sang GV : Phân tích ý kiến và gợi ý để các em phải . nhận ra cần : - Xóa bớt một số dấu cách . Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’, - Chuyển chữ hoa về chữ thường và ‘ABC’ <’ABCD’ ngược lại . GV : Đưa ra một số câu hỏi : - Làm sao biết một ký tự là dấu cách ? - Làm sao để xóa đi một vài kí tự ? - Làm sao để thêm vào một xâu một vài kí tự ? Nguyễn Huy Bình
  • 53. Trường THPT Trần Nhật Duật Tin học 11 - Làm sao để có được chữ in hoa tương ứng với chữ thường. Một số thủ tục chuẩn dùng để xử lí xâu : - Làm sao có được chữ cái thường tương ứng với chữ hoa ? - Delete(St,vt,n) xóa n kí tự của xâu St - Làm sao biết xâu hiện có bao nhiêu bắt đầu từ vị trí vt . kí tự ? - Insert(S1,S1,vt) chèn sâu S1 vào S2 bắt đầu từ vị trí vt của S2 - Val(St,x,m) Đổi giá trị xâu St thành Từ đó đưa ra các thủ tục chuẩn và hàm số ghi giá trị vào biến X, nếu không chuẩn của Pascal thường dùng để xử lí đổi được thì vị trí gây lỗi ghi trong m, xâu . nếu đổi thành công thì m = 0 - Str(X,St) chuyển số X thành xâu kí Ứng với mỗi thủ tục hoặc hàm, giáo viên tự lưu trong St . lấy ví dụ trong một chương trình Pascal cụ thể để các em hiểu được ý nghĩa các thủ tục Một số hàm chuẩn : và hàm này . Trong môi trường soạn thảo của Pascal, giáo viên chỉ cần làm một chương trình đơn giản có sử dụng một trong các thủ tục hoặc hàm này để các em theo dõi . - Copy(St,vt,n) sao chép từ xâu St n kí tự từ vị trí vt . - Pos(S1,S2) tìm vị trí xuất hiện đầu tiên của S1 trong S2 . - Length(St) : cho độ dài xâu St . - Upcase(ch) : cho chữ cái viết hoa tương ứng với chữ thường trong ch . - CHR(X) : cho kí tự có mã X trong bảng mã ASCII . - Ord(ch) : cho mã của kí tự ch trong bảng mã . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 54. Trường THPT Trần Nhật Duật Tiết 30 Tin học 11 Kiểu xâu (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Giáo viên soạn sẵn các ví dụ này để tiện 3 Một số ví dụ : cho học sinh theo dõi trên màn hình cũng như việc chạy thử và không làm mất thời VD 1 : gian ngồi viết chương trình . Program vd1 ; Uses crt ; Với mỗi ví dụ, giáo viên đi sâu vào câu Var s1,s2 : String ; lệnh trực tiếp đáp ứng yêu cầu của ví dụ, Begin như vậy các em sẽ tiếp thu nhanh hơn . Clrscr ; Write('Nhap xau thu 1 : ') ; Readln(s1) ; Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu Write('Nhap xau thu 2 : ') ; dài hơn . Readln(s2) ; If length(s1) > Length(s2) then Write(s1) else Write(s2); Readln ; Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự End . đầu tiên của xâu S1 có trùng với ký tự cuối VD 2 : cùng của xâu S2 hay không ? Program vd2 ; Uses crt ; Var s1,s2 : String ; x : Byte ; Nguyễn Huy Bình
  • 55. Trường THPT Trần Nhật Duật Tin học 11 Begin Clrscr ; Write('Nhap xau thu 1 : '); Readln(s1) ; Write('Nhap xau thu 2 : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu End . đó theo thứ tự ngược lại của các ký tự trong xâu . VD 3 : Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; For i := k downto 1 do Write(a[i]) ; Readln ; End . Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu đó nhưng đã được bỏ tất cả các ký tự là dấu VD 4 : cách . Program vd4 ; Uses crt ; Var i,k : Byte ; a,b : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; b :='' ; For i := 1 to k do Nguyễn Huy Bình
  • 56. Trường THPT Trần Nhật Duật Tin học 11 if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End . VD 5 : Program Xulixau ; Uses crt ; Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu Var s1,s2 : String ; gồm các ký tự số của xâu đó . i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(s1) ; s2 := '' ; For i := 1 to length(s1) do If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ; Write(s2); Readln ; End . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 57. Trường THPT Trần Nhật Duật Tiết 31 Tin học 11 Bài tập và thực hành 5 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Đưa ra ví dụ hoặc yêu cầu HS cho ví dụ về xâu đối xứng và xâu không đối xứng. HS: Tích cực tìm hiểu bài toán, thực hiện Bài 1: Nhập vào từ bàn phím một xâu. Kiểm bài toán trên máy tính, sửa lỗi chạy chương tra xâu đó có phải là xâu đối xứng không. trình. a) Chạy thử chương trình sau: var x,i : byte; a,p: string; GV: Sửa lỗi cho HS trong quá trình gõ và begin chạy chương trình. Giải thích những thắc write(‘ Nhap vao xau:’); mắc về bài toán mà HS đưa ra. readln(a); x:=length(a); p:=’’; for i:=x downto 1 do p:=p+a[i]; if a=p then write(‘ Xau doi xung’) else write(‘Xau khong doi xung’); readln end. b) Hay viết lại chương trình trên, trong đó GV: Không cần thiết phải tạo một xâu mới không dùng biến xâu p. để so sánh hai xâu mà chỉ so sánh các cặp kí tự ở vị trí đối xứng nhau để kết luận xâu đó có đối xứng không IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 58. Trường THPT Trần Nhật Duật Tiết 32 Tin học 11 Bài tập và thực hành 5 (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Bài 2: Cho xâu s. Viết chương trình đếm số từ có trong xâu s này? Program Demtu; Var s:string; GV: Để giải quyết được bài toán này thì d, x, i:byte; trước hết ta phải cộng thêm một kí tự trống Begin vào đầu xâu s. Write(‘ Nhap xau:’);readln(s); s:= ‘ ‘+s; x:=length(s); GV: Khi đó điều kiện để xác định xem đâu for i:=1 to x do là một từ là gì? if (s[i]=’ ‘ ) and (s[i+1]<>’ ‘) then d:=d+1; write(‘ So tu co trong xau la:’,d); HS: Trả lời câu hỏi. readln end. GV: Kết luận và đưa ra hướng giải quyết bài toán. Khi đó để kiểm tra xem đâu là một từ thì ta phải xét điều kiện: xâu s tại vị trí thứ i là kí tự trống, đồng thời tại vị trí thứ i+1 phải là kí tự khác trống. HS: suy nghĩ và đưa ra phương hướng giải Sử dụng phương pháp chuẩn hóa xâu s. Từ quyết vấn đề này. đó có thể tìm ra số từ có trong xâu s này? IV. Củng cố: V. Dặn dò: Chuẩn bị trước bài tập trong SBT. Nguyễn Huy Bình
  • 59. Trường THPT Trần Nhật Duật Tiết 33 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết cơ bản nhất về kiểu dữ liệu có cấu trúc. 2. Kỹ năng: - Rèn luyện kĩ năng giải một bài toán với dữ liệu kiểu mảng và dữ liệu kiểu xâu. - Dần hình thành tư duy trong việc giải toán bằng ngôn ngữ TP với những kiểu dữ liệu có cấu trúc. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, SBT . 2. Học sinh: Vở BT, SBT III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Qua quá trình chuẩn bị bài tập trong SBT từ nhà, có ai có thắc mắc về bài tập nào không? HS: Đưa ra những vướng mắc cần giải đáp. GV: Giải đáp các thắc mắc của HS. Chữa bài tập trong SBT GV: Gọi một số HS lên chữa một số bài tập tiêu biểu (cả bài tập phần mảng và phần xâu). HS: Lên bảng chữa bài. HS khác nhận xét bài làm của bạn. GV: nhận xét và chỉnh sửa lại bài tập một cách hoàn chỉnh. IV. Củng cố: V. Dặn dò: chuẩn bị trước bài 13. Nguyễn Huy Bình
  • 60. Trường THPT Trần Nhật Duật Tiết 34 Tin học 11 Kiểu bản ghi Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết khái niệm kiểu bản ghi . - Biết cách khai báo bản ghi, truy cập trường của bản ghi . 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Xét ví dụ sau : Một số khái niệm Viết chương trình dùng để quản lí các - Kiểu bản ghi được dùng để mô tả cho thí sinh của một kỳ thi tuyển sinh . các đối tượng có cùng một số thuộc tính Chương trình của chúng ta cần quản lí mà các thuộc tính có thể có các kiểu dữ được : liệu khác nhau . + SBD của thí sinh, - Bản ghi thường được gọi là Record, mỗi + Họ tên thí sinh, Record sẽ lưu trữ dữ liệu về một đối + Giới tính, tượng cần quản lí . + Điểm của các môn … - Mỗi thuộc tính của đối tượng tương ứng với một trường của bản ghi . Các trường GV : Đưa ra một số câu hỏi sau : khác nhau có thể có dữ liệu khác nhau . - Làm thế nào để quản lý toàn bộ - Các ngôn ngữ lập trình thường cho cách thông tin trên của học sinh ? để xác định : - Mỗi thông tin trên có kiểu dữ liệu là + Tên kiểu bản ghi . gì ? + Tên các trường . + Kiểu dữ liệu của trường . HS : Có thể quản lý mỗi dữ kiện trên là + Cách khai báo biến . một mảng một chiều + Cách tham chiếu đến trường . Cách khai báo và sử dụng kiểu bản ghi Ngôn ngữ lập trình bậc cao có cách tốt hơn trong ngôn ngữ Pascal để quản lý dữ liệu trên -> Bản ghi . 1. Khai báo GV lấy một bảng điểm của học sinh rồi chỉ rõ : Mỗi hàng ta gọi là một bản ghi, mỗi cột Để khai báo biến bản ghi, thường khai báo là một trường . một kiểu bản ghi sau đó khai báo biến bản Nguyễn Huy Bình