You are on page 1of 63

Giáo án tin học11

CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH


VÀ NGÔN NGỮ LẬP TRÌNH
Ngày soạn: 21/8/2007
Tiết 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I. Mục đích, yêu cầu.
Hiểu được khả năng của ng2 lập trình bậc cao, phân biệt được với ng2 máy và hợp ngữ.
Hiểu ý nghĩa và nhiệm vụ của chtrình dịch. Phân biệt được thông dịch và biên dịch.
Biết các thành phần cơ bản của ng2 lập trình: bảng chữ cái, cú pháp, ngữ nghĩa.
Hiểu và phân biệt được các thành phần này
II. Lên lớp
1. Ổn định tình hình lớp.
Giới thiệu làm quen với HS của lớp.
Tạo tâm lý và quan hệ tốt với HS trước khi bắt đầu tiết học đầu tiên
2. Bài mới
T/g Hđ của GV Hđ của HS Nd ghi bảng
2’ ĐVĐ: Về lập trình các em chỉ mới được
tìm hiểu qua bài các bước để giải bài toán
trên máy tính chta chưa có khái niệm cụ
thể. Còn ngôn ngữ lập trình chta cũng đã
tìm hiểu tất cả ở lớp 10.
H: Vậy có những loại ngôn ngữ lập trình KHÁI NIỆM LẬP TRÌNH
nào? Tl:Ng2 máy, hợp ngữ, ng2 bậc VÀ NGÔN NGỮ LẬP
2
H: Hãy phân biệt ng bậc cao với các loại cao. TRÌNH
ng2 khác? Tl: (1-2 hs)
Phân biệt ng2 bậc cao: chtrình viết bằng
ng2 bậc cao ko phụ thuộc vào loại máy và
phải dùng chtrình dịch để chuyển về ng2
máy.
H: Tóm lại ng2 lập trình dùng để làm gì?
Dẫn dắt: Vậy lập trình là gì? Chta tìm hiểu Tl: Lập trình
k/n này.
Ghi bảng
Giải thích thêm về câu lệnh:
- Cl để diễn tả các thao tác trong các bước Ghi bài
của t/toán. 1. K/n lập trình
- Cl đơn thực hiện bước có 1 thao tác (Sgk)
- Cl ghép thực hiện bước gồm dãy các thao
tác. Nghe giảng và tự ghi chép Ý nghĩa: tạo ra các chtrình
Dẫn dắt: Chtrình viết bằng ng2 máy sẽ thực hiện giải được bài toán trên MT.
được ngay, còn chtrình viết bằng ng2 bậc cao thì
phải chuyển đổi thành chtrình trên ng2 máy mới có
thể thực hiện được. Công cụ thực hiện chuyển đổi
đó gọi là chtrình dịch.
H: Input, Output của chtrình dịch là gì?
( Có thể cho điểm miệng Hs trả lời đúng )
Tl: In: chtrình viết bằng ng2
H: nhiệm vụ quan trọng nhất của chtrình bậc cao
dịch là gì? Out: chtrình trên ng2 máy. 2. Chtrình dịch
Tl: (2-3Hs) phát hiện lỗi cú
* Phân biệt Thông dịch và Biên dịch pháp của chtrình nguồn
Phân tích Ví dụ Sgk a. K/niệm: Sgk
Tìm hiểu ví dụ Sgk

Giáo viên: Bùi Văn Tú 1


Giáo án tin học11

b. Phân loại:
Có 2 loại
- Thông dịch: lần lượt dịch
và thực hiện từng câu lệnh.
ĐVĐ sang bài mới: Để có thể sử dụng một - Biên dịch: dịch toàn bộ
ng2 lập trình nào đó thì trước hết chta phải chtrình rồi mới thực hiện và
biết các thành phần cơ bản có trong nó là được lưu trữ để sử dụng lại
gì? lần sau.

Có ba thành phần cơ bản của ng2 lập trình: CÁC THÀNH PHẦN CỦA
bảng chữ cái, cú pháp, ngữ nghĩa. NGÔN NGỮ LẬP TRÌNH
Trước hết chta tìm hiểu bảng chữ cái. Treo
bảng chữ cái 1. Các thành phần cơ bản
* So sánh bảng chữ cái của ng2 lập trình với
bảng chữ cái của ng2 tự nhiên
Về cú pháp: - Bảng chữ cái
Về ngữ nghĩa:
Trong từng ngữ cảnh khác nhau, ngữ nghĩa
của 1 tổ hợp kí tự là khác nhau
Ví dụ: Sgk Cách1: - Cú pháp: bộ qui tắc để viết
* Tóm lại If a2+b2>1 then chtrình
+ Phân biệt giữa cú pháp và ngữ nghĩa if a>b then s=a+b Else s
+ Lỗi cú pháp =1;
+ Lỗi ngữ nghĩa (* a2+b2<1 thì s =? *)
 a + b neu a 2 + b 2 > 1 va a > b - Ngữ nghĩa
Ví dụ: S =  Cách2:
 1 nguoc lai If a2+b2>1 then
Xem thử 3 cách mô tả cách nào đúng. begin
if a>b then s=a+b
end
Else s =1;
(* a<b thì s =? *)
H: Lỗi ngữ nghĩa thường được phát hiện
khi nào? Cách 3:
If a2+b2>1 and a>b then
s=a+b
Else s=1
Tl: Khi thực hiện kiểm thử
chtrình.

3. Củng cố:
Ba lớp của ng2 lập trình và các mức của nó.
Vai trò của chtrình dịch
Khái niệm biên dịch và thông dịch
Lỗi cú pháp, lỗi ngữ nghĩa
4. Về nhà:
Đọc Bài đọc thêm 1 để tìm hiểu sơ về 1 số ng2 lập trình
Soạn trước phần còn lại của bài 2. Trong đó chú ý các khái niệm mới: tên, hằng, biến. Cách sử dụng nó
trong lập trình

Giáo viên: Bùi Văn Tú 2


Giáo án tin học11

Ngày soạn: 24/8/2007


Tiết 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I. MỤC TIÊU
1. Kiến thức
Biết được một số khái niệm như: tên, tên chuẩn, tên dành riêng, tên do người dùng đặt, hằng biến chú thích
2. Kĩ năng
Phân biệt được tên chuẩn với tên dành riêng và tên tự đặt
Nhớ các qui định về tên hằng biến
Biết đặt tên đúng, nhận biết được tên sai qui định
Sử dụng đúng chú thích
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên
Bảng chứa các tên đúng –sai để Hs chọn, bảng con, bút dạ.
2. Học sinh
Sách giáo khoa
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
H1: Hãy phân biệt chtrình thông dịch và biên dịch? Hs1: trình bày trên bảng.
H2: NNLT có những thành phần nào? Lỗi cú pháp và lỗi
ngữ nghĩa được phát hiện bằng gì? Hs2: trả lời trước lớp
Hs3: nhận xét câu trả lời của Hs1
Nhận xét, đánh giá cho điểm 3 Hs
2. Hoạt động 2: (18 phút) Tìm hiểu khái niệm tên trong thành phần của ngôn ngữ lập trình.
a. Mục tiêu:
Hs biết và phân biệt được 1 số loại tên: tên dành riêng, tên chuẩn, tên tự đặt.
b. Nội dung:
Mọi đối tượng trong chtrình đếu phải được đặt tên theo một qui tắc của NNLT và từng chtrình dịch cụ thể.
Tên dành riêng (từ khóa): là những tên được NNLT qui định dùng với ý nghĩa xác định, người lập trình ko
được dùng với ý nghĩa khác
Tên chuẩn: là những tên được NNLT qui định dùng với ý nghĩa nào đó, người lập trình có thể định nghĩa lại
để dùng với ý nghĩa khác.
Tên do người dùng đặt: là tên được dùng theo ý nghĩa riêng của người lập trình, phải được khai báo trước
khi sử dụng và không được trùng với từ khóa.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
ĐVĐ: Mọi đối tượng trong chtrình đếu phải 1. Khái niệm Tên
được đặt tên (Sgk)
1. N/cứu Sgk nêu qui tắc đặt tên trong Turbo 1. N/cứu sgk và trả lời:
Pascal? + Gồm chữ cái, chữ số, dấu gạch
dưới
+ Không quá 127 kí tự, không
bắt đầu bằng kí tự số.
2. Quan sát và trả lời
2. Chọn các tên đúng trong bảng sau: A Ví dụ:
A _24 A_BC
A_BC A BC _24
5ad A5d A5d
C#BC
Khẳng định lại các tên đúng
3. Y/cầu Hs n/cứu Sgk để biết các khái niệm 3. N/cứu sgk và trả lời
về tên dành riêng, tên chuẩn, tên tự đặt. + Tên dành riêng
Chia lớp thành 3 nhóm, mỗi nhóm tìm hiểu Thảo luận theo nhóm và cử + Tên chuẩn

Giáo viên: Bùi Văn Tú 3


Giáo án tin học11

và trình bày về một loại tên và cho ví dụ. người trình bày. + Tên do người dùng đặt
+ Tên dành riêng
Treo tranh chứa 1 số tên trong NNLT Pascal + Tên chuẩn
đã được chuẩn bị sẵn: + Tên do người dùng đặt
Type Const Integer Dem
Function Byte Inc
Mang string Quan sát và ghi lên bảng con. Ví dụ:
HS xác định tên theo từng loại tên? + Từ khóa: Type, Const,
function
Treo bảng con của 3 nhóm cho nhóm khác + Tên chuẩn: Integer, byte,
nhận xét, bổ sung string, inc
+ Tên tự đặt: dem, mang
Tổng kết vấn đề này Quan sát kết quả cnhóm khác,
nhận xét và bổ sung
3. Hoạt động 3: (15 phút) Tìm hiểu hằng, biến, chú thích
a. Mục tiêu: Hs biết được khái niệm về hằng, biến và chú thích. Phân biệt được hằng và biến. Thấy được ý nghĩa của
chú thích.
b. Nội dung:
* Hằng là đại lượng có giá trị không đổi trong quá trình thực hiện chtrình. Có 3 loại hằng
+ Hằng số học: số nguyên, só thực, có dấu và không dấu
+ Hằng xâu: chuổi kí tự bất kì, được đặt trong dấu nháy đơn
+ Hằng logic: có 2 giá trị True hoặc False
* Biến: là đại lượng đặt tên để lưu giá trị và giá trị này có thể thay đổi trong quá trình thực hiện chtrình,
biến dùng trong chtrình đều phải được khai báo.
* Chú thích : giải thích cho chtrình rõ ràng, dể hiểu. Được đặt trong cặp dấu { }
hoặc (* *)
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu Hs cho 1 số ví dụ về hằng số, hằng 1. Suy nghĩ và trả lời 2. Hằng và biến
xâu, hằng logic + Hằng số: 55 73.05 a. Hằng
+ Hằng xâu: ‘211’ ‘AB’ + Hằng số
+ Hằng logic: False True + Hằng xâu
Trình bày k/niệm về các loại hằng. Xem k/niệm hằng ở Sgk + Hằng logic
2. Ghi bảng: Xác định hằng số và hằng xâu: 2. Quan sát và trả lời
56 -3785 ‘485’ + Hằng số: 56; -3785; 1.5E+2
‘THPT’ 1.5E+2 45,7 + Hằng xâu: ‘485’ ‘THPT’

H: hằng kí tự nháy đơn và hằng kí tự nháy


kép được biểu diễn như thế nào? Tl: nháy đơn: ’’’’
3. Y/cầu Hs n/cứu Sgk và cho biết k/niệm Nháy kép: ‘””’
Biến b. Biến
Cho ví dụ một số biến 3. N/cứu Sgk và trả lời K/niệm: (Sgk)

4. Y/cầu Hs n/cứu Sgk và cho biết chức năng Ví dụ: Tong, dtoan, …
của chú thích trong chtrình.
4. Cá nhân n/cứu Sgk vá trả lời
Chú thích được đặt giữa cặp c. Chú thích
Cho 1 số ví dụ khác về chú thích dấu { } và (* *) dùng để giải Ví dụ:
thích chtrình rõ ràng dễ hiểu. {thu tuc nhap du lieu}
H: Tên biến và tên hằng thuộc loại tên nào?
Tl: Tên do người lập trình đặt.
H: Các lệnh được viết trong cặp { } có được
TP thực hiện ko? Vì sao? Tl: Không, vì đó là dòng chú
thích.
IV. ĐÁNH GIÁ CUỐI BÀI

Giáo viên: Bùi Văn Tú 4


Giáo án tin học11

1. Nội dung đã học.


Thành phần của NNLT: bảng chữ cái, cú pháp, ngữ nghĩa
Khái niệm: tên, từ khóa, tên chuẩn, tên tự đặt, biến, hằng, …
2. Câu hỏi, bài tập về nhà.
Làm bài tập 3, 4, 5 trang 13 Sgk
Xem bài đc thêm: Ngôn ngữ Pascal
Xem trước bài: Cấu trúc chtrình Sgk
Xem nội dung phụ lục B, trang 128 Sgk: Một số tên dành riêng

Ngày soạn: 27/8/2007


Tiết 3: BÀI TẬP
I. MỤC TIÊU
1. Kiến thức
- Biết có 3 lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ
bậc cao.
- Biết vai trò của chương trình dịch.
- Biết khái niệm biên dịch và thông dịch.
- Biết các thành phần cơ bản của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa.
- Biết các thành phần cơ sở của Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và biến.
2. Kĩ năng: Biết viết hằng và tên đúng trong một ngôn ngữ lập trình cụ thể.
3. Về tư duy và thái độ:
Nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học
nhằm giải các bài toán thực tiễn ngày càng phức tạp.
Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy tính điện tử.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: chuẩn bị nội dung để giải bài tập cuối chương và một số câu hỏi trắc nghiệm của chương.
2. Học sinh: Ôn lại kiến thức của chương, chuẩn bị bài tập cuối chương.
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
T/g Hđ của GV Hđ của HS
1. Phân biệt giữa Hằng và Biến? Cho một số biến đúng? HS1: trả lời
2. Đâu là từ khóa trong các tên sau đây?
Integer Begin Do int chan tong Hs2: trả lời (Begin và Do)
- Nhận xét, đánh giá cho điểm
2. Hoạt động 2:
T/g Hđ của GV Hđ của HS Nd ghi bảng
ĐVĐ: Trước khi giải bài tập - Đọc yêu cầu của câu hỏi và Câu 1:Ngôn ngữ bậc cao
trong SGK, các em tự ôn lại một bài tập cuối chương trang 13 + gần với ngôn ngữ tự nhiên hơn,
số kiến thức mà chúng ta đã học SGK. + không phụ thuộc vào phần cứng
ở các bài trước dựa trên yêu cầu - Suy nghĩ để đưa ra phương máy tính và một chương trình có thể
của câu hỏi trang 13 SGK. án trả lời. thực hiện trên nhiều máy tính khác
nhau;
Đặt câu hỏi số 1: Tại sao người - Suy nghĩ, trả lời câu hỏi. + dễ hiểu, dễ hiệu chỉnh và dễ nâng
ta phải xây dựng các ngôn ngữ cấp;
lập trình bậc cao? + cho phép làm việc với nhiều kiểu
- Nhận xét, đánh giá và bổ sung dữ liệu và cách tổ chức dữ liệu đa
hướng dẫn cho học sinh trả lời dạng, thuận tiện cho mô tả thuộc toán.
câu hỏi số 1: Câu 2:
Trình biên dịch: duyệt, kiểm tra, phát
Đặt câu hỏi 2: Biên dịch và hiện lỗi, xác định chương trình nguồn
thông dịch khác nhau như thế có dịch được không? dịch toàn bộ
nào? - Suy nghĩ, trả lời câu hỏi. chương trình nguồn thành một
chương trình đích có thể thực hiện
Phân tích câu trả lời của học sinh. trên máy và có thể lưu trữ lại để sử

Giáo viên: Bùi Văn Tú 5


Giáo án tin học11

dụng về sau khi cần thiết.


Trình thông dịch lần lượt dịch từng
câu lệnh ra ngôn ngữ máy rồi thực
hiện ngay câu lệnh vừa dịch được
hoặc báo lỗi nếu không dịch được
3. Hoạt động 3:
T/g Hđ của GV Hđ của HS Nd ghi bảng
Đặt câu hỏi 3: Hãy cho biết các Câu 3: Tên dành riêng không được
điểm khác nhau giữa tên dành dùng khác với ý nghĩa đã xác định,
riêng và tên chuẩn? Viết 3 tên tên chuẩn có thể dùng với ý nghĩa
đúng quy tắctrong Pascal? khác.
- Gọi hs trả lời và cho ví dụ Suy nghĩ, trả lời, giải thích VD:
- Phân tích câu trả lời của học Tên dành riêng trong Pascal:
sinh. program, uses, const, type, var, begin,
Hỏi: Nêu lại quy tắc đặt tên trong Trả lời end.
Pascal? Tên chuẩn: trong Pascal abs, integer.
- Gọi 3 học sinh lên bảng cho ví
dụ về tên do người lập trình đặt. Lên bảng
*Nhận xét, sửa chữa, góp ý.
Chú ý, ghi nhớ
4. Hoạt động 4:
T/g Hđ của GV Hđ của HS Nd ghi bảng
Đặt câu hỏi 4: Hãy cho biết Trả lời giải thích từng câu một Câu 4:
những biểu diễn nào dưới đây 1 150.0 hằng số
không phải là biểu diễn hằng 2 –22 hằng số
trong Pascal và chỉ rõ trong từng 3 6,23 K
trường hợp: 4 ‘43’ hằng xâu
- Nhận xét, giải thích 5 A20 K
6 1.06E-15 hằng số
7 4+6 b/thức hằng
8 ‘C K
9 ‘TRUE’ hằng xâu

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)


Câu hỏi, bài tập về nhà
Xem trước Chương 3 gồm các bài: Cấu trúc chương trình và Một số kiểu dữ liệu chuẩn. Xem trước nội
dung phụ lục B phần 3: Một số kiểu dữ liệu chuẩn. (trang 129 Sgk)

Bài tập kiểm tra trắc nghiệm cuối chương: (15 phút)
Câu 1:Chương trình viết bằng hợp ngữ không có đặc điểm nào trong các đặc điểm sau:
A. Ngắn gọn hơn so với chương trình được viết bằng ngôn ngữ bậc cao.
B. Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng ngôn ngữ bậc cao.
C. Diễn đạt gần với ngôn ngữ tự nhiên.
D. Sử dụng trọn vẹn các khả năng của máy tính
Câu 2: Chương trình viết bằng ngôn ngữ bậc cao không có đặc điểm nào trong các đặc điểm sau:
A. Không phụ thuộc vào loại máy, chương trình có thể thực hiện trên nhiều loại máy.
B. Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và nâng cấp.
C. Kiểu dữ liệu cà cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuật toán.
D. Máy tính có thể hiểu và thực hiện trực tiếp chương trình này.
Câu 3: Chương trình dịch không có khả năng nào trong các khả năng sau?
A. Phát hiện được lỗi ngữ nghĩa. C. Phát hiện được lỗi cú pháp.
B. Thông báo lỗi cú pháp. D. Tạo được chương trình dịch.
Câu 4: Nhận biết đúng/sai trong Pascal?

Giáo viên: Bùi Văn Tú 6


Giáo án tin học11

STT Tên biến Đúng(Đ)/Sai(S)


1 1hoten S
2 Hoten Đ
3 Ho ten S
4 Ho_ten Đ
5 Ho-ten1 S
6 Hoten1 Đ

Câu 5: Ghép mỗi câu ở cột 1 với một câu thích hợp ở cột 2 trong bảng sau:
Cột 1 Cột 2
(1) Biên dịch (A) là các đại lượng có giá trị không đổi trong quá trình thực hiện chương
trình.
(2) Thông dịch (B) dịch và thực hiện từng câu lệnh, nếu còn câu lệnh tiếp theo thì quá trình
này còn tiếp tục.
(3) Chương trình viết trên ngôn ngữ (C) là những đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể
lập trình bậc cao. được thay đổi trong quá trình thực hiện chương trình.
(4) Biến (d) 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ữ để sử dụng lại khi cần thiết.
(5) Hằng (E) phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể
thực hiện được.

CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN


Ngày soạn: 29/8/2007
Tiết 4: CẤU TRÚC CHƯƠNG TRÌNH
I. MỤC TIÊU
1. Kiến thức
Hiểu chtrình là sự mô tả của thuật toán bằng một NNLT
Biết cấu trúc của một chtrì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 thành phần của một chtrình đơn giản
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên
Máy tính, máy chiếu projector .
Một số chtrình mẫu viết sẵn.
2. Học sinh
Sách giáo khoa
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
H1: Phân biệt tên chuẩn và từ khóa? Tên hằng, tên biến Hs1: trả lời trước lớp
thuộc loại tên nào?
H2: Cho một số tên biến, hằng đúng qui cách? Hs2: trình bày trên bảng
Hs3: nhận xét phần trả lời của Hs2
Nhận xét, đánh giá cho điểm 3 hs
2. Hoạt động 2: (5phút) Tìm hiểu cấu trúc chung của chtrình
a. Mục tiêu: Hs biết được chtrình có 2 phần.
b. Nội dung: Cấu trúc chtrình có 2 phần: phần khai báo, phần thân.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Câu hỏi gợi ý: Một bài tập làm văn 1. Suy nghĩ và trả lời.

Giáo viên: Bùi Văn Tú 7


Giáo án tin học11

thường viết có mấy phần? Các phần có thứ - Có ba phần


tự không? Tại sao phải chia ra như vậy? - Có thứ tự: mở bài, thân bài, kết
luận.
- Dễ viết, dễ đọc và dễ hiểu nội CẤU TRÚC CHƯƠNG
2. Y/cầu Hs n/cứu Sgk và trả lời các câu dung . TRÌNH
hỏi sau: 2. N/cứu sgk, thảo luận và trả
- Một chtrình có cấu trúc mấy phần? lời: 1. Cấu trúc chung
Có 2 phần: Có 2 phần:
[<phần khai báo>] [<phần khai báo>]
3. Chiếu lên bảng chtrình: <phần thân chtrình> <phần thân chtrình>
Program vidu;
Begin 3. Quan sát và trả lời
Write(‘ chao cac ban’);
Readln;
End. - Phần bôi đen là phần thân. Còn
H: Đâu là phần khai báo và phần thân lại là phần khai báo.
chtrình?
Dẫn dắt chuyển sang Hđ 3: Chtrình trên chỉ
là chtrình đơn giản. Để có thể nhận biết các
thành phần trong chtrình bất kỳ, ta cần tìm
hiểu nội dung của từng thành phần.
3. Hoạt động 3: (15phút) Tìm hiểu các thành phần của chtrình.
a. Mục tiêu: Hs biết được nội dung của các thành phần trong chtrình
b. Nội dung:
Phần khai báo: khai báo tên chtrình, khai báo các thư viện, khai báo hằng, khai báo biến, khai báo chtrình
con, ...
Phần thân: bao gồm dãy lệnhđược đặt trong cặp dấu hiệu mở đầu và kết thúc
Begin
Các câu lệnh;
End.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu Hs n/cứu Sgk và trả lời câu hỏi: 1. N/cứu sgk, thảo luận và trả lời: 2. Các thành phần của chương
- Trong phần khai báo có những khai báo - Khai báo tên chtrình trình
nào? - Khai báo thư viện CTC a. Phần khai báo
- Khai báo hằng Program tên_chtrình;
- Khai báo biến
Uses tên_thư_viện;
Dẫn dắt: Cách khai báo các đối tượng này - Khai báo CTC
trong chtrình như thế nào? Const tên_hằng = giá_trị;
2. Y/cầu Hs tiếp tục n/cứu Sgk và lấy ví dụ
Var tên_biến: kiểu_dữ_liệu;
cho từng loại khai báo. 2. N/cứu sgk, thảo luận và cho ví
dụ:
- Khai báo tên chtrình
Program tim_uscln;
- Khai báo thư viện CTC
Uses crt;
- Khai báo hằng
Const max = 1000;
* Cách khai báo biến sẽ được tìm hiểu Pi = 3.14;
riêng trong tiết sau. - Khai báo biến
* Khai báo và sử dụng CTC được trình bày Var a, d, c: integer;
ở chươngVI. Kt:char;
3. Y/cầu Hs cho biết cấu trúc của phần thân * Ghi nhớ các ví dụ.
chtrình.
3. Trả lời

Giáo viên: Bùi Văn Tú 8


Giáo án tin học11

Begin
Dãy các câu lệnh; b. Phần thân
End.

4. Hoạt động 4: (15 phút) Xét một vài ví dụ về những chtrình đơn giản
a. Mục tiêu: Hs nhận biết được từng phần của một chtrình đơn giản.
b. Nội dung: Một vài chtrình đơn giản.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Chiếu lên bảng một chtrình đơn giản. 1. Quan sát và trả lời
Program vidu;
Uses crt;
Var x, y: byte; z:word;
Begin
z:= x+y;
writeln(z);
readln;
End. - Phần khai báo (gồm 3 dòng
H1: Phần khai báo của chtrình? đầu): khai báo tên CT, khai báo
thư viện, khai báo biến.
- Còn lại là phần thân.
+ lệnh gán (: =)
H2: Phần thân của chtrình, + lệnh đưa thông tin ra màn
+ lệnh z:=x+y có ý nghĩa gì? hình.
+ lệnh writeln có chức năng gì? 2. Suy nghĩ, thảo luận và trả lời.
Dòng khai báo tên
2. Có thể bỏ bớt các phần nào trong chtrình Dòng khai báo thư viện.
trên, nhưng kết quả chtrình không thay đổi? 3. Thảo luận và trả lời
Trình bày trên bìa trắng
3. Chia lớp thành 4 nhóm
Y/cầu:
+ 2 nhóm lấy một ví dụ về chtrình Pascal
chỉ có phần thân.
+ 2 nhóm còn lại chtrình không có phần
khai báo biến
* Đính bìa các nhóm lên bảng, cho các
nhóm nhận xét và đánh giá chéo.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
Một chtrình gồm có 2 phần: phần khai báo và phần thân.
2. Câu hỏi, bài tập về nhà
Xem trước bài: Một số kiểu dữ liệu chuẩn. Khai báo biến. (trang 21-23 sgk)
Xem trước nội dung phụ lục B phần 3: Một số kiểu dữ liệu chuẩn. (trang 129 Sgk)

Ngày soạn: 31/8/2007


Tiết 5 MỘT SỐ KIỂU DỮ LIỆU CHUẨN
KHAI BÁO BIẾN
I. MỤC TIÊU
1. Kiến thức
Biết một số kiểu dữ liệu chuẩn: nguyên, thực, kí tự, logic.

Giáo viên: Bùi Văn Tú 9


Giáo án tin học11

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 khai báo biến đúng.
3. Tư duy – thái độ:
Tư duy logic.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Máy tính, máy chiếu projector, một số ví dụ minh hoạ.
Bảng treo chứa một số khai báo biến cho Hs chọn Đúng - Sai
2. Học sinh: SGK
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
H1: Nêu cấu trúc chung của một chương trình? Hs1: trả lời trước lớp
H2: Nêu cấu trúc của các phần khai báo: tên chương
trình, hằng, thư viện? Hs2: trình bày trên bảng
Nhận xét, đánh giá cho điểm 3 hs Hs3: nhận xét phần trả lời của Hs2
2. Hoạt động 2: (3 phút)Đặt vấn đề
Hđ của GV Hđ của HS Nd ghi bảng
Trong toán học để thực hiện được tính toán
cần phải có các tập số. Đó là các tập số nào ? Tl: Tập hợp số tự nhiên, nguyên,
Trong lập trình Pascal cũng có các tập hợp, hữu tỉ, thực.
mỗi tập hợp có 1 giới hạn nhất định. Đọc sách.
3. Hoạt động 3: (20 phút)Một số kiểu dữ liệu chuẩn.
a. Mục tiêu: Biết được tên và giới hạn biểu diễn của một số kiểu dữ liệu chuẩn.
b. Nội dung: Kiểu số nguyên: Byte, Integer, Word, Longint
Kiểu số thực: Real, Extended
Kiểu kí tự: là kí tự thuộc bảng mã ASCII (char)
Kiểu logic: là tập hợp gồm 2 giá trị True và False, là kết quả của phép so sánh.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Kiểu dữ liệu chuẩn là một tập hữu hạn các 1. Chú ý, lắng nghe
giá trị, mỗi kiểu dữ liệu cần một dung lượng - Liên tưởng các tập số trong
bộ nhớ cần thiết đẻ lưu trữ và xác định các toán học với một kiểu dữ liệu 1. Kiểu dữ liệu chuẩn
phép toán có thể tác động lên dữ liệu. trong Pascal.
2. Y/cầu Hs n/cứu Sgk trả lời các câu hỏi sau:
H1: Có bao nhiêu dữ liệu chuẩn trong ngôn 2. N/cứu Sgk và trả lời
ngữ Pascal ?
H2: Trong ngôn ngữ Pascal, có những kiểu Tl1: Có 4 kiểu: nguyên, thực, kí
nguyên nào thường dùng, phạm vi biểu diễn tự, lôgic.
của mỗi loại? Tl2: Có 4 loại: byte, integer,
H3: Trong ngôn ngữ Pascal, có những kiểu word, longint. Sgk
thực nào thường dùng, phạm vi biểu diễn của
mỗi loại? Tl3: Có 2 loại: Real, Extended.
H4: Trong ngôn ngữ Pascal, có bao nhiêu
kiểu kí tự? Tl4: Có 1 loại: char
H5: Trong ngôn ngữ Pascal, có bao nhiêu
kiểu logic, gồm các giá trị nào? Tl5: Có 1 loại: Boolean gồm 2 Sgk
giá trị: True và False
Treo bảng Quan sát
3. Giải thích một số vấn đề cho Hs 3. Chú ý lắng nghe và ghi nhớ.
+ Vì sao phạm vi biểu diễn của các loại số
nguyên là khác nhau?
+ Miền giá trị của các loại kiểu thực, số chữ

Giáo viên: Bùi Văn Tú 10


Giáo án tin học11

số có nghĩa? 4. Suy nghĩ và trả lời - Bảng tổng hợp giới hạn biểu
4. Ứng dụng: Muốn tính toán các giá trị: 5, 8, Kiểu thực (Real) diễn một số kiểu dữ liệu
9.05 ta phải sử dụng kiểu dữ liệu nào? thường dùng

4. Hoạt động 4: (10 phút) Tìm hiểu cách khai báo biến
a. Mục tiêu:
- Hs biết được rằng mọi biến trong chtrình đều phải được khai báo tên và kiểu dữ liệu.
- Hs biết được cấu trúc chung của khai báo biến trong NNLT Pascal, khai báo được biến khi lập trình.
b. Nội dung: Cấu trúc chung của khai báo biến trong lập trình bằng Pascal:
Var tên_biến_1: kiểu_dữ_liệu_1;
tên_biến_2: kiểu_dữ_liệu_2;
...................
tên_biến_N: kiểu_dữ_liệu_N;
biếnA, biếnB, ...., biến F: kiểu_dữ_liệu;
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Yêu cầu học sinh nghiên cứu sách GK và 1. Đọc sách.
cho biết vì sao phải khai báo biến ? Mọi biến dùng trong chtrình đều
phải được khai báo tên biến và 2. Khai báo biến
kiểu dữ liệu của biến. Tên biến
dùng để xác lập quan hệ giữa
biến với địa chỉ bộ nhớ nơi lưu
giữ giá trị của biến.

Cấu trúc chung của khai báo biến bằng Var <danh sách biến>: <kiểu dữ
Pascal: liệu>;

Cho ví dụ: Cần một biến kiểu nguyên, và một Var a: integer;
biến kiểu logic. B: boolean;

2. Treo bảng có chứa một số khai báo và yêu 2.Quan sát và chọn khai báo
cầu Hs chọn khai báo đúng trong Pascal? đúng Chọn khai báo đúng
Var x, y, z: word; Var x, y, z: word;
I: byte; n m: real;
X: longint;
3. Treo bảng có chứa một số khai báo trong I: byte;
Pascal. a: inte gr;
Hỏi: Có tất cả bao nhiêu biến, bộ nhớ phải true: boolean;
cấp phát là bao nhiêu?
- Có 5 biến
- Tổng bộ nhớ cần cấp phát: x Var x, y: word;
(2byte), y (2byte), n(6byte), n : real;
i(1byte), c(1byte) i: byte;
2+2+6+1+1=12byte c: char;

IV. ĐÁNH GIÁ CUỐI BÀI (5 phút)


1. Nội dung đã học
Các kiểu dữ liệu chuẩn: nguyên, thực, kí tự, lôgic
Cách khai báo biến
2. Câu hỏi, bài tập về nhà
Làm bài tập 1,2,3,4,5 sgk trang 35
Xem trước bài: Phép toán, biểu thức, lệnh gán. sgk trang 24

Giáo viên: Bùi Văn Tú 11


Giáo án tin học11

Ngày soạn: 1/9/2007


Tiết 6 PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I. MỤC TIÊU
1. Kiến thức
Biết được khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ.
Hiểu lệnh gán.
Biết được một số hàm thông dụng trong Pascal
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. ĐỒ DÙNG DẠY HỌC
1. Giáo viên
Tranh chứa bảng các hàm số học, bảng chân trị.
Máy tính, Projector.
2. Học sinh Sgk
3. Tư duy và thái độ :
Phát triển tư duy lôgic, linh hoạt, có tính sáng tạo.
Biết thể hiện về tính cẩn thận chính xác trong tính toán cũng như lập luận.
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
- Viết khai báo biến của bài toán: 2Hs lên bảng làm việc độc lập.
Cho 2 số nguyên N, M. Tính giá trị của biểu thức p= Đ/a:
(m+n)/(m*n). Var N, M: Integer;
Ghi đề bài và gọi tên 2 hs P:real;
- Hỏi thêm: Bộ nhớ cần cấp phát cho các biến đó là bao
nhiêu? Đ/a: 10Byte
Nhận xét, đánh giá cho điểm.
2. Hoạt động 2: (10 phút)Tìm hiểu một số phép toán
a. Mục tiêu: HS biết được tên và ký hiệu các phép toán, biết cách sử dụng các phép toán đối với mỗi kiểu dữ liệu.
b. Nội dung:
+ Phép toán số học: + , - , *, / , DIV, MOD.
+ Phép toán quan hệ: <, <=, > , >=, =, < > , giá trị logic (true hoặc false)
+ Phép toán lôgic: NOT , OR , AND.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. ĐVĐ: Để mô tả các thao tác trong thuật 1.Chú ý lắng nghe
toán, mỗi NNLT đều xác định và sử dụng
một sô kháiniệm cơ bản: phép toán, biểu
thức, gán giá trị.
2. Hãy kể các phép toán đã học ở toán học? 2. Suy nghĩ và trả lời
- Phép: cộng, trừ, nhân, chia, lấy
dư, so sánh, chia lấy nguyên. 1. Phép toán trong Pascal
- Trong NNLT Pascal cũng có các phép toán
đó nhưng được diễn tả bằng một cách khác. - Phép toán số học: +, -, *, /,
3. Y/cầu Hs n/cứu Sgk và cho biết có bao div, mod
nhiêu nhóm phép toán? 3. N/cứu sgk và trả lời. - Phép toán quan hệ: <, >, =,
- Phép toán số học: +, -, *, /, div, >=, <=, <>
mod - Phép toán logic: and, or, not
- phép toán quan hệ: <, >, =, >=,
<=, <>
- phép toán logic: and, or, not
H1: Phép chia (/) được sử dụng cho kiểu dữ Tl: kiểu thực
liệu nào?

Giáo viên: Bùi Văn Tú 12


Giáo án tin học11

H2: Phép Mod, Div được sử dụng cho kiểu Tl: kiểu nguyên.
dữ liệu nào?
H3: Kết quả của phép toán quan hệ thuộc Tl: kiểu logic
kiểu dữ liệu nào?
3. Hoạt động 3: (20phút) Tìm hiểu về biểu thức
a. Mục tiêu: Hs biết khái niệm về biểu thức số học, quan hệ, lôgic. biết cách xây dựng các biểu thức đó.
Biết được một số hàm số học chuẩn trong lập trình
b. Nội dung:
- Biểu thức số học nhận được từ hằng số, biến số và hàm số liên kết.
- Nắm bắt được tuần tự các bước khi thực hiện biểu thức số học.
- Biểu thức logic được cấu thành từ các biểu thức quan hệ.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. ĐVĐ: Trong toán học ta đã làm quen với 1. Suy nghĩ, trả lời
khái niệm biểu thức. Hãy cho biết các yếu tổ - Gồm 2 phần: toán hạng, toán tử 2. Biểu thức số học
cơ bản xây dựng nên biểu thức?
Nếu trong một bài toán mà toán hạng là hằng Toán hạng: hằng, biến, hàm
số, biến, hoặc hàm số và toán tử là các phép số.
toán số học thì biểu thức có tên gọi là gì? - Biểu thức số học Toán tử: +, -, *, /, mod, div.
2. Treo bảng có chứa các biểu thức toán học, * Thứ tự thực hiện: Sgk
yêu cầu: sử dụng phép toán số học để biễu 2. Quan sát bảng và lên bảng trả * Chú ý:
diễn biểu thức toán học đó thành biểu thức lời. + Nên dùng biến trung gian để
trong NNLT. tránh việc tính 1 biểu thức
nhiều lần.
1 + Biểu thức có chứa hằng hoặc
a. 4x - 2y b. x + a. 4*x-2*y
x− y biến kiểu thực, thì giá trị của
b. x+1/(x-y) biểu thức cũng thuộc kiểu thực
a+b+c
b2 − c
c. 2a - c. ((a+b+c)/((2*a /b)+c)) - (b*b-
+c ac
b c)/(a*c)
- Từ việc xây dựng các biểu thức trên, hãy
nêu thứ tự thực hiện các phép toán. N/cứu sgk và trả lời
- Thực hiện trong ngoặc trước;
ngoài ngoặc sau. Nhân, chia,
chia lấy nguyên, chia lấy dư
trước; cộng trừ sau.
3. Nêu vấn đề:Trong toán học ta đã làm quen 3. Nhớ lại và trả lời 3. Hàm số học chuẩn
với một số hàm số học, hãy kể tên? Hàm trị tuyệt đối, hàm căn bậc
- Muốn tính ax2 + 1 ta viết thế nào? 2, hàm sin ...
- Muốn tính x , x , sinx ... ta làm thế - HS trả lời: 2*x*x+1
nào?
Tính các giá trị đó một cách đơn giản người - HS chưa trả lời được
ta đã xây dựng sẵn một số đơn vị chương
trình trong các thư viện chương trình giúp Cách viết cho một số hàm số
người lập trình tính toán nhanh hơn. học chuẩn :
- Treo tranh chứa bảng một số hàm chuẩn. Tên hàm (đối số)
Yêu cầu: Học sinh điền thêm một số thông
tin với các chức năng của hàm.
Nghiên cứu SGK - 26 và quan + Đối số là một hay nhiều biểu
x − 2x + 1 sát tranh vẽ, lên bảng điền tranh thức số học đặt trong dấu
- Cho biểu thức
x2 −1 ngoặc ( ) sau tên hàm .
Hãy biểu diễn biểu thức toán trong biểu thức VD: (SGK - 26).
trong NNLT.
- Suy nghĩ và trả lời:
4. Nêu vấn đề: Trong lập trình ta phải so sánh (abs(x) - sqrt(2*x+1)) /
2 giá trị nào đó trước khi thực hiện lệnh bằng

Giáo viên: Bùi Văn Tú 13


Giáo án tin học11

cách sử dụng biểu thức quan hệ . Biểu thức (sqr(x)-1) 4. Biểu thức quan hệ:
quan hệ còn gọi là biểu thức so sánh được 4. Lắng nghe, suy nghĩ. Cấu trúc chung:
dùng để so sánh 2 giá trị đúng hoặc sai. <BT1> < phép toán quan hệ >
- Cho một ví dụ về biểu thức quan hệ. <BT2>
+ trong đó BT1 và BT2 phải
- Thứ tự thực hiện của biểu thức quan hệ? cùng kiểu.
- Kết quả mà phép toán quan hệ thuộc kiểu + Kết quả của biểu thức quan
dữ liệu nào? - Trả lời: x + y < 2* x*y hệ là TRUE hoặc FALSE.
5. Biểu thức logic là biểu thức quan hệ được VD: - 5 > 2
liên kết với nhau bởi phép toán logic + Tính gtrị của các bthức
- Hãy quan sát biểu thức trong toán học sau: + Thực hiện phép toán qhệ
2< x ≤ 8 và biễu diễn bthức này trong NNLT
Pascal. - Kiểu logic
5. Biểu thức logic.
- Thứ tự thực hiện của bthức lôgic?
5. Lắng nghe, theo dõi sự sự dẫn - Biểu thức logic đơn giản là
dắt của Gv để trả lời hằng hoặc biến logic.
- Kết quả mà bthức lôgic thuộc kiểu dữ liệu - Dùng để liên kết nhiều biểu
nào? - Kết hợp SGK, trả lời: thức quan hệ lại với nhau.
Treo tranh có chứa bảng chân trị của A và B, (x > 2)and(x <= 8)
y/cầu hs điền giá trị cho A and B, A or B, not
B + Thực hiện các bthức qhệ Ví dụ: Cho 3 số a, b, c. Viết
+ Thực hiện p/toán lôgic điều kiện xác định a, b, c là độ
dài 3 cạnh của 1 tam giác.
- Kiểu logic (a+b>c) and (b+c>a)
and (a+c>b)
Suy nghĩ và trả lời bằng cách
điền vào bảng
A A
Not
A B and or
A
B B
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
4. Hoạt động 4: (8 phút) Câu lệnh gán(:=)
a. Mục tiêu: HS biết được chức năng cấu trúc chung của lệnh gán trong NN Pascal, viết lệnh đúng khi lập trình.
b. Nội dung:
- Lệnh gán dùng để tính giá trị một biểu thức và chuyển nó vào một biến.
- Cấu trúc: Tên biến:= biểu thức;
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
- Mỗi NNLT có cách viết lệnh gán khác nhau, - Quan sát ví dụ và suy nghĩ để 6. Câu lệnh gán.
chẳng hạn như trong Pascal có lệnh gán sau: trả lời. - Lệnh gán là cấu trúc cơ bản
i:=8+3 của mọi NNLT, thường dùng
- Giải thích: Lấy 8 cộng với 3, đem kết quả để gán giá trị cho biến.
đặt vào i , ta được i = 11.
Hỏi: Hãy cho biết chức năng của lệnh gán? + Tính gtrị của bthức
+ Gán gtrị tính được vào tên
- Y/cầu hs Sgk cho biết cấu trúc chung của biến. Cấu trúc:
lệnh gán trong NNLT Pascal < tên _biến>:= <b_thức>;
Cho một số ví dụ về lệnh gán <tên biến> := <biểu thức>; VD:
x:= (b*b-4* a*c);
Cần chú ý gì khi viết lệnh gán? i:= i+1;
Phân tích câu trả lời của học sinh sau đó j:= j-1;
tổng hợp lại Thảo luận và đưa ra ý kiến.

Giáo viên: Bùi Văn Tú 14


Giáo án tin học11

+ viết đúng kí hiệu gán.


+ bthức bên phải cần được xác định gtrị trước
khi gán.
+ kiểu của bthức bên phải phải phù hợp với
kiểu của biến.
Treo tranh, giới thiệu ví dụ về Pascal
Cho chtrình:
Var x, y: integer; Quan sát, làm thử ch/trình qua
T:boolean; các lệnh và trả lời:
Begin
x:=3; y:=9;
x:=x-1; y:=y div 2;
Write(‘x=’,x); writeln(‘ y=’,y);
T:= x<y; write(T);
readln
End. x=2 y=4
Ch/trình in ra màn hình gtrị bằng bao nhiêu? TRUE
IV. ĐÁNH GIÁ CUỐI BÀI (2phút)
1. Nội dung đã học

2. Câu hỏi, bài tập về nhà


Xem trước bài: Các thủ tục chuẩn vào/ra đơn giản
Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình.

Ngày soạn: 10/9/07


Tiết 7 CÁC THỦ TỤC CHUẨN VÀO RA ĐƠN GIẢN
SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH
I. MỤC TIÊU
1. Kiến thức
- Biết được ý nghĩa của các thủ tục vào/ ra chuẩn đối với lập trình
- Biết được các cấu trúc chung của thủ tục vào/ ra trong NNLT Pascal
- Biết được các bước để hoàn chỉnh một chtrình
- Biết được các file cơ bản của Turbo Pascal 7.0
2. Kĩ năng
- Viết đúng lệnh vào /ra dữ liệu
- Biết nhập đúng dữ liệu khi thực hiện chtrình.
- Biết khởi đọng và thoát khỏi hệ soạn thảo Turbo Pascal 7.0
- Soạn được một chtrình vào máy. Dịch được chtrình để phát hiện lỗi cú pháp.
- Thực hiện được chtrình để nhập dữ liệu và thu kết quả, tìm lỗi thuật toán và sửa lỗi
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên:
- Sgk, tranh chứa các biểu thức trong toán, Projector, máy vi tính, một số chtrình viết sẵn.
- Máy vi tính có cài phần mềm Turbo Pascal 7.0, Projector.
2. Học sinh: sgk
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Cho M, N là 2 biến nguyên. Điều kiện xác định M, N 2 Hs lên bảng trả lời bằng cách ghi bảng
đồng thời là số chẵn hoặc đồng thời là số lẻ được thể hiện
trong Pascal như thế nào?

Giáo viên: Bùi Văn Tú 15


Giáo án tin học11

- Gọi 2 Hs lên bảng độc lập trả lời Đ/a: ((M mod 2 = 0) and (N mod 2 = 0)) Or ((M mod
- Gọi Hs khác nhận xét (Đúng, Sai) 2 =1) and (N mod 2 = 1))
Nhận xét đánh giá, cho điểm
2. Hoạt động 2: (10 phút)Tìm hiểu thủ tục nhập dữ liệu vào từ bàn phím.
a. Nội dung:
Dùng để đưa nhiều bộ dữ liệu khác nhau cho cùng một chtrình xữ lí.
Cấu trúc: Read/Readln(<biến 1>, <biến 2>, ...., <biến N>);
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu vđ: Khi giải quyết một bài toán, ta
phải đưa dữ liệu vào máy tính xữ lí, việc đưa
dữ liệu bằng lệnh gán sẽ làm cho chtrình chỉ
có tác dụng với một dữ liệu cố định. Để 1.
chtrình giải quyết được nhiều bài toán hơn, ta
phải sử dụng thủ tục nhập dữ liệu. 1. Nhập dữ liệu từ bản
- Y/cầu Hs n/cứu Sgk cho biết cấu trúc chung phím
của thủ tục nhập dữ liệu trong NNLT Pascal: - N/cứu Sgk và trả lời:
- Ghi bảng Read(<biến1>,…,<biếnN>);
Ví dụ: khi viết chtrình giải ptrình: Ax2 + Bx Readln(<biến1>,…,<biếnN>); Read(<biến1>,…,
+ C = 0, ta phải nhập vào các đại lượng nào? <biếnN>);
viết lệnh nhập? Suy nghĩ, trả lời: Readln(<biến1>,…,
- phải nhập giá trị vào 3 biến A, <biếnN>);
2. Treo bảng chứa chtrình Pascal đơn giản có B, C Ví dụ
lệnh nhập giá trị cho 3 biến. -Lệnhnhập:Readln(A,B,C);
- Mô phỏng kết quả chtrình cho hs quan sát.
Hỏi: Khi nhập giá trị cho nhiều biến, ta phải 2. Quan sát chtrình và kết quả.
thực hiện như thế nào?
- Các giá trị phải được cách nhau
ít nhất một dấu cách (Space) - Các giá trị phải được cách
Ví dụ: để nhập các giá trị 2, -1.5, 7 cho các hoặc kí tự xuống dòng (Enter). nhau ít nhất một dấu cách
biến A, B, C ta có thể gõ: - Quan sát ví dụ của gv hoặc kí tự xuống dòng.
Cách1: 2 1.5 7 Enter
Cách2: 2 1.5 Enter
7 Enter
Hỏi: Lệnh Read và Readln khác nhau như thế
nào? - Suy nghĩ, trả lời
Read: ……
Readln: ……
3. Hoạt động 3:(15 phút)Tìm hiểu thủ tục đưa dữ liệu ra màn hình.
a. Nội dung:
- Dùng để đưa kết quả sau khi xữ kí ra màn hình để người sử dụng thấy.
- Write/Writeln(<thamsố1>,...,<thamsốN>);
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu vđ: Sau khi xữ lí xong, kết quả CT 1. 2. Đưa dữ liệu ra màn hình
được lưu trong bộ nhớ, để nhìn thấy được kết
quả ta phải dùng thủ tục xuất dữ liệu. Write(<thamsố1>,...,
- Y/cầu hs n/cứu Sgk cho biết cấu trúc chung <tham sốN>);
của thủ tục xuất dữ liệu trong NNLT Pascal - N/cứu Sgk và trả lời. Writeln(<thamsố1>,...,
Ví dụ: Khi viết CT giải pt: ax+b=0, ta phải <tham sốN>);
đưa ra màn hình gtrị nghiệm
-b/a, ta phải viết lệnh như thế nào?
2. Để nhập giá trị cho 1 biến từ bàn phím, ta - Writeln(-b/a);
thường đưa thêm câu dẫn dắt sau đó mới đến
câu lệnh nhập. Bằng cách dùng cặp thủ tục 2. Chú ý lắng nghe và ghi nhớ.

Giáo viên: Bùi Văn Tú 16


Giáo án tin học11

write và read.
Ví dụ: Cần nhập 1 số ngdương N (N<=100)
từ bàn phím ta viết câu lệnh như sau:
Write(‘Nhap so nguyen duong
N<=100: ’); Readln(N);

3. Treo bảng chứa chtrình Pascal đơn giản:


Mô phỏng kết quả chtrình để hs quan sát

Nhap vao hai so: 3. Quan sát kết quả chtrình và trả Program vd;
5-6 lời một số câu hỏi: Var x, y, z:integer;
-----5-----6----11 Begin
Writeln(‘Nhap vao hai
Hỏi: chức năng câu lệnh writeln(); so: ’);
Readln(x, y);
Hỏi: ý nghĩa của :6 trong câu lệnh write(...); Z:= x+y;
Write(x:6, y:6, z:6);
4. Khi các tham số trong lệnh write() thuộc Viết ra màn hình dòng chữ và Readln
kiểu Char hoặc Real thì qui định vị trí như đưa con trỏ xuống dòng. End.
thế nào? - Dành 6 vị trí trên màn hình để
Vd1: với c = ‘E’ và x = 145 viết số x, 6 vị trí tiếp để viết số
y, …
---------E---145 - Khi tham số có kiểu nguyên
hoặc kiểu kí tự việc qui định
vị trí là giống nhau
Vd2: n = 54 và r = 24.7 <tham số>: <độ rộng>
Vd1: write(c:10, x:6);
---54--24.700 - Khi tham số có kiểu thực
7983.000 phải qui định 2 loại vị trí: vị
trí cho toàn bộ số thực và vị
5. <<Có thể cho hs tìm hiểu ở nhà>> trí cho phần thập phân
Thủ tục Readln và Writeln không có tham số <tham số>: <độ rộng>: <số
có chức năng là gì? chữ số thập phân>
Vd2: writeln(N:5, r:8:3);
Write(7983:8:3)

Vd: Đoạn CT cho kết quả thế nào? 5. N/cứu sgk, suy nghĩ vatr lời:
Writeln(‘DAY THON VI DA’); - Readln đặt cuối chtrình để
Writeln; tạm dừng chtrình cho người
Writeln(‘<Han Mac Tu>’:20); dùng thấy kết quả của chtrình
đưa ra màn hình.
- Writeln để đưa con trỏ
xuống đầu dòng dưới.

DAY THON VI DA
--------------------------------
- - - - - - - - <Han Mac Tu>
_

4. Hoạt động 4: (3 phút)Làm quen với Turbo Pascal 7.0


a. Mục tiêu: Biết được các file Ct cơ bản của TurboPascal 7.0. Biết cách khởi động và thoát khỏi TP 7.0
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. ĐVĐ: Để sử dụng được Pascal trên máy 1. Tham khảo sgk và trả lời

Giáo viên: Bùi Văn Tú 17


Giáo án tin học11

phải có các file chtrình cần thiết. Y/cầu hs Turbo.exe Turbo.tpl


tham khảo Sgk và cho biết tên các file đó. Graph.tpu egavga.bgi
2. Cách khởi động Tpascal: Và các file *.chr
Bấm vào biểu tượng Turbo Pascal 7.0 trên 2. Học sinh quan sát và ghi nhớ
màn hình
- Giới thiệu màn hình soạn thảo CT: bảng
chọn, con trỏ, vùng soạn thảo, ...
5. Hoạt động 5: (5 phút)Tập soạn thảo chtrình vào dịch lỗi cú pháp
a. Nội dung:
Gõ các lệnh chtrình
Lưu file chtrình lên đĩa: bấm F2
Biên dịch lỗi cú pháp: Alt + F9
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Soạn một chtrình làm ví dụ, lưu chtrình, 1. Quan sát và ghi nhớ
dịch lỗi. - Lưu chtrình vào đĩa: bấm
F2
2. Mở chtrình có sẵn, y/cầu hs chỉ các lỗi cú - Mở chtrình có trong đĩa:
pháp trong CT, Biên dịch lỗi và sửa. bấm F3
Program vd Program vd; - Biên dịch lỗi cú pháp: bấm
Var x: integer; Var x, y: integer; Alt+F9
Bigen Begin - Đóng cửa sổ chtrình: bấm
Write(‘nhap so ngduong );Readln(x); Write(‘nhap so ngduong ‘); Alt+F3
Y:= sqrt(x); Readln(x); - Thoát khỏi phầm mềm:
Write(y); Y:= sqrt(x); Alt+X
End; Write(y);
End.
6. Hoạt động 6: (5 phút)Tập thực hiện chtrình và tìm lỗi thuật toán để hiệu chỉnh
a. Mục tiêu: Hs biết cách thực hiện một chtrình, nhập dữ liệu và tìm lỗi thuật toán để hiệu chỉnh.
b. Nội dung:
- Chạy chtrình: bấm Ctrl+F9
- Xây dựng các bộ test
- Nhập dữ liệu, thu kết quả, đối chứng với kết quả của test.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Thực hiện chtrình ở trên, nhập dữ liệu, giới 1. Quan sát gv thực hiện và tham - Chạy chtrình: bấm Ctrl+F9
thiệu kết quả khảo sgk
Hỏi: Nhóm phím dùng để thựchiện chtrình?
2. Giới thiệu chtrình giải pt: ax+b=0 Ctrl+F9
Var a, b:real;
Begin 2. Đọc chtrình và độc lập suy
Readln(a, b); nghĩ để tìm test và trả lời:
If a<>0 then write(-b/a) a=0, b=0 pt vô số nghiệm
else write(‘PTVN’);
Readln
End.
Hãy tìm test để chứng minh chtrình này Sai.
IV. ĐÁNH GIÁ CUỐI BÀI (2phút)
1. Nội dung đã học
2. Câu hỏi, bài tập về nhà
- So sánh sự giống nhau và khác nhau của các cặp lệnh write()/writeln() và read()/readln().
- Viết chtrình nhập vào một số và tính bình phương của số đó.
- Viết chtrình nhập độ dài bán kính và tính chu vi, diện tích hình tròn tương ứng.
- Làm bài tập 9, 10 sgk trang36
- Xem trước nội dung phần bài tập và thực hành số 1 sgk trang 34

Giáo viên: Bùi Văn Tú 18


Giáo án tin học11

* Xem phụ lục B sgk: Trang 122: Môi trường Turbo Pascal
Trang 136: Một số thông báo lỗi

Ngày soạn: 18/9/07


Tiết 8 - 9 BÀI TẬP THỰC HÀNH SỐ 1
I. MỤC TIÊU
1. Kiến thức
- Biết được một chtrình Pascal hoàn chỉnh.
- Làm quen các dịch vụ chủ yếu của Turbo Pascal trong việc soạn thảo, lưu, dịch, thực hiện chtrình.
2. Kĩ năng
- Soạn thảo được chtrình, lưu lên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật toán và hiệu chỉnh.
- Bước dầu biết phântích và hoàn thành chtrình đơn giản trên Pascal
3. Thái độ: Tự giác, tích cực và chủ động trong thực hành
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Phong máy vi tính được cài đầy đủ Turbo Pascal, projector để hướng dẫn
2. Học sinh: Sgk, sách bài tập và bài tập đã viết ở nhà
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (8 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Viết chtrình nhập vào một số và tính bình phương của số Chtrình đạt yêu cầu:
đó. Var x, y: integer;
Cho 2 hs xung phong lên bảng Begin
Write(‘nhap vao một so ’); readln(x);
Y:= sqr(y);
Nhận xét, đánh giá, cho điểm Write(y); readln
End.
2. Hoạt động 2: (30phút)Tìm hiểu một chtrình hoàn chỉnh
a. Nội dung: Cho chương trình sau:
Program Giai_pt;
Uses crt;
Var a, b, c, d, x1, x2: real;
Begin
Clrscr;
Write(’nhap a b c ’); Readln(a, b, c);
D:= b*b-4*a*c;
X1:= (-b-sqrt(d))/(2*a);
X2:= (-b+sqrt(d))/(2*a);
Writeln(’x1=’,x1:6:2,’ x2=’,x2:6:2);
Readln
End.
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Chiếu chtrình lên bảng. Y/cầu hs thực hiện 1. Quan sát chtrình, đọc lập Program Giai_pt;
các nhiệm vụ: soạn vào máy Uses crt;
- Soạn chtrình vào máy Var a, b, c, d, x1, x2: real;
- Lưu chtrình F2 Begin
- Dịch lỗi cú pháp Alt+F9 Clrscr;
- Thực hiện chtrình Ctrl+F9 Write(’nhap a b c ’);
- Nhập dữ liệu 1 -3 2. Thông báo kết quả x1=1.00 x2=2.00 Readln(a, b, c);
- Trở về màn hình soạn thảo D:= b*b-4*a*c;
- Thực hiện chtrình Enter X1:= (-b-sqrt(d))/(2*a);
- Nhập dữ liệu 1 0 2. Thông báo kết quả. Ctrl+F9 X2:= (-b+sqrt(d))/(2*a);

Giáo viên: Bùi Văn Tú 19


Giáo án tin học11

- Vì sao có lỗi xuất hiện? Thông báo lỗi Writeln(’x1=’,x1:6:2,’ x2=’,


x2:6:2);
Do căn bậc hai của một số Readln
âm End.

3. Hoạt động 3: (45 phút)Rèn luyện kĩ năng lập chương trình.


a. Mục tiêu: Hs soạn, lưu, dịch và thực hiện được chương trình
b. Nội dung: Viết chương trình nhập từ bàn phím 2 số thực a và b, tính và đưa ra màn hình trung bình cộng các bình
phương của hai số đó.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Định hướng để hs phân tích bài toán 1. Phân tích theo yêu cầu của gv Bài toán: Viết chương trình
- Dữ liệu vào: - Dữ liệu vào: a b nhập từ bàn phím 2 số thực a
- Dữ liệu ra: - Dữ liệu ra: tb và b, tính và đưa ra màn hình
- Cách tính: - tb =(a2+b2)/2 trung bình cộng các bình
2. Y/cầu hs tự sọan chtrình và lưu lên máy. 2. Thực hiện các y/cầu của gv phương của hai số đó.
- Soạn chtrình
Quan sát hướng dẫn từng nhóm hs trong lúc - F2, gõ tên file để lưu
thực hành - Alt+F9 : biên dịch lỗi
- Ctrl+F9: t/hiện chtrình
3. Y/cầu hs nhập dữ liệu và thông báo kết quả 3.Nhập dữ liệu theo y/cầu.
- Với a=5, b=7
- Với a=7, b=-5 - Với a=5, b=7 thì tb=37
- Với a=7, b=-5thì tb=37
IV. ĐÁNH GIÁ CUỐI BÀI (7phút)
1. Nội dung đã học
Các bước để hoàn thành một chương trình:
- Phân tích bài toán để xácđịnh dữ liệu vào/ra
- Xác định thuật toán
- Soạn thảo chtrình vào máy
- Lưu trữ chtrình
- Biên dịch chtrình
- Thực hiện và hiệu chỉnh chtrình
2. Câu hỏi, bài tập về nhà
- Viết chương trình nhập vào độ dài 3 cạnh của một tam giác, tính chu vi, diện tích của tam giác đó.
- Làm bài tập 7, 8, 9, 10 sgk trang 36
+ Soạn chương trình
+ Dịch lỗi và thực hiện
+ Nhập dữ liệu và kiểm tra kết quả
- Xem trước bài: Cấu trúc rẽ nhánh, sgk trang38

Ngày soạn: 19/09/07


Tiết 10 BÀI TẬP ÔN CHƯƠNG II
I. MỤC TIÊU
1. Kiến thức: Biết phânbiệt các loại biểu thức trong NNLT
2. Kĩ năng: 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. ĐỒ DÙNG DẠY HỌC


1. Giáo viên: bài giải các bài tập sgk
2. Học sinh: sgk
III. HOẠT ĐỘNG DẠY HỌC

Giáo viên: Bùi Văn Tú 20


Giáo án tin học11

1. Hoạt động 1: (15 phút) Kiểm tra 15 phút


Hđ của GV Hđ của HS
Phát đề cho hs Nhận đề và làm bài
Thu bài làm của hs Nộp bài làm
2. Hoạt động 2: (10 phút) Bài tập 8/sgk/36
a. Mục tiêu: Xây dựng được biểu thức logic làm điều kiện để giải một số bài toán đơn giản
b. Nội dung: Viết biểu thức lôgic cho kết quả True khi tọa độ (x, y) là điểm nằm trong vùng gạch chéo kể cả biên của
hình 2.a và 2.b (trang 36/sgk)
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Hình 2.a:
Y/cầu hs quan sát hình và trả lời các câu hỏi: Quan sát hình và trả lời
- Giá trị của y trong vùng gạch chéo?
- Giá trị của x trong vùng gạch chéo? 0<=y<=1
- Điểm A(x,y) thì x, y có quan hệ thế nào? -1<=x<=1
- Y/cầu hs từ các biểu thức quan hệ viết ra
bthức lôgic theo yêu cầu của đề? |x|<=y
- Phân tích các giá trị x, y để đơn giản biểu
thức (|x|<=y) and ((x>=-1)and
(y<=1) and (abs(x)<=y) (x<=1)) and ((y>=0) andy<=1)
2. Hình 2.b Chú ý lắng nghe, để ý cách xác
Y/cầu hs tự làm, tương tự hình 2.a định giá trị đúng.

Tự làm
3. Hoạt động 3: (15 phút)Bài 9/sgk/36
a. Mục tiêu: Củng cố lại các bước khi xây dựng chương trình, sử dụng các dạng câu lệnh vào ra đã học.
b. Nội dung:Bài 9/sgk/36
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
- Y/cầu hs đọc đề - Đọc đề
Định hướng để hs phân tích bài toán
- Dữ liệu vào: - Dữ liệu vào: a =R
- Dữ liệu ra: - Dữ liệu ra: dtích phần gạch
- Cách tính: chéo (1/2 dtích hình tròn)
- Cách tính: a*a*pi/2
Hs độc lập viết chương trình
Y/cầu hs tự viết chương trình - 1 hs lên bảng
- Nhận xét
- Chỉ định 1 hs lên bảng trình bày
- Y/cầu hs khác nhận xét bài làm trên bảng So sánh, nhận xét
(lỗi cú pháp, thuật toán,…) Program dt;
- Treo bảng có sẵn chtrình đúng để hs so Var a: real;
sánh. Begin
(Pi là hằng có sẵn trong Pascal có giá trị Write(‘nhap gia tri a (a>0) ‘);
3.1415926536) readln(a);
Writeln(‘Dien tich can tim la: ‘,
Chạy thử chtrình a*a*pi/2 :20:3);
Nếu a=2 thì kquả: 6.2832 Readln;
End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
2. Câu hỏi, bài tập về nhà
Xem trước bài: Cấu trúc rẽ nhánh, sgk trang 38

Giáo viên: Bùi Văn Tú 21


Giáo án tin học11

Giáo viên: Bùi Văn Tú 22


Giáo án tin học11

CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP


Ngày soạn: 30/9/07
Tiết 11 CẤU TRÚC RẼ NHÁNH
I. MỤC TIÊU
1. Kiến thức
- Hiểu nhu cầu của cáu trúc rẽ nhánh trong biểu diễn thuật toán.
- Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử
dụng 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 khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số
bài toán đơn giản
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: + Soạn giáo án.
+ Chuẩn bị bảng phụ sau:

IF

Đ_kiện Đ Câu lệnh

S
IF

S Điều kiện Đ Câu lệnh 1


Câu lệnh 2

2. Học sinh: sọan bài ở nhà.

III. PHƯƠNG PHÁP: Giảng giải + hoạt động của học sinh.
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS
Cho 2 số nguyên a, b; tìm Max(a,b). 2 hs lên bảng trả lời độc lập.
Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập
a, b bằng Pascal. Nêu thuật toán tìm Max(a,b). Hs khác nhận xét
Gọi 2 hs lên bảng
Nhận xét, đánh giá, cho điểm
Đ/án:
Program baitap;
Var a, b, max : integer;
Begin
readln(a,b);
end.
2. Hoạt động 2: (5 phút) Tìm hiểu cấu trúc rẽ nhánh thiếu và đủ
Hoạt động của GV Hoạt động của HS Nội dung
- Với bài toán trên làm thế nào để tìm Max(a, - So sánh: 1. Rẽ nhánh:
b)? + Nếu a>b thì max = a. * Một số mệnh đề có dạng
+ Nếu a<b thì max = b. điều kiện:
- Hãy mô tả thuật toán bằng NNLT Pascal? - Chưa làm được + Dạng thiếu: Nếu…thì…
- Hãy cho biết câu: Nếu …thì … là loại câu + Dạng đủ: Nếu … thì …
gì? - Câu điều kiện. nếu không thì …

Giáo viên: Bùi Văn Tú 23


Giáo án tin học11

Còn dạng nào khác không? * Cấu trúc dùng để mô tả các


- Có, Nếu …thì … nếu không mệnh đề như trên được gọi là
- Hãy cho ví dụ về các loại câu điều kiện thì … cấu trúc rẽ nhánh thiếu và đủ.
* Chọn hai câu làm ví dụ. Từ đó phân tích - Nếu có học bài thì đạt điểm 10. * Mọi ngôn ngữ lập trình đều
cho học sinh thấy cấu trúc rẽ nhánh thể hiện - Nếu là người lớn thì 5000đ nếu có các câu lệnh để mô tả cấu
trong ví dụ này. trẻ em thì 1000đ. trúc rẽ nhánh.

3. Hoạt động 3: (12 phút)Câu lệnh If …then


Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu hs n/cứu sgk và dựa vào các ví dụ 1. N/cứu sgk và trả lời 2. Câu lệnh IF – THEN:
cấu trúc rẽ nhánh để đưa ra cấu trúc chung If<điều_kiện>Then<lệnh1> * Để mô tả cấu trúc rẽ nhánh,
của câu lệnh rẽ nhánh. Else<lệnh2>; Pascal dùng câu lệnh:
2. Khi không đề cập đến việc gì xãy ra nếu 2. Chú ý lắng nghe và trả lời. a. Dạng đủ:
điều kiện không thõa mãn cấu trúc câu lậnh Câu lệnh khuyết: IF <điều kiện> THEN <câu
rẽ nhánh như thế nào? If <điều_kiện> Then<lệnh>; lệnh 1> ELSE < câu lệnh
3. Lên bảng 2>;
3.Gọi học sinh viết câu lệnh so sánh để tìm If a > b then max:= a; b. Dạng khuyết: (dạng
Max(a, b) bằng 2 cách. If a < b then max:= b; đặc biệt)
Hoặc: IF <điều kiện> THEN <câu
- Có thể chỉ dùng 1 câu lệnh khuyết? If a > b then max:=a lệnh>;
max:=a; if a < b then max:=b; Else max:=b;
Lưu ý: Trước từ khoá Else không có dấu ;
- Dạng nào thuận tiện hơn?
Suy nghĩ và trả lời.
-> tuỳ trường hợp cụ thể.
4. Hoạt động 4: (3 phút) Câu lệnh ghép
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu vđ: Sau then, sau else phải có một câu 1. Chú ý lắng nghe Câu lệnh ghép trong Pascal:
lệnh. Nhưng thực tế trong các trường hợp Begin
phức tạp đòi hỏi phải là nhiều câu lệnh. <các lệnh cần ghép>;
NNLT cho phép gộp dãy các lệnh thành một End;
câu lệnh ghép
2. Y/cầu hs n/cứu sgk cho biết cấu trúc câu 2. N/cứu sgk và trả lời
lệnh ghép trong Pascal Begin
<các lệnh cần ghép>;
End;
5. Hoạt động 5: (18 phút)Rèn luyện kĩ năng vận dụng lệnh If
a. Nội dung:
Vd1: Viết chương trình nhập vào độ dài 2 cạnh của một hình chữ nhật, tính chu vi, diện tích của hcn đó.
Vd2: Tìm nghiệm của pt bậc hai: ax2+bx+c=0
b. Cách tiến hành
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu nội dung, mục đích yêu cầu của vd1 1. Chú ý dẫn dắt của gv Vd1: Viết chương trình nhập
vào độ dài 2 cạnh của một
Chtrình này các em đã viết, hãy cho biếtcó hình chữ nhật, tính chu vi,
hạn chế nào trong chtrình của em không? Khi nhập độ dài âm thì cho ra diện tích của hcn đó.
- Hãy nêu ra hướng giải quyết của các em . dtích, chu vi âm. Điều này
không có trong thực tế
- Dùng câu lệnh rẽ nhánh để
kiểm tra giá trị độ dài các cạnh.
- Y/cầu hs về nhà hoàn thiện chtrình. Nếu độ dài dương thì tính dtích
2. Nêu nội dung, mục đích yêu cầu của bài và chu vi, ngược lại thì thông
tập vd2. báo độ dài Sai. Vd2: Tìm nghiệm của pt bậc
- Hãy nêu các bước chính để trả lời nghiệm 2. Ghi đề bài, chú ý mục đích, hai: ax2+bx+c=0
pt bậc hai? y/cầu của bài tập .

Giáo viên: Bùi Văn Tú 24


Giáo án tin học11

+ Tính delta
+ Nếu delta<0 thì pt vô nghiệm
+ Nếu delta >=0 thì kết luận pt
có nghiệm: Program ptbac2;
x1=(-b+sqrt(delta))/(2*a) Var a, b, c, d, x1, x2: real;
- Ta cần bao nhiêu lệnh rẽ nhánh để mô tả các x2=(-b-sqrt(delta))/(2*a) Begin
bước trên? - Hai câu lệnh rẽ nhánh dạng Write(‘nhap a, b, c ‘);
khuyết hoặc 1 lệnh rẽ nhánh Read(a,b,c);
- Y/cầu hs viết chtrình hoàn thiện (1hs trình dạng đầy đủ. D:=b*b-4*a*c;
bày trên bảng) - 1 hs lên bảng viết chtrình If d<0 then write(‘pt vo
Gọi hs khác nhận xét, đánh gía nghiem’)
- Chuẩn hóa lại chtrình cho cả lớp bằng việc Lấy ý kiến của 2-3hs else
treo bảng chtrình mẫu của gv đã chuẩn bị. begin
x1=(-b+sqrt(delta))/(2*a);
x2=-b/a-x1;
write(‘x1= ’,x1:6:2,’ x2= ’,
x2:6:2)
end;
readln;
End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
Cấu trúc chung và sơ đồ thực hiện của cấu trúc rẽ nhánh IF
2. Câu hỏi, bài tập về nhà
Xem trước bài: Cấu trúc lặp, sgk, trang 42
- Trả lời câu hỏi 1, 2, 4 sgk trang 50, 51
- Viết chtrình nhập vào 3 số a, b, c và in ra màn hình giá trị lớn nhất trong 3 số đó.
- Viết chtrình giải pt: ax4 + bx2 + c = 0.

Ngày soạn: 2/10/07


Tiết 12 CẤU TRÚC LẶP (tiết 1/3)
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.
Biết cấu trúc chung của lệnh lặp với số lần biết trước For trong NNLT Pascal
Biết sử dụng đúng 2 dạng lệnh lặp For.
2. Kĩ năng: Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết 1 số bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Máy vi tính, Projector, sgk, sgv
2. Học sinh: sgk
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
1. Trình bày cấu trúc rẽ nhánh? Sự khác nhau giữa các Hs1: trình bày miệng
dạng rẽ nhánh đó?
2. Viết CT nhập vào 2 số a, b và thực hiện đưa ra màn Hs2: trình bày lên bảng
hình giá trị của số lớn hơn.
Gọi 2 hs lên bảng trả lời. Hs khác nhận xét bài làm của hs2
Nhận xét, đánh giá cho điểm
2. Hoạt động 2: (20 phút)Tìm hiểu ý nghĩa cấu trúc lặp

Giáo viên: Bùi Văn Tú 25


Giáo án tin học11

a. Mục tiêu: Hs thấy được sự cần thiết của cấu trúc lặp trong lập trình.
b. Nội dung:
1 1 1 1
- Bài toán 1: Viết CT tính tổng S= + + + ... +
a a +1 a + 2 a + 100
- Bài toán 2: Ông An có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau 12 tháng (không
rút tiền lãi hàng tháng) ông ta được số tiền là bao nhiêu?
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu bài toán 1 đặt vấn đề 1. Chú ý quan sát bài toán đặt Bài toán 1:
vấn đề. Viết CT tính tổng
- Hãy xác định công thức toán học để tính - Rất khó xác định S= +
1 1
+
1
+ ... +
1
tổng a a +1 a + 2 a + 100
Gợi ý phương pháp: Ta xem S là một cái xô,
các số hạng là những cái ca có dung tích khác
nhau, khi đó việc tính tổng trên tương tự như Theo dõi gợi ý.
việc đổ các ca nước vào xô S.
- Có bao nhiêu lần đổ nước như vậy?
- Mỗi lần đổ 1 lượng là bao nhiêu? - Thực hiện 100 lần
1
- Phải viết bao nhiêu lệnh để thể hiện việc - Mỗi lần đổ
a+i
này? - Viết 100 lệnh.
2. Nêu bài toán 2 để đặt vấn đề tiếp tục.(treo Bài toán 2: Ông An có số
bảng chứa nội dung bài toán) tiền là S, ông gửi tiết kiệm
2. Chú ý quan sát và trả lời các
- Em hiểu như thế nào về cách tính tiền gửi ngân hàng với lãi suất
câu hỏi.
tiết kiệm trong bài toán 2. 1,5%/tháng. Hỏi sau 12 tháng
- Với số tiền S sau mỗi tháng sẽ
(không rút tiền lãi hàng
có số tiền lãi 0.015*S.
tháng) ông ta được số tiền là
Số tiền lãi sẽ được cộng vào số
bao nhiêu?
tiền ban đầu để tính lãi cho tháng
tiếp theo:
- Số tiền thu được sau tháng thứ nhất là bao
nhiêu? - S := S + 0.015*S
- Theo y/cầu của bài toán ta cần thực hiện
tính bao nhiêu lần như vậy? - Thực hiện 12 lần.
Dẫn dắt: Chương trình được viết như vậy sẽ - Tập trung theo dõi gv trình bày.
rất dài, khó đọc, dễ sai sót. cần có một cấu
trúc điều khiển việc lặp lại thực hiện các
công việc ở trên.
- Trong tất cả mọi NNLT đều có một cấu trúc
điều khiển việc thực hiện lặp lại với số lần đã
định trước. 3. Thảo luận theo nhóm để viết
3. Chia lớp thành 4 nhóm: 2 nhóm viết t/toán thuật toán:
btoán1, 2 nhóm viết t/toán btoán 2. Btoán 1:
B1: N←0; S←1/a;
B2: N←N+1;
B3: Nếu N>100 thì chuyển sang
B5
B4: S←S+1/(a+N), quay lại B2;
B5: Đưa ra S, rồi kết thúc.
Btoán 2:
B1: Nhập S; I←0;
- Thu kết quả các nhóm, treo lên bảng, gọi hs B2: I ←I + 1;
nhóm khác nhận xét, đánh giá. B3: Nếu I >12 thì chuyển sang
- Chuẩn hóa lại thuật toán cho hs. B5;
B4: S←S + 0.015*S, quay lại B2

Giáo viên: Bùi Văn Tú 26


Giáo án tin học11

B5: Đưa ra S, rồi kết thúc


- Thông báo kết quả viết được.
- Nhận xét bài làm của nhóm
khác.
3. Hoạt động 3: (15 phút)Tìm hiểu lệnh lặp For trong NNLT Pascal
a. Mục tiêu: Hs biết được cấu trúc chung của câu lệnh lặp FOR. Hiểu ý nghĩa các thành phần trong câu lệnh. Biết
đượ sự thực hiện của máy khi gặp câu lệnh For. Vẽ được sơ đồ thực hiện đó.
b. Nội dung:
- Dạng tiến:
FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;
- Dạng lùi:
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;
Trong đó:
+ <giá trị đầu> phải nhỏ hơn <giá trị cuối>
+ Biến đếm là kiểu nguyên, kí tự hoặc miền con
Giá trị biến đếm tự động tăng(giảm) 1 đơn vị sau khi thực hiện câu lệnh cần lặp.

c. Các bước tiến hành:


Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu hs n/cứu sgk vàcho biết cấu trúc 1. Đọc sgk và trả lời a. Dạng tiến
chung của lệnh For? FOR <biến đếm>:= <giá trị
đầu> TO <giá trị cuối> DO FOR <biến đếm>:= <giá trị
Giải thích: <lệnh cần lặp>; đầu> TO <giá trị cuối> DO
<biến đếm> <lệnh cần lặp>;
- Hỏi: Ý nghĩa của <giá trị đầu>, <giá trị Sơ đồ:
cuối>, kiẻu dữ liệu của chúng? - để làm giới hạn cho biến đếm,
cùng kiểu với biến đếm bđếm:= <gtrị đầu>
Trong btoán 1:<giá trị đầu>, <giá trị cuối> có -<giá trị đầu> là 1
giá trị bằng bao nhiêu? <giá trị cuối> là 100
Dẫn dắt: những lệnh nào cần lặp lại ta đặt
bđếm<=gtrị
sau DO. Khi nhiều lệnh cần đặt sau Do ta - Sử dụng S
phải viết thế nào? câu lệnh ghép.
- Hỏi: Đ
+ Trong bài toán tiết kiệm lệnh nào cần lặp
lại? S:= S + 0.015*S; Câu lệnh lặp
+ Trong bài toán tính tổng lệnh nào cần lặp bđếm :=bđếm + 1
lại? S:= S+1/(a+i);
- Hãy so sánh giá trị của <giá trị đầu> và
<giá trị cuối>? <giá trị đầu> ≤ <giá trị cuối>
Dẫn dắt: Khi đó câu lệnh For đgl For tiến, b.Dạng lùi
NNLT Pascal còn có dạng ngược lại là For bđếm:= <gtrị
lùi. cuối> <giá trị
FOR <biến đếm>:=
2. Y/cầu hs trình bày cấu trúc For lùi. 2. N/cứu sgk, suy nghĩ, so sánh cuối> DOWNTO <giá trị
với dạng For tiến rồi trả lời đầu> DO <lệnh cần lặp>;
FOR <biến đếm>:= <giá trị Sơ đồ:
bđếm>=gtrị đầu
cuối> DOWNTO <giá trị đầu> S
DO <lệnh cần lặp>;
Đ
Hãy so sánh giá trị của <giá trị đầu> và <giá
trị cuối>? <giá trị đầu> ≤ <giá trị cuối>
Câu lệnh lặp
- Hai bài toán trên dùng lệnh For nào là phù
bđếm :=bđếm - 1
hợp? - Sử dụng For tiến
IV. ĐÁNH GIÁ CUỐI BÀI (3phút)
1. Nội dung đã học

Giáo viên: Bùi Văn Tú 27


Giáo án tin học11

Cấu trúc chung của câu lệnh lặp For. Sơ đồ thực hiện của lệnh lặp For
2. Câu hỏi, bài tập về nhà
- Sử dụng câu lệnh For hoàn thành chương trình bài toán 1 và 2 đã nêu ở đầu tiết.
- Giải bài tập 5a, 6 sgk/51
- Xem trước phần ví dụ của nội dung cấu trúc lặp có số lần biết trước.

Ngày soạn: 3/10/07


Tiết 13 CẤU TRÚC LẶP (tiết 2/3)
I. MỤC TIÊU
1. Kiến thức
Sử dụng đúng lệnh lặp For để giải quyết một bài toán đơn giản.
2. Kĩ năng
Vận dụng đúng đắn các dạng của lệnh lặp For
Viết đúng lệnh lặp For để mô tả được thuật toán của một số bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Giáo án, sgk, Projector, bảng phụ chứa các chương trình mẫu.
2. Học sinh: sgk
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
1. Trình bày các dạng cấu trúc câu lệnh lặp với số lần biết Hs1: trả lời câu hỏi 1
trước?
- Gọi hs lên trả lời
2. Viết CT nhập vào 2 số nguyên dương a, b (a<b), tính Hs2: trình bày chương trình trên bảng
và đưa ra màn hình tổng các số nguyên trong phạm vi từ Var a, b, i , S : longint;
a đến b. Begin
- Cho hs xung phong. Write(‘Nhap a va b (a<b): ‘); Readln(a, b);
S := 0;
Nhận xét, đánh giá, cho điểm For i := a To b Do S := S + i ;
Writeln(‘Ket qua: ’, S);
Readln
End.
2. Hoạt động 2: (15 phút) Rèn luyện kĩ năng vận dụng câu lệnh For và câu lệnh rẽ nhánh If
Hđ của GV Hđ của HS Nd ghi bảng
Dẫn dắt: Từ bài toán KTBC ở trên, nếu ta BÀI TẬP
y/cầu tính và đưa ra màn hình tổng các số Bài 1: Viết CT nhập vào 2 số
chẵn và tổng các số lẻ trong phạm vi từ a đến nguyên dương a, b (a<b), tính và
b. đưa ra màn hình tổng các số chẵn
- Ghi bảng (sửa lại nội dung đề bài toán) -Ghi đề bài toán và tổng các số lẻ trong phạm vi từ
Y/cầu hs phân tích đề bài và trả lời câu hỏi. -Lắng nghe, phân tích bài a đến b.
- So sánh với bài toán trước thì có gì khác? toán và trả lời
-Tl: tính tổng các số chẵn
- Ta cần đưa ra màn hình mấy giá trị? và tổng các số lẻ riêng
-Tl: 2 giá trị (S1: tổng
- Việc chính cần thực hiện trong câu lệnh lặp chẵn; S2: tổng lẻ)
là gì? Tl:
Kiểm tra biến đếm i : nếu i
là chẵn thì S1:=S1+i ngược
- Hãy mô tả việc trên bằng lệnh lặp For? lại (i là lẻ)thì S2:=S2+i.

Giáo viên: Bùi Văn Tú 28


Giáo án tin học11

Đứng tại chổ trả lời:


For I:=a To b Do
If I mod 2 =0
then S1:=S1+I
- Y/cầu hs cả lớp tự hoàn thành chương trình. else S2:=S2+I ;
Cho 1 hs lên bảng trình bày. Var a, b, i , S1, S2 : longint;
* Chuẩn hóa lại bài làm của hs bằng chương Trình bày trên bảng. Begin
trình mẫu (treo chtrình đã chuẩn bị trên bảng Write(‘Nhap a va b (a<b): ‘);
phụ) Readln(a, b);
Quan sát chtrình của giáo S1 := 0; S2 := 0;
viên và ghi nhớ. For i := a To b Do
If i mod 2 = 0
then S1 := S1 + i
else S2 := S2 + i;
Writeln(‘Tong chan: ’, S1,
’ Tong le: ’,S2);
Readln
End.
3. Hoạt động 3: (20 phút) Tiếp tục vận dụng câu lệnh lặp For để giải quyết một bài toán đơn giản.
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu đề bài toán (Ghi bảng) 1. Đọc đề bài toán, phân tích Bài 2: Ông Ba có số tiền là S,
và trả lời câu hỏi: ông gửi tiết kiệm ngân hàng với
- Cách tính tiền gửi tiết kiệm hàng tháng như Tl: Với số tiền S, sau mỗi lãi suất 1.5%/tháng. Hỏi sau 12
thế nào? tháng sẽ có lãi là: 0.015*S. tháng gửi (không rút tiền lãi
Số tiền này sẽ cộng vào số hàng tháng), ông ta được số tiền
tiền ban đầu để tính lãi cho là bao nhiêu?
tháng tiếp theo.
Tl: S := S + 0.015*S;
- Vậy, công thức tính tiền thu được sau mỗi
tháng như thế nào? Tl: 12 lần
- câu lệnh lặp này lặp bao nhiêu lần? Tl: gtrị đầu là 1; gtrị cuối là
- Xác định giá trị đầu và giá trị cuối của câu 12.
lệnh For để thực hiện việc lặp trên?
2. Y/cầu hs viết chương trình vào vở, cho 1 2. Thảo luận và tự viết
hs trình bày lên bảng. chương trình Var s:real; i:byte;
* Chuẩn hóa lại bài làm của hs bằng chương Begin
trình mẫu (treo chtrình đã chuẩn bị trên bảng Quan sát chtrình của giáo Write(‘So tien ban dau: ’);
phụ) viên và ghi nhớ. Readln(S);
3. (Nếu còn thời gian) 3. Suy nghĩ và trả lời For i:= 1 To 12 Do
Hỏi sau 12 tháng gửi (không rút tiền lãi hàng S:= S + 0.015*S;
tháng), ông ta được số tiền nhiều hơn số tiền Writeln(‘So tien nhan duoc
ban đầu là bao nhiêu? la: ’,S:8:3);
Ta phải sửa lại chtrình trên như thế nào? Readln
End.
IV. ĐÁNH GIÁ CUỐI BÀI (3phút)
Câu hỏi, bài tập về nhà
Làm một số bài trong sách bài tập Tin học 11: 3.23, 3.29; 3.31
Xem trước phần nội dung cấu trúc lặp với số lần chưa biết trước While

Giáo viên: Bùi Văn Tú 29


Giáo án tin học11

Ngày soạn: 16/10/07


Tiết 14 CẤU TRÚC LẶP (tiết 3/3)
I. MỤC TIÊU
1. Kiến thức
- Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa biết trước
- Biết được cấu trúc chung của lệnh lặp While trong NNLT Pascal.
2. Kĩ năng
- Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While.
- Sử dụng đúng lệnh lặp While trong lập trình.
- Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết một số bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Sgk, sgv, bảng phụ
2. Học sinh
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (10 phút) Tìm hiểu ý nghĩa của cấu trúc lặp có số lần chưa biết trước
a. Mục tiêu:
Biết được sự cần thiết phải có của cấu trúc lặp có số lần chưa biết trước trong lập trình
b. Nội dung:
1 1 1 1 1
- Bài toán 1: Viết CT tính tổng S= + + + ... + cho đến khi < 0.001
a a +1 a + 2 a+N a+N
- Bài toán 2: Ông An có số tiền là A đồng, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau bao nhiêu
tháng (không rút tiền lãi hàng tháng) ông ta được số tiền lớn hơn B đồng?
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu nội dung bài toán 1 1. Chú ý lắng nghe, quan sát và suy Bài toán 1
nghĩ trả lời
-Sự khác nhau của bài toán này với bài toán -Bài trước: cho giới hạn N
tính tổng đã học ở tiết trước? Bài này: cho giới hạn S
- Lặp bao nhiêu lần? - Chưa xác định được ngay
- Lặp đến khi nào? - Cho đến khi điều kiện
1
< 0.001 được thõa mãn
2. Nêu nội dung bài toán 2 a+N Bài toán 2
2. Chú ý lắng nghe, quan sát và suy
-Sự khác nhau của bài toán này với bài toán nghĩ trả lời
đã giải ở tiết trước? - Bài trước: biết số tháng, hỏi số
tiền
Bài này: biết số tiền, hỏi số tháng
- Lặp bao nhiêu lần? - Chưa biết, đó chính là số tháng
phải tìm
- Lặp đến khi nào? - Đến khi số tiền thu được >B

Tóm lại, qua 2 ví dụ trên ta thấy có 1 dạng


toán có sự lặp lại của câu lệnh nhưng không
biết được số lần lặp. Cần có 1 cấu trúc điều
khiển lặp lại 1 công việc nhất định khi thõa
mãn 1 điều kiện nào đó.
2. Hoạt động 2: (15 phút) Tìm hiểu cấu trúc lệnh lặp While trong NNLT Pascal
a. Mục tiêu:- Biết được cấu trúc chung của lệnh lặp While. Hiểu được ý nghĩa của các thành phần trong câu lệnh.
Biết được sự thực hiện của máy khi gặp While. Vẽ được sơ đồ thực hiện.
b. Nội dung:

Giáo viên: Bùi Văn Tú 30


Giáo án tin học11

Cấu trúc: While <điều kiện> Do <lệnh cần lặp>;


Sự thực hiện:
Bước 1: Tính giá trị của <điều kiện>.
Bước 2: Nếu <điều kiện> có giá trị đúng thì:
thực hiện lệnh cần lặp và quay lại B1.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu hs n/cứu sgk và cho biết cấu trúc 1. Tham khảo sgk và trả lời 3. Câu lệnh While …Do
chung của lệnh lặp While. Cấu trúc:
While <điều kiện> Do
Giải thích: <lệnh cần lặp>; Cấu trúc:
<điều kiện>: biểu thức quan hệ hoặc biểu While <điều kiện> Do
thức logic. <lệnh cần lặp>;
<lệnh cần lặp>: các lệnh cần phải lặp lại
Hỏi:
- Điều kiện để lặp lại trong 2 bài toán là gì? Sơ đồ thực hiện:
1
- Trong 2 bài toán lệnh cần lặp là gì? Bt1: > 0.001
a+i điều
S
Bt2: A < B
+ Bt1:
S := S + 1/(a+I); để tính tổng Đ
- Dựa vào cấu trúc, cho biết máy thực hiện I := I + 1; để tăng chỉ số
tính <điều kiện> trước hay <lệnh cần lặp> + Bt2: lệnh cần lặp
trước? A := A + 0.015*A; để tính tiền
- Sự khác nhau trong lệnh cần lặp của For và T := T + 1; để tính số tháng
While là gì? - Suy nghĩ và trả lời:
2. Y/cầu hs vẽ sơ đồ thực hiện lên bảng Tính điều kiện trước, thực hiện
- Gọi hs khác nhận xét. lệnh lặp sau. * Trong <lệnh cần lặp> phải
- Trong While phải có lệnh thay có lệnh thay đổi biến chỉ số.
* Treo sơ đồ mẫu và giải thích đổi biến chỉ số. (để thay đổi giá trị <điều
2. Lên bảng vẽ sơ đồ thực hiện kiện>)
của lệnh While.
-Nhận xét đúng sai và bổ sung
* Chú ý lắng nghe và ghi nhớ
3. Hoạt động 3: (15 phút) Rèn luyện kĩ năng vận dụng lệnh lặp While
a. Mục tiêu:
Bước đầu biết sử dụng đúng lệnh While để lập trình giải quyết một số bài toán đơn giản.
b. Nội dung:
Ví dụ 1: Bài toán 2 tìm hiểu ở trên
Ví dụ 2: Viết chương trình tìm ước chung lớn nhất của 2 số nguyên dương M, N được nhập từ bàn phím.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Trở lại bài toán 2 1. Quan sát, xác định lại các Ví dụ 1:
- Đã xác định <điều kiện>, <lệnh cần lặp> thành phần và trả lời:
hãy viết câu lệnh While hoàn chỉnh? While A< B Do
begin Var A, B: extended; T: byte;
A := A + 0.015*A; Begin
T := T + 1; Write(‘So tien ban dau A: ’);
- Chia lớp theo từng bàn. Y/cầu hs từng bàn end; Readln( A);
thảo luận và viết chương trình hoàn thiện. - Tập trung làm việc theo bàn Write(‘So tien can co B(B>A):
- Cho 1 hs lên bảng trình bày. để viết hoàn chỉnh chương ’);
- Gọi 1- 2hs khác n/xét, đánh giá. trình. Readln(B);
- Lên bảng trình bày T := 0;
* Chính xác hóa chương trình cho cả lớp. - N/xét Đúng–Sai, bổ sung. While A< B Do

Giáo viên: Bùi Văn Tú 31


Giáo án tin học11

(chỉnh sửa lại chtrình của hs) * Ghi nhớ những phần sửa begin
chữa của gviên. A := A + 0.015*A;
2. Nêu nội dung ví dụ 2 T := T + 1;
Phân tích để xác định <điều kiện> và <lệnh 2. Tập trung theo dõi để thấy end;
cần lặp>. công việc cần thực hiện Writeln(‘Phai cho ’,T,’ thang’);
Minh họa khi tìm ucln của 2 số Readln
15 và 25 End.
M 15 15 5 5
N 25 10 10 5
Trả lời: ucln (15, 25) = 5
Hỏi:
- Điều kiện để tiếp tục lặp là gì? - Điều kiện: M<>N
- Các lệnh cần lặp là gì? - M := M – N; hoặc
N := N – M;
- Y/cầu hs nêu thuật toán tìm ucln của 2 số - T/toán:
đó. B1: Nếu m=n thì ucln=m,
dừng;
B2: Nếu m>n thì m:=m-n
- Y/cầu hs viết chương trình hoàn thiện bài ngược lại n:=n-m, qlại B1.
toán ở nhà.
Củng cố: Hãy nêu 2 câu hỏi cần đặt ra khi Suy nghĩ và trả lời:
gặp bài toán dạng này? + Điều kiện nào để lặp lại
+ Những lệnh nào cần lặp lại
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
- Cấu trúc chung của lệnh lặp While
- Sơ đồ thực hiện của lệnh While và sự thực hiện của máy.
2. Câu hỏi, bài tập về nhà
- Giải bài tập 5b, 7, 8 sgk trang 51.
- Đọc lại bài lệnh rẽ nhánh IF và làm các bài tập liên quan chuẩn bị cho tiết sau thực hành.
- Xem trước nội dung bài thực hành số 2: sgk trang 49-50
- Xem thêm nội dung phụ lục B, sgk trang 131: Lệnh rẽ nhánh và lặp (Case ... of Và Repeat ...
Until)

Ngày soạn: 23/10/07


Tiết 15 - 16 BÀI THỰC HÀNH SỐ 2
I. MỤC TIÊU
1. Kiến thức: Nắm được cấu trúc và sơ đồ thực hiện của cẩu trúc rẽ nhánh
2. Kĩ năng:
- Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số ài toán cụ thể.
- Làm quen với các công cụ phục vụ hiệu chỉnh chương trình
3. Thái độ: Tự giác, tích cực, chủ động trong thực hành
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Phòng máy vi tính, Projector.
2. Học sinh: Sgk, sbt, bài tập đã viết ở nhà.
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (35 phút) Làm quen với một chương trình và các công cụ hiệu chỉnh chtrình.
a. Mục tiêu: Hs biết được nội dung chương trình và kết quả sau khi thực hiện chương trình. Biết các công cụ dùng
để hiệu chỉnh chương trình khi cần thiết: thực hiện từng bước, xem kết quả trung gian.
b. Nội dung: Viết chtrình nhập vào 3 số nguyên dương a, b, c và kiểm tra xem chúng có phải là bộ số Pitago hay
không?
c. Các bước tiến hành:

Giáo viên: Bùi Văn Tú 32


Giáo án tin học11

Hđ của GV Hđ của HS Nd ghi bảng


1. Gợi ý để hs nêu khái niệm bộ số Pitago. 1. Theo dõi dẫn dắt của gv để
nêu khái niệm về bộ số Pitago:
tổng bình phương 2 số bằng bình
phương số còn lại.
- Y/cầu hs cho ví dụ cụ thể? Ví dụ: 4 5 3
- Phải sử dụng các đẳng thức nào để kiểm tra a2=b2+c2
3 số bất kỳ a, b, c là bộ số Pitago? b2=a2+c2
2. Chiếu chương trình mẫu lên bảng. Thực c2=a2+b2
hiện mẫu các thao tác: lưu, thực hiện từng 2. Soạn chtrình vào máy.
lệnh chtrình, xem kết quả trung gian, thực
hiện chtrình và nhập dữ liệu.
- Y/cầu hs gõ chtrình vào máy.
- Y/cầu hs lưu chtrình theo hdẫn của sgk.
- Y/cầu hs thực hiện từng lệnh chtrình. * Xem kết quả trung gian
- Y/cầu hs xem các kết quả trung gian a2, b2, Nhấn F2, gõ tên file, Enter + Vào Debug\ Watches,
c2 trên của sổ Watches + nhấn phím Insert xuất hiện
- Y/cầu hs tìm thêm bộ số a, b, c khác để thực Nhấn F7, nhập giá trị cho cửa sổ Add watch, nhập tên
hiện chtrình và so sánh a = 3, b = 5, c = 4. biến cần theo dõi giá trị, rồi
Làm theo hdẫn trên bảng nhấn Enter (lặp lại thao tác
này nếu muốn cùng lúc xem
Quan sát qua trình rẽ nhánh của giá trị nhiều biến)
từng bộ dữ liệu vào rồi trả lời.
2. Hoạt động 2: (45 phút )Rèn luyện kĩ năng lập trình hoàn thiện một bài toán
a. Mục tiêu: Hs đọc hiểu đề, phân tích yêu cầu của đề. Từ đó chọn được cấu trúc dữ liệu và lệnh phù hợp để lập
trình.
b. Nội dung: Viết chương trình tìm giá trị lớn nhất của 3 số a, b, c được nhập từ bàn phím.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu nội dung, mục đích y/cầu của bài 1. Chú ý theo dõi vấn đề đặt ra Bài 2: Viết chương trình tìm
toán. của gv. giá trị lớn nhất của 3 số a, b,
- Bước đầu tiên để giải bài toán? - Xác định Input, Output và thuật c được nhập từ bàn phím.
toán
- Y/cầu hs xác định các nội dung đó? -Input: 3 số a, b, c - Nhập a, b, c;
Output: Gtln(a,b,c) - Nếu a>b thì
- Làm thế nào để xác định gtln của 3 số a, b, - Trả lời theo dạng trình bày ý nếu a>c thì max:=a
c? (Nêu các bước tìm ra gtln) tưởng nglại max:=c
- Y/cầu hs phát thảo thuật toán. - Hs trình bày trên bảng Nglại nếu b>c thì max:=b
- Qua thuật toán ta sẽ sử dụng cấu trúc nào để - Cấu trúc rẽ nhánh nglại max:=c;
viết chương trình? - Đưa ra max.
2. Y/cầu hs gõ chương trình vào máy 2. Độc lập từng nhóm soạn
chtrình vào máy.
Gviên tiếp cận từng máy tính để hướng dẫn Thông báo kết quả viết được.
và sửa sai. 3. Nhập dữ liệu theo test cảu gv
3. Y/cầu hs nhập dữ liệu và thông báo kết quả.
a = 23, b = 15, c = 23 4. Tìm các bộ test khác và kiểm
thử chtrình
4. Y/cầu hs tự xác định các bộ test khác để
kiểm tra chtrình
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
Câu hỏi, bài tập về nhà: chuẩn bị các bài tập sgk
Xem trước bài:

Giáo viên: Bùi Văn Tú 33


Giáo án tin học11

Ngày soạn: 24/10/07


Tiết 17 BÀI TẬP CHƯƠNG 3

I. Mục tiêu:
1. Kiến thức: Củng cố cho học sinh kiến thức về cấu trúc rẽ nhánh và cấu trúc lặp.
2. Kỹ năng:
Rèn luyện kỹ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp để giải
quyết bài toán đặt ra.
3. Tư duy, thái độ:
Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiểu, chủ động trong giải quyết các bài tập.Rèn
luyện tư duy khoa học, tư duy logic.
II. Chuẩn bị của giáo viên và học sinh:
GV: - Soạn giáo án.
HS: - Học bài cũ và chuẩn bị bài tập.
III. Phương pháp dạy học: Gợi mở và thuyết trình.
IV. Tiến trình bài dạy:
1. Hoạt động 1: (7phút) Kiểm tra bài cũ
Câu hỏi 1(H1): Trình bày cấu trúc câu lệnh rẽ nhánh và cấu trúc lặp ?

Tg Hoạt động của HS Hoạt động của GV Ghi bảng

- 1 HS lên bảng trả lời. - GV gọi 1 HS lên trả lời H1. -Rẽ nhánh
If <btđk > then <lệnh 1> else
<lệnh 2>;
7’ If <btđk > then <lệnh 1>;
- Lặp For
For <biến đếm>:= <giá trị đầu>
To <giá trị cuối> Do <lệnh>;
For <biến đếm>:= <giá trị đầu>
Downto <giá trị cuối> Do
<lệnh>;
- Cả lớp theo dõi và nhận - Lặp While
xét bổ sung (nếu có). - GV yêu cầu cả lớp nhận xét câu trả While<điềukiện>Do<lệnh>;
lời của bạn.
- GV nhận xét và đánh giá.

2. Hoạt động 2: (15 phút)Giải bài tập 4


Câu hỏi 1(H1): Sử dụng lệnh If này gồm mấy nhánh ?
Câu hỏi 2(H2): Hàm lấy giá trị tuyệt đối của biểu thức hay biến ?
Tg Hoạt động của HS Hoạt động của GV Ghi bảng
HĐTP1:
- 1 HS lên bảng giải câu 4a) - GV gọi 1 HS lên bảng giải câu 4a) Câu 4a)
- 1 HS trả lời H1. - GV đặt H1. If (sqrt(x) + sqrt(y)) <=1 then
- Các HS khác theo dõi và - GV yêu cầ cả lớp theo dõi và nhận z:= sqrt(x) + sqrt(y)
nhận xét. xét. Else
If y>=x then z:= x+y
- GV nhận xét, hoàn chỉnh bài làm và Else z:= 0.5;
đánh giá.
20’ HĐTP2:
- GV gọi 1 HS lên bảng giải câu 4b)
- 1 HS lên bảng giải câu 4b)
- 1 HS trả lời H2. - GV đặt H2. Câu 4b)

Giáo viên: Bùi Văn Tú 34


Giáo án tin học11

If (sqr(x-a) + sqr(y-b)) <=


sqr(r) then z:=abs(x) +abs(y)
- GV nhận xét và đánh giá. Else z:= x+y;

3. Hoạt động 3: (20 phút) Giải bài tập 5


50
n
Câu hỏi 1(H1): Hãy khai triển biểu thức Y = ∑ n + 1 dưới dạng tường minh ?
n =1
Câu hỏi 2(H2): Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị trong đoạn nào ?
Câu hỏi 3(H3): Em hãy thử đưa ra phương pháp tính Y ?
Câu hỏi 4(H4): Sử sụng cấu trúc điều khiển lặp nào là phù hợp ?
Tg Hoạt động của HS Hoạt động của GV Ghi bảng
- 1 HS lên bảng trình bày - GV đặt H1. 1 2 3 50
H1. - GV đặt H2. Y= + + ++
- 1 HS trả lời H2. - GV đặt H3. 2 3 4 51
- 1 HS trả lời H3 - GV đặt H4. Câu 5a)
15’ - 1 HS trả lời H4 - GV gọi 1 HS lên bảng giải bài 5a) Uses crt;
- 1 HS lên bảng giải bài 5a - GV yêu cầu các HS còn lại theo dõi Var y: real;
- Các HS còn lại theo dõi và nhận xét. n: byte;
và nhận xét bổ sung (nếu - GV nhận xét, hoàn chỉnh bài làm và Begin
có). đánh giá. Clrscr;
y:=0;
for n:=1 to 50 do
y:= y + n/(n+1);
writeln(y:14:6);
readln;
End.
V. Củng cố và dặn dò (3’):
1. Nắm được những nội dung đã học:
Có 2 cấu trúc lặp:
• Lặp For: Số lần lặp đã xác định
• Lặp While: Số lần lặp chưa xác định
2. Làm các bài tập còn lại trong SGK trang 51.

KIỂM TRA MỘT TIẾT


I. Mục tiêu đánh giá, yêu cầu của đề
1. Mục tiêu đánh giá: Kiểm tra sự hiểu bài của hs sau khi học xong chương1, 2, 3.
2. Yêu cầu của đề:
a. Kiến thức:
- Cách khai báo hằng, biến, cách tạo các biểu thức, cách sử dụng lệnh gán, cách sử dụng lệnh vào ra đơn
giản.
- Khái niệm rẽ nhánh và lặp trong chương trình, khái niệm lập trình có cấu trúc.
b. Kĩ năng:
- Biết khai báo biến đơn
- Biết diễn đạt đúng các câu lệnh,soạn được chương trình các bài toán đơn giản
c. Thái độ:
- Nghiêm túc ,cố gắng vượt qua những lúng túng.
- Tiếp tục rèn luyện phẩm chất cần thiết cho người lập trình
II. Ma trận đề:
Chương 2 Chương 3
Biết Câu 4, 5, 6, 9 Câu 10

Giáo viên: Bùi Văn Tú 35


Giáo án tin học11

Hiểu Câu 3, 7 Câu 1,


Vận dụng Câu 11 Câu 2, 8, 12, Tự luận
III. Nội dung đề:
A. Trắc nghiệm (6đ) (Khoanh tròn vào 1 ý trả lời đúng cho mỗi câu )
1. Các biến x, n1, n2 phải được khai báo như thế nào thì cấu trúc lặp sau thực hiện được:
FOR x := n1 TO n2 DO Begin ………End;
A. Var x: integer ; n1, n2: real; B. Var x, n1, n2: integer;
C. Var x, n1, n2: real; D. Var n1, n2: char; x: integer;
2. Cho đoạn chương trình sau: end;
I := 1; S := 0; Kết quả I bằng bao nhiêu?
While S < 25 Do A. 1
begin B. 5
S := S + 3; C. 9
I := I +1 D. 10
3. Chọn từ khoá : A. Writeln B. Integer C. Readln D. ELSE
4. Hàm div dùng để:
A. Tính căn bậc B. Chia lấy phần dư C. Làm tròn 1 số D. Chia lấy phần nguyên
5. Từ nào là tên chuẩn:
A. END B. Readln C. If D. TYPE
6. Để nhập giá trị vào biến a ta có câu lệnh:
A. Readln(a); B. Realn(a); C. Readln('a'); D. Read('a');
7. Giả sử a là biến có kiểu thực ,chọn lệnh phù hợp khi viết chương trình:
1 b 1
A. a= B. a:=b*b C. a := − ; D. a :=
y x y+x
8. Để in ra dãy số: 1 2 3 4 5 6 7 8 9 10
A. For i:=1 To 10 do write('1 2 3 4 5 6 7 8 9 10'); B. For i:=1 To 10 do write(i);
C. For I : = 1 To 10 Do write(I , ' '); D. For I :=1 To 10 Do write('I ');
9. Kiểu Integer có phạm vi giá trị từ:
A. 0 đến 216-1 B. -215 đến 215-1 C. -231 đến 231-1. D. 0 đến 225
10. Cú pháp lệnh If dạng thiếu :
A. If <điều kiện> then <câu lệnh> B. If <điều kiện> then <câu lệnh>;
C. If <câu lệnh> then <điều kiện> ; D. If <câu lệnh> else <điều kiện> ;

11. Cho chương trình pascal sau: End.


Program cb1; Chương trình trên tính giá trị của biểu thức nào
Var x,y: real; trong các biểu thức sau:
Begin A. y=x+2x+3x+4x+5
Write('x= '); readln(x); B. y=x3+5x2+4x+5
Y:=(((x+2)*x+3)*x+4)*x+5; C. y=(x+2)(x+3)(x+4)+5
Writeln('y=',y); D. y= x4+2x3+3x2+4x+5
12. Trong NNLT Pascal, đoạn chương trình sau thực hiện công việc gì?
I := 0; While I <>0 Do write(I, ' ');
A. Lặp vô hạn việc đưa ra màn hình các chữ số 0 B. Đưa ra màn hình 10 chữ số 0
C. Đưa ra màn hình 1 chữ số 0 D. Không đưa ra thông tin gì.
B. Tự luận (4đ)Viết chương trình tính tổng các ước số của một số nguyên dương N được nhậpvào từ bàn phím
(không kể ước là chính nó).

Giáo viên: Bùi Văn Tú 36


Giáo án tin học11

Var N, i: word; S: longint; (1đ)


Begin
write(‘Nhap N ’); Readln(N); (1đ)
S:= 0; (0.5đ)
For i:= 1 to N div 2 Do
if N mod i = 0 then S:=S+i; (1đ)
writeln(‘Tong tinh duoc la: ’, S); (0.5đ)
End.

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC


Ngày soạn: 07/11/07
Tiết 19 KIỂU MẢNG (tiết 1/4)
I. MỤC TIÊU
1. Kiến thức
Biết được một kiểu dữ liệu mới là kiểu mảng một chiều.
Biết được một loại biến có chỉ số;
Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều.
2. Kĩ năng
Biết được các thành phần trong khai báo kiểu mảng một chiều;
Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình;
Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;
Biết cách tham chiếu đến các phần tử của mảng một chiều.
3. Tư duy và thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng 1 chiều
2. Học sinh: sgk
III. PHƯƠNG PHÁP: Đặt vấn đề, thuyết giảng
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (15 phút) Khởi động bài mới
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu bài toán mở đầu. Y/cầu hs đọc, tìm 1. N/cứu bài toán và chtrình,
hiểu chtrình giải quyết bài toán đó. Và trả lời suy nghĩ trả lời các câu hỏi:
các câu hỏi sau: - Nhận giá trị nhiệt độ của 7
- Các biến: t1, …,t7 thể hiện các giá trị nào? ngày trong tuần. Cùng kiểu
Kiểu của các biến đó thế nào? thực (real)
- dem: để đếm số ngày tron
- Biến dem dùng làm gì? tuần có nđộ lớn hơn nđộ
trung bình.
- Để kiểm tra lần lượt các
- 7 câu lệnh IF trong chương trình thực hiện ngày, nđộ ngày nào lớn hơn
việc gì? nđộ trung bình.
2. Bản chất thuật toán không
2. Mở rộng bài toán từ phạm vi một tuần có gì thay đổi nhưng việc
sang phạm vi N ngày (chẳng hạn một tháng viết chương trình gặp khó
hay một năm) thì chương trình trên có hạn khăn do cần dùng rất nhiều
chế như thế nào? biến và đoạn các câu lệnh
tính toán khá dài.

3. Để khắc phục hạn chế trên người ta thường

Giáo viên: Bùi Văn Tú 37


Giáo án tin học11

ghép chung 7 biến trên thành một dãy và đặt 3. Lắng nghe
cho nó chung 1 tên và đánh cho mỗi phần tử
một chỉ số.
- GV giới thiệu bài mới: Kiểu mảng. ξ11. KIỂU MẢNG
Chúng ta chỉ xét hai kiểu mảng thông dụng: 4. N/cứu sgk và trả lời:
Kiểu mảng một chiều và kiếu mảng hai Mảng một chiều là dãy hữu 1.Kiếu mảng một chiều
chiều. hạn các phận tử cùng kiểu dữ
4. Y/cầu hs tham khảo sgk và hỏi: Em hiểu liệu. Các ptử trong mảng a. K/n mảng một chiều
như thế nào về mãng một chiều? cùngtên và phân biệt nhau (sgk)
bởi chỉ số.
- Trả lời:
+ Kiểu của các p/tử.
+ Cách đánh số các p/tử.
Hỏi: Để mô tả mảng một chiều, ta cần xác
định những yếu tố nào?

2. Hoạt động 2: (20 phút)Tạo kiểu mảng một chiều và khai báo biến mảng
Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu hs tìm hiểu phần khai báo một lời
giải khác cho bài toán trên trong trường hợp
tổng quát (N ngày), có sử dụng mảng 1 chiều.
Hỏi: Chỉ ra phần khai báo mảng trong phần
khi báo của chtrình? - Trả lời
* Ghi lại phần khai báo lên bảng Type
- Ý nghĩa của các khai báo trên là gì? Trả lời: Kmang1=array [1..Max] of real;
Dòng 1: Kbáo kiểu Var Nhietdo: Kmang1;
mảng một chiều
gồm Max số thực.
Dòng 2 : Kbáo biến
2. Giới thiệu cú pháp khai báo kiểu mảng một mảng Nhietdo qua b. Khai báo (Có hai cách)
chiều. kiểu mảng + Kbáo gián tiếp: (sgk)
-Khái quát hoá, ta có cú pháp khái báo biến + Kbáo trực tiếp: (sgk)
mảng một chiều
* Lưu ý về cách chọn <Kiểu chỉ số> Lắng nghe và ghi
3. Y/cầu cho ví dụ khai báo mảng? chép
Gọi hs khác: Ý nghĩa của khai báo bạn vừa Ví dụ 1:
viết? Var Nhietdo: array [1..Max] Of real;
3. Suy nghĩ và trả
* Lưu ý hs tránh nhầm lẫn giữa tên kiểu dữ lời
liệu mảng và biến kiểu mảng. Var Dhs2: array Ví dụ 2: Khai báo mảng tối đa 100 số
[1..100] of real; nguyên (chỉ số đầu tiên là 1)
-Hỏi: (Treo bảng) Trong ba cách khai báo ở - Kbáo trực tiếp Ta có các cách sau:
ví dụ 2, thì cách nào tốt hơn? mảng có tên Dhs2 Cách 1:
gồm 100 p/tử có Var a: Array[1..100] Of Integer;
kiều thực. Cách 2:
Trả lời: Const Nmax = 100;
- Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết: Cách 2 & 3, vì ta dễ Var a: Array[1..Nmax] Of integer;
+ Tên kiểu mảng? dàng điều chỉnh Cách 3:
+ Số phần tử của mảng? kích thước của Const Nmax = 100;
+ Mỗi phần tử của mảng thuộc kiểu gì? mảng Type MyArray = Array [1..Nmax] Of
4. Cách tham chiếu đến từng phần tử của Integer;
mảng: Var a:MyArray;
Y/cầu hs lấy ví dụ(sử dụng các khbáo ở trên)
.ArrayReal
.301 phần tử

Giáo viên: Bùi Văn Tú 38


Giáo án tin học11

.Real

* Tham chiếu tới phần tử cuả mảng


a[2] p/tử ở vị trí thứ Tên_biến[chỉ số]
2 của mảng a
a[i] p/tử ở vị trí i
của mảng a.

3. Hoạt động 3: (7 phút) Củng cố


Hđ của GV Hđ của HS Nd ghi bảng
(Treo bảng) Type
+ Những khai báo nào là đúng? + Trả lời: Arrayr = array[1..200] Of
Arrayr=array[1..200] of integer;
integer; Arrayr = array[byte] of real;
+ Biến a trong khai báo trên chiếm Arrayb = array[-100..100] Arrayb = array[-100..100] of
dung lượng bộ nhớ là bao nhiêu? (số of boolean; boolean;
phần tử của mảng a, kiểu phần tử) + Trả lời: a chiếm 400 byte trong Var a : arrayr;
bộ nhớ. B : arrayb;
IV. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ (3phút)
1. Nội dung đã học
2. Câu hỏi, bài tập về nhà
Đọc ví dụ 1 và ví dụ 2/ trang 56+57 SGK :
− Xem lại thuật toán tìm phần tử lớn nhất của dãy số nguyên và thuật toán sắp xếp dãy số nguyên bằng thuật
toán hoán đổi (lớp 10);
− Khai báo được mảng, tham chiếu được các phần tử của mảng.

Ngày soạn: 07/11/07


Tiết 20 KIỂU MẢNG (tiết 2/4)
BÀI TẬP KIỂU MẢNG MỘT CHIỀU
I. MỤC TIÊU
1. Kiến thức: Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng.
2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: giáo án, bảng phụ, sgk
2. Học sinh: sgk
III. PHƯƠNG PHÁP

Giáo viên: Bùi Văn Tú 39


Giáo án tin học11

IV. HOẠT ĐỘNG DẠY HỌC


1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
1. Trình bày các cách khai báo kiểu mảng trong NNLT Hs1: Đứng tại chổ trả lời
Pascal? Hs2: (lên bảng)
2. Khai báo mảng gồm N số nguyên (N≤500). (theo 2 Const N = 500;
cách: trực tiếp và gián tiếp). C1: Var M : array[1..N] of integer;
Gọi lần lượt hs trả lời. C2: Type Mnguyen = array[1..N] of integer;
Gọi hs khác nhận xét nội dung trên bảng Var M : Mnguyen;
Đánh giá, cho điểm.
2. Hoạt động 2: (20 phút)Vận dụng kiểu mảng một chiều
a. Nội dung:
- Bài toán: Tạo mảng A gồm N (N≤100) số nguyên. Tính tổng các phần tử của mảng là bội của một số
nguyên dương k cho trước.
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng

Giáo viên: Bùi Văn Tú 40


Giáo án tin học11

1. Nêu đề bài toán (ghi bảng) 1. Đọc đề bài toán và trả lời: Bài 1: Viết CT tạo mảng A gồm N
In: mảng A, số k (N≤100) số nguyên. Tính tổng các
Y/cầu hs xác định In/Output của bài toán. Out: Tổng (S) các p/tử trong phần tử của mảng là bội của một số
mảng A là bội của k. nguyên dương k cho trước.
2. Ở lớp 10 ta đã xây dựng t/toán cho bài
toán này rồi. Y/cầu hs nhắc lại t/toán. 2. 1-2 hs nhắc lại t/toán
3. Y/cầu hs cho biết các việc chính cần
thực hiện trong chtrình là gì?
3. Trả lời
+ Cho biết số ptử của mảng
A.
+ Nhập giá trị cho các ptử
4. Y/cầu hs cho biết các biến chính cần của mảng A
sử dụng là gì? + Tính tổng.
4. suy nghĩ và trả lời Var S, n, k, i : integer;
- Y/cầu hs khác lên viết phần khai báo các - mảng A A: array[1..100] of integer;
biến đó? biến đơn: N, k, S. Begin
- Lên bảng trình bày Write(‘Nhap n = ’); readln(n);
5. Tiếp tục y/cầu hs lên viết phần chtrình Var S, N, k: integer; {tao mang}
tạo giá trị cho các ptử của mảng A. (lưu ý A: array[1..100] of integer; For i:=1 To n Do
nhập số lượng ptử của mảng trước) 5. Thực hiện tương tự các CT begin
Gọi hs khác nhận xét trước (Lên bảng trình bày) write(‘phan tu thu ’,i,’ =’);
* Chỉnh sửa đoạn chtrình hs vừa hoàn readln(A[i]);
thành. Đứng tại chổ n/xét, (bổ sung end;
6. Để viết tiếp đoạn chtrình còn lại (tính nếu sai sót) write(‘Nhap k = ’); readln(k);
tổng) theo thuật toán ta phải kiểm tra lần S := 0; {khoi tao S ban dau}
lượt tất cả các ptử của mảng từ A[1] đến 6. Chú ý sự dẫn dắt vấn đề {tinh tong}
A[n]. vậy ta sử dụng câu lệnh gì ở đây? của gv, suy nghĩ và trả lời: For i:=1 To n Do
- Hỏi: trước khi tính tổng, ngoài mảng A Sử dụng cấu trúc lặp For. If A[i] mod k = 0 Then
trong CT cần có thêm gì không? (GV bổ S := S + A[i];
sung) -Giá trị k và Biến S := 0 Writeln(‘Tong can tinh la ’, S);
- Y/cầu hs khác lên viết đoạn chtrình còn End.
lại?
** Chuẩn hoá lại chtrình. - Lên bảng trình bày

* Chạy thử chtrình với 1 bộ giá trị:

Chạy thử chtrình


N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3
A 5 6 -8 13 24 7 -4 - 12
i 1 2 3 4 5 6 7 8
A[i]
2 0 -2 1 0 1 -1 0
mod 3
S 0 0 6 6 6 30 30 30 18

3. Hoạt động 3: (15 phút) Mở rộng bài toán có vận dụng mảng một chiều
a. Nội dung:
Cho một số câu lệnh:
(1) ...... am, duong : integer;
(2) ...... am := 0; duong := 0;
(3) ...... If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then am := am + 1;
(4) ...... Writeln(duong: 4, am:4);
Hãy đưa các câu lệnh đó vào những vị trí thích hợp trong chtrình bài 1, để có được chtrình đưa ra số các số
dương và số các số âm trong mảng.

Giáo viên: Bùi Văn Tú 41


Giáo án tin học11

b. Các bước tiến hành:


Hđ của GV Hđ của HS Nd ghi bảng
(Treo bảng) chứa nội dung câu lệnh cần thêm Quan sát các câu lệnh Var n, i : integer;
vào chtrình ở bài 1. am, duong : integer;
1. Y/cầu hs n/cứu nội dung các câu lệnh và 1. N/cứu ý nghĩa các câu A : array[1..100] of integer;
hỏi: lệnh và trả lời: Begin
- Ý nghĩa của biến am, duong? - Dùng để lưu số lượng đếm Write(‘Nhap n = ’); readln(n);
được. {tao mang}
- Chức năng của lệnh (3)? - Đếm số dương hoặc đếm số For i:=1 To n Do
âm. begin
- Lệnh (4) đưa ra thông tin gì? - Số các số dương, số các số write(‘phan tu thu ’,i,’ =’);
âm. readln(A[i]);
2. Y/cầu hs tìm vị trí bổ sung các lệnh vào 2. Chỉ ra vị trí cần bổ sung và end;
cho phù hợp để chtrình đếm được số dương, các câu lệnh cần loại bỏ bớt. am := 0; duong := 0;
số âm. 3. Lên bảng , chỉnh sửa lại {dem}
3. Y/cầu hs lên hoàn chỉnh lại chtrình? chtrình. For i:=1 To n Do
** Chuẩn hoá lại chtrình. If A[i] >0 Then
* Chạy thử chtrình với 1 bộ giá trị: duong := duong + 1
Else if A[i]<0 Then
am := am + 1;
Writeln(duong: 4, am:4);
End.
Chạy thử chtrình
N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12
A 5 6 -8 13 24 7 -4 - 12
Duong 1 2 2 3 4 5 5 5
am 0 0 1 1 1 1 2 3
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
- Tính tổng các phần tử trong mảng thoả mãn một điều kiện.
- Đếm số phần tử trong mảng thoả mãn một điều kiện.
2. Câu hỏi, bài tập về nhà
- Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó
C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i])
- Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.

Ngày soạn: 14/11/07


Tiết 21 KIỂU MẢNG (tiết 3/4)
I. MỤC TIÊU
1. Kiến thức:
- Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng.
- Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10.
2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: giáo án, bảng phụ, sgk
2. Học sinh: sgk
III. PHƯƠNG PHÁP
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (10 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Gọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước. 2 hs lên bảng trình bày
Gọi hs khác nhận xét
Đánh giá cho điểm Nhận xét

Giáo viên: Bùi Văn Tú 42


Giáo án tin học11

2. Hoạt động 2:(15 phút) Phân tích bài toán trước khi viết chương trình
a. Nội dung: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu bài toán, y/cầu hs xác định In/Output 1. Đọc đề và xác định bài toán. Số nguyên dương N (N≤250)
của bài toán. In: N (N≤250), dãy A và dãy A gồm N số nguyên
(A[i]<500). dương, mỗi số đều không vượt
Out: dãy A không giảm quá 500. Hãy sắp xếp dãy A
2. Y/cầu hs trình bày lại thuật toán sắp xếp 2.Thuật toán thành dãy không giảm.
tráo đổi. (Đã học ở lớp 10) B1: Nhập N, dãy A ;
B2: jN;
B3: nếu j<2 thì đưa ra dãy đã
được sắp xếp, KT;
B4: jj-1; i1;
B5: Nếu i>j thì Qlại B3;
B6: Nếu A[i]>A[i+1] thì tráo
đổi A[i] và A[i+1];
3. Y/cầu cả lớp n/cứu lại t/toán và trả lời các B7: Quay lại B5.
câu hỏi:
- Biến j sẽ nhận các giá trị trong phạm vi
nào? Tương tự với biến i? Trả lời:
- Có nhận xét gì về 2 biến i,j? + 2 ≤ j ≤ N, 1 ≤ i ≤ j-1
(với mỗi giá trị j, i lần lượt nhận các giá trị từ + i phụ thuộc theo j
1 đến j-1)

3. Hoạt động 3:(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal
Hđ của GV Hđ của HS Nd ghi bảng
1. Y/cầu hs xác định những nội dung 1. Suy nghĩ và trả lời:
chính cần viết trong chtrình. +Khai báo biến
+Tạo mảng A
* Chốt lại các nội dung chính cần viết. +Sắp xếp mảng A tăng dần
2. Yêu cầu từng hs lên bảng viết từng nội +Đưa mảng A đã sắp xếp ra
dung của chương trình. màn hình
- Khai báo những biến gì? 2. Lên bảng trình bày từng nội Var A: array[1..300] of integer;
dung. N, i, j :integer;
- Tạo mảng là làm những gì? - mảng A, biến đơn N, i, j Begin
- Nhập sl p/tử của mảng và {tao mang}
nhập giá trị cho các p/tử trong Write(‘Nhap n = ’); readln(n);
mảng For i:=1 To n Do
begin
- Sắp xếp mảng write(‘phan tu thu ’,i,’ =’);
Hỏi: Làm thế nào để tráo đổi giá trị 2 biến readln(A[i]);
cho nhau (a[i] và a[i+1])? end;
Tl: sử dụng thêm biến trung {sap xep mang}
gian t: For j := N Downto 1 Do
t:=a[i]; for i:=1 to j - 1 do
- Đưa mảng ra màn hình a[i]:=a[i+1]; If a[i] > a[i+1] then
a[i+1] :=t begin
t:=a[i]; a[i]:=a[i+1];
a[i+1] :=t
end;
Viết lại chương trình vào vở. {dua ra mang da sap xep}
Writeln (‘Mang da duoc sap
xep ’);
For i :=1 To N Do write (a[i]:4);

Giáo viên: Bùi Văn Tú 43


Giáo án tin học11

Readln
End.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)


1. Nội dung đã học
Cách phân tích và viết chương trình cho một bài toán.
2. Câu hỏi, bài tập về nhà
Xem lại các bài tập về mảng đã giải ở tiết 20
Xem trước bài: Bài thực hành số 3
Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó
B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i])

Ngày soạn: 15/11/07


Tiết 22 BÀI THỰC HÀNH SỐ 3 (tiết 1)
I. MỤC TIÊU:
- Về kiến thức:
Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.
- Về kỹ năng:
+ Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn hình chỉ số và giá trị của các
phần tử mảng.
+ Duyệt qua phần tử của mảng để xử lý từng phần tử.
- Về tư duy và thái độ:
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Ị:
- GV: Phòng máy tính, máy chiếu Projector.
- HS: SGK, bài tập.
III. PHƯƠNG PHÁP:
- Vấn đáp tìm tòi, vấn đáp tái hiện, giải quyết vấn đề.
IV. TIẾN TRÌNH BÀI HỌC:
1. Ổn định tổ chức lớp.
2. Kiểm tra bài cũ:
Câu hỏi: Khi nào ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu?
3. Bài mới:
Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu qua chương trình có sẵn:

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS


GV: Cài đặt và trình chiếu CT mẫu bài 1a. HS: Xem bài mẫu được trình chiếu.
?1: MyArray là tên kiểu dữ liệu hay tên biến? HS1: Trả lời
GV: Nhận xét.
?2: Vai trò của nmax và n khác nhau như thế nào? HS2: Trả lời
?3: Dòng lệnh nào dùng để tạo biến mảng A? HS3: Trả lời.
GV: Nhận xét.
GV: Cho chạy thử CT bài 1a HS: Xem
?4: Lệnh gán A[i]:= random(300) – random(300) có ý nghĩa gì? HS4: Trả lời.
GV: Nhận xét.
?5: Lệnh For i:=1 to n do Write(A[i]:5); có ý nghĩa gì? HS5: Trả lời.
GV: Nhận xét.
?6: Lệnh For i:=1 to n do If A[i] mod k = 0 then s:=s + A[i]; thực HS6: Trả lời.
hiện nhiệm vụ gì?
GV: Nhận xét.

Giáo viên: Bùi Văn Tú 44


Giáo án tin học11

?7: Lệnh s:=s+A[i]; được thực hiện bao nhiêu lần? HS7: Trả lời.
GV: Nhận xét.
GV: Cho HS chạy thử chương trình để thấy kết quả. HS: Chạy thử chương trình trên máy của
mình.
GV: Nhắc nhở HS lưu chương trình đã chạy tốt ở câu a. HS: Lưu chương trình.
GV: Trình chiếu các câu lệnh của câu 1b. HS: Xem.
?8: Đưa biến Posi và Neg vào vị trí nào trong câu 1a? HS8: Trả lời
GV: Nhận xét.
?9: Nhiệm vụ của câu lệnh: HS9: Trả lời.
If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ?
GV: Nhận xét.
GV: Yêu cầu HS đưa câu lệnh trên vào chương trình ở câu 1a. HS: Thực hiện.
GV: Yêu cầu HS chạy chương trình và báo cáo kết quả. HS: Lưu và chạy chương trình, báo cáo
KQ.
4. Củng cố:
Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn phím.
5. Dặn dò:
- HS về nhà làm bài tập 4.15 trong sách bài tập.
- Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK.

Ngày soạn: 15/11/07


Tiết 23 BÀI THỰC HÀNH SỐ 3 (tiết 2)
I. MỤC TIÊU.
1. Kiến thức: Củng cố lại các kiến thức về kiểu dữ liệu mạng
2. Kĩ năng:
- Nâng cao kĩ năng sử dụng một số kiểu lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể:
+ Khai báo kiểu dữ liệu mảng một chiều
+ Nhập, xuất dữ liệu cho mảng
+ Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.
- Biết giải một số bài toán thường gặp:
+ Tính tổng các phần tử thoả mãn các điều kiện nào đó
+ Đếm số các phần tử thoả mãn điều kiện nào đó
+ Tìm phần tử lớn nhất, nhỏ nhất
3. Thái độ và tư duy:
Góp phần rèn luyện tác phong, tư duy lập trình; từ giác, tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức
II. ĐỒ DÙNG DẠY HỌC.
1. Chuẩn bị của GV: Phòng máy vi tính, máy chiếu hoặc bảng phụ để minh họa
2. Chuẩn bị của HS: SGK
III. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: Ôn lại kiến thức để chuẩn bị làm bài tập và thực hành
Hoạt động GV Hoạt động HS Ghi bảng
Cách khai báo mảng trực tiếp ? gián - Cách khai báo trực tiếp:
tiếp ? var <tên biến mảng>: array[kiểu chỉ số] of
<kiểu phần tử>;
- Cách khai báo gián tiếp:
type<tên kiểu mảng> = array[kiểu chỉ số] of
<kiểu phần tử>;
var <tên biến mảng> : <tên kiểu mảng>
2. Hoạt động 2: Đọc đề và tìm hiểu yêu cầu bài tập 2 SGK
Hoạt động GV Hoạt động HS Ghi bảng
Yêu cầu HS đọc đề BT2 SGK Đọc đề và tìm hiểu yêu cầu - Tìm phần tử có giá trị lớn nhất
Yêu cầu của bài toán là gì? của đề trong mảng
Trả lời câu hỏi - In ra màn hình chỉ số nhỏ nhất của
phần từ có giá trị lớn nhất

Giáo viên: Bùi Văn Tú 45


Giáo án tin học11

3. Hoạt động 3: Đọc chương trình và chạy chương trình trên giấy để hiểu thuật toán của chương trình
Hoạt động GV Hoạt động HS Ghi bảng
- Việc tạo mảng dữ liệu được thể hiện ở Thể hiện ở câu lệnh for thứ
phần nào trong chương trình ? nhất của chương trình. Treo bảng phụ chương trình của bài
- Tìm giá trị lớn nhất và đưa ra màn toán.
hình chỉ số nhỏ nhất của phần từ có giá - Từ j:=1 đến cuối chương
trị lớn nhất được thể hiện ở phần nào ? trình B1: j=1, i=2, A[i]=2, A[j]=4
- Vai trò của biến j trong chương trình  A[i]< A[j]
nhằm mục đích gì ? B2: j=1, i=3, A[i] = 5, A[j] =4
- Thực hiện chương trình với giá trị của - Giữ lại chỉ số của phần tử có  A[i]>A[j] , j=3
mảng nhập vào cụ thể như sau: giá trị lớn nhất. B3: j=3, i=4, A[i]=7, A[j]=5
4 2 5 7 6 7 -  A[i]>A[j] j=4
Hãy dựa vào phần tìm giá trị lớn nhất - Thực hiện yêu cầu của GV. B4: j=4, i=5, A[i]=6, A[j]=7
và chạy chương trình trên giấy nháp và  A[i]<A[j]
cho kết quả ? B5: j=4, i=6, A[i]=7, A[j]=5
- Gọi HS lên bảng chạy lại chương kết quả chỉ số: 4
trình A[4] = 7
4. Hoạt động 4: Chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất
Hoạt động GV Hoạt động HS Ghi bảng
- Có cần giữ lại đoạn chương trình tìm - Có
giá trị lớn nhất không ?
- Để đưa ra màn hình tất các chỉ số của
các phần tử đạt giá trị lớn nhất có cần - Có
duyệt lại các phân tử của mảng không ?
- Cần thêm lệnh nào có thê in được tất
cả các chỉ số của các phần tử có giá trị
lớn nhất ?
- Đưa câu lệnh đó vào vị trí nào của - Trả lời câu hỏi. For i:=1 to n do
chương trình ? - Đưa vào cuối chương trình If A[i] = A[j] then write (i);
5. Hoạt động 5: HS chạy chương trình trên máy tính và cho kết quả:

IV. ĐÁNH GIÁ CUỐI BÀI:


1. Những nội dung đã học:
+ Tính tổng các phần tử thoả mãn các điều kiện nào đó
+ Đếm số các phần tử thoả mãn điều kiện nào đó
+ Tìm phần tử lớn nhất, nhỏ nhất
3. Câu hỏi và bài tập về nhà:
- Viết chương trình nhập vào mảng một chiều A[1..20] và nhập một số x. Đếm số lượng số trong A có
giá trị bằng x.
- Xem nội dung bài thực hành số 4 SGK trang 65.

Ngày soạn: 18/11/07


Tiết 24 KIỂU MẢNG (tiết 4/4)
I. MỤC TIÊU
1. Kiến thức
- Hiểu được khái niệm mảng hai chiều.
- Hiểu cách khai báo và tham chiếu đến các phần tử của mảng hai chiều.
2. Kĩ năng
- Thực hiện được khai báo mảng hai chiều, cách tham chiếu đến một phần tử của mảng hai chiều.
- Thực hiện được việc tính toán các phần tử trong mảng hai chiều.
II. ĐỒ DÙNG DẠY HỌC

Giáo viên: Bùi Văn Tú 46


Giáo án tin học11

1. Giáo viên: Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và in ra màn hình
tổng các phần tử trong mảng.
2. Học sinh: SGK, vở soạn.
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (8 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Viết CT tạo và in ra màn hình mảng A gồm n phần tử 10
phần tử. Mỗi phần tử là một số nguyên. Cho biết có bao
nhiêu phần tử trong mảng có giá trị bằng số nguyên k.
2. Hoạt động 2: (7 phút)Tìm hiểu ý nghĩa của mảng hai chiều.
Đặt vấn đề: Ở tiết trước, chúng ta đã tìm hiểu cách khai báo mảng, cách tạo mảng và truy cập đến một phần tử trong
mảng một chiều. Hôm nay, chúng ta sẽ tìm hiểu các vấn đề đó đối với mảng hai chiều.
Hđ của GV Hđ của HS Nd ghi bảng
- GV yêu cầu HS xem bảng nhân ở SGK. - Xem bảng nhân ở SGK trang §11. KIỂU MẢNG (tt)
- Với kiến thức về mảng một chiều đã học, 59.. 2. Kiểu mảng hai chiều:
em hãy đưa ra cách sử dụng kiểu mảng đó để - Sử dụng 9 mảng một chiều, a. Xét bài toán: Bảng nhân
lưu trữ bảng nhân? mỗi mảng lưu một hàng của (SGK).
- Với cách lưu trữ như vậy, ta phải khai báo bảng.
bao nhiêu biến mảng?
- Khai báo như vậy có những hạn chế nào? - TL: Khai báo 9 biến mảng
- Để khắc phục những hạn chế này, ta có thể một chiều.
mô tả dữ liệu của bảng nhân là kiểu mảng
một chiều gồm 9 phần tử, mỗi phần tử là - TL: Phải khai báo nhiều biến,
mảng một chiều có 10 phần tử. Như vậy, ta chương trình phải viết nhiều
có thể biểu diễn bảng nhân bằng kiểu dữ liệu lệnh để tạo và in giá trị của
mảng hai chiều. mảng.
- Yêu cầu HS nhận xét về mảng hai chiều?
- Chú ý lắng nghe.

- Nêu khái niệm mảng hai chiều. - TL: Nếu coi mỗi hàng của
- Để mô tả kiểu mảng hai chiều, cần xác định mảng hai chiều là một phần tử
những yếu tố nào? thì ta có thể coi mảng hai chiều
là mảng một chiều mà mỗi
phần tử của nó là mảng một
chiều.
- HS trả lời.
* Khái niệm mảng hai chiều:
- Tham khảo SGK và trả lời. (SGK).
* Các yếu tố cần xác định để
mô tả kiểu mảng hai chiều.
(SGK)

3. Hoạt động 3:(10’)Tìm hiểu cách khai báo biến mảng hai chiều và cách tạo/in mảng hai chiều.
Hđ của GV Hđ của HS Nd ghi bảng
b. Khai báo:
♦ C1: Trực tiếp:
- GV đưa ra hai cách khai báo biến mảng - HS chú ý theo dõi. Var <tênbiếnmảng>:array [kiểu
hai chiều. chỉ số hàng, kiểu chỉ số cột] of
<kiểu phần tử>;
♦ C2: Gián tiếp:
- GV giải thích các thành phần trong khai - Chú ý lắng nghe. Type <tên kiểu mảng> =
báo. array[kiểu chỉ số hàng, kiểu chỉ số
cột] of <kiểu ptử>;

Giáo viên: Bùi Văn Tú 47


Giáo án tin học11

Var <tên biến mảng>:<tên kiểu


mảng>;
Ví dụ:
i) var A:array [1..50,1..100] of
integer;
- Gọi HS nêu cách khai báo gián tiếp biến - HS đứng tại chỗ trả lời. ii) type mang2c = array
B để lưu trữ bảng nhân ở SGK. [1..9,1..10] of byte;
var B: mang2c;
- Gọi HS nhắc lại cách tham chiếu đến c.Tham chiếu đến một phần tử của
một phần tử của mảng một chiều. mảng hai chiều:
- TL: Tênbiến[chỉ số] Tênbiến[chỉ số hàng,chỉ số cột]
- Gọi HS nêu cách tham chiếu đến số 81 VD:
trong bảng nhân? i) A[i,j] → phần tử ở hàng i, cột j
- TL: B[9,9] = 81 của mảng A.
ii) B[9,9] → phần tử ở hàng 9, cột
9 của bảng nhân B.

4. Hoạt động 4: (17 phút)Tìm hiểu cách viết chương trình đơn giản.
Hđ của GV Hđ của HS Nd ghi bảng
d. Các ví dụ:
Ví dụ 1: Viết chương trình tạo và in
mảng hai chiều gồm m hàng, n cột.
program Tao_in_mang;
- GV hướng dẫn HS cách tạo mảng hai - HS chú ý theo dõi. var i, j, m, n: integer;
chiều có m hàng, n cột. A: array [1..100,1..100] of
integer;
begin
write ('Nhap so hang m = '); readln
(m);
write ('Nhap so cot n = ');
readln (n);

{Tạo mảng}
for i := 1 to m do
for j := 1 to n do
begin
write('Nhap A[',i, ',' ,j,']=');
readln (A[i , j]);
- GV hướng dẫn HS cách in mảng hai end;
chiều vừa tạo. - Chú ý lắng nghe và theo dõi. {In mảng}
for i:= 1 to m do
begin
for j := 1 to n do
write (A[i , j]:4);
writeln;
- Gọi HS lên bảng sửa lại phần khai báo - HS lên bảng làm. end;
và các câu lệnh nhập cho phù hợp với + Không khai báo m,n. readln
bài này. + Khai báo thêm biến T. end.
+ Viết hai vòng for của lệnh tạo Ví dụ 2: Tạo và in mảng hai chiều
và in mảng là: gồm 5 hàng, 7 cột. Tính và in ra
for i := 1 to 5 do màn hình tổng các phần tử trong
for j := 1 to 7 do mảng.
- GV hướng dẫn HS cách tính tổng. - HS chú ý theo dõi.
- GV treo bảng phụ viết sẵn chương
trình cho HS tham khảo. - Theo dõi chương trình trên T:= 0;

Giáo viên: Bùi Văn Tú 48


Giáo án tin học11

bảng phụ. for i := 1 to 5 do


for j := 1 to 7 do
T := T + A[i,j];
IV. ĐÁNH GIÁ CUỐI BÀI (3phút)
1. Nội dung đã học
- Cách khai báo biến mảng hai chiều.
- Cách tạo mảng hai chiều.
- Cách tính toán các phần tử trong mảng hai chiều.
2. Câu hỏi, bài tập về nhà : Xem các ví dụ còn lại trong SGK.

Ngày soạn: 25/11/07


Tiết 25 BÀI THỰC HÀNH SỐ 4 (tiết 1)
I. Mục tiêu
1. Kiến thức
- Củng cố kiến thức về dữ liệu kiểu mảng.
- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi.
2. Kĩ năng
- Biết chỉnh sữa lỗi trong chương trình.
- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.
3. Thái độ
- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.
II.Chuẩn bị
- Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.
- Hs: Sgk, CT đã được viết sẵn.
III. Phương pháp
IV. Tiến hành dạy học
1. Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành.
Hđ của GV Hđ của Hs
Hỏi 1: Nêu cách khai báo kiểu mảng 1 chiều. Tl: có 2 cách
+ gián tiếp:
+ trực tiếp:
Hỏi 2: Nhập từ bàn phím xây dựng mảng một chiều A có
6 phần tử. TL: For i:= 1 to 6 do
Begin
Writeln(‘Nhap phan tu thu ’,i,’=’);
Readln(A[i]);
End;
2. Hoạt động 2: Xác định bài toán và tìm hiểu chương trình.
TG Hđ của GV Hđ của HS Ghi bảng
1. Chiếu đề bài lên bảng. 1. Quan sát đề và lằng nghe câu hỏi Đề: Sắp xếp dãy số
của gv. nguyên bằng thuật
2. Xác định bài toán 2. Trả lời câu hỏi. toán tráo đổi với
Y/cầu hs xác định dữ liệu vào/ra của bài - Vào: mảng A các giá trị khác
toán? - Ra: mảng A đã sắp xếp nhau của n số.
3. Gv minh hoạ bài toán: 3. Theo dãy số minh họa, nhớ lại thuật
A 5 7 2 8 6 4 toán sắp xếp đã học.
1 2 3 4 5 6 Mảng
A đã sắp xếp:
A 2 4 5 6 7 8
1 2 3 4 5 6 - Yêu
- Nhắc lại thuật toán.
cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)?

Giáo viên: Bùi Văn Tú 49


Giáo án tin học11

- Chiếu thuật toán đã được liệt kê các bước. - Quan sát, đối chiếu thuật toán liệt kê CT( SGK/65)
4. Tìm hiểu chương trình với CT (SGK).
4. Xem CT và tìm hiểu một số biến,
- Vai trò của biến i, j trong CT? lệnh.
- Đoạn lệnh nào thực hiện tráo đổi giá trị 2 - TL: Dùng làm biến chỉ số.
phần tử liền kề của mảng? - TL:3 lệnh: tg := a[i];
- Treo bảng CT chuẩn bị sẵn. a[i]:= a[i+1];
Giải thích một số lệnh của CT. a[i+1]:= tg;
- Chú ý, lắng nghe, quan sát và ghi
nhớ.
3. Hoạt động 3: Chạy CT câu a.
TG Hđ của GV Hđ của HS Ghi bảng
- Yêu cầu hs tự nhập dữ liệu với CT có sẵn. - Chạy CT, nhập dữ liệu, xm kết quả.
- Giúp hs phát hiện và sữa lỗi. - Chỉnh sữa CT thông qua các thông
báo lỗi.
- Thuật toán trên tiến hành đưa số lớn thứ j - Chú ý hiểu rõ thêm về CT.
về đến vị trí j sau mỗi vòng lặp:
For i:= 1 to j-1 do

4. Hoạt động 4: Xác định bài toán câu b.


TG Hđ của GV Hđ của HS Ghi bảng
1. Xác định bài toán. 1. Xác định bài toán: Đề: Khai báo biến
- Y/cầu hs xác I/O bài toán? + I: mảng a; đếm nguyên Dem
+O: mảng a đã sắp xếp, số lần tráo đổi và bổ sung vào
(Dem); chương trình những
- Biến Dem được tăng lên khi nào? TL: Khi A[i] > A[i+1] câu lệnh cần thiết
(tức là biểu thức đk trong CL If đúng) để biến Dem tính
- Cần đưa câu lệnh tăng Dem vào chỗ nào TL: Trong thân CL If: trước hoặc sau số lần tráo đổi
trong CT trên? 3 lệnh tráo đổi. trong chương trình.
- Câu lệnh khởi tạo Dem:= 0 được đặt vào
vị trí nào trong CT? TL: Chọn một trong hai phương án 3,
+ Trước CL đầu tiên: 4.
For j:= N down to 2 do
+ Trước CL duyệt:
For i:= 1 to j-1 do
+ Trước 3 CL tráo đổi
+ Sau 3 CL tráo đổi
- Sau CL cuối CT nên đưa CL nào vào để
hiển thị giá trị biến Dem ra màn hình.
4. Hoạt động 5: Sữa CT câu a để giải bài toán câu b.
TG Hđ của GV Hđ của HS Ghi bảng
- Yêu cầu hs sữa lại CT theo gợi ý đã nêu. - Thêm các CL như đã hướng dẫn vào CT(Phụ lục)
- Hướng dẫn hs chỉnh sửa và chạy CT. CT.
- Đánh giá kết quả của hs. - Chạy CT.

Hoạt động 6: Củng cố


- Thuật toán sắp xếp bằng tráo đổi. - Đếm số lần tráo đổi.
Hoạt động 7: Bài tập về nhà
- Tìm thêm các thuật toán sắp xếp khác tối ưu hơn.
- Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo
mảng B.

Ngày soạn: 25/11/07


Tiết 26 BÀI THỰC HÀNH SỐ 4 (tiết 2)

Giáo viên: Bùi Văn Tú 50


Giáo án tin học11

I. Mục tiêu
1. Kiến thức
Tiếp tục củng cố kiến thức khi lập trình với dữ liệu kiểu mảng.
2. Kĩ năng
Nhận xét, phân tích và đề xuất các cách giải bài toán sao cho chương trình chạy nhanh hơn.
3. Thái độ
Tự giác, chủ động trong khi lập trình.
II.Chuẩn bị
Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.
Hs: Sgk, CT đã được viết sẵn
III. Phương pháp
IV. Tiến hành dạy học
1. Hoạt động 1:(3') Ôn lại kiến thức chuẩn bị thực hành
Hđ của GV Hđ của Hs
Hỏi 1: cách khai báo kiểu mảng 1 chiều. Tl: có 2 cách
+ gián tiếp:
+ trực tiếp:
Hỏi 2: (tuỳ từng lớp)
2. Hoạt động 2:(13') Nêu đề bài toán và tìm hiểu
Hđ của GV Hđ của HS Ghi bảng
1. Ghi đề bài lên bảng. 1. Quan sát đề và lắng nghe câu hỏi Đề: Cho mảng A gồm n
của gv. phần tử. Viết CT tạo ra
2. Tìm hiểu đề 2. Trả lời câu hỏi. mảng B[1..n], trong đó B[i]
Y/cầu hs xác định dữ liệu vào/ra của bài - Vào: là tổng của i phần tử đầu
toán? - Ra: tiên của mảng A.
3. Gv lấy ví dụ minh hoạ 3. Theo dõi ví dụ minh hoạ
A 4 5 1 2 3 7
1 2 3 4 5 6
B
1 2 3 4 5 6 Ban
đầu: mọi B[i] = 0
Hỏi: mỗi B[i] được tạo mới bằng bao
nhiêu? Tl: (2-3hs)
Tóm lại: B[i] = A[1] + …+ A[i]
i

=
 A[j ]
j=1

GV minh hoạ một số phần tử: B[1], B[2], Tl:


B[3] B 4 9 1 1 1 22
- Y/cầu hs tìm kết quả mảng B theo ví dụ 0 2 5 Khai báo:
trên. + k/báo mảng
1 2 3 4 5 6 4.
4. Viết CT thô + biến đơn
- Y/cầu hs cho biết từng phần của CT cần Lần lượt cho từng hs trình bày
Tl: Phần thân:
xây dựng? B1: tạo mảng A.
B2: xd mảng B theo A.
Gv tranh thủ ghi lại trên bảng. B3: In mảng B.
H: Bước B2 được cụ thể trong CT như thế Tl: sử dụng 2 vòng for lồng nhau.
nào? for i:=1 to n do
begin
b[i]: =0;
for j:=1 to i do
b[i]:=b[i]+a[j];
5. Treo bảng CT chuẩn bị sẵn. end;

Giáo viên: Bùi Văn Tú 51


Giáo án tin học11

Giải thích từng phần của CT tương ứng với 5. Chú ý, lắng nghe, quan sát và ghi
phần trả lời được ghi bảng của hs. nhớ.
3. Hoạt động 3: (5')Tối ưu chương trình
Hđ của GV Hđ của HS Ghi bảng
1. Dựa vào phần phân tích ví dụ thuật toán ở trên.
Gv hỏi: So sánh giá trị B[i] và B[i-1]?
Đặc biệt: B[1]=? Tl: B[i]:=B[i-1]+A[i]
2. Chta luôn hướng tới thuật toán tối ưu. Đối với bài Tl: B[1]=A[1]
toán này theo phân tích ở trên ta đã tận dụng được 2. Chú ý theo dõi
kết quả của việc tính tổng i -1 phần tử có sẵn ở bước
trước.
- Do vậy ta có được:
+ Số lượng phép toán '+' ít hơn
+Chỉ dùng 1 vòng lặp for
-> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B.
3. Cải tiến lại chtrình.
Gv treo bảng chtrình được cải tiến. {tùy đối tượng hs}

3. Nhìn bảng, tự điều chỉnh hành vi Đoạn CT cải tiến:


nhận thức. Sgk
4. Hoạt động 4: (20') Hs thực hành trên máy theo nhóm
Hđ của GV Hđ của HS Ghi bảng
1. Y/cầu hs nhập CT cải tiếnvào máy. 1. Hs nhập chtrình vào máy
2. Theo dõi quá trình t/hiện của hs. Giải 2. Tự biên dịch và chạy CT với ví dụ
quyết 1 số lỗi nhỏ tại từng nhóm. trên.

3. Tự lấy Input để chạy lại CT


5. Hoạt động 5: (3') Củng cố, uốn nắn những sai sót thường gặp của Hs.
6. Hoạt động 6: (1') Dặn dò: Xem, chuẩn bị trước bài 12: Kiểu xâu.

Giáo viên: Bùi Văn Tú 52


Giáo án tin học11

Ngày soạn: 4/12/07


Tiết 27 KIỂU XÂU (tiết 1/2)
I. MỤC TIÊU
1. Kiến thức
- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu
- Phân được sự giông và khác nhau giữa kiểu mảng kí tự với kiểu xâu kí tự
- Biết các khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu.
- Biết các thao tác liên quan đến xâu
2. Kĩ năng
- Khai báo được biến xâu trong NNLT Pascal. Sử dụng biến xâu, các phép toán và các hàm thủ tục về xâu
để giải quyết một số bài toán đơn giản
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: giáo án, sgk, bảng phụ một số ví dụ
2. Học sinh: sgk
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút )Tìm hiểu ý nghĩa xâu kí tự

Hđ của GV Hđ của HS Nd ghi bảng


ĐVĐ: Dữ liệu trong các bài toán không chỉ Lắng nghe
thuộc kiểu số mà cả kiểu phi số dạng kí tự.
Dãy các kí tự đgl dữ liệu kiểu xâu.
Ghi đề bài học
Trước tiên tìm hiểu Xâu kí tự là gì? KIỂU XÂU
Nêu vài ví dụ xâu: Quan sát, nhận biết
a) ‘HaNoi’ 1. Khái niệm
b) ‘lop 11A1’
c) ‘Nguyen Van An’
Hs đã chbị bài ở nhà, y/cầu hs cho biết xâu là Xâu kí tự: (sgk)
gì? Tl: Xâu là dãy các kí tự trong
bảng mã ASCII, mỗi kí tự là một
Cho hs khác bổ sung (nếu cần) ptử.
Số lượng các kí tự trong xâu là
độ dài của xâu.
Độ dài xâu bằng 0 gọi là xâu
Hỏi: Số lượng kí tự các xâu ở ví dụ trên là rổng.
bao nhiêu? -Xácđịnh và trả lời: - Xâu có một kí tự trống
a) 5 kí tự - Xâu rỗng
Hỏi: Xâu có một kí tự trống được viết như b) 8 kí tự, dấu cách là 1 kí tự
thế nào? số kí tự là bao nhiêu? c) 13 kí tự
Hỏi: Xâu rỗng được viết như thế nào? - Tl: ‘ ’, có độ dài là 1
- Tl: ‘’, có độ dài là 0

Giáo viên: Bùi Văn Tú 53


Giáo án tin học11

2. Hoạt động 2: (10 phút)Tìm hiểu về kiểu xâu


Hđ của GV Hđ của HS Nd ghi bảng
1.Y/cầu hs cho biết cách khai báo biến xâu 1. N/cứu sgk và trả lời 2. Khai báo
Hỏi: ý nghĩa của từ khoá string? Var <tên biến xâu>: string VAR tên_biến: STRING [độ
Và [<độ dài lớn nhất của xâu>] ? [<độ dài lớn nhất của xâu>] ; dài lớn nhất của xâu];
Tl: String là tên kiểu xâu
- [n] giá trị qui định số lượng kí
tự tối đa mà biến xâu có thể
chứa.
Ví dụ: Ví dụ:
Hỏi: Nhập xâu hoten chỉ có 20 kí tự được Var hoten: string[30]; i)Var hoten: string[30];
không? (t/tự 31 kí tự?) Var St: string; ii)Var St: string;
Hỏi: Khi khai báo không có [n] thì số lượng Tl:được (không)
kí tự là bao nhiêu?
* Y/cầu hs cho ví dụ - Số kí tự tối đa là 255
2. Tham chiếu đến từng kí tự của xâu
Y/cầu hs: Nhắc lại cách tham chiếu đến từng 2. Lắng nghe, quan sát bảng để * Tham chiếu đến từng kí tự
phần tử của mảng? trả lời. của xâu
- Giới thiệu cấu trúc chung Tên_biến_xâu[chỉ số]
- Y/cầu hs cho biết ý nghĩa của St[i]
Y/cầu hs tìm ví dụ khác Tl: St[i] p/tử thứ i của xâu St

3. Hoạt động 3: (25 phút)Các thao tác xử lí xâu


a. Nội dung:
- Phép ghép xâu: kí hiệu +
- Các phép so sánh: =, <>, >, <, <=, >=
- Các thủ tục: delete(), insert(), val(), str().
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Gợi nhớ các phép toán đã học 1. Chú ý theo dõi, suy nghĩ và 3. Các thao tác xử lí xâu
Y/cầu hs nhắc lại các phép toán đã học trên trả lời: a) Phép ghép xâu
kiểu dữ liệu chuẩn. P/toán số học (+) ghép nhiều xâu thành một
P/toán quan hệ (so sánh) Có thể t/hiện ghép đvới các
P/toán logic hằng xâu và biến xâu.
2. Phép ghép xâu: kí hiệu dấu cộng (+) 2. Suy nghĩ cho ví dụ Vd1:
Y/cầu hs cho biết kết quả các ví dụ? độ dài Vd: ‘My’+ ‘ ’+ ‘Computer’
xâu nhận được? ‘My Computer’ độ dài11 Vd2: s1:=‘pho co’
s2:=‘Hoi An’
3. Các phép so sánh St = ‘pho co-Hoi An’ St:=s1+’-’+s2;
Y/cầu hs nêu lại các phép so sánh? độ dài 11
Ở đây là chta so sánh các xâu với nhau 3. b) Các phép so sánh
Y/cầu hs cho biết kết quả các phép so sánh Nhớ lại và trả lời Giả sử A, B là 2 xâu
Vd1: +) A=B: A giống B hoàn toàn
Các phép so sánh được thực hiện theo thứ tự A:=’Xa hoi’; B:=’Xa hoi’; +) A>B kí tự đầu tiên khác
từ điển. A=B True nhau giữa chúng từ trái sang,
Vd2: A:= ‘Anh’; B:= ‘Ba’ mà trong A có mã ASCII lớn
A>B False hơn
Vd3: A=’hoa’; B=’hao’
A>B True

Giáo viên: Bùi Văn Tú 54


Giáo án tin học11

4. Các thủ tục 4. Chú ý lắng nghe c) Các thủ tục


Vd1: s=’Nui Thanh’ Tl: Delete(s,1,6) Delete(S,vt,N)
Để s chỉ còn ‘anh’ ta phải viết thủ tục delete()
thế nào?
Vd2: s2=’Nui Thanh’
Để s2 thành xâu ‘THPT Nui Thanh’ ta phải Tl: Insert(‘THPT ’,s2,1) Insert(s1,s2,vt)
chèn thêm gì vào xâu? Và chèn như thế nào? Trong đó vt, N là các số
* Ý nghĩa: ch/đổi xâu s thành số rồi gán cho ngdương
biến N, nếu ch/đổi thành công thì code = 0, Val (s,N,code)
nglại thì code chứa số chỉ vị trí kí tự đầu tiên Code =0, n=3.14 Vd: Val(’3.14’,n,code)
xuất hiện lỗi trong xâu s và giá trị N ko xác Code =3, n ko xác định Val(‘11A1’,n,code)
định
* Ý nghĩa: ch/đổi giá trị số N thành kiểu xâu, Str(N,st)
rồi gán cho biến st. st=’2008’ Vd: str(2008,st)
5. Kiểm tra kiến thức
Treo bảng y/cầu hs điền vào chổ trống (…)
Hs trả lời:
bảng1:
Insert(s1,s2,8) BẢNG 1
Insert(‘CDE’,s2,3) Xâu s1 ‘cua Me’
bảng2: Xâu s2 ‘Mua xuan’ ‘ABGHI’
Delete(st,7,9) Thao tác Insert(…,s2,…) Insert(…,s2,…)
N= kxđ, e=5 kết quả ‘Mua xuacua Me’ ‘ABCDEGHI’
BẢNG 2
Xâu st ‘Mua xuan cua Me’ ‘12.3A+02’
Thao tác Delete(st,…,…) Val (st,n,e)
kết quả st = ‘Mua xu’ n=…, e=…
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
Nội dung đã học
- Khái niệm xâu. Cách khai báo xâu, tham chiếu đến từng kí tự trong xâu.
- Các phép ghép, so sánh giữa các xâu, các thủ tục

Ngày soạn: 4/12/07


Tiết 28 KIỂU XÂU (tiết 2/2)
I. MỤC TIÊU
1. Kiến thức
- Biết được lợi ích của thủ tục và hàm liên quan đến xâu trong NNLT Pascal.
- Nắm được cấu trúc chung và chức nằng của một số hàm và thủ tục liên quan đến xâu trong NNLT Pascal.
2. Kĩ năng
Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: bảng phụ các ví dụ chbị sẵn, giáo án ,sgv, sgk
2. Học sinh: sgk
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Nêu câu hỏi: Lắng nghe câu hỏi và trình bày phần trả lời.
1. Khai báo một xâu có độ dài tối đa là 50 kí tự. 1. Var st:string[50];
2. Cho s1:=’hoa’; s2:=’Hoa’; 2. False
Biểu thức s1<s2 cho kết quả là gì?(True hay False )
Gọi 1 hs kiểm tra.

Giáo viên: Bùi Văn Tú 55


Giáo án tin học11

2. Hoạt động 2: (15 phút)Tìm hiểu ý nghĩa của các hàm xử lí trên xâu
a. Nội dung: Các hàm length(), copy(), pos(), upcase()
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
d) các hàm
+ Nêu ý nghĩa hàm length() Chú ý lắng nghe Length(s)
Length(st) = ?? Vd: + length(‘11A2’)=4
Length(‘’) =?? Tl: 9 + St:=’xuan xanh’
+Nêu ý nghĩa hàm copy() Tl: 0 Length(st)=9
+Nêu ý nghĩa hàm pos()
Pos(‘51’,s) = ?? Copy(S, vt, N)
+ Nêu ý nghĩa hàm Upcase() Vd: Copy(st, 1, 4) = ‘xuan’
Pos(s1,s2)
Treo bảng Tl: 8 Vd: S=’Lop co 51 hs’
* Y/cầu hs n/cứu và điền vào Pos(‘51’,s) = 8
chổ trống trong bảng Upcase(ch) , ch là 1 kí tự
Suy nghĩ và lên bảng điền kết quả và nội Vd: upcase(s[5])
dung còn thiếu vào bảng s=’Lop Co 51 hs’
BẢNG 3
Ví dụ 1 Ví dụ 2 Ví dụ 3 Ví dụ 4
Xâu st ‘Co 25 nu’ ‘Tong so 51 hs’ ‘Tong so 51 hs’ ’51 hs’
Thao tác length(st) pos(‘51’,st) Copy(st,…,…) Upcase(st[4])
kết quả … … ’51 h’ …

3. Hoạt động3: (20 phút)Vận dụng dữ liệu kiểu xâu để viết chtrình giải 1 số bài toán đơn giản
Hđ của GV Hđ của HS Nd ghi bảng
1. 4. Mộtsố ví dụ
Nêu bài toán ví dụ 1 (ghi bảng) Ghi lại đề bài, suy nghĩa và trả Vd1: Viết CT nhập vào họ
- Bài toán trên cần sử dụng kiểu dữ liệu gì để lời: tên đầy đủ của 2 người và
nhận giá trị là họ tên? - Kiểu xâu đưa ra màn hình xâu họ tên
- Cần sử dụng mấy biến xâu? - 2 biến lớn hơn.
Y/cầu hs viết khai báo các xâu? Lên bảng viết khai báo
Var a,b:string;
Y/cầu hs viết tiếp lệnh nhập giá trị cho xâu a, Lên bảng Var a,b:string;
b Readln(a); Readln(b); Begin
Chỉnh sửa lại phần nội dung hs viết được. Write(‘nhap ten ng 1’);
- Làm thế nào để xác định xâu lớn hơn? Viết Readln(a);
lệnh gì để đưa dữ liệu xâu ra màn hình? So sánh 2 xâu a và b Write(‘nhap ten ng 2’);
Tiểu kết: để nhập/xuất dữ liệu kiểu xâu vẫn Dùng lệnh write() Readln(b);
sử dụng lệnh read/write như kiểu dữ liệu If a>b then write(a)
chuẩn Else write(b);
2. Nêu bài toán ví dụ 2 End.
Y/cầu hs khai báo xâu S.
Ycầu hs viết lệnh nhậo giá trị cho xâu 2. Ghi lại đề bài toán
Var S:string; Vd2: Viết CT nhập vào xâu S
Begin bất kì, cho biết trong xâu sử
Làm thế nào để biết số kí tự ‘A’ có trong xâu? Write(‘nhap xau ’); readln(s); dụng bao nhiêu kí tự ‘A’?
Tl: duyệt qua tất cả các kí tự
Xâu S được nhập vào có bao nhiêu kí tự? trong xâu nếu kí tự nào =’A’ thì Var S:string; i,d:byte;
Tiểu kết: để duyệt qua tất cả các ptử trong đếm được 1 kí tự Begin
xâu ta vẫn dùng lệnh for Tl: Length(s) kí tự Write(‘nhap xau ’);
readln(s);d:=0;
For i:=1 to length(s) do
If s[i]=’A’ then inc(d);
Write(d:4);

Giáo viên: Bùi Văn Tú 56


Giáo án tin học11

End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
Các hàm xữ lí trên xâu, vận dụng kiểu xâu trong các bài toán đơn giản
2. Câu hỏi, bài tập về nhà
Xem trước bài: Bài thực hành sô5
Viết CT nhập vào xâu S bất kì. thực hiện xoá bỏ tất cả các kí tự trắng thừa có trong xâu.(Xâu sau khi loại
bỏ không còn 2 kí tự trắng liền kề nhau, đầu và cuối xâu không phải là kí tự trắng)

Ngày soạn: 9/12/07


Tiết 29, 30 BÀI THỰC HÀNH SỐ 5
I. MỤC TIÊU
1. Kiến thức
- Khắc sâu thêm phần kiến thức về lí thuyết kiểu xâu kí tự, đặc biệt là các thủ tục và hàm liên quan.
- Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một kí tự, …
2. Kĩ năng
- Khai báo biến kiểu xâu
- Nhập/xuất dữ liệu cho biến xâu
- Duyệt qua tất cả các kí tự của xâu
- Sử dụng các hàm thủ tục chuẩn
3. Thái độ: Tích cực chủ động trong thực hành
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Phòng máy vi tính, Projector để hướng dẫn
2. Học sinh: Sgk, bài tập ở nhà
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.
IV. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: (45 phút) Tìm hiểu chương trình, đề xuất phương án cải tiến
a. Mục tiêu: Hiểu được chtrình, tính được kết quả. Biết đề xuất phương án cải tiến.
b. Nội dung: Nhập một xâu, kiểm tra xem xâu đó có phải là một Palidrom hay không?
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Tìm hiểu đề bài 1. Quan sát đọc kĩ đề
- Giới thiệu đề bài lên bảng
Giải thích: Xâu Palidrom
-Y/cầu hs cho 2 ví dụ về xâu Palidrom và 1 ví dụ Phải: aabcbaa, 45654
không phải? Không phải: abccda
2. Tìm hiểu chtrình gợi ý 2. Quan sát chtrình suy nghĩ để hiểu
- Treo chtrình lên bảng chtrình.
- Kiểm tra xâu có phải là Palidrom
-Hỏi: Chtrình sau đây có chức năng làm gì? Kết hay không?
quả in ra màn hìnhn hư thế nào? Kq: ‘xau la palidrom’ hoặc ‘xau
khong la palidrom’
Chạy thử chtrình để hs kiểm nghiệm suy nghĩ -Quan sát gv thực hiện chtrình, nhập
của mình dữ liệu và kquả của chtrình.
3. Chú ý theo dõi y/cầu của gv, trả lời
3. Cải tiến chtrình một số cau hỏi dẫn dắt
- Nêu y/cầu mới: viết lại chtrình không sử dụng
biến trung p? - Kí tự thứ i đối xứng với kí tự thứ
Hỏi: kí tự thứ i đối xứng với kí tự vị trí nào? length(s) –i +1
Hỏi: cần so sánh bao nhiêu cặp kí tự trong xâu - Tối đa length(s) div 2
để biết xau đó là palidrom?

Giáo viên: Bùi Văn Tú 57


Giáo án tin học11

Hỏi: sử dụng cấu trúc nào để so sánh? - For hoặc While


- Thực hiện soạn thảo chtrình lên
-Y/cầu hs viết chtrinh hoàn chỉnh. máy theo yêu cầu cải tiến của gv
y/cầu hs nhập dữ liệu gv cho sẵn và thông báo - Nhập dữ liệu và thông báo kết quả.
kết quả.
- xác nhận những bài làm có kết quả đúng.

2. Hoạt động 2: (40 phút) Rèn luyện kĩ năng lập trình


a. Mục tiêu: Hs biết phân tích yêu cầu để viết một chtrình hoàn chỉnh
b. Nội dung: Viết CT nhập vào một xâu S bất kì và thông báo ra màn hình số lần xuất hiện trong S của mỗi chữ cái
tiếng Anh (không phân biệt chữ hoa và thường)

c. Các bước tiến hành:


Hđ của GV Hđ của HS Nd ghi bảng
1. Giới thiệu đề bài
- Giới thiệu đề bài lên bảng
-Y/cầu hs trả lời các câu hỏi để phân tích bài
toán
+Dữ liệu vào và dữ liệu ra của bài toán? +Vào:một xâu S
Ra:dãy các số ứng với sự xuất hiện
của mỗi loại kí tự trong xâu.
+T/toán: Duyệt xâu từ trái sang phải,
+Nhiêm vụ chính cần thực hiện khi giả quyết bài thêm 1 đơn vị cho kí tự đọc được
toán? +Cấu trúc dữ liệu:
Dem[‘A’.. ‘Z’]
+Cấu trúc dữ liệu cần sử dụng? +Upcase()

+ Ta phải sử dụng hàm gì? 2. Độc lập soạn chtrình vào máy
Bổ sung và sửa sai cho hs.
2. Y/cầu hs được lập viết chương trình hoàn - Tìm test
chỉnh theo thuật toán phát hiện ở trên - Nhập dữ liệu của gv thực hiện
- Y/cầu các em lập trình xong trước tìm một số chtrình và xem kết quả
bộ test - Thông báo kết quả
- Y/cầu hs nhập dữ liệu vào theo test của gv và
thông báo kết quả.
Xác nhận kết quả đúng của hs và sửa sai cho các
em có kết quả sai.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học: Một số thuật toán cơ bản liên quan đến xâu kí tự
2. Câu hỏi, bài tập về nhà
Xem trước bài: Kiểu bản ghi

Ngày soạn: 11/12/07


Tiết 31 KIỂU BẢN GHI
I. MỤC TIÊU
1. Kiến thức
- biết được khái niệm về bản ghi
- Phân biệt được sự giống và khác nhau giữa kiểu bản ghi và kiểu mảng 1 chiều
2. Kĩ năng
- Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi trong NNLT Pascal
- Nhập/xuất được dữ liệu cho bản ghi
- Thamchiếu đến từng trường của bản ghi
- Sử dụng kiểu bản ghi để giải quyết một số bài tập đơn giản
II. ĐỒ DÙNG DẠY HỌC

Giáo viên: Bùi Văn Tú 58


Giáo án tin học11

1. Giáo viên: Giáo án, Máy tính


2. Học sinh: sgk
III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
Viết CT nhập vào một xâu bất kì và cho biết trong Var S: string; i: integer;
xâu có bao nhiêu kí tự số? Begin
write(‘Nhap xau S ’); readln(S);
d:=0;
For i:=1 to length(s) do
If (s[i]>=’0’) and (s[i]<=’9’) then inc(d);
Write(d);
End.
2. Hoạt động 2: Giới thiệu kiểu bản ghi. Tạo một kiểu bản ghi trong NNLT Pascal.
Hđ của GV Hđ của HS Nd ghi bảng
1. Tìm hiểu kiểu bản ghi 1. Quan sát ví dụ sgk, trả lời câu
Y/cầu hs quan sát bảng kết quả thi TN hỏi:
sgk trang 74.
Hỏi: trên bảng có những thông tin gì? - Họ tên, ngày sinh, giới tính,
-bảng chứa thông tin của bao nhiêu đối điểm các môn thi.
tượng? - 3 đối tượng
-Y/cầu hs cho thêm ví dụ tương tụ. - Để mô tả 1 người trong danh
bạ điện thoại cần các thông tin:
* Mỗi thông tin của đtượng đgl 1 thuộc họ tên, địa chỉ, SĐT.
tính hay 1 trường của đtượng. Mỗi
đtượng đươc mô tả bằng nhiều thiông
tin trên một hàn đgl một bản ghi.
* Để mô tả các đtượng như vậy, NNLT
cho phép ta xác định kiểu bản ghi. một 1. Khai báo
đtượng được mô tả băng một bản ghi. Type <tênkiểu>=record
2. Y/cầu hs n/cứu sgk và cho biết cách <têntrường1>: <kiểu trường 1>;
khai báo kiểu bản ghi, khai báo biến …………….
kiểu bản ghi trong Pascal <têntrườngN>:<kiểu trườngN>;
Y/cầu: Tìm 1 vídụ để minh hoạ 2. Tham khảo sgk để năm cách End;
Để giải quyết bài toán trong mục 1 ta khai báo kiểu và biến kiểu bản Var <tên biến>: <tênkiểu>;
phải khai báo 1 mảng các bản ghi. Hãy ghi. Ví dụ:
tạo kiểu mảng? Type knguoi = record
Hoten:string;
Độc lập suy nghĩ, tạo kiểu bản Dchi:string;
ghi SDT:longint
Type kieu_hs =record End;
Hten,ngsinh:string; Var nguoi: knguoi;
Toan, van:byte;
Y/cầu hs so sánh giống và khác nhau Dtb:real;
của kiểu bản ghi và kiểu mảng 1 chiều. End;
Kieu_m=array[1..50] of
kieu_hs;
Var Lop:kieu_m;
Tl:
Giống: được ghép bởi nhiều
phần tử
Khác: mảng 1 chiều ghép bởi
nhiều ptử cùng kiểu,kiểu bản ghi
ghép nhiều ptử có kiểu dữ liệu

Giáo viên: Bùi Văn Tú 59


Giáo án tin học11

có thể khác nhau.


3. Hoạt động 3: Tìm hiểu cách sử dụng bản ghi trong NNLT Pascal
Hđ của GV Hđ của HS Nd ghi bảng
1. Giới thiệu cấu trúc chung, tham chiếu đến 1. Quan sát cấu trúc gv giới 2. Tham chiếu đến từng
từng trường của biến bản ghi thiệu trường của bản ghi
Y/cầu hs tìm vídụ về tham chiếu đến từng Tênbiến.têntrường
trường của biến bản ghi từ các khai báo ở Vd: Vd: Type knguoi = record
trên Nguoi.hoten Hoten:string;
Nguoi.dchi Dchi:string;
2. Gới thiệu 2 cách gán giá trị cho biến bản Nguoi.sdt SDT:longint
ghi 2. Quan sát 2 cách gán giá trị và End;
+Gán nguyên cảu biến bản ghi (1) tìm ví dụ cụ thể Var nguoi: knguoi;
+ Gán lần lượt từng trường (2) 3. Gán giá trị cho biến bản
Hỏi: trường hợp (1) thực hiện trong điều kiện ghi
nào? Tl: hai biến A, B được khai báo (1) A:=B
cùng 1 kiểu bản ghi. (2) A.ht:=B.ht;
3. Nhập/xuất dữ liệu chó biến bản ghi A.toan:=9;
* ta phải nhập/xuất giá trị cho từng trường. 3. Chú ý theo dõi sự dẫn dắt của A.dtb:=(A.toan+A.li)/2;
Y/cầu hs viết lệnh nhập giá trị cho 3 trường gv, ghi nhớ và tìm ví dụ.
của biến nguoi; lệnh in giá trị của trường Readln(Nguoi.hoten);
hoten của bản ghi nguoi Readln(Nguoi.dchi);
Readln(Nguoi.sdt);
Writeln(nguoi.hoten;)
4. Hoạt động 4: Rèn luyện kĩ năng lập trình
a. Nội dung: Viết CT giải quyết bài toán quản lí sau: Nhập họ và tên, điểm toán(toan) và điểm lý (ly) của 30 học
sinh trong lớp. In ra màn hình họ tên và điểm trung bình (dtb) của 30 học sinh đó (dtb=(toan+ly)/2)
b. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu nội dung đề bài 1. Đọc đề, phân tích để trả lời
Hỏi: Sử dụng kiểu dữ liệu như thế nào để câu hỏi.
giải quyết bài toán? -Một mảng các bản ghi
-Y/cầu hs mô tả thông tin của 1 hs bằng Type hs=record Type hs=record
kiểu bản ghi. Ten:string;Toan,li,tb:real; Ten:string;Toan,li,tb:real;
- Tạo mảng các bản ghi đó end; end;
Manghs=array[1..30] of hs; Manghs=array[1..30] of hs;
Var Lop:manghs; Var Lop:manghs;

- Y/cầu hs nếu các bước gải quyết bài


toán Các bước:
B1:Tạo kiểu dữ liệu, kbáo biến. BEGIN
B2: Nhập dliệu cho mảng các For i:=1 to 30 do
bản ghi, tính giá trị trường tb. begin
2. chia lớp thành 3 nhóm. y/cầu viết CT B3: đưa các t/tin theo y/cầu ra write(‘Hoc sinh ’,i);
lên bìa con. màn hình. (ten, tb) readln(lop[i].ten);
Thu bìa và treo lên bảng, gọi hs nhóm 2. Thảo luận nhóm và hoàn tất write(‘diem toan, ly ‘’);
khác nhận xét và đánh giá. CT,Nộp kết quả readln(lop[i].toan,lop[i].li);
Nhận xét, đánh giá và bổ sung lop[i].tb:=(lop[i].toan+lop[i].li)/2
3. Thông báo chtrình mẫu để hs chuẩn nhữ sau sót của nhóm khác. ;
hoá lại. 3. Quan sát và ghi nhớ end;
writeln(‘ Ho va ten |Diemtb ’);
For i:=1 to 30 do
Writeln(lop[i].ten:30,
lop[i].tb:8:2);
END.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)

Giáo viên: Bùi Văn Tú 60


Giáo án tin học11

1. Nội dung đã học


2. Câu hỏi, bài tập về nhà
Xem nội dung phụ lục B, sgk, trang 134: Câu lệnh With.

Ngày soạn: 15/12/07


Tiết 32-33 ÔN TẬP
I. MỤC TIÊU
1. Kiến thức
2. Kĩ năng
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên
2. Học sinh
III. PHƯƠNG PHÁP
IV. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (5 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS

2. Hoạt động 2:
a. Mục tiêu:
b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng

3. Hoạt động 3:
a. Mục tiêu:
b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng

4. Hoạt động 4:
a. Mục tiêu:
b. Nội dung:
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)


1. Nội dung đã học
2. Câu hỏi, bài tập về nhà
Xem trước bài:

KIỂM TRA HỌC KỲ I


I.TRẮC NGHIỆM (Hs khoanh tròn vào một phương án trả lời đúng cho mỗi câu)
1. Biểu diễn nào dưới đây là Hằng? A. begin B. E58 C. 12.4E-5 D. type
2. Kiểu dữ liệu nào dưới đây thuộc loại kiểu dữ liệu chuẩn:
A. Kiểu kí tự B. Kiểu xâu C. Kiểu mảng D. Kiểu bản ghi
3. Phép toán nào sử dụng trong biểu thức trả về giá trị True hoặc False
A. Phép toán số học B. Phép toán quan hệ và phép toán số học
C. Phép toán số học và phép toán logic D. Phép toán quan hệ và phép toán logic
4. Chương trình sau đây Đúng hay Sai? Vì sao?

Giáo viên: Bùi Văn Tú 61


Giáo án tin học11

Begin
Writeln(‘Chuc cac em thi tot!’); A. Sai, vì CT này không có phần khai báo
Write(‘Dat ket qua cao’); B. Đúng, vì CT này không cần khai báo
Readln C. Sai, vì CT này thiếu phần nhập giá trị
End. D. Sai, vì CT này thiếu phần tính toán
5. Chương trình dịch Pascal cấp phát bao nhiêu Byte bộ nhớ cho các biến trong khai báo sau:
Var A: array[1..10] of integer; A. 28 B. 36
I, N: real; q, b: word; C.5 D. 18
6. Giá trị của các biểu thức boolean sau đây là gì với N = 300, p = - 0.001,
q = 0.001, c = ‘5’
(1) 2*N <=500
(2) (abs(p) = q) and (c < ‘4’)
(3) Not (c > ‘7’)
A. False – False – True B. False – True – False
C. False – True – True D. False – False – False
7. Sau khi thực hiện đoạn chương trình sau thu được kết quả xâu S là gì?
begin
S := ‘GBCDEFA’;
T := S[1];
S[1] := S[length(S)];
S[length(S)] := T; A. ‘GBCDEFA’ B. ‘ABCDEFG’
end; C. ‘AGBCDEF’ D. ‘BCDEFAG’
8. Trong NNLT Pascal, hai xâu kí tự được so sánh dựa trên?
A. Độ dài tối đa của hai xâu
B. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải
C. Độ dài thực sự cảu hai xâu
D. Số lượng các kí tự khác nhau trong xâu
Hãy đọc kỹ đoạn chương trình sau:
Program timkiem;
Var m: array[1..100] of integer;
i, n, k: integer;
Begin Write('Ban can nhap bao nhieu so:'); Readln (n);
For i:=1 to n do
Begin
Write('Nhap so thu ',i,':'); Readln(m[i]);
End;
Write('Nhap so can tim:'); Readln(k);
i:=1;
While (m[i]<>k)and (i<=n)Do i:=i+1;
If i>n then Writeln ('Trong day ban da nhap khong co so nguyen nao bang
',k)
else Writeln('Trong day ban da nhap co so bang',k);
Readln;
End.
Và hãy trả lời các câu hỏi 9 và 10:
9. Trong chương trình trên có đoạn lệnh có sử dụng vòng lặp While …Do, chương trình trên thoát khỏi
vòng lặp khi:
A. m[ i ]=k B. (m[ i ]=k) hoặc( i>n) C. i>n D. (m[ i ]=k) và (i>n)
10. Giả sử khi chạy chương trình, ta tạo dữ liệu cho mảng m gồm các phần tử lần lượt là: 7, 5, 19, 54 và 20.
Và gán cho biến k mang giá trị 54. Vậy sau khi thực hiện xong chương trình, trên màn hình sẽ có dòng
thông báo:
A. Trong dãy bạn đã nhập có số bằng k B. Trong dãy bạn đã nhập có số bằng 54
C. Trong day ban da nhap co so bang k D. Trong day ban da nhap co so bang 54
II. TỰ LUẬN
1. Cho chương trình
Var i: byte;

Giáo viên: Bùi Văn Tú 62


Giáo án tin học11

Begin
For i:=1 to 35 do
If i mod 3 = 0 then write (i:4);
Readln
End.
a. Hãy viết lại chương trình bằng cách thay đổi cấu trúc FOR bằng cấu trúc WHILE.
b. Cho biết chương trình trên thực hiện công việc gì?
2. Viết CT tạo mảng A có N (N≤200) phần tử là số nguyên. In ra màn hình mảng vừa tạo. Tính và đưa ra màn hình
giá trị trung bình của các số nguyên dương lẻ có trong mảng A.

Giáo viên: Bùi Văn Tú 63

You might also like