Tải bản đầy đủ (.docx) (70 trang)

giao antin10

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

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Chương I - MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH</b>
<b>Bài 1: Khái niệm về lập trình và ngơn ngữ lập trình</b>


<b>A. MỤC TIÊU</b>


- Biết khái niệm lập trình và ngơn ngữ lập trình.


- Biết có ba 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.


- Hiểu khả năng của ngơn ngữ lập trình bậc cao, phân biệt được với ngơn ngữ máy và
hợp ngữ.


- 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.
<b>B. CHUẨN BỊ DẠY - HỌC</b>


- Giáo viên: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
- Học sinh: Sách giáo khoa, sách bài tập, vở ghi.


<b>C. TIẾN TRÌNH BÀI GIẢNG</b>
<i><b>1. Ổn định tổ chức:</b></i>


Lớp 11 11 11 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>
<i><b>3. Bài mới:</b></i>



<b>Nội dung</b> <b>Hoạt động của giáo viên - học sinh</b>


<i><b>Khái niệm lập trình:</b></i>


Lập trình là sử dụng cấu trúc dữ liệu và các


GV: Như ta đã biết, mọi bài toán đều có
thể giải được trên máy tính điện tử. Khi
giải bài tốn trên máy tính điện tử, sau các
bước xác định bài toán và xây dựng hoặc
lựa chọn thuật toán khả thi ta cần phải làm
thế nào để máy tính hiểu và thực hiện được
thuật toán đã lựa chọn để giải bài toán.
Theo các em ta phải làm thế nào?


HS: Cần diễn tả thuật toán bằng một ngơn
ngữ sao cho máy tính có thể hiểu và thực
hiện được (Tiếng Anh, Tiếng Việt, ...,
ngôn ngữ lập trình.).


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

câu lệnh của ngơn ngữ lập trình cụ thể để mơ
tả dữ liệu và diễn đạt các thao tác của thuật
tốn.


<i><b>Ngơn ngữ lập trình và phân loại:</b></i>


Ngôn ngữ dùng để viết chương trình máy
tính được gọi là ngơn ngữ lập trình.


Ngơn ngữ lập trình được chia làm 3 loại:


Ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao.
Ngơn ngữ máy: chương trình viết bằng ngơn
ngữ máy có thể được nạp trực tiếp vào bộ
nhớ và thực hiện ngay.


Hợp ngữ: rất gần với ngôn ngữ máy nhưng
mã lệnh được thay bằng tên viết tắt của thao
tác (thường là bằng tiếng Anh). Chương trình
viết bằng hợp ngữ phải được dịch ra ngơn
ngữ máy trước khi có thể thực hiện được trên
máy tính.


Ngơn ngữ bậc cao: là ngơn ngữ gần với ngôn
ngữ tự nhiên, có tính độc lập cao, ít phụ
thuộc vào loại máy. Chương trình viết bằng
ngơn ngữ bậc cao 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 trình dịch: Là chương trình đặc biệt
có chức năng chuyển đổi chương trình được
viết bằng ngơn ngữ bậc cao thành chương
trình thực hiện được trên máy tính (chương
trình viết bằng ngơn ngữ máy)


lập trình cụ thể gọi là lập trình.


u cầu HS phát biểu khái niệm lập trình.
HS: Phát biểu khái niệm lập trình.



GV: Kết quả của hoạt động lập trình là gì?
HS: Ta được một chương trình.


GV: Ý nghĩa của lập trình là gi?


HS: Tạo ra các chương trình giải được các
bài tốn trên máy tính.


GV: Em hiểu thế nào về ngôn ngữ lập
trình?


HS: Trả lời câu hỏi của GV.


GV: Hãy nêu các loại ngơn ngữ lập trình
mà em biết?


HS: ngơn ngữ máy, hợp ngữ, ngôn ngữ bậc
cao.


GV: Theo em ngôn ngữ máy, hợp ngữ và
ngôn ngữ bậc cao khác nhau như thế nào?
HS: trả lời câu hỏi của GV.


GV: Làm thế nào để chuyển một chương
trình viết từ ngôn ngữ bậc cao thành
chương trình viết trên ngơn ngữ máy?
HS: Trả lời câu hỏi củaGV.


GV: Vì sao người ta khơng lập trình trên
ngơn ngữ máy để khỏi mất cơng chuyển


đổi mà lại dùng ngôn ngữ bậc cao?


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Chương trình dịch được chia làm 2 loại:
thông dịch và biên dịch.


Thông dịch (interpreter): được thực hiện
bằng cách lặp lại dãy các bước sau:


+ Kiểm tra tính đúng đắn của câu lệnh tiếp
theo trong chương trình nguồn.


+ Chuyển đổi câu lệnh đó thành một hay
nhiều câu lệnh tương ứng trong ngôn ngữ
máy.


+ Thực hiện các câu lệnh vừa chuyển đổi
được.


Biên dịch (Compiler): được thực hiện qua 2
bước:


+ Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn
của các câu lệnh trong chương trình nguồn.
+ Dịch toàn bộ chương trình nguồn thành
một chương trình đích có thể thực hiện trên
máy và có thể lưu trữ để sử dụng lại khi cần
thiết.


GV: Giả sử em muốn giới thiệu về trường
của mình cho một du khách quốc tế biết


tiếng Anh. Em sẽ thực hiện như thế nào?
HS: Trả lời (dịch từng câu giới thiệu, dịch
cả bài giới thiệu rồi đọc).


GV: Em có thể cho biết ưu, nhược điểm
của mỗi cách?


HS: trả lời.


GV: Để dịch từ chương trình ngơn ngữ bậc
cao sang ngơn ngữ máy chương trình dịch
cũng thực hiện theo 2 cách tương tự như
vậy.


Yêu cầu HS nghiên cứu SGK để biết các
bước của q trình thơng dịch, biên dịch.
HS: Nghiên cứu SGK.


GV: Thơng dịch thích hợp với mơi trường
nào? Biên dịch thích hợp với mơi trường
nào? Cho ví dụ.


HS: Trả lời câu hỏi.


<i><b>4. Củng cố:</b></i>


+ Khái niệm lập trình và ngơn ngữ lập trình.


+ Có 3 loại ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ, ngôn ngữ bậc cao.
+ Tại sao người ta hay sử dụng ngơn ngữ lập trình bậc cao?



+ Khái niệm chương trình dịch


+ Phân biệt 2 loại chương trình dịch: Thơng dịch và biên dịch.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo SGK và vở ghi.


- Cho ví dụ về một số ngơn ngữ lập trình sử dụng kĩ thuật thông dịch, biên dịch?


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Ngày soạn: 24/08/2008


Tiết 2 - §2 Các thành phần của ngơn ngữ lập trình
<b>A. Mục tiêu cần đạt:</b>


<i>Kiến thức:</i>


- Biết ngơn ngữ lập trình có ba thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ
nghĩa. Hiểu và phân biệt được ba thành phần này.


- Biết một số khái niệm: tên, tên chuẩn, tên dành riêng (từ khóa), hằng và biến.
<i>Kỹ năng:</i>


- Phân biệt 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 và biến.


- Biết cách đặt tên đúng và nhận biết được tên sai qui định.
<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)


+ HS: Sách giáo khoa, sách bài tập, vở ghi,


<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS
<b>D. Tiến trình dạy học:</b>


1. Ổn định tổ chức:


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


+ Tại sao người ta phải xây dựng các ngơn ngữ lập trình bậc cao?
+ Biên dịch và thông dịch khác nhau như thế nào?


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Có những yếu tố nào để xây dựng nên ngôn
ngữ Tiếng Việt?


HS: Độc lập suy nghĩ và trả lời.
- Bảng chữ cái, số, dấu.


- Cách ghép các chữ cái thành từ, cách ghép các từ
thành câu.



- Nghĩa của từ và câu.


GV: Các ngôn ngữ khác (Anh, Pháp, ...) được xây
dựng từ những yếu tố nào?


HS: Trả lời.


GV: Phân tích các câu trả lời của học sinh và giới
thiệu kiến thức.


HS: Lắng nghe và ghi nhớ.


GV: Tổ chức cho HS hoạt động nhóm làm nhiệm
vụ:


- Nêu các chữ cái của bảng chữ cái Tiếng Anh?
- Các kí hiệu số sử dụng trong hệ đếm thập phân.
- Nêu một số kí hiệu đặc biệt khác?


GV: Phân tích các câu trả lời và cho ví dụ về bảng
chữ cái của ngôn ngữ Pascal.


HS: Nghe, quan sát và ghi nhớ.


GV: Các ngơn ngữ lập trình khác nhau thì bảng chữ
cái có sự khác nhau. Ví dụ trong Pascal khơng sử
dụng dấu ! nhưng trong ngơn ngữ C++ lại sử dụng
kí hiệu này.


GV: Trong ngơn ngữ tự nhiên, ví dụ Tiếng Việt có


các qui tắc về ngữ pháp thì trong ngơn ngữ lập trình
cũng có các qui tắc để viết chương trình gọi là cú
pháp.


Các ngơn ngữ lập trình khác nhau thì cú pháp cũng
khác nhau. Ví dụ ngôn ngữ Pascal dùng cặp từ
Begin – End để gộp nhiều lệnh thành 1 lệnh nhưng
C++ lại dùng cặp kí hiệu {}.


GV: Lấy ví dụ.


Mỗi ngơn ngữ khác nhau cũng có cách xác định ngữ
nghĩa khác nhau.


GV: Giới thiệu thêm:


<b>1. Các thành phần cơ bản:</b>


Mỗi ngôn ngữ lập trình thường có
ba thành phần cơ bản là bảng chữ
cái, cú pháp và ngữ nghĩa.


<i>a. Bảng chữ cái: là tập các kí tự</i>
được dùng để viết chương trình.
Khơng được phép dùng bất kì kí tự
nào ngồi các kí tự quy định trong
bảng chữ cái.


Ví dụ: Bảng chữ cái của ngơn ngữ
lập trình Pascal bao gồm: các chữ


cái in thường và in hoa của bảng
chữ cái Tiếng Anh, 10 chữ số thập
phân Ả Rập, các kí tự đặc biệt
(SGK T9)


<i>b. Cú pháp:là bộ quy tắc để viết</i>
chương trình.


<i>c. Ngữ nghĩa: Xác định ý nghĩa thác</i>
tác cần phải thực hiện, ứng với tổ
hợp kí tự dựa vào ngữ cảnh của nó.
Ví dụ:


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

+ Cú pháp cho biết cách viết chương trình hợp lệ,
ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự
trong chương trình.


+ Lỗi cú pháp được chương trình dịch phát hiện và
thơng báo cho người lập trình. Chương trình khơng
cịn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ
máy.


+ Lỗi ngữ nghĩa được phát hiện khi chạy chương
trình.


GV: Trong các ngơn ngữ lập trình nói chung, các
đối tượng sử dụng trong chương trình đều phải đặt
tên để tiện cho việc sử dụng. Việc đặt tên trong các
ngôn ngữ lập trình khác nhau là khác nhau, có ngơn
ngữ phân biệt chữ hoa, chữ thường, có ngơn ngữ


khơng phân biệt chữ hoa, chữ thường.


Hãy nghiên cứu SGK trang 10 và nêu quy cách đặt
tên trong ngôn ngữ Pascal.


HS: nghiên cứu SGK và trả lời.
GV: Đưa ra ví dụ. Trong Pascal:
Tên đúng: A, C21, PC_13, _23, _4c
Tên sai: A CD (chứa dấu cách)
6fh (Bắt đầu bằng chữ số)
X#Y (Kí tự # khơng hợp lệ)


GV: Ngơn ngữ nào cũng có 3 loại tên này nhưng tuỳ
theo ngôn ngữ mà các tên này có ý nghĩa khác nhau.
Trong khi soạn thảo chương trình, các ngơn ngữ lập
trình thường hiển thị các tên dành riêng với một
màu chữ khác hẳn với các tên cịn lại giúp người lập
trình nhận biết được các tên nào là tên danh riêng
(từ khố). Trong ngơn ngữ Pascal, từ khoá được
hiển thị bằng màu trắng.


HS: Nghe, quan sát và ghi.


GV: Các ngơn ngữ lập trình thường cung cấp một số
đơn vị chương trình có sẵn trong các thư viện
chương trình giúp người lập trình có thể thực hiện
nhanh một số thao tác thường dùng.


Ví dụ:



Trong Pascal: abs, integer, real, sqr, sqrt, longint,
byte, sin, cos, char, ....


Trong C++: cin, cout, getchar, ...
HS: Nghe, quan sát và ghi bài.


GV: Giới thiệu về tên do người lập trình tự đặt và
lấy ví dụ.


HS: Nghe và ghi bài.


(2)


Khi đó dấu + trong (1) sẽ là phép
cộng hai số thực, trong (2) là phép
cộng 2 số nguyên.


<b>2. Một số khái niệm:</b>
<i><b>a. Tên:</b></i>


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


Tên trong ngôn ngữ Pascal:


- là dãy liên tiếp (không có dấu
cách) khơng qua 127 kí tự.



- gồm chữ số, chữ cái hoặc dấu gạch
dưới (_).


- Bắt đầu bằng chữ cái hoặc dấu
gạch dưới.


Ngơn ngữ lập trình thường có 3 loại
tên cơ bản: Tên dành riêng, tên
chuẩn, tên do người lập trình đặt.
<i>Tên dành riêng: Là những tên đượ</i>
ngơn ngữ lập trình quy định với ý
nghĩa xác định mà người lập trình
khơng thể dùng với ý nghĩa khác.
Tên dành riêng cịn được gọi là từ
khố.


Ví dụ: Một số từ khố:


Trong Pascal: Program, Var, Uses,
Begin, End,...


Trong ngôn ngữ C++: main,
include, while, void, ...


<i>Tên chuẩn: Là những tên được ngơn</i>
ngữ lập trình dùng với ý nghĩa nhất
định nào đó. Tuy nhiên, người lập
trình có thể khai báo và dùng chúng
với ý nghĩa và mục đích khác.
Ý nghĩa của các tên chuẩn được quy


định trong các thư viện của ngơn
ngữ lập trình.


<i>Tên do người lập trình tự đặt: được</i>
xác định bằng cách khai báo trước
khi sử dụng. Các tên này không
được trùng với tên dành riêng và
không được trùng nhau.


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

GV: Giới thiệu khái niệm hằng trong ngôn ngữ lập
trình, các loại hằng, lấy ví dụ.


HS: Nghe và ghi.


GV: Yêu cầu HS cho ví dụ về hằng số học, hằng
xâu, hằng lơgic.


HS: Lấy ví dụ


GV: Biến là đối tượng được sử dụng nhiều nhất
trong khi viết chương trình. Biến là đại lượng có thể
thay đổi được nên thường được dùng để lưu trữ kết
quả, làm trung gian cho các tính tốn, ... Mỗi loại
ngơn ngữ có các loại biến khác nhau và cách khai
báo cũng khác nhau.


GV: Khi viết chương trình, người lập trình thường
có nhu cầu giải thích cho những câu lệnh mình viết,
để khi đọc lại được thuận tiện hoặc người khác đọc
có thể hiểu được chương trình, do vậy các ngơn ngữ


lập trình thương cung cấp cho ta cách để đưa các
chú thích vào trong chương trình.


- Ngơn ngữ lập trình khác nhau thì cách viết chú
thích cũng khác nhau.


<i>Hằng: là đại lượng có giá trị khơng</i>
thay đổi trong q trình thực hiện
chương trình.


Các ngơn ngữ lập trình thường có:
+ Hằng số học: là các số nguyên, số
thực.


+ Hằng lôgic: là giá trị đúng hoặc
sai tương ứng với True hoặc false.
+ Hằng xâu: là chuỗi kí tự trong bộ
mã ASCII đặt trong cặp dấu nháy ''
(Pascal), "" (C++).


<i>Biến: là đại lượng được đặt tên,</i>
dùng để lưu trữ giá trị và giá trị có
thể được thay đổi trong quá trình
thực hiện chương trình.


Các biến dùng trong chương trình
đều phải được khai báo.


<i><b>c. Chú thích:</b></i>



Trong khi viết chương trình có thể
viết các chú thích cho chương trình.
Chú thích không làm ảnh hưởng
đến chương trình nguồn và được
chương trình dịch bỏ qua.


Trong Pascal chú thích được đặt
trong { và } hoặc (* và *).


Trong C++ chú thích đặt trong /* và
*/.


<i><b>4. Củng cố:</b></i>


+ Các thành phần của ngơn ngữ lập trình: Bảng chữ cái, cú pháp, ngữ nghĩa.
+ Tên trong ngôn ngữ lập trình, các loại tên.


+ Hằng và biến.


+ Chú thích trong ngơn ngữ lập trình.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo SGK và vở ghi.


- Trả lời các câu hỏi và bài tập (SGK – Tr13)


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Tiết 3 – Bài tập
<b>A. Mục tiêu cần đạt:</b>



<i>Kiến thức:</i>


- Ôn tập các kiến thức đã học trong chương I.
<i>Kỹ năng:</i>


- Phân biệt được các thành phần của ngôn ngữ lập trình.
- Biết viết hằng và tên đúng trong ngơn ngữ lập trình Pascal.
<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS
<b>D. Tiến trình dạy học:</b>


1. Ổn định tổ chức:


Lớp 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


+ Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn?
+ Hãy tự viết ra 3 tên đúng theo quy tắc của Pascal?


<i><b>3. Bài mới:</b></i>



<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Hệ thống lại các kiến thức đã học
trong chương I:


+ Tại sao cần có chương trình dịch?
Chương trình dịch được chia thành mấy
loại?


+ Ngơn ngữ lập trình bao gồm các thành
phần nào?


+ Tên trong ngôn ngữ lập trình thường
gồm mấy loại? Là những loại nào?


+ Phân biệt hằng và biến?


GV: Đưa ra các câu hỏi và bài tập, yêu
cầu HS trả lời. Nếu HS gặp khó khăn thì
hướng dẫn.


HS: Trả lời các câu hỏi và bài tập theo sự
hướng dẫn của GV.


<b>Tóm tắt kiến thức:</b>


+ Cần có chương trình dịch để chuyển chương
trình nguồn thành chương trình đích. Có 2 loại
chương trình dịch: Thơng dịch và biên dịch.


+ Các thành phần của ngơn ngữ lập trình: bảng
chữ cái, cú pháp và ngữ nghĩa.


+ Mọi đối tượng trong chương trình đều phải
được đặt tên:


- Tên dành riêng: Được dùng với ý nghĩa riêng,
không được dùng với ý nghĩa khác.


- Tên chuẩn: Tên dùng với ý nghĩa nhất định,
khi cần dùng với ý nghĩa khác thì phải khai
báo.


- Tên do người lập trình đặt: cần khai báo trước
khi sử dụng.


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

1. Tại sao người ta phải xây dựng các
ngơn ngữ lập trình bậc cao?


2. Chương trình dịch là gì? Tại sao cần
phải có chương trình dịch?


3. Biên dịch và thơng dịch khác nhau như
thế nào?


4. Hãy cho biết sự khác nhau giữa tên
dành riêng và tên chuẩn?


5. Hãy tự viết ra ba tên đúng theo quy tắc
của Pascal.



6. Hãy cho biết những biểu diễn nào dưới
đây không phải là biểu diễn hằng trong
Pascal và chỉ rõ lỗi trong từng trường
hợp?


a. 150.0 b. -22 c. 6,23
d. ‘43’ e. A20 f. 1.06E-15
g. 4+6 h. ‘C k. 'TRUE'


+ Biến: Đại lượng được đặt tên. Giá trị của
biến có thể thay đổi trong q trình thực hiện
chương trình.


<b>Bài tập:</b>


1. - Ngơn ngữ bậc cao gần với ngôn ngữ tự
nhiên hơn, thuận tiện cho đơng đảo người lập
trình (khơng chỉ cho những người lập trình
chuyên nghiệp)


- Chương trình viết bằng ngơn ngữ bậc cao nói
chung khơng phụ thuộc vào phần cứng MT và
1 chương trình có thể thực hiện trên nhiều MT
khác nhau.


- Chương trình viết bằng ngơn ngữ bậc cao dễ
hiểu, dễ hiệu chỉnh và dễ nâng cấp.


- Ngôn ngữ bậc cao cho phép làm việc với


nhiều kiểu dữ liệu và cách tổ chức dữ liệu đa
dạng, thuận tiện cho mô tả thuật tốn.


2. Chương trình dịch là chương trình đặc biệt
có chức năng chuyển đổi chương trình được
viết trên ngôn ngữ lập trình bậc cao thành
chương trình thực hiện được trên MT cụ thể.
INPUT: chương trình nguồn (viết bằng ngơn
ngữ bậc cao)


OUTPUT: chương trình đích (viết bằng ngơn
ngữ máy).


3.


<i><b>Biên dịch</b></i> <i><b>Thơng dịch</b></i>


- Duyệt, kiểm tra, phát
hiện lỗi, xác định
chương trình nguồn có
dịch được khơng, dịch
toàn bộ chương trình
nguồn thành 1 chương
trình đích có thể thực
hiện trên máy và có thể
lưu lại để sử dụng về
sau khi cần thiết.


- 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.


4. - Tên dành riêng không được dùng khác với
ý nghĩa đã xác định.


- Tên chuẩn có thể dùng với ý nghĩa khác.


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

7. Hãy chọn những biểu diễn tên trong
những biểu diễn dưới đây:


a. ‘***’ b. -5+9-0 c. PpPpPp
d. +23.36 e. FA33C9 f. (2)


8. Trong những biểu diễn dưới đây, biểu
diễn nào là từ khoá trong Pascal?


a. END b. Integer c. Real
d. Sqrt e. ‘end’ f. Var


9. Tại sao phải kiểm tra tính đúng đắn của
chương trình viết bằng nhiều bộ dữ liệu
thử nghiệm khác nhau?


10. Trong 1 chương trình cịn lỗi cú pháp,
thơng thường chương trình biên dịch hay
thông dịch phát hiện ra lỗi nhanh hơn và


tại sao?


7. C, E


8. A, F


9. Chương trình có thể có nhiều nhánh và có
nhiều dạng lỗi ngữ nghĩa khác nhau.


10. Chương trình biên dịch phát hiện lỗi nhanh
hơn vì chương trình biên dịch kiểm tra lỗi cú
pháp trước khi dịch. Chương trình thơng dịch
vừa dịch vừa thực hiện từng câu lệnh, lỗi cú
pháp chỉ được phát hiện khi thực hiện tới câu
lệnh đó.


<i><b>4. Củng cố:</b></i>


+ Hệ thống các kiến thức trọng tâm của chương I.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Xem lại các bài tập đã chữa


- Đọc bài đọc thêm " Ngôn ngữ Pascal"


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

Ngày soạn: 3/9/2008


Tiết 4 - §3 Cấu trúc chương trình
<b> §4 Một số kiểu dữ liệu chuẩn</b>
<b> §5 Khai báo biến</b>



<b>A. Mục tiêu cần đạt:</b>
<i>Kiến thức:</i>


- Hiểu chương trình là sự mơ tả của thuật tốn bằng một ngơn ngữ lập trình.
- Biết cấu trúc của một chương trình Pascal: cấu trúc chung và các thành phần.
- Biết một số kiểu dữ liệu chuẩn: ngun, thực, kí tự, lơgíc và miền con.


- Hiểu được cách khai báo biến.
<i>Kỹ năng:</i>


- Nhận biết được các thành phần của một chương trình đơn giản.
- Xác định được kiểu cần khai báo của dữ liệu đơn giản.


- Biết cách khai báo đúng, nhận biết được các khai báo sai.
<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS
<b>D. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức:</b></i>


Lớp 11A5 11A6 11A7 11A8 Ghi chú


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<i><b>2. Kiểm tra bài cũ:</b></i>


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Khi viết một bài tập làm văn các em thường
viết theo cấu trúc mấy phần? Tại sao phải viết theo
cấu trúc như vậy?


HS: Viết theo cấu trúc 3 phần (mở bài, thân bài, kết
luận). Viết như vậy để dễ viết, dễ đọc, dễ hiểu nội
dung.


GV: Vậy một chương trình máy tính thường có mấy
phần?


HS: Đưa ra ý kiến.


GV: Giới thiệu cấu trúc chung của một chương
trình.


HS: Nghe và ghi bài.


GV: Ta đã biết 1 chương trình thường gồm 2 phần:
Phần khai báo và phần thân.Vậy trong phần khai
báo gồm những thành phần nào? Phần thân chương
trình gồm những thành phần nào? ngay sau đây
chúng ta sẽ tìm hiểu.


GV: Giới thiệu các loại khai báo và lấy ví dụ minh
họa.



HS: Nghe giảng và ghi chép bài.


GV: tất cả các biến dùng trong chương trình đều
phải đặt tên và phải khai báo cho chương trình dịch
biết để lưu trữ và xử lí. Biến chỉ nhận một giá trị tại


<b>I. Cấu trúc chương trình:</b>
1. Cấu trúc chung:


Một chương trình viết bằng ngôn
ngữ bậc cao thường gồm 2 phần:
phần khai báo và phần thân. Phần
khai báo có thể có hoặc khơng, phần
thân bắt buộc phải có.


Cấu trúc được mơ tả như sau:
[< phần khai báo>]


< phần thân >


2. Các thành phần của chương trình:
a. Phần khai báo:


Có thể có các khai báo cho: tên
chương trình, thư viện, hằng, biến
và chương trình con.


<i><b>Khai báo tên chương trình: Phần</b></i>
này có thể có hoặc khơng.



Trong Pascal:


<b>program <tên chương trình></b>
Ví dụ:


Program Vi_du;
<i><b>Khai báo thư viện: </b></i>
Trong pascal:


<b>Uses <tên thư viện>;</b>
Ví dụ: Uses Crt;
Trong C++:


<b>#include <tên thư viện></b>
Ví dụ: #include <conio.h>
<i><b>Khai báo hằng:</b></i>


Trong Pascal:const <tên hằng= giá
<i>trị>; </i>


Ví dụ: Const MaxN=1000;
PI=3.1416;
KQ='Ket qua';
Trong C++:


<b>const int MaxN=1000;</b>
<b>const float PI=3.1416;</b>
<b>const char* KQ="Ket qua";</b>
<i><b>Khai báo biến: </b></i>



b. Phần thân chương trình:


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

mỗi thời điểm thực hiện chương trình được gọi là
biến đơn. Cách khai báo biến ta sẽ tìm hiểu sau.
GV: Giới thiệu về các thành phần của phần thân
chương trình.


HS: Nghe giảng.


GV: Sau đây ta xét một ví dụ chương trình đơn
giản.


(sử dụng bảng phụ hoặc các chương trình viết sẵn
trên máy tính để minh họa và giải thích)


HS: Quan sát và nghe giảng.


GV: Khi viết chương trình quản lí học sinh ta cần
xử lí thơng tin ở những dạng nào?


HS: Họ tên: là các văn bản.
Đểm: là số thực


Số thứ tự: là số nguyên.


Một số thông tin khác lại chỉ cần biết chúng đúng
hay sai.


GV: phân tích các ý kiến và giới thiệu các kiểu dữ


liệu (sử dụng ngôn ngữ Pascal để minh họa).


HS: Quan sát, nghe giảng và ghi bài.


GV: Khai báo biến là một trong những khai báo
nằm trong phần khai báo của chương trình.


GV: Ở đây ta chỉ xét khai báo các biến đơn.


Sau đây ta tìm hiểu cách khai báo biến trong ngơn
ngữ lập trình Pascal.(GV giới thiệu cách khai báo
biến, lấy ví dụ và giải thích).


HS: Quan sát, nghe và ghi bài.


GV: Đưa ra một số khai báo (có cả đúng và sai).
Yêu cầu HS xác định khai báo nào là đúng, khai báo
nào là sai.


HS: Trả lời các câu hỏi của GV.


định bởi cặp dấu hiệu mở đầu và kết
thúc tạo thành thân chương trình.
Ví dụ: Trong Pascal:


<b>begin</b>


[<dãy lệnh>]
<b>end.</b>



3. Ví dụ chương trình đơn giản
(SGK):


<b>II. Một số kiểu dữ liệu chuẩn:</b>
Mỗi ngơn ngữ lập trình thường cung
cấp một số kiểu dữ liệu chuẩn cho
biết phạm vi giá trị có thể lưu
trữ,dung lượng bộ nhớ cần thiết để
lưu trữ và các phép toán tác động
lên dữ liệu.


Một số kiểu dữ liệu chuẩn thường
dùng cho các biến đơn trong Pascal:
<i>1. Kiểu nguyên</i>


<i>2. Kiểu thực</i>
<i>3. Kiểu kí tự:</i>
<i>4. Kiểu lơgíc:</i>
<b>III. Khai báo biến:</b>


Mọi biến dùng trong chương trình
đều cần khai báo tên và kiểu dữ
liệu. 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 trữ giá trị biến. Mỗi biến chỉ
được khai báo 1 lần.


Cách khai báo biến đơn trong
Pascal:



<b>var <DS biến> : <kiểu dữ liệu>;</b>
Trong đó:


+ DS biến là một hoặc nhiều biến,
các tên biến được viết cách nhau
bởi dẫy phẩy;


+ kiểu dữ liệu: là một trong các kiểu
dữ liệu chuẩn hoặc kiểu dữ liệu do
người lập trình định nghĩa.


Ví dụ 1:


<b>var a, b, c:integer;</b>
m, n: real;
Ví dụ 2:


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

GV:Nêu một số chú ý khi khai báo biến.
HS: nghe giảng.


N: word;
K: Boolean;


<i><b>4. Củng cố:</b></i>


+ Cấu trúc chung của một chương trình?. Các thành phần của một chương trình?
+ Các kiểu dữ liệu chuẩn của Pascal.


+ Cách khai báo biến trong Pascal.
<i><b>5. Hướng dẫn về nhà:</b></i>



- Học theo vở ghi và SGK.


- Nhớ các kiểu dữ liệu chuẩn và cách khai báo biến trong Pascal.


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


Ngày soạn: 7/9/2008


Tiết 5 - §6 Phép toán, biểu thức, câu lệnh gán.
<b>A. Mục tiêu cần đạt:</b>


<i>Kiến thức:</i>


- Biết các khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ.
- Hiểu lệnh gán


<i>Kỹ năng:</i>


- Viết được lệnh gán


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS
<b>D. Tiến trình dạy học:</b>



1. Ổn định tổ chức:


Lớp 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


Nêu ví dụ về khai báo 2 biến kiểu thực và 1 biến kiểu kí tự. Tính bộ nhớ cấp phát?


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: - Để mô tả các thao tác trong thuật tốn, mỗi
ngơn ngữ lập trình đều sử dụng một số khái niệm cơ
bản: phép toán, biểu thức, gán giá trị.


- Hãy kể tên các phép toán em đã học trong toán
học?


HS: - Phép toán: cộng, trừ, nhân, chia, lấy số dư,
chia lấy nguyên, so sánh.


GV: Trong ngôn ngữ lập trình Pascal cũng có các
phép tốn đó, nhưng được diễn đạt bằng một cách
khác.



- Yêu cầu HS nghiên cứu SGK và cho biết các
nhóm phép tốn?


HS:Nghiên cứu SGK và trả lời.


- Phép toán DIV, MOD được sử dụng cho những
kiểu dữ liệu nào?


HS: - Chỉ sử dụng được cho kiểu nguyên.


- Kết quả của phép toán quan hệ thuộc kiểu dữ liệu
nào?


HS: - Thuộc kiểu Logic.


GV: - Trong toán học ta đã làm quen với khái niệm
biểu thức, hãy cho biết yếu tố cơ bản xây dựng nên
biểu thức?


HS: Gồm 2 phần: toán hạng và toán tử.


GV: - Nếu trong một bài toán mà toán hạng là biến
số, hằng số hoặc hàm số và toán tử là các phép toán
số học thì biểu thức có tên gọi là gì?


HS: - Biểu thức số học.


GV: Giới thiệu khái niệm biểu thức số học trong lập


<b>1. Phép tốn:</b>



Các ngơn ngữ lập trình đều có
những phép tốn số học như cộng,
trừ, nhân, chia trên các đại lượng
thực, các phép toán chia nguyên và
lấy phần dư, các phép toán quan
hệ, ....


Kí hiệu các phép toán trong toán
học và trong Pascal (SGK).


<b>2. Biểu thức số học:</b>


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

trình và các quy tắc viết BT số học trong lập trình.
GV: Trong tốn học, một biểu thức số học gồm các
dấu ngoặc và các phép toán cộng, trừ, nhân, chia thì
thứ tự thực hiện các phép tốn như thế nào?


HS: Trong ngoặc trước, ngoài ngoặc sau; nhân chia
trước, cộng trừ sau.


GV: Trong lập trình thứ tự thực hiện các phép toán
cũng tương tự.


GV: - Sử dụng các phép toán số học, hãy biểu diễn
biểu thức toán học sau thành biểu thức trong ngơn
ngữ lập trình?


4a + 6xy : 5c
<i>xy</i>



<i>z</i> <sub> ; </sub>


2
2 2
1


<i>x y</i> <i>x</i>


<i>z</i>
<i>z</i>






HS: Thực hiện theo yêu cầu của GV.
GV: Nêu phần chú ý SGK (Tr 25).


GV: Trong toán học ta đã làm quen với một số hàm
số học, hãy kể tên một số hàm đó?


HS: - Hàm trị tuyệt đối, hàm căn bậc hai, hàm sin,
hàm cos.


GV: Các ngơn ngữ lập trình đều có thư viện chứa
một số chương trình tính giá trị của các hàm tốn
học thường dùng. Các chương trình như vậy được
gọi là các hàm số học chuẩn.



- Đưa bảng chứa một số hàm chuẩn, yêu cầu HS
điền thêm các thông tin như chức năng của hàm,
kiểu của đối số và kiểu của hàm số.


HS: - Quan sát, nghiên cứu SGK và lên bảng điền
vào bảng.


GV: Cho biểu thức


2 <sub>4</sub>
2


<i>b</i> <i>b</i> <i>ac</i>


<i>a</i>


  


, hãy biểu diễn
biểu thức trên sang biểu thức trong ngôn ngữ lập
trình?


HS: Lên bảng viết biểu thức.


GV: - Khi 2 biểu thức số học liên kết với nhau bằng
phép toán quan hệ ta được một biểu thức mới, biểu
thức đó gọi là biểu thức gì?


HS: - Gọi là biểu thức quan hệ.



GV: - Hãy lấy 1VD về biểu thức quan hệ?
HS: Lấy ví dụ.


GV: - Yêu cầu HS nghiên cứu SGK, cho biết cấu
trúc chung của biểu thức quan hệ?


HS: Ngiên cứu SGK và trả lời.


GV: - Thứ tự thực hiện biểu thức quan hệ?
HS: + Tính giá trị biểu thức


+ Thực hiện phép toán quan hệ


( và ).


* Quy tắc viết BT số học trong lập
trình:


+ Chỉ dùng cặo ngoặc trịn để xác
định trình tự tính tốn khi cần thiết.
+ Viết lần lượt từ trái qua phải.
+ Không được bỏ qua dấu nhân (*)
trong tích.


* Thứ tự thực hiện các phép tốn:
+ Thực hiện các phép tốn trong
ngoặc trước, ngồi ngoặc sau.


+ Thực hiện từ trái sang phải theo
thứ tự: *, /, DIV, MOD, +, -.



Ví dụ:


4*a+6*x*y/ 5*c
x*y/z


((x+y))/(1-(2/z)))+(x*x/(2*z))


<b>3. Hàm số học chuẩn:</b>


Một số hàm số học chuẩn thường
dùng:
<b>sqr(x)</b>
<b>sqrt(x)</b>
<b>abs(x)</b>
<b>ln(x)</b>
<b>exp(x)</b>
<b>sin(x)</b>
<b>cos(x)</b>
Ví dụ:


Trong toán học:
2 <sub>4</sub>
2


<i>b</i> <i>b</i> <i>ac</i>


<i>a</i>


  



Trong Pascal:


(-b+sqrt(b*b-4*a*c))/(2*a)
<b>4. Biểu thức quan hệ:</b>


Hai biểu thức cùng kiểu liên kết với
nhau bởi phép toán quan hệ cho ta
một biểu thức quan hệ.


Biểu thức quan hệ có dạng:


<i><BT1> <phép toán quan hệ></i>
<i><BT2></i>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

GV:- Cho biết kết quả của phép toán quan hệ thuộc
kiểu dữ liệu nào đã học?


HS: Kiểu lơgíc.


GV: Lấy thêm ví dụ và phân tích.
HS: Nghe giảng.


GV: Giới thiệu BT lôgic đơn giản và BT lôgic.
HS: Nghe và ghi bài.


GV: Hãy cho ví dụ về BT lơgic?
HS: Lấy ví dụ.


GV: Trong tốn học ta có biểu thức -10≤ x ≤ 15.


Hãy biểu diễn BT đó trong ngơn ngữ lập trình?
HS: Viết BT trong ngơn ngữ lập trình.


GV: giới thiệu về lệnh gán.


GV: Đưa ra các ví dụ về lệnh gán trong Pascal:
x:=1; x:= y*z; x:=x+1; a:=a-1;


Hãy cho biết cấu trúc của lệnh gán trong pascal?
HS: Trả lời câu hỏi.


GV: lấy thêm ví dụ và phân tích.
HS: Nghe giảng.


GV: Chức năng của lệnh gán?
HS: Suy nghĩ trả lời.


GV: Lưu ý HS: Kiểu của biểu thức phải phù hợp với
kiểu của biến. Lấy ví dụ và phân tích.


HS: Nghe giảng.


GV: Giới thiệu thêm VD
Var i, m: integer;
Begin


m:= 4; i:= 6; m:= m- 1; i:= i+ 1;
writeln (‘i= ’, i); writeln (‘m= ’, m);
readln;



End.


- Chương trình in ra màn hình giá trị bằng bao
nhiêu? (In ra màn hình m= 3 và i= 7).


x<5
i+1>=2*j


Trình tự thực hiện của BT quan hệ:
+ Tính giá trị của các biểu thức.
+ Thực hiện phép toán quan hệ.
Kết quả giá trị của BT quan hệ: kiểu
lơgíc.


<b>5. Biểu thức lôgic:</b>


Biểu thức lôgic đơn giản: 1 biến
lôgic hoặc 1 hằng lôgic.


Biểu thức lôgic: các biểu thức lôgic
đơn giản, các biểu thức quan hệ liên
kết với nhau bởi phép tốn lơgic.
Giá trị của BT lơgic: True hoặc
<i><b>False</b></i>


Ví dụ:


(A < B) and (X = Y0)
(5 < 13) or ((4 * 2 - 6) > 10)
(-10 <= x) AND (x <= 15)


<b>6. Câu lệnh gán:</b>


Lệnh gán là một trong những lệnh
cơ bản nhất của các ngơn ngữ lập
trình.


Lệnh gán trong Pascal:
<i><tên biến> := <biểu thức>;</i>


Chức năng: đặt cho biến có tên ở vế
trái dấu ":=" giá trị bằng giá trị của
biểu thức ở vế phải.


Ví dụ:


x1:= -b/a – x2;
k:=k+1;


m:=m-2;


<i><b>4. Củng cố:</b></i>


- Các phép toán trong Turbo Pascal: Số học, Quan hệ, Logic.
- Các biểu thức trong Turbo Pascal: Số học, Quan hệ, Logic.
- Cấu trúc lệnh gán trong Turbo Pascal: tên_biến:= biểu_thức;
<i><b>5. Hướng dẫn về nhà:</b></i>


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>TỔ TRƯỞNG KÝ DUYỆT</b>
Ngày soạn: 9/9/2008



Tiết 6 - §7 Các thủ tục chuẩn vào/ra đơn giản
<b>§8 Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình</b>
<b>A. Mục tiêu cần đạt:</b>


<i>Kiến thức:</i>


- Biết các lệnh vào/ra đơn giản để nhập thông tin từ bàn phím và đưa thơng tin ra màn
hình.


- Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình.
- Biết một số cơng cụ của mơi trường Turbo Pascal.


<i>Kỹ năng:</i>


- Viết được 1 số lệnh vào/ra đơn giản


- Bước đầu sử dụng được chương trình dịch để phát hiện lỗi.


- Bước đầu chỉnh sửa được chương trình dựa vào thơng báo lỗi của chương trình dịch và
tính hợp lí của kết quả thu được.


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS
<b>D. Tiến trình dạy học:</b>



1. Ổn định tổ chức:


Lớp 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


Viết biểu thức toán học dưới đây trong Pascal:
2


1 <i>x</i> <i>xy</i>
<i>yz</i>


 


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: - Khi giải quyết 1bài toán ta phải đưa dữ liệu
vào MT xử lý, việc đưa dữ liệu bằng lệnh gán làm
cho chương trình chỉ có tác dụng với 1 dữ liệu cố
định. Để chương trình giải quyết được nhiều bài
toán, ta phải sử dụng thủ tục nhập dữ liệu.


- Yêu cầu HS nghiên cứu SGK và cho biết cấu trúc
chung của thủ tục nhập dữ liệu trong ngôn ngữ lập


trình Pascal.


HS: Read/ Readln (<tên_biến1>, …,


Các thủ tục chuẩn vào/ra đơn giản của
Pascal để nhập dữ liệu vào từ bàn phím
và đưa thơng tin ra màn hình.


<b>1. Nhập dữ liệu vào từ bàn phím:</b>
<i><b>Read(tên biến1, tên biến2,..., tên biến</b></i>
<i>k);</i>


<i><b>Readln(tên biến1, tên biến2, ..., tên</b></i>
<i>biến k);</i>


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<i><tên_biếnk>);</i>


GV: Khi viết chương trình giải phương trình ax + b
= 0, ta phải nhập vào các đại lượng nào? Viết lệnh
nhập?


HS: - Phải nhập giá trị cho 2 biến a và b.
Read(a, b);hoặc Readln(a, b);


GV: Lấy ví dụ và giải thích. Cho thực hiện 1
chương trình trên máy tính và hướng dẫn cách nhập
dữ liệu.


HS: Nghe giảng và quan sát.



GV: - Sau khi xử lý xong, kết quả tìm được đang
được lưu trong bộ nhớ. Để thấy được kết quả trên
màn hình ta sử dụng thủ tục xuất dữ liệu.


- Yêu cầu HS nghiên cứu SGK và cho biết cấu trúc
chung của thủ tục xuất dữ liệu trong ngôn ngữ
Pascal?


HS: - Nghiên cứu SGK và trả lời.


<i>Write/ Writeln (<tham_số1>, …, tham_sốk>);</i>
GV: Lấy ví dụ và phân tích.


HS: Nghe giảng.


GV: Khi viết chương trình giải phương trình ax + b
= 0, ta phải đưa ra màn hình giá trị của nghiệm –b/
a, ta phải viết lệnh như thế nào?


HS: - Viết lệnh Writeln (-b/ a);


GV: Chiếu 1 chương trình Pascal.Yêu cầu HS xác
định các phần: Khai báo, thân chương trình. Giải
thích ý nghĩa của các lệnh trong chương trình.
HS: Trả lời câu hỏi của GV.


GV: Phân tích và giải thích chương trình. Chạy
chương trình để cho HS quan sát.


HS: Nghe và quan sát.



GV: Tiếp tục chiếu chương trình Pascal:
<i>Program VD;</i>


<i>Var x, y, z: real;</i>
<i>Begin</i>


<i>Writeln (‘ Nhap 2 so: ’); Readln (x, y);</i>
<i>z:= x + y;</i>


<i>Writeln (x:8:3,' + ',y:8:3,' = ' ,z:8:3);</i>
<i>Readln</i>


<i>End.</i>


Chạy chương trình, thay đổi kiểu dữ liệu, qui cách
in ra để HS quan sát và cho nhận xét.


HS: Quan sát và nhận xét.


GV: nêu chú ý (SGK – Tr31). Lấy thêm ví dụ và
giải thích.


HS: Nghe giảng và theo dõi SGK.


read(N);
readln(a, b, c);


<b>2. Đưa dữ liệu ra màn hình:</b>
<i><b>write(<danh sách kết quả>);</b></i>


hoặc


<i><b>writeln(<danh sách kết quả>);</b></i>


trong đó: danh sách kết quả có thể là
tên biến đơn, biểu thức hoặc hằng.
Ví dụ:


write('Hay nhap gia tri M: ');
readln(M);


write('Nhap so nguyen duong N<=
100: ');


readln(N);


Ví dụ: Chương trình có sử dụng các
thủ tục vào/ra:


<i>Program Vidu;</i>
<i>Var N:byte;</i>
<i>Begin</i>


<i>Write(‘Lop ban co bao nhieu nguoi?</i>
<i>’); </i>


<i>Readln(N);</i>


<i>Writeln ('Vay la ban co ',N-1,' nguoi</i>
<i>ban trong lop .' );</i>



<i>Writeln ('Go ENTER de ket thuc</i>
<i>chuong trinh.' );</i>


<i>Readln</i>
<i>End.</i>


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

GV: Để sử dụng được TP, trên máy phải có các file
chương trình cần thiết. Tham khảo SGK và cho biết
tên các file chương trình đó?


HS: Nghiên cứu SGK và trả lời.


GV: Khởi động Turbo Pascal và giới thiệu về màn
hình làm việc của Pascal.


HS: Quan sát và nghe giảng.


GV: Sử dụng máy chiếu để hướng dẫn học sinh
cách soạn, lưu, dịch, thực hiện và hiệu chỉnh
chương trình trong Pascal.


HS: Quan sát và nghe giảng.


GV: Đưa ra 1 chương trình có lỗi. Thực hiện dịch
-> phát hiện lỗi cú pháp và yêu cầu HS sửa lỗi.
HS: Quan sát và sửa lỗi.


GV: Cho thực hiện chương trình đã sửa hết lỗi để
HS quan sát.



HS: Nghe giảng và quan sát.


GV: Giới thiệu chương trình giải phương trình bậc
nhất ax + b = 0.


<i>Program PT_bac1;</i>
<i>Var </i>


<i>Begin</i>


<i>Readln (a, b);</i>


<i>If a<> 0 then write (-b/ a)</i>
<i> Else write (‘PTVN’);</i>
<i>Readln;</i>


<i>End.</i>


- Yêu cầu HS tìm Test để chứng minh chương trình
này sai? (a = 0, b = 0 --> PT vô số nghiệm).


<b>3. Làm quen với môi trường Turbo</b>
<b>Pascal:</b>


Các tệp tin cần có để chạy Turbo
Pascal: turbo.exe, turbo.tpl,
<b>graph.tpu, egavga.bgi.</b>


Màn hình làm việc của Pascal:


+ Thanh tiêu đề


+ Thanh bảng chọn


+ Tên tệp chương trình hiện hành.
+ Con trỏ, tọa độ của con trỏ (dòng,
cột)


+ Vùng soạn thảo.
+ Phím chức năng.
<b>4. Làm việc với Pascal:</b>


+ Soạn thảo: Như soạn thảo văn bản.
+ Lưu chương trình: Nhấn F2, nhập
tên tệp rồi ấn ENTER.


+ Biên dịch chương trình: Alt + F9.
+ Chạy chương trình: Ctr + F9.


+ Đóng cửa số chương trình: Alt + F3.
+ Thốt khỏi Pascal: Alt + X.


<i><b>4. Củng cố:</b></i>


- Nhập dữ liệu: Read/ Readln (<danh_sách_biến_vào>);
- Xuất dữ liệu: Write/ Writeln (<danh_sách_kết_quả_ra>);


- Khởi động TP. Soạn chương trình. Dịch lỗi cú pháp. Thực hiện chương trình. Tìm lỗi
thuật tốn và hiệu chỉnh.



- Viết chương trì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?
<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo vở ghi và SGK.


- Ơn lại tồn bộ các kiến thức đã học.


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

<b>TỔ TRƯỞNG KÝ DUYỆT</b>


Ngày soạn: 15/9/2008


Tiết 7 – Bài tập và thực hành 1 (T1)
<b>A. Mục tiêu cần đạt:</b>


<i>Kiến thức:</i>


- Biết viết một chương trình Pascal hồn chỉnh đơn giản;


- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện
chương trình.


<i>Kỹ năng:</i>


- Soạn được chương trình, lưu lên đĩa, dịch lỗi cú pháp, thực hiện, tìm lỗi thuật tốn và
hiệu chỉnh.


- Bước đầu biết phân tích và hồn thành 1 chương trình đơn giản trên Pascal.
<i>Thái độ: Tự giác, tích cực và chủ động trong thực hành.</i>


<b>B. Phương tiện dạy học:</b>



+ GV: Sách giáo khoa, sách giáo viên, phịng máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>D. Tiến trình dạy học:</b>


1. Ổn định tổ chức:


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>
GV: Chiếu nội dung chương trình giải phương trình


bậc 2 một ẩn số (SGK – T34) lên màn hình. Yêu
cầu HS thực hiện các nội dung:


a). Soạn chương trình vào máy.


b). Lưu chương trình lên đĩa với tên PTB2.PAS
c). Dịch (nhấn Alt+F9) và sửa lỗi cú pháp (nếu có).
d). Thực hiện chương trình (nhấn Ctrl + F9). Nhập
dữ liệu 1 -3 2, quan sát kết quả thơng báo trên
màn hình.



e). Trở về màn hình soạn thảo.


f) Thực hiện lại chương trình. Nhập dữ liệu 1 0 -2,
quan sát kết quả thơng báo trên màn hình.


g). Sửa lại chương trình trên sao cho khơng dùng
biến D. Thực hiện chương trình đã sửa với các bộ
dữ liệu trên.


h). Sửa lại chương trình nhận được ở câu c) bằng
cách thay đổi cơng thức tính x2.


i) Thực hiện chương trình đã sửa với bộ dữ liệu 1;
-5; 6. Quan sát kết quả trên màn hình.


k) Thực hiện chương trình với bộ dữ liệu 1; 1; 1
và quan sát kết quả trên màn hình.


HS: Thực hiện lần lượt từng yêu cầu theo sự hướng
dẫn của GV.


GV: Quan sát, uốn nắn HS các thao tác soạn thảo,
dịch, sửa lỗi và thực hiện chương trình. Thực hiện
thay đổi các thơng số về quy cách đưa dữ liệu dạng
số ra màn hình cho HS quan sát.


HS: Nghe giảng và quan sát.


<b>Nội dung:</b>



Chương trình giải phương trình bậc hai
một ẩn số:


<b>program Giai_PTB2;</b>
<b>uses crt;</b>


<b>var a, b, c, D:real;</b>
x1, x2:real;
<b>begin</b>


clrscr;


write('a, b, c: ');
readln(a,b,c);
D:=b*b - 4*a*c;


x1:= (-b – sqrt(D))/(2*a);
x2:= -b/a – x1;


write('x1 = ',x1:6:2, ' x2 =
',x2:6:2);


readln
<b>end.</b>


<i><b>Sửa: readln(a,b,c);</b></i>


x1:= (-b – sqrt(b*b - 4*a*c))/
(2*a);



x2:= -b/a – x1;


write('x1 = ',x1:6:2, ' x2 =
',x2:6:2);


readln(a,b,c);
D:=b*b - 4*a*c;


x1:= (-b – sqrt(D))/(2*a);
x2:= (-b + sqrt(D))/(2*a);


write('x1 = ',x1:6:2, ' x2 =
',x2:6:2);


Thực hiện chương trình với bộ dữ liệu
1; 1; 1 thì xuất hiện thơng báo lỗi vì lí
do đã u cầu thực hiện tính căn bậc 2
của số âm.


<i><b>4. Củng cố:</b></i>


- Các bước để hồn thành 1 chương trình:


+ Phân tích bài tốn để xác định dữ liệu vào, dữ liệu ra.
+ Xác định thuật tốn.


+ Soạn chương trình vào máy.
+ Lưu chương trình.


+ Biên dịch chương trình.



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<i><b>5. Hướng dẫn về nhà:</b></i>


- Ơn lại tồn bộ các kiến thức đã học.


- Viết chương trình nhập vào độ dài cạnh của một tam giác. Tính chu vi, diện tích của tam
giác đó?


- Tìm hiểu thêm về mơi trường Pascal thông qua phụ lục B (SGK Tr 122 – 128)


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


Ngày soạn: 17/9/2008


Tiết 8 – Bài tập và thực hành 1 (T2)
<b>A. Mục tiêu cần đạt:</b>


<i>Kiến thức:</i>


- Biết viết một chương trình Pascal hồn chỉnh đơn giản;


- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện
chương trình.


<i>Kỹ năng:</i>


- Soạn được chương trình, lưu lên đĩa, dịch lỗi cú pháp, thực hiện, tìm lỗi thuật tốn và
hiệu chỉnh.


- Bước đầu biết phân tích và hồn thành 1 chương trình đơn giản trên Pascal.


<i>Thái độ: Tự giác, tích cực và chủ động trong thực hành.</i>


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, phịng máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>D. Tiến trình dạy học:</b>


1. Ổn định tổ chức:


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>
<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Chiếu lên màn hình hình vẽ và yêu cầu:


Viết chương trình tính diện tích phần hình được tơ
màu với a nhập từ bàn phím.


GV: Phân tích bài tốn và hướng dẫn HS xác định
thơng tin vào/ra của bài tốn.



HS: Xác định Input/Output của bài toán.


GV: Nêu cách tích diện tích phần hình được tơ
màu.


HS: Nêu cách tính.


GV: Hướng dẫn HS phân tích dữ liệu vào/ra từ đó
xác định được số biến cần dùng, kiểu của các biến.
HS: Nghe giảng và làm theo hướng dẫn của GV.
GV: Yêu cầu HS viết chương trình và soạn thảo
vào máy. Dịch, sửa lỗi và thực hiện chương trình
với a = 3 (a = -3). Quan sát, kết quả trên màn hình.
HS: Thực hiện theo yêu cầu của GV.


GV: Chiếu lên màn hình bài tập số 2.


GV: Phân tích bài tốn và hướng dẫn HS xác định
thơng tin vào/ra của bài toán.


HS: Xác định Input/Output của bài toán.
GV: Nêu cách tích?


HS: Nêu cách tính.


GV: Hướng dẫn HS phân tích dữ liệu vào/ra từ đó
xác định được số hằng, biến cần dùng, kiểu của các


<b>Bài tập 1:</b>



<b>Input: bán kính a của đường trịn.</b>
<b>Output:Diện tích phần hình được tơ</b>
màu.


<b>Cách tính:</b>


+ Tính diện tích hình trịn bán kính a
(S1)


+ Tính diện tích của hình vng cạnh
<i>a</i>

2 (S2)


+ Diện tích phần tơ màu: S1 – S2.
<b>Chương trình:</b>


<b>program Bai1;</b>
<b>uses crt;</b>


<b>var a, s: real;</b>
<b>begin</b>


clrscr;


write('Nhap ban kinh hinh tron a = ');
readln(a);


S:=pi*a*a – sqr(a*sqrt(2));
writeln('Dien tich: ',S:9:2);
readln



<b>end.</b>


<b>Bài tập 2: Lập trình tính và đưa ra</b>
màn hình vận tốc v khi chạm đất của
một vật rơi từ độ cao h, biết rằng
<i>v</i>=

<sub>√</sub>

2 gh , trong đó g là gia tốc rơi tự


do và g = 9,8 m/s2<sub>. Độ cao h (m) được</sub>


<b>a</b>
<b>a</b>


-<b> a</b>


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

biến.


HS: Nghe giảng và làm theo hướng dẫn của GV.
GV: Yêu cầu HS viết chương trình và soạn thảo
vào máy. Dịch, sửa lỗi và thực hiện chương trình
với h = 3 Quan sát, kết quả trên màn hình.


HS: Thực hiện theo yêu cầu của GV.


nhập vào từ bàn phím.
<b>Input: Độ cao h.</b>
<b>Output:vận tốc v.</b>
<b>Cách tính:</b>


+ Tính theo cơng thức <i>v</i>=

2 gh
<b>Chương trình:</b>


<b>program Bai2;</b>
<b>uses crt;</b>


<b>const g = 9.8;</b>
<b>var h, v: real;</b>
<b>begin</b>


clrscr;


write('Nhap do cao h = ');
readln(h);


v := sqrt(2*g*h);


writeln('Van toc khi cham dat la: ',
v:9:2, ' m/s ');


readln
<b>end.</b>
<i><b>4. Củng cố:</b></i>


- Hệ thống nội dung bài giảng.


- Nhấn mạnh các lỗi HS hay mắc, cách khắc phục
- Nhận xét giờ thực hành, rút kinh nghiệm.


<i><b>5. Hướng dẫn về nhà:</b></i>


- Ôn lại toàn bộ các kiến thức đã học.



- Trả lời các câu hỏi và làm bài tập SGK Tr– 35,36.


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Tiết 9 – Bài tập
<b>A. Mục tiêu cần đạt:</b>


<i><b>Kiến thức:</b></i>


- Củng cố những nội dung đã đạt được ở tiết thực hành 1.
<i><b>Kỹ năng:</b></i>


- Biết sử dụng các thủ tục chuẩn vào/ra
- Biết xác định Input và Output


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, SBT, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi học và làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS:Nêu vấn đề, HĐ nhóm.
<b>D. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức</b></i>:


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy


Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


Kết hợp kiểm tra trong giờ.
<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Đưa ra các câu hỏi để HS được củng cố
lại các kiến thức đã được học ở chương II.
HS: Trả lời các câu hỏi của GV.


<i><b>I. Nhắc lại các kiến thức cơ bản:</b></i>
- Cấu trúc chương trình:


<i> [<Phần khai báo>]</i>
<i> <Phần thân></i>


- Một số kiểu dữ liệu chuẩn thường dùng
trong Pascal: Kiểu nguyên (Integer, Byte,
Word, Longin), Kiểu thực (Real,
Extended), Kiểu kí tự (Char), Kiểu Logic
(Boolean)


- Khai báo biến:


<Tên biến> : <Kiểu dữ liệu>;
Các biến đều phải được khai báo, mỗi biến
chỉ khai báo 1lần.



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

GV: Treo bảng ghi thông tin bài tập 4 (hoặc
chiếu lên màm hình). Yêu cầu HS cho nhận
xét về kiểu mà X, P có thể nhận. Từ đó lựa
chọn được đáp án đúng và tìm ra đáp án tốt
hơn.


HS: Suy nghĩ và trả lời câu hỏi.


GV: Treo bảng ghi nội dung bài tập 5 (hoặc
chiếu lên màn hình).


- Diện tích của hình vng cạnh A sẽ nhận
các giá trị trong phạm vi nào? (10000 đến
40000)


- Khai báo nào chứa được các giá trị trong
phạm vi đó?


- Khai báo nào là tốt nhất vì sao?


GV: Yêu vầu HS nhắc lại cách viết biểu thức
toán học thành biểu thức trong Pascal.


HS: Trả lời câu hỏi của GV.


GV: Yêu cầu HS lên bảng viết biểu thức.
HS: lên bảng làm bài tập.


GV: Treo nội dung bài tập 7 (hoặc chiếu lên


màn hình). Với mỗi phần GV yêu cầu HS xác
định thứ tự thực hiện phép tính trên các biểu
thức từ đó biết cách chuyển sang biểu thức
toán học.


HS: 4 học sinh lên bảng viết biểu thức.


GV: Treo hình ghi nội dung thơng tin bài tập
8 (hoặc chiếu lên màn hình).Với mỗi hình
GV yêu cầu Hs nhận xét và chỉ ra các đặc


+ Lệnh gán dùng để gán giá trị của biểu
thức cho biến:


<Tên biến>:= <Biểu thức>;


+ Các thủ tục chuẩn dùng để đưa dữ liệu
vào và ra:


<i>READ/ READLN (Danh sách vào);</i>
<i>WRITE/ WRITELN (Danh sách ra);</i>
<i><b>II. Bài tập:</b></i>


Bài tập 4 (SGK – Tr35):


Khai báo đúng là các khai báo ở các câu b
và d. Tuy nhiên khai báo của câu d tốt hơn.


Bài tập 5 (SGK – Tr 35):



- Vì cạnh A chỉ nhận các giá trị nguyên
trong phạm vi từ 100 đến 200 nên các khai
báo b, c, d đều đúng.


- Cách khai báo c là tốt nhất vì tiết kiệm bộ
nhớ cần lưu trữ.


Bài tập 6 (SGK – Tr35):


(1+z)*((x+y/z)/(a-1/(1+x*x*x)))


Bài tập 7 (SGK – Tr36):
a) <i>a<sub>b</sub></i>2=2<i>a</i>


<i>b</i> b)


(ab)<i>c</i>


2 =
abc


2
c) (


1
<i>ab</i>)


<i>c</i> =


<i>b</i>


ac


d) <i>b</i>


<i>a</i>2
+<i>b</i>


Bài tập 8 (SGK – Tr36):


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

điểm của những điểm nằm trong vùng gạch
chéo. Từ đó viết được các biểu thức lơgic
tương ứng.


HS: Hình a) ((y<1) or (y=1)) and ((y>abs(x)
or (y=abs(x))


Hình b) (y>=-1) and (y<=1) and (x>=-1) and
(x<=1)


GV: Treo hình 3 SGK – Tr36 (hoặc chiếu lên
màn hình).u cầu HS nêu nhận xét về diện
tích của phần hình gạch chéo so với diện tích
của hình trịn bán kính a.


HS: Diện tích của phần gạch chéo bằng ½
diện tích của hình trịn cạnh a.


GV: u cầu HS xác định Input/Output của
bài toán. Xác định số biến cần dùng trong
chương trình, kiểu của các biến đó.



HS: Thực hiện theo yêu cầu của GV.


GV: Chia nhóm và yêu cầu HS viết chương
trình theo nhóm.


HS: Hoạt động nhóm.


GV: u cầu đại diện nhóm trìnhbày. Nhận
xét, sửa sai.


Bài tập 9 (SGK – Tr36):


Nhận xét: Diện tích của phần gạch chéo
bằng một nửa diện tích hình trịn bán kính
a (a>0).


<i><b>Input: Bán kính a của hình trịn (a>0)</b></i>
<i><b>Output: S= </b></i> pi .<i>a</i>2


2
<i><b>Chương trình:</b></i>
<b>var a: real;</b>
<b>begin</b>


<i>write('Nhap ban kinh a (a>0): ');</i>
<i>readln(a);</i>


<i>write('Dien tich phan gach cheo la:</i>
<i>',a*a*pi/2:20:4);</i>



<i>readln</i>
<b>end.</b>


<i><b>4. Củng cố:</b></i>


- Hệ thống nội dung bài giảng.


- Nhấn mạnh các lỗi HS hay mắc, cách khắc phục
- Quy trình giải một bài tốn trên máy tính:


+ Phân tích bài tốn để xác định dữ liệu vào, dữ liệu ra.
+ Xác định thuật tốn.


+ Soạn chương trình vào máy.
+ Lưu chương trình.


+ Biên dịch chương trình.


+ Thực hiện và hiệu chỉnh chương trình.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Ơn lại tồn bộ các kiến thức đã học.


- 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:
a. Trung bình cộng các bình phương của hai số đó.


b. Trung bình cộng các giá trị tuyệt đối của a và b.


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Ngày soạn: 21/09/2008



<b>Chương III – CẤU TRÚC RẼ NHÁNH VÀ LẶP</b>
Tiết 10 - §9 Cấu trúc rẽ nhánh (Tiết 1)
<b>A. Mục tiêu cần đạt:</b>


<i><b>Kiến thức:</b></i>


- Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán.
- Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ).


- Hiểu câu lệnh ghép.
<i><b>Kĩ năng:</b></i>


- 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 lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ.


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi học và làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS: Đặt vấn đề, nêu vấn đề,
...


<b>D. Tiến trình dạy học:</b>
<i><b>1. Ổn định tổ chức:</b></i>


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú



</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<i><b>2. Kiểm tra bài cũ:</b></i>
<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Trong thực tế hàng ngày, có rất nhiều
việc chỉ được thực hiện khi một điều kiện
nào đó được thỏa mãn. Ví dụ:


+ Nếu mai trời mưa thì Châu sẽ ở nhà xem
TV.


+ Nếu mai trời khơng mưa thì Châu sẽ đến
nhà Ngọc.


+ Nếu mai trời khơng mưa thì Châu sẽ đến
nhà Ngọc, nếu mưa thì Châu sẽ ở nhà xem
TV.


Yêu cầu HS tìm 1 số ví dụ tương tự
HS: Lấy ví dụ


GV: Yêu cầu HS nêu cấu trúc chung của
cách diễn đạt đó.


HS: Nếu ... thì, nếu khơng .... thì.


GV: Trong nhiều thuật tốn, các thao tác tiếp
theo sẽ phụ thuộc vào kết quả nhận được từ
các bước trước đó. Cấu trúc dùng để mơ tả


các mệnh đề có dạng như trên được gọi là
cấu trúc rẽ nhánh thiếu và đủ.


GV: hãy nêu các bước giải phương trình bậc
hai:


ax2<sub> + bx + c = 0 (a ≠ 0).</sub>


HS: Nêu các bước giải.


GV: Chia học sinh thành 4 nhóm và yêu cầu
HS vẽ sơ đồ khối mơ tả thuật tốn.


HS: Thực hiện theo nhóm. Đại diện 1 nhóm
lên bảng trình bày. Các nhóm cịn lại quan
sát, nhận xét.


GV: Nhận xét, đánh giá và bổ sung.


<b>1. Rẽ nhánh:</b>


Cấu trúc dùng để mô tả các mệnh đề có
dạng:


Nếu ... thì.... (1)


Nếu ... thì, nếu khơng thì ... (2)


được gọi là cấu trúc rẽ nhánh thiếu (mô tả
mệnh đề 1) và đủ (mô tả mệnh đề dạng 2).


Ví dụ: Để giải phương trình bậc hai:
ax2<sub> + bx + c = 0 (a ≠ 0 )</sub>


Ta thực hiện theo các bước.
+ Tính Delta: D = b2<sub> – 4ac</sub>


+ Nếu D < 0 thì kết luận phương trình vơ
nghiệm.


+ Nếu D >= 0 thì kết luận phương trình có
nghiệm.


<i><b>Sơ đồ khối:</b></i>


Các ngơn ngữ lập trình đều có các câu lệnh
để mô tả cấu trúc rẽ nhánh.


Nhập a, b,
c


D <sub></sub> b2 - 4ac


D≥
0


Tính và đưa ra
nghiệm thực rồi


kết thúc
Thông báo vô



nghiệm rồi kết
thúc


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

GV: Các ngơn ngữ lập trình đều có các câu
lệnh để mô tả cấu trúc rẽ nhánh. Sau đây ta
xét câu lệnh mô tả cấu trúc rẽ nhánh trong
ngôn ngữ Pascal.


GV: Giới thiệu cấu trúc lệnh If – then.
HS: Nghe, ghi và quan sát.


GV:Lưu ý HS sau Then và sau Else chỉ có 1
câu lệnh chương trình.


GV: Với hai dạng này, dạng nào dùng thuận
tiện hơn?


HS: Suy nghĩ tìm câu trả lời.


GV: Gợi ý để HS đưa ra được tùy trường hợp
cụ thể mà dùng dạng thiếu hay dạng đủ.
GV: Treo (hoặc chiếu lên màn hình) sơ đồ
từng câu lệnh (dạng thiếu - dạng đủ) và giải
thích hoạt động của từng câu lệnh.


HS: Quan sát và nghe giảng.


GV: Đưa ra các ví dụ có sử dụng lệnh rẽ
nhánh, nếu khơng có câu lệnh rẽ nhánh thì


khơng thể thực hiện được.


HS: Quan sát và nghe giảng.


GV: ở ví dụ 3, sử dụng cách nào nhanh hơn.
HS: cách 2 tiện hơn.


GV: Phân tích sự tiện lợi trong cách 2 và số
lệnh mà máy phải thực hiện.


GV: Tiếp tục đưa ra các ví dụ thực tế và yêu
cầu học sinh sử dụng câu lệnh if – then để
mô tả.


HS: Thực hiện theo yêu cầu của GV.


GV: Ta đã biết trong câu lệnh if – then thì


<b>2. Câu lệnh if – then:</b>


- Pascal dùng câu lệnh if – then để mô tả
việc rẽ nhánh tương ứng với hai loại mệnh
đề rẽ nhánh như sau:


<i><b>a) Dạng thiếu:</b></i>


<b>if <điều kiện> then <câu lệnh>;</b>
<i><b>b) Dạng đủ:</b></i>


<b>if <điều kiện> then <c.lệnh1></b>


<i> else <C.lệnh 2>;</i>
Trong đó:


<i>Điều kiện là biểu thức lôgic</i>


<i>Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu</i>
lệnh Pascal.


<i><b>Ý nghĩa của các câu lệnh:</b></i>


- Dạng thiếu: Nếu điều kiện đúng thì câu
lệnh được thực hiện, nếu điều kiện sai thì
câu lệnh sẽ bị bỏ qua và khơng thực hiện
gì.


- Dạng đủ: Nếu điều kiện đúng thì thực
hiện câu lệnh 1, ngược lại (nếu điều kiện
sai) thì thực hiện câu lệnh 2.


<b>Ví dụ 1:</b>


<b>if D<0 then writeln('Phuong trinh vo</b>
nghiem. ');


<b>Ví dụ 2:</b>


<b>if a mod 3 = 0 then write(a, ' chia het cho 3</b>
')


<b>else write(a, ' khong chia het cho 3');</b>



<b>Ví dụ 3: Tìm giá trị lớn nhất (max) trong</b>
hai số a và b:


cách 1:


max := a; if b>a then max := b;
cách 2:


<b>if a> b then max := a else max := b;</b>


<b>3. Câu lệnh ghép:</b>


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

sau then, sau else chỉ có 1 câu lệnh. Vậy
muốn thực hiện nhiều câu lệnh sau then hay
sau else thì làm thế nào?


HS: Đưa ra các ý kiến.


GV:Khi đó ta cần gộp nhiều câu lệnh đó lại
và coi đó là một câu lệnh trong chương trình.
Các ngơn ngữ lập trình cho phép gộp một
dãy câu lệnh thành một câu lệnh ghép (hay
câu lệnh hợp thành).


GV: Đưa ra một số chú ý.
HS: Nghe và ghi bài.


GV: Lấy ví dụ và phân tích cho học sinh hiểu
ý nghĩa của câu lệnh ghép.



HS: Quan sát, nghe và ghi bài.


GV: Đưa ra các tình huống thực tế bắt buộc
phải sử dụng câu lệnh ghép và yêu cầu HS
dùng câu lệnh Pascal để thể hiện.


HS: Thực hiện theo yêu cầu của GV.


<b>begin</b>


<i><các câu lệnh>;</i>
<b>end;</b>


<i><b>Chú ý:</b></i>


- Trước else khơng có dấu ;


- Thuật ngữ câu lệnh được hiểu chung cho
cả câu lệnh đơn và câu lệnh ghép.


<i><b>Ví dụ:</b></i>


<b>if D<0 then writeln('Phuong trinh vo</b>
nghiem.')


<b>else</b>
<b>begin</b>


x1:=(-b-sqrt(D))/(2*a);


x2:= -b/a – x1;


<b>end;</b>


<i><b>4. Củng cố:</b></i>


- Hệ thống bài giảng, nhấn mạnh các kiến thức trọng tâm:


+ Câu lệnh if – then dạng thiếu: Cấu trúc, ý nghĩa, sơ đồ hoạt động
+ Câu lệnh if – then dạng đủ: Cấu trúc, ý nghĩa, sơ đồ hoạt động


+ Câu lệnh ghép: cấu trúc, ý nghĩa.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo vở ghi và SGK.


- Đọc trước mục "Một số ví dụ" SGK – Tr41.


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


Ngày soạn: 23/09/2008


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

<b>A. Mục tiêu cần đạt:</b>
<i><b>Kiến thức:</b></i>


- Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán.
- Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ).


- Hiểu câu lệnh ghép.
<i><b>Kĩ năng:</b></i>



- 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 lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng để thể hiện được thuật
toán của một số bài toán đơn giản.


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi học và làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS: Đặt vấn đề, nêu vấn đề,
...


<b>D. Tiến trình dạy học:</b>
<i><b>1. Ổn định tổ chức:</b></i>


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


+ Cú pháp if <BT điều kiện> then <câu lệnh>; có nghĩa là:
A. Nếu BT điều kiện nhận giá trin đúng thì thực hiện câu lệnh.
B. Nếu BT điều kiện nhận giá trị sai thì thực hiện câu lệnh.


C. Nếu BT điều kiện nhận giá trị sai thì thực hiện câu lệnh ngược lại thì thực hiện câu lệnh


khác.


D. Đáp án B và C đều đúng.


+ Cú pháp if <BT điều kiện> then <câu lệnh 1> else <câu lệnh 2>; có nghĩa là:
A. Nếu BT điều kiện sai thì thực hiện câu lệnh 1 cịn khơng sẽ thực hiện câu lệnh 2.
B. Nếu BT điều kiện đúng thì thực hiện câu lệnh 1 cịn khơng sẽ thực hiện câu lệnh 2.
C. Nếu BT điều kiện đúng thì sẽ thực hiện câu lệnh 2 cịn khơng sẽ thực hiện câu lệnh 1.
D. Tất cả các đáp án trên đều sai.


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Giờ học trước chúng ta đã tìm hiểu về
cấu trúc rẽ nhánh và câu lệnh ghép. Hôm nay
chúng ta sẽ vận dụng các kiến thức đã học để
giải một số bài tốn.


<b>4. Một số ví dụ:</b>


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

GV: Nêu yêu cầu của ví dụ 1. Yêu cầu HS
xác định Input/ Output của bài toán.


HS: xác định Input/Output của bài toán.
GV: Yêu cầu HS nêu các bước giải và minh
họa bằng sơ đồ khối.


HS: Nêu các bước giải, minh họa bằng sơ đồ
khối.



GV: Nhận xét, bổ sung và hướng dẫn học
sinh xây dựng chương trình theo giải thuật đã
đưa ra.


HS: xây dựng chương trình theo hướng dẫn
của giáo viên.


GV: Nhận xét, bổ sung và đưa ra chương
trình mẫu. Chạy và kiểm thử chương trinh
với các bộ dữ liệu khác nhau để cho học sinh
quan sát (nếu có máy chiếu).


HS:Quan sát kết quả khi chạy chương trình.


GV: Đưa ra bài tốn ở ví dụ 2. Yêu cầu HS
xác định Input/Output của bài toán.


HS: Xác định Input/Output của bài toán.
GV: Yêu cầu HS nêu thuật toán, vẽ sơ đồ
khối.


HS: Nêu thuật toán, vẽ sơ đồ khối.


GV: Hướng dẫn HS xây dựng chương trình
theo thuật tốn đã đưa ra.


HS: Xây dựng chương trình theo hướng dẫn
của giáo viên.



GV: Nhận xét, bổ sung và đưa ra chương
trình mẫu. Chạy và kiểm thử chương trinh
với các bộ dữ liệu khác nhau để cho học sinh
quan sát (nếu có máy chiếu).


HS:Quan sát kết quả khi chạy chương trình.


ax<i>2<sub> + bx + c = 0, với a ≠ 0</sub></i>
<i><b>Input: Các hệ số a,b, c nhập từ bàn phím.</b></i>
<i><b>Output: Đưa ra màn hình các nghiệm thực</b></i>
hoặc thơng báo "Phuong trinh vo nghiem"
<i><b>Chương trình:</b></i>


<b>program Giai_PTB2;</b>
<b>uses crt;</b>


<b>var a, b, c: real;</b>
D, x1, x2: real;
<b>begin</b>


clrscr;


write('a, b, c: ');
readln(a,b,c);
D:= b*b – 4*a*c;


<b>if D<0 then writeln('Phuong trinh vo</b>
nghiem')


else


<b>begin</b>


x1:= (-b – sqrt(D))/(2*a);
x2:= -b/a – x1;


writeln('x1 = ',x1:8:3,' x2 = ',
x2:8:3);


<b>end;</b>
readln
<b>end.</b>


<b>Ví dụ 2: Tìm số ngày của năm N, biết rằng</b>
năm nhuận là năm chia hết cho 400 hoặc
chia hết cho 4 nhưng không chia hết cho
100. Ví dụ các năm 2000, 2004 là năm
nhuận và có số ngày là 366,các năm 1900,
1945 không phải là năm nhuận và có số
ngày là 365.


<i><b>Input: N nhập từ bàn phím.</b></i>


<i><b>Output: Đưa ra số ngày của năm N ra màn</b></i>
hình.


<i><b>Chương trình:</b></i>


<b>program Nam_nhuan;</b>
<b>uses crt;</b>



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b>clrscr;</b>


write('Nam: '); readln(N);


<b>if (N mod 400 = 0) or ((N mod 4 = 0) and</b>
(N mod 100 <>0)) then SN:= 366 else
SN:=365;


writeln('So ngay cua nam ', N,' la: ', SN);
readln


<b>end.</b>
<i><b>4. Củng cố:</b></i>


- Hệ thống bài giảng, nhấn mạnh các kiến thức trọng tâm:
Bài tập:


1. Trong ngôn ngữ Pascal, câu lệnh nào sau đây là đúng?
A. if a = 5 then a:=d+1;


else a:=d+2;
B. if a = 5 then a:=d+1
else a:=d+2;


C. if a = 5 then a=d+1
else a=d+2;
D. if a = 5 then a:=d+1
else a:=d+2.
2. Kết quả của đoạn chương trình sau là gì?



<b>var x: integer;</b>
<b>begin</b>


x:=10;


<b>if (x-3)>5 then</b>


writeln('Xin chuc mung!');
<b>end.</b>


A. Khơng hiển thị gì cả.
B. In ra kết quả là 7.


C. In ra màn hình câu: "Xin chuc mung!".
D. In ra kết quả là 5.


<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo vở ghi và SGK.


- Xem lại các ví dụ và bài tập đã chữa.


- Viết phương trình giải phương trình bậc nhất ax + b = 0.


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

Ngày soạn: 23/09/2008


<b>Chương III – CẤU TRÚC RẼ NHÁNH VÀ LẶP</b>
Tiết 12 - §10 Cấu trúc lặp (Tiết 1)


<b>A. Mục tiêu cần đạt:</b>


<i><b>Kiến thức:</b></i>


- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán..


- Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước.
- Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
<i><b>Kĩ năng:</b></i>


- Mơ tả được thuật tốn của một số bài tốn đơn giản có sử dụng lệnh lặp.
- Viết đúng các lệnh lặp kiểm tra điều kiện trước, lặp với số lần định trước.
- Viết được thuật giải một số bài toán đơn giản.


<b>B. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi học và làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS: Đặt vấn đề, nêu vấn đề,
...


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú
Ngày dạy


Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>
<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>



GV: Đưa ra bài tốn 1.Phân tích giúp HS đưa
ra được phương pháp tính.


Gợi ý phương pháp: ta xem S như một cái
thùng, có số hạng như là những cái ca nhỏ có
dung tích khác nhau. Khi đó việc tính tổng
tương tự như việc đổ các ca nước vào trong
thùng S.


HS: Nghe GV hướng dẫn.


- Có bao nhiêu lần đổ nước vào thùng?
HS: - Phải thực hiện 100 lần.


GV: Mỗi lần đổ một lượng là bao nhiêu? Lần
i đổ bao nhiêu? Phải viết bao nhiêu lệnh?
HS: Mỗi lần đổ


1


<i>a i</i> <sub>; Phải viết 100 lệnh.</sub>
GV: Như vậy nếu viết chương trình để tính
tổng S thì ta sẽ gặp khó khăn gì?


HS: Suy nghĩ trả lời.


GV: Các cơng việc được lặp đi lặp lại trong
một số hữu hạn lần.Cấu trúc để mô tả thao
tác lặp lại ở bài toán 1 được gọi là cấu trúc


lặp với số lần biết trước.Các ngơn ngữ lập
trình đều có câu lệnh mơ tả cấu trúc lặp với
số lần biết trước.


GV: Đưa ra bài toán 2.


Sự khác nhau giữa bài toán2 và bài toán 1?
- Lặp bao nhiêu lần? Lặp đến khi nào?
HS: Suy nghĩ trả lời các câu hỏi của GV.
GV: Qua bài tốn 2 ta thấy có một dạng bài
tốn có sự lặp lại của một số lệnh nhưng
không biết trước được số lần lặp. Như vậy
việc xây dựng chương trình để giải gặp khó
khăn.Cần có một cấu trúc điều khiển lặp lại
một công việc nhất định khi thoả mãn một


<b>1. Lặp:</b>


Với a là số nguyên và a>2. Ta xét các bài
toán sau đây:


Bài tốn 1: Tính và đưa ra màn hình tổng
<i>S</i>=1


<i>a</i>+
1
<i>a</i>+1+


1



<i>a</i>+2+. ..+


1
<i>a</i>+100


Cách tính:
Xuất phát <i>S</i>=1


<i>a</i>


Tiếp theo, cộng vào tổng S một giá trị
1


<i>a</i>+<i>N</i> với N = 1, 2,3, .., 100


Công việc sẽ kết thúc khi thực hiện 100 lần
cộng.


<b>Bài tốn 2: Tính và đưa ra màn hình tổng</b>
<i>S</i>=1


<i>a</i>+
1
<i>a</i>+1+


1


<i>a</i>+2+. ..+


1


<i>a</i>+<i>N</i>+. ..


cho đến khi <i><sub>a</sub></i>1


+<i>N</i> <0,0001


Cánh tính:
Xuất phát <i>S</i>=1


<i>a</i>


Tiếp theo, cộng vào tổng S một giá trị
1


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

điều kiện nào đó và các câu lệnh mô tả cấu
trúc lặp dạng này.


GV: Cấu trúc để môt tả thao tác lặp ở bài
toán 2 được gọi là cấu trúc lặp với số lần
chưa biết trước. Các ngôn ngữ lập trình đều
có các câu lệnh mơ tả cấu trúc lặp với số lần
chưa biết trước.


GV: Đưa ra bảng giới thiệu thuật toán giải
bài toán 1(như SGK – Tr43). Yêu cầu HS
đưa ra nhận xét về hai thuật toán.


HS: Điều kiện kết thúc lặp của 2 thuật toán là
như nhau, số lần lặp biết trước (100 lần)



- Giá trị N bắt đầu
tham gia cộng lặp là
1, sau mỗi lần lặp
tăng lên 1 cho đến
khi N>100 thì kết
thúc.


- Ta nói cách lặp
thuộc dạng tiến.


- Giá trị N bắt đầu
tham gia cộng lặp là
100, sau mỗi lần lặp
giảm đi 1 cho đến
khi N<1 thì kết thúc
- Ta nói cách lặp
thuộc dạng lùi.


GV: Để mô tả cấu trúc lặp với số lần biết
trước,Pascal dùng câu lệnh lặp for – do.
Tương ứng với 2 thuật tốn trên có 2 dạng
<i>for – do để mô tả. Các em hãy nghiên cứu</i>
SGK-Tr43 để tìm hiểu về câu lệnh lặp <i>for –</i>
<i>do.</i>


HS:Nghiên cứu SGK.


GV: nêu sự khác nhau giữa for dạng tiến và
for dạng lùi?



HS: Trả lời.


GV: Nhận xét, bổ sung. Giới thiệu về 2 dạng
của câu lệnh for, hoạt động của 2 dạng for.
HS: Nghe giảng.


GV: Lưu ý, sau do chỉ có 1 câu lệnh được
thực hiện. Nếu muốn có nhiều hơn 1 câu lệnh
được thực hiện thì phải sử dụng câu lệnh
ghép.


Giá trị của biến đếm được điều chỉnh tự
động, vì vậy câu lệnh viết sau do khơng được
thay đổi giá trị của biến đếm.


GV: Treo bảng (hoặc chiếu lên màn hình) ví


Cơng việc sẽ kết thúc khi điều kiện
1


<i>a</i>+<i>N</i> <0,0001 được thỏa mãn.


Như vậy số lần lặp chưa biết trước.


<b>2. Lặp với số làn biết trước và câu lệnh</b>
<b>for – do</b>


Hai thuật toán giải bài toán 1:


<b>Thuật toán 1</b> <b>Thuật toán 2</b>


B1: S:=1/a; N:=0;


B2: N:=N+1;
B3: Nếu N>100 thì
chuyển đến B5;
B4: S:= S+1/(a+N)
rồi quay lại B2;
B5: Đưa S ra màn
hình rồi kết thúc.


B1: S:=1/a;
N:=101;


B2: N:=N-1;


B3: Nếu N<1thì
chuyển đến B5;
B4: S:= S+1/(a+N)
rồi quay lại B2;
B5: Đưa S ra màn
hình rồi kết thúc.
Pascal dùng câu lệnh lặp for – do với hai
dạng tiến và lùi để mô tả cấu trúc lặp với
số lần biết trước.


+ Dạng lặp tiến:


<b>for </b><i><biến đếm>:=<giá trị đầu> </i><b>to </b><i><giá</i>
<i>trị cuối> do <câu lệnh>;</i>



+ Dạng lặp lùi:


<b>for </b><i><biến đếm>:=<giá trị cuối> </i><b>downto</b>
<i><giá trị đầu> do <câu lệnh>;</i>


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

dụ1.


Phân tích các bước của thuật tốn trong từng
chương trình, câu trúc lặp được sử dụng, các
đại lượng: biến đếm, giá trị đầu, giá trị cuối,
câu lệnh được thực hiện.


HS: Quan sát và nghe giảng.


GV: Treo bảng giới thiệu bài tốn ví dụ
2( hoặc chiếu lên màn hình).Yêu cầu HS xác
định Input/Output, nêu thuật giải tóm tắt.
HS: Thực hiện theo yêu cầu của GV.


GV: Treo bảng (hoặc chiếu lên màn hình)
chương trình giải bài tốn ở ví dụ 2. Phân
tích các câu trúc lệnh được sử dụng.


HS: Nghe giảng.


<i><b>Ví dụ 2: Chương trình nhập từ bàn phím 2</b></i>
số nguyên dương M và N (M < N), tình và
đưa ra màn hình tổng các số chia hết cho 3
hoặc 5 trong phạm vi từ M đến N.



<i><b>4. Củng cố:</b></i>


- Hệ thống bài giảng, nhấn mạnh các kiến thức trọng tâm:
+ Nhu cầu phải sử dụng cấu trúc lặp, câu lệnh lặp.


+ Câu lệnh for – do của Pascal: 2 dạng, cấu trúc, hoạt động.
<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo vở ghi và SGK.
- Xem lại các ví dụ.


- Đọc trước mục "3. Lặp với số lần chưa biết trước và câu lệnh while – do"


<b>TỔ TRƯỞNG KÝ DUYỆT</b>


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


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

<i><b>Kiến thức:</b></i>


- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán..


- Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước.
- Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
<i><b>Kĩ năng:</b></i>


- Mơ tả được thuật tốn của một số bài tốn đơn giản có sử dụng lệnh lặp.
- Viết đúng các lệnh lặp kiểm tra điều kiện trước, lặp với số lần định trước.
- Viết được thuật giải một số bài toán đơn giản.


<b>B. Phương tiện dạy học:</b>



+ GV: Sách giáo khoa, sách giáo viên, máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi học và làm bài tập ở nhà.
<b>C. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS: Đặt vấn đề, nêu vấn đề,
...


<b>D. Tiến trình dạy học:</b>
<i><b>1. Ổn định tổ chức:</b></i>


Lớp 11A1 11A2 11A5 11A6 11A7 11A8 Ghi chú


Ngày dạy
Sĩ số


<i><b>2. Kiểm tra bài cũ:</b></i>


- Viết cấu trúc của câu lệnh For – do dạng tiến, dạng lùi. Giải thích các thành phần trong
cấu trúc? Nêu hoạt động của từng dạng?


<i><b>3. Bài mới:</b></i>


<b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


GV: Đưa ra bài toán 2 và giới thiệu thuật
toán như SGK (Tr 45). Yêu cầu HS vẽ sơ đồ
khối mơ tả thuật tốn


HS: Thực hiện vẽ sơ đồ khối.



<b>3. Lặp với số lần chưa biết trước và câu</b>
<b>lệnh While – do</b>


Bài toán 2:Tính và đưa kết quả ra màn
hình tổng:


<i>S</i>=1


<i>a</i>+
1
<i>a</i>+1+


1


<i>a</i>+2+. ..+


1
<i>a</i>+<i>N</i>+. ..


cho đến khi <i><sub>a</sub></i>1


+<i>N</i> <0,0001 (với a là số


nguyên, a>2)
Thuật giải:


<i>Bước 1: S 1/a; N  0; {khởỉ tạo S và N}</i>
<i>Bước 2: Nếu 1/(a+N)<0,0001 thì chuyển</i>
đến bước 5;



<i>Bước 3: N  N +1;</i>


<i>Bước 4: SS+1/(a+N), rồi quay lại bước</i>
2;


<i>Bước 5: Đưa S ra màn hình rồi kết thúc.</i>
NhËp a


1/(a+N) < 0,0001


§­a­ra­S,­
kÕt­thóc
S ← 1/a; N:=0;


N ← N+1


S ← S+ 1/(a+N)


Đúng


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

GV: Cấu trúc lặp được sử dụng để mơ tả
thuật tốn ở bài tốn 2 là cấu trúc lặp với số
lần chưa biết trước. Để mô tả cấu trúc như
vậy ngôn ngữ Pascal dùng câu lệnh While –
<b>do. u cầu HS tìm hiểu thơng tin SGK về</b>
câu lệnh While – do.


HS: Đọc thông tin SGK.



GV: Giới thiệu câu lệnh While – do và giải
thích các thành phần. Đưa ra sơ đồ khối thể
hiện câu lệnh. Yêu cầu HS dựa vào sơ đồ
khối nêu hoạt động của câu lệnh.


HS: Dựa vào sơ đồ khối nêu hoạt động của
câu lệnh.


GV: Một sự khác nhau trong lệnh cần lặp của
FOR và WHILE là gì?


HS: trong câu lệnh WHILE phải có lệnh tăng
biến chỉ số.


GV: Dựa vào cấu trúc chung, hãy cho biết
máy sẽ thực hiện tính <điều kiện> trước hay
thực hiện <câu lệnh> trước?


HS: - Thực hiện:


Tính biểu thức điều kiện trước.
Thực hiện lệnh cần lặp sau.


GV: Hướng dẫn HS xây dựng chương trình
giải bài tốn 2.


HS: Xây dựng chương trình.


GV: Nhận xét, bổ sung, chạy chương trình
cho HS quan sát kết quả.



GV: Đưa ra bài tốn ví dụ2. Yêu cầu HS xác
định Input/Output của bài toán. Nêu thuật
giải.


HS: Xác định Input/Output và nêu thuật giải.
Bước1: Nhập M, N;


Bước2. Nếu M=N thì ƯCLN:= M; chuyển
đến bước 5;


Bước3. Nếu M>N thì M:=M-N ngược lại
N:=N-M;


Bước4. Quay lại bước 2;


Bước5. Đưa ra kết quả ƯCLN rồi kết thúc.
GV: Yêu cầu HS vẽ sơ đồ khối.


HS: Lên bảng vẽ sơ đồ khối.


GV: Hướng dẫn HS xây dựng chương trình
giải bài toán.


Câu lệnh While – do:


<b>While <điều kiện> do <câu lệnh>;</b>
Trong đó:


<i>Điều kiện là biểu thức lơgic;</i>



<i>Câu lệnh là một câu lệnh đơn hoặc ghép.</i>
<i><b>Ví dụ 1: Chương trình giải bài toán 2.</b></i>
<b>program Tong_2;</b>


<b>uses crt;</b>
<b>var s: real;</b>


a, N: integer;
<b>begin</b>


clrscr;


write(‘ Hay nhap gia tri a vao !’);
readln(a);


S:=1.0/a; N:=0;


<b>while not (1/(a+N) < 0.0001) do</b>
<b>begin</b>


N:=N+1;


S:= S+1.0/(a+N);
<b>end;</b>


writeln(‘Tong S la: ‘, s:8:4);
readln


<b>end.</b>



<i><b>Ví dụ 2: Chương trình tìm ước chung lớn</b></i>
nhất (ƯCLN) của hai số nguyên dương M
và N.


<b>program UCLN;</b>
<b>uses crt;</b>


<b>var M,N: integer;</b>
<b>begin</b>


clrscr;


write(‘M, N = ‘);
readln(M, N);
<b>while M<>N do</b>


<b>if M>N then M:=M-N else N:=N-M;</b>
writeln(‘UCLN = ‘,M);


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

HS: Xây dựng chương trình giải bài tốn.
GV: Nhận xét, bổ sung, chạy chương trình
cho HS quan sát kết quả.


<i><b>4. Củng cố:</b></i>


- Hệ thống bài giảng, nhấn mạnh các kiến thức trọng tâm:
+ Nhu cầu phải sử dụng cấu trúc lặp, câu lệnh lặp.
+ Câu lệnh While – do của Pascal



<i><b>5. Hướng dẫn về nhà:</b></i>


- Học theo vở ghi và SGK.


- Xem lại các ví dụ, làm bài tập (SGK - Tr 50, 51)
- Xem trước nội dung bài thực hành 2 (SGK – Tr 49,50)


Ngày soạn: 30/12/2011 Tuần thứ: 20
Ngày dạy : 02/01/2012<sub></sub>07/01/2012 Tiết thứ: 20
Lớp dạy : 11B1<sub></sub>11B6


<b>Bài tập và thực hành 2 (T1)</b>
<b>I. Mục đích yêu cầu:</b>


1. Kiến thức:


- Củng cố các kiến thức về cấu trúc rẽ nhánh.


- Biết sử dụng cấu trúc rẽ nhánh (dạng thiếu – dạng đủ) một cách hợp lí.
2. Kỹ năng:


- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnh chương trình.


3. Thái độ: Tự giác, tích cực và chủ động trong thực hành.
<b>II. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, phòng máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.



<b>III. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>IV. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức:1’</b></i>
<i><b>2. Kiểm tra bài cũ:4’</b></i>


- Nêu cấu trúc của câu lệnh rẽ nhánh (dạng thiếu, dạng đủ)? Giải thích các thành phần và
nêu hoạt động?


<i><b>3. Bài mới:</b></i>


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


10’ GV: Yêu cầu HS đọc thông tin SGK – Tr
49 để tìm hiểu về bộ số Pi-ta-go.


HS: Đọc thơng tin SGK.


GV: Hãy cho ví dụ về bộ số Pi-ta-go?
HS: Ví dụ 3 số: 3, 4, 5 lập thành bộ số
Pi-ta-go vì:


32<sub> + 4</sub>2<sub> = 5</sub>2<sub>.</sub>


GV: Để kiểm tra bộ ba số a, b, c bất kỳ có
phải là bộ Pytago hay khơng, ta phải kiểm
tra các đẳng thức nào?



<b>Bài toán. Bộ số Pi-ta-go</b>
Nội dung chương trình:
<i><b>program Pi_ta_go;</b></i>
<i><b>uses crt;</b></i>


<i><b>var a,b,c:integer;</b></i>
<i> a2, b2,c2: longint;</i>
<i><b>begin</b></i>


<i> clrscr;</i>


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

15’


10’


HS: Kiểm tra xem có đẳng thức nào trong 3
đẳng thức sau đây thỏa mãn không?


a2<sub> = b</sub>2<sub> + c</sub>2<sub> </sub>


b2<sub> = a</sub>2<sub> + c</sub>2


c2<sub> = a</sub>2<sub> + b</sub>2<sub> </sub>


GV: Đưa ra bài toán: Viết chương trình
nhập từ bàn phím 3 số nguyên dương a, b, c
và kiểm tra xem chúng có là bộ số Pi-ta-go
hay khơng?


u cầu HS xác định Input/Output và xây


dựng thuật giải cho bài toán.


HS: Xác định Input/Output – xây dựng
thuật giải của bài tốn.


GV: Giới thiệu chương trình giải bài tốn
(SGK – Tr 49, 50). Chia nhóm thực hành
và tổ chức cho HS gõ chương trình vào
máy.


HS: Thực hiện theo yêu cầu của GV.


GV: Chú ý: trước else khơng có dấu chấm
phẩy (;).


GV: u cầu HS lưu chương trình lên đĩa
rồi thực hiện chạy chương trình, nhập các
giá trị a=3, b=4, c=5.


HS: thực hiện theo yêu cầu của GV.
GV: Cho HS thực hiện Y/c câu h
HS: Thực hiện theo yêu cầu của GV.


GV: Hãy nhận xét kết quả? Giải thích
nguyên nhân tại sao kết quả lại thay đổi.
GV: Kiểm tra bài làm của một số HS


<i> a2:=a;</i>
<i> b2:=b;</i>
<i> c2:=c;</i>


<i> a2:=a2*a;</i>
<i> b2:=b2*b;</i>
<i> c2:=c2*c;</i>


<i><b>if </b></i> <i>(a2=b2+c2)</i> <i> or</i> <i><b> (b2=a2+c2)</b></i> <i> or</i>
<i>(c2=a2+b2)</i>


<i> then writeln('Ba so da nhap la bo so</i>
<i>Pi_ta_go ')</i>


<i> else writeln('Ba so da nhap khong la bo so</i>
<i>Pi_ta_go ');</i>


<i> readln</i>
<i><b>end.</b></i>


KQ: a,b,c: 3 4 5


Ba so da nhap la bo so Pi_ta_go


Thay các dãy lệnh
a2:=a;


b2:=b;
c2:=c;


a2:=a2*a; b2:=b2*b; c2:=c2*c;
Bằng dãy lệnh


a2:=a*a; b2:=b*b; c2:=c*c;


<i><b>4. Củng cố:2’</b></i>


- Trước else khơng có dấu chấm phảy (;).


- Khi nhập bộ giá trị cho các biến thì các giá trị cách nhau bằng dấu cách.
- Lưu lại chương trình vừa chỉnh sửa.


- Thốt khỏi Pascal, tắt máy tính đúng qui trình.
5. Hướng dẫn về nhà:3’


- BTVN: 4,5,6 SGK trang 51


HD: + bài 4: áp dụng câu lệnh rẽ nhánh.


+ bài 5: áp dụng câu lệnh lặp for n:=1 to 50 do
<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>


Ngày soạn: 30/12/2011 Tuần thứ: 20
Ngày dạy : 02/01/2012<sub></sub>07/01/2012 Tiết thứ: 21


Lớp dạy : 11B1<sub></sub>11B6


<b>Bài tập và thực hành 2 (T2)</b>
<b>I. Mục đích yêu cầu:</b>


1. Kiến thức:


- Củng cố các kiến thức về cấu trúc rẽ nhánh.


- Biết sử dụng cấu trúc rẽ nhánh (dạng thiếu – dạng đủ) một cách hợp lí.
2. Kỹ năng:


- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnh chương trình.


3. Thái độ: Tự giác, tích cực và chủ động trong thực hành.
<b>II. Phương tiện dạy học:</b>


+ GV: Sách giáo khoa, sách giáo viên, phịng máy tính, máy chiếu (nếu có)
+ HS: Sách giáo khoa, sách bài tập, vở ghi, học bài ở nhà.


<b>III. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>IV. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức :1’</b></i>
2. Kiểm tra bài cũ:4’


- Nêu cấu trúc của câu lệnh rẽ nhánh (dạng thiếu, dạng đủ)? Giải thích các thành phần và


nêu hoạt động?


<i><b>3. Bài mới:</b></i>


<b>TG</b> <b>Hoạt động cuả GV và HS</b> <b>YÊU CẦU CẦN ĐẠT</b>


10’


15’


GV: Đưa ra bài toán (bài tập 4 SGK – Tr
51)


Yêu cầu HS thực hiện các bước:
- Xác định Input/Output


- Xây dựng thuật giải
- Viết chương trình.


- Soạn thảo chương trình trên máy tính.
- Dịch, chạy và hiệu chỉnh chương trình.
HS: Hoạt động theo nhóm, thực hiện từng
u cầu của giáo viên.


Viết chương trình tính:
;


;


. .



2 2 2 2


2 2


2 2


nÕu 1
nÕu 1 vµ
0 5 nÕu 1 vµ


<i>x</i> <i>y</i> <i>x</i> <i>y</i>


<i>z</i> <i>x</i> <i>y</i> <i>x</i> <i>y</i> <i>y</i> <i>x</i>


<i>x</i> <i>y</i> <i>y</i> <i>x</i>


 <sub></sub> <sub></sub> <sub></sub>





<sub></sub>    




  






</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

10’ GV: Yêu cầu các nhóm HS chạy, kiểm
thử chương trình với các bộ dữ liệu khác
nhau, thực hiện chạy từng câu lệnh, theo
dõi giá trị của biểu thức điều kiện, giá trị
của Z, quan sát sự rẽ nhánh để kiểm tra
tính đúng đắn.


Nhận xét, sửa sai và cho điểm các nhóm
làm tốt.


GV: Kiểm tra và chấm điểm các nhóm.


<b>Output: Tính z.</b>
<b>Chương trình:</b>
<b>Program bai4a;</b>
<b>Uses crt;</b>


<b>Var x, y, z:real;</b>
<b>begin</b>


clrscr;


write(‘nhap x va y: ‘);
readln(x,y);


<b>if (sqr(x)+sqr(y))<=1 then z:= sqr(x) +</b>
sqr(y)


else



<b> if y>=x then z := x+y else z :=</b>
0.5;


writeln( ‘z = ‘, z:5:1);
readln


<b>end.</b>


<i><b>4. Củng cố:2’</b></i>


- Nhấn mạnh cách theo dõi giá trị của các biến khi chạy chương trình.
- Trước else khơng có dấu chấm phảy (;).


- Khi nhập bộ giá trị cho các biến thì các giá trị cách nhau bằng dấu cách.
- Lưu lại chương trình vừa chỉnh sửa.


- Thốt khỏi Pascal, tắt máy tính đúng qui trình.
5. Hướng dẫn về nhà:3’


- Ôn lại kiến thức của bài 10.


- Trả lời các câu hỏi và làm các bài tập SGK (trang 50 + 51)
+ bài 6: áp dụng câu lênh While – do:


Ga:=0; cho:=0;


while (ga*2+(36-ga)*2) <>100 do
begin



ga:=ga+1; cho:-36-ga;
end;


<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

<b> Hồ Phước Điền</b>


<b> </b>


Ngày soạn: 05/01/2012 Tuần thứ: 21
Ngày dạy : 09/01/2012<sub></sub>14/01/2012 Tiết thứ: 22
Lớp dạy : 11B1<sub></sub>11B6


<b>CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC</b>
<b> KIỂU MẢNG (Tiết 1)</b>


<b>I - Mục đích yêu cầu:</b>
1. Kiến thức:


- Kiểu mảng là một kiểu dữ liệu có cấu trúc, rất cần thiết và hữu ích trong nhiều chương
trình.


- Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.



- Các ngôn ngữ lập trình thơng dụng cho phép người lập trình xây dựng kiểu dữ liệu
mảng một chiều.


- Để mô tả mảng một chiều cần khai báo kiểu của các phần tử và cách đánh số các phần
tử của nó (mỗi phần tử của nó có một chỉ số).


- Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ số tương ứng của phần
tử này.


<b> 2. Kỹ năng:</b>


- Cách khai báo kiểu dữ liệu mảng một chiều trong ngôn ngữ pascal.


- Phân biệt các khái niệm kiểu chỉ số, kiểu phần tử của mảng, biết cách xác định
kiểu phần tử, kiểu chỉ số của mảng trong ngôn ngữ pascal.


- Nhận biết được các thành phần trong khai báo kiểu mảng một chiều.


- Nhận 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 viết khai báo mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên.
<b>II. Phương tiện:</b>


1. GV: - SGK, sách bài tập, sách giáo viên tin 11
- Giáo án, máy tính, máy chiếu (Projector)
2. HS: - SGK tin học 11.


- Học và làm bài tập ở nhà.



<b>III. Phương pháp: Thuyết trình, vấn đáp gợi mở.</b>
<b>IV. Tiến trình dạy học:</b>


1. Ổn định tổ chức: 1’
<b> 2. Kiểm tra bài cũ:</b>


- Kết hợp kiểm tra trong giờ.
<b> </b>3. Bài mới:


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


10’ <b>Hoạt động 1: tìm hiểu lợi ích của việc</b>
<b>sử dụng mảng 1 chiều.</b>


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

25’


real, extended, char, booolean), ta làm
thế nào để:


- Lưu trữ và xử lý một dãy số?


- Lưu trữ và xử lý họ tên của một người?
- Lưu trữ và xử lý bảng kết quả thi tốt
nghiệp?


HS: Trả lời các câu hỏi.


GV: Giải thích kiểu dữ liệu có cấu trúc.
Trong chương này chúng ta sẽ tìm hiểu


một số kiểu dữ liệu trong ngôn ngữ
Pascal để trả lời ba câu hỏi trên.


GV: Đưa ra bài toán: Nhập vào nhiệt độ
(trung bình) của mỗi ngày trong tuần,
tính và đưa ra màn hình nhiệt độ trung
bình của tuần và số lượng ngày trong
tuần có nhiệt độ cao hơn nhiệt độ trung
bình của tuần.


Yêu cầu HS xác định dữ liệu vào, dữ
liệu ra?


HS: trả lời.


GV: Giới thiệu chương trình giải bài
tốn trên bằng ngơn ngữ Pascal.


GV: Quan sát chương trình và cho biết
nếu muốn tính nhiệt độ trung bình của n
ngày trong năm (giả sử n = 365) thì sẽ
gặp khó khăn gì?


HS: Phải khai báo nhiều biến, chương
trình phải viết nhiều câu lệnh.


GV: Để giải quyết vấn đề đó ta sử dụng
kiểu mảng một chiều để mơ tả dữ liệu.
<b>Hoạt động 2: kiểu mảng 1 chiều</b>



GV: Đưa ra khái niệm mảng một chiều
và một số yếu tố liên quan trong lập
trình nói chung.


GV: Đưa ra ví dụ minh họa.


- Input: t1, t2, t3, t4, t5, t6, t7
- Output: tb, dem.


Chương trình:
<b>SGK trang 53, 54</b>


<b>1. Kiểu mảng một chiều:</b>


- Mảng một chiều là một dãy hữu hạn các
phần tử cùng kiểu, mảng được đặt tên và mỗi
phần tử mang một chỉ số. Để mô tả mảng một
chiều ta cần xác định kiểu của các phần tử và
cách đánh chỉ số các phần tử.


Với mảng một chiều ta quan tâm đến:
+ Tên mảng một chiều.


+ Số lượng phần tử trong mảng.
+ Kiểu dữ liệu của phần tử.


+ Cách khai báo biến mảng một chiều


+ Cách truy nhập vào từng phần tử của mảng.
Ví dụ:



A 12 21 36 17 64


<i><b>1</b></i> <i><b>2</b></i> <i><b>3</b></i> <i><b>4</b></i> <i><b>5</b></i>


Trong đó:
Tên mảng: A.


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

GV: Đưa ra chương trình giải bài tốn
tổng quát với N ngày bằng ngôn ngữ
Pascal và đi sâu phân tích hai chương
trình để cho HS thấy sự tiện lợi khi sử
dụng mảng.


GV: Thông qua chương trình để giới
thiệu cách khai báo mảng và một số khái
niệm liên quan.


GV: Đưa ra các ví dụ khai báo mảng
một chiều hợp lệ.


Kiểu dữ liệu của các pt: Kiểu nguyên.
Khi truy cập đến phần tử thứ 3 là 36.


Chương trình giải bài tốn tổng quát với N
ngày trong Pascal:


<b>SGK trang 54.</b>


<b>a. Khai báo mảng một chiều:</b>


- Cách 1: Khai báo trực tiếp:


<b>Var <tên biến mảng> : array[kiểu chỉ số] of</b>
<kiểu phần tử>;


- Cách 2: Khai báo gián tiếp biến mảng qua
kiểu mảng một chiều:


<b>type <tên kiểu mảng> = array[kiểu chỉ số] of</b>
<kiểu phần tử>;


<b>var <tên biến mảng>: <tên kiểu mảng>;</b>
Trong đó:


<i>+ Kiểu chỉ số thường là một đoạn số nguyên</i>
liên tục có dạng n1..n2 với n1, n2 là các hằng
hoặc các biểu thức nguyên xác định chỉ số đầu
và chỉ số cuối (n1<=n2);


+ Kiểu phần tử là kiểu của các phần tử mảng.
Ví dụ:


<b>type</b>


ArrayReal = array[-100..200] of real;


ArrayBoolean = array[-n+1..n+1] of Boolen;
ArrayInt = array[-100..0] of integer;


Trong đó n là hằng nguyên.



Tham chiếu tới phần tử của mảng một chiều
được xác định bởi tên mảng cùng với chỉ số,
được viết trong cặp ngoặc [ và ].


Ví dụ, tham chiếu tới nhiệt độ của ngày thứ
20, của mảng A ta viết A[20].


<b>4. Củng cố:4’</b>


- Cách khai báo mảng một chiều?Cách tham chiếu đến một phần tử của mảng?


- Cho ví dụ về khai báo mảng một chiều hợp lệ? Chỉ rõ các yếu tổ: Tên mảng, kiểu chỉ số,
kiểu phần tử, mảng đó có bao nhiêu phần tử?


<b>5. Hướng dẫn về nhà:4’</b>


- Nắm vững cách khai báo mảng một chiều, các khái niệm có liên quan.
- Lấy ví dụ về khai báo mảng một chiều theo 2 cách.


- Ơn lại các thuật tốn: tìm giá trị lớn nhất của một dãy số nguyên, sắp xếp bằng tráo đổi
<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

<b> Hồ Phước Điền</b>


Ngày soạn: 05/01/2012 Tuần thứ: 21


Ngày dạy : 09/01/2012<sub></sub>14/01/2012 Tiết thứ: 23
Lớp dạy : 11B1<sub></sub>11B6


<b>CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC</b>
KIỂU MẢNG (Tiết 2)


<b>I - Mục đích yêu cầu:</b>


- Củng cố và làm HS hiểu sâu sắc hơn những thuật tốn tìm kiểm, sắp xếp cơ bản mà HS
đã được học ở lớp 10.


- Minh họa, củng cố và nâng cao những hiểu biết của học sinh trong tiết 1 về mảng một
chiều (cấu trúc, cách khai báo, cách tham chiếu một phần tử và lợi ích của kiểu dữ liệu này.
<b>II - Phương tiện dạy học:</b>


+ GV: - SGK, sách bài tập, sách giáo viên tin 11
- Giáo án, máy tính, máy chiếu (Projector)
+ HS: - SGK tin học 11.


- Học và làm bài tập ở nhà.


<b>III - Phương pháp dạy học: Thuyết trình, vấn đáp gợi mở.</b>
<b>IV - Tiến trình dạy học:</b>


1. Ổn định tổ chức: 1’
2. Kiểm tra bài cũ:5’


- Trình bày cách khai báo mảng một chiều? Cho ví dụ minh họa?(chỉ rõ: Tên mảng, kiểu
chỉ số, kiểu phần tử, …).



<i><b> 3. Bài mới:</b></i>


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


<b>10’</b> <b>Hoạt động 1: nhắc lại Input, output, ý</b>
<b>tưởng giải bài toán. </b>


<b>GV: Trong tiết học trước chúng ta đã</b>
nắm được cách khai báo mảng một
chiều, cách truy nhập đến một phần tử
của mảng, lợi ích của kiểu dữ liệu này.
Hơm nay chúng ta sẽ nghiên cứu một số
ví dụ để hiểu rõ hơn về các khái niệm,
lợi ích của kiểu mảng.


GV: Đưa ra bài tốn ở ví dụ 1 và yêu cầu
HS xác định các thông tin: INPUT,
OUTPUT.


HS: Xác định dữ liệu vào, ra.


GV: Hãy nêu ý tưởng để giải bài tốn
này?


<b>b. Một số ví dụ:</b>


<i><b>Ví dụ 1: Tìm phần tử lớn nhất của dãy số</b></i>
<i>nguyên.</i>


<i><b>Input: Số nguyên dương N (N ≤ 250) và dãy</b></i>


N số nguyên dương A1, A2, …, AN., mỗi số


đều không vượt quá 500.


<i><b>Output: Chỉ số và giá trị của phần tử lớn</b></i>
nhất trong dãy số đã cho (nếu có nhiều phần
tử lớn nhất chỉ cần đưa ra một trong số
chúng).


<i><b>Ý tưởng: </b></i>


+ Đặt số A1 là số lớn nhất (Max)


</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

<b>20’</b>


<b>5’</b>


HS: trả lời


<b>Hoạt động 2: xây dựng chương trình</b>
GV: Hướng dẫn HS xây dựng chương
trình giải bài tốn bằng ngơn ngữ Pascal:


- Để lưu trữ các số nguyên dương A1,


A2, …, AN ta sẽ sử dụng mảng một


chiều. Hãy viết dòng lệnh khai báo?


GV: Để nhập vào N phần tử của dãy số


ta làm như thế nào?


HS: khai báo mảng 1 chiều (số phần tử
mảng >= số phần tử của dãy số) và sau
đó nhập n giá trị


GV: Đặt Max là phần tử đầu tiên. Duyệt
từ phần tử thứ 2 đến hết. Nếu phần tử
nào lớn hớn Max thì gán Max bằng phần
tử đó và lưu lại chỉ số.


GV: Phân tích kỹ các thao tác xử lí trên
mảng một chiều: nhập phần tử, duyệt các
phần tử của mảng một chiều.


<b>Hoạt động 3: hướng dẫn ví dụ 2</b>
GV: cho HS nhắc lại ý tưởng.
HS: trả lời


GV: nhận xét, hướng dẫn và yêu cầu HS
đọc chương trình SGK trang 57


đổi Max = A[i] và lưu lại vị trí i.


<i><b>Chương trình:</b></i>
program TimMax;
uses crt;


const



Nmax=250;
type


ArrInt = array[1.. Nmax] of integer;
Var


N, i, Max, csmax: Integer;
A: ArrInt;


begin
clrscr;


write(‘Nhap so luong phan tu cua day so,
N = ‘);


readln(N);
for i:=1 to N do
begin


write(‘phan tu thu ‘,i,’ = ‘);
readln(A[i]);


end;


Max:=A[1]; csmax:=1;
for i:=2 to N do


if A[i] > Max then
begin



Max:=A[i]; csmax:=i;
end;


writeln(‘Gia tri cua phan tu Max: ‘,Max);
writeln(‘Chi so cua phan tu Max:
‘,csmax);


readln
end.


<i><b>Ví dụ 2:SGK trang 57</b></i>


<b> 4. Củng cố:2’</b>


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

- Nhấn mạnh các kiến thức: khai báo mảng, các khái niệm, các thao tác xử lí trên mảng
được đề cập trong chương trình.


<b> 5. Hướng dẫn về nhà:2’</b>


- Tương tự chương trình trên, các em hãy viết chương trình tìm phần tử nhỏ nhất của dãy số
nguyên.


<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>


<i>Khánh Vĩnh, ngày tháng năm 2011</i>
<b> Hướng dẫn tập sự</b>


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

Ngày soạn: 05/01/2012 Tuần thứ: 22
Ngày dạy : 30/01/2012<sub></sub>04/02/2012 Tiết thứ: 24, 25
Lớp dạy : 11B1<sub></sub>11B6


Bài tập
<b>I. Mục đích yêu cầu:</b>


- Củng cố cho học sinh những hiểu biết về kiểu dữ liệu mảng.


- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thơng qua việc tìm
hiểu, chạy thử các chương trình có sẵn.


- Hình thành các kĩ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình: Khai
báo mảng, nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng,
duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.


- Nắm được ba thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểu mảng: Tính
tổng các phần tử thỏa mãn điều kiện nào đó; đếm số các phần tử thỏa mãn điều kiện nào đó;
tìm phần tử lớn nhất (hay nhỏ nhất) của mảng cùng với vị trí của nó trong mảng.


<b>II. Phương tiện dạy học:</b>


+ GV: - SGK, sách bài tập, sách giáo viên tin 11.
- Giáo án, phịng máy tính.


+ HS: - SGK tin học 11.



- Học và làm bài tập ở nhà.
<b>III. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>IV. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức:</b></i>
<i><b>2. Kiểm tra bài cũ:</b></i>


<i>- Kết hợp kiểm tra kiến thức trong giờ. </i>
3. Bài mới:


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Yêu cầu cần đạt</b>


10’ <b>Yêu cầu chung:</b>


GV: Chia HS thanh 4 nhóm (lấy HS theo
tổ trong lớp)


GV: Giới thiệu bài 1 cho HS đọc đề:
- Yêu cầu HS xác định dữ liệu đầu
vào, đầu ra.


HS: Xác định thông tin vào, ra của bài
tốn.


GV: u cầu HS phân tích bài toán, viết
các đoạn chương trình thực hiện việc
khai báo, nhập mảng A, kiểm tra một
phần tử có là chẵn hay khơng?(Thực



<i><b>Bài 1: Viết chương trình nhập vào dãy n</b></i>
<i><b>số(n ≤ 100):</b></i>


<i><b>a) Hiển thị dãy số ra màn hình.</b></i>


<i><b>b) Tính tổng các số trong dãy và đưa</b></i>
<i><b>kết quả ra màn hình.</b></i>


</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

10’


10’


hiện theo nhóm)


HS: Thực hiện theo yêu cầu của GV.
GV: Cho HS ghép các đoạn lệnh tạo nên
chương trình.


GV: Nhận xét và cho điểm HS


GV: cần phải khai báo hằng nmax
không?


HS: không.




<b> var A: array[1..100] of integer;</b>



<i><b>Bài giải</b></i>
<i><b>1a) </b></i>


<b>program cau1a;</b>
<b>uses crt;</b>


<b>const nmax=100;</b>


<b>var A: array[1..nmax] of integer;</b>
n,i: Integer;


<b>begin</b>
clrscr;
<i>{nhập mảng}</i>


write(‘Nhap so phan tu cua day n = ‘);
readln(n);


<b>for i:=1 to n do </b>
begin


writeln(‘nhap phan tu thu’,i);
readln(A[i]);


end;
<i>{hiển thị}</i>


<b>for i:=1 to n do </b>


write(‘A[’,i,’]=’,A[i]:5);


readln


end.
1b)


<b>program cau1b;</b>
<b>uses crt;</b>


<b>const nmax=100;</b>


<b>var A: array[1..nmax] of integer;</b>
s,n,i: Integer;


<b>begin</b>
clrscr;
<i>{nhập mảng}</i>


write(‘Nhap so phan tu cua day n = ‘);
readln(n);


<b>for i:=1 to n do </b>
begin


writeln(‘nhap phan tu thu’,i);
readln(A[i]);


</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54>

10’


GV: Câu lệnh: s:=s + A[i]; được thực
hiện bao nhiêu lần?



HS: bao nhiêu là tùy theo mảng A có
bao nhiêu phần tử.


HS:quan sát và trả lời câu hỏi của GV.
GV: Yêu cầu HS chạy thử chương trình
với dãy số : 2 4 1 5 7 0 9 11 1 15
HS: Chạy thử chương trình.


Kết quả: tong cua day so la: 55


GV: Hướng dẫn HS dùng thêm biến đếm
d kiểu nguyên để lưu số chữ số chẵn của
dãy. Giá trị khởi đầu d là bao nhiêu?
HS: var d : integer;


Khởi tạo d:=0


GV: Yêu cầu HS chạy thử chương trình
với dãy số : 2 4 1 5 7 0 9 11 1 15
HS: Chạy thử chương trình.


Kết quả: so chu so chan cua day so la: 3


S:=S+A[i];


Writeln(‘tong cua day so la:’,S);
readln


end.



1c) tương tự khai báo và nhập mảng câu a, b
<i>{kiểm tra dãy có bao nhiêu số chẵn}</i>


d:=0;


<b>for i:=1 to n do </b>


if A[i] mod 2=0 then d:=d+1;


Writeln(‘so chu so chan cua day so la:’,d);


Tiết
25


20’


GV: Chia HS thanh 4 nhóm (lấy HS theo
tổ trong lớp)


GV: Giới thiệu bài 1 cho HS đọc đề:


- Yêu cầu HS xác định dữ liệu đầu
vào, đầu ra.


- Ý tưởng giải bài toán.
HS:


<b>2a. dãy số nguyên gồm n phần tử, số</b>
nguyên K



- dùng thuật tốn tìm kiếm tuần tự.
<b>2b. dãy sốngun gồm n phần tử</b>


- tương tự bài toán 1b.


GV: Yêu cầu HS phân tích bài tốn, viết
các đoạn chương trình thực hiện việc
khai báo, nhập mảng A, kiểm tra một
phần tử có bằng K hay khơng?(Thực
hiện theo nhóm)


HS: Thực hiện theo yêu cầu của GV.
GV: Cho HS ghép các đoạn lệnh tạo nên
chương trình.


<b>Bài 2: Nhập vào 1 dãy số nguyên gồm N </b>
<b>phần tử </b>


<b>(N <= 100)</b>


<b>a. Nhập vào số ngun K, tìm xem K có </b>
<b>trong dãy khơng? Nếu có thì đưa ra </b>
<b>các vị trí của nó trong dãy. Nếu khơng</b>
<b>thì thơng báo “Khơng tìm thấy”.</b>
<b>Vd: Dãy A gồm 5 phần tử: 1 5 6 12 </b>


<b>5</b>


<b> Nhap so can tim: 5</b>


 Cac vi tri cua 5 la: 2 5


<b>b. Tính tích các số chẵn trong dãy</b>


<b>vd: Dãy A gồm 7 phần tử: 5 13 </b>
<b>4 7 2 10</b>


 Tich cac so chan la: 80


2a.


bài giải:
uses crt;


var a: array[1..100] of integer;
i,n,dem,k: integer;


begin


</div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

20’


readln(n);
for i:=1 to n do
begin


writeln('nhap so thu: ',i,' ');
readln(a[i]);


end;



write('nhap so can tim: ');
readln(k);


writeln('cac vi tri cua ',k,' la: ');
for i:=1 to n do


if a[i] = k then
begin


write(i:4);
dem:=dem+1;
end;


writeln; {xuong dong}


if dem = 0 then writeln('khong tim thay
vi tri nao');


readln
end.
2b.


bài giải:
uses crt;


var a: array[1..100] of integer;
i,n: integer;


tich: longint;
begin



writeln('nhap sl phan tu: ');
readln(n);


for i:=1 to n do
begin


writeln('nhap so thu: ',i,' ');
readln(a[i]);


end;
tich:=1;


for i:=1 to n do


if a[i] mod 2 =0 then tich:=tich*a[i];
writeln('tich cac so chan la: ',tich);
readln


end.


4. Củng cố:2’


- Cách lưu lại chương trình với tên khác và sửa để được chương trình mới.


- Ghi nhớ thuật tốn duyệt tất cả các phần tử của mảng, tìm các phần tử thỏa mãn điều
kiện cho trước để xử lý.


</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=56>

- Tìm hiểu chương trình ở Bài 2 (SGK – Tr64)
<b>V. Kiểm tra – đánh giá:</b>



<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2011</i>
<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>


Ngày soạn: 05/01/2012 Tuần thứ: 23
Ngày dạy : 06/01/2012<sub></sub>11/02/2012 Tiết thứ: 26,27
Lớp dạy : 11B1<sub></sub>11B6


</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=57>

<b>I. Mục tiêu cần đạt:</b>


- Củng cố cho học sinh những hiểu biết về kiểu dữ liệu mảng.


- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm
hiểu, chạy thử các chương trình có sẵn.


- Hình thành các kĩ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình: Khai
báo mảng, nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng,
duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.


- Nắm được ba thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểu mảng: Tính
tổng các phần tử thỏa mãn điều kiện nào đó; đếm số các phần tử thỏa mãn điều kiện nào đó;
tìm phần tử lớn nhất (hay nhỏ nhất) của mảng cùng với vị trí của nó trong mảng.



<b>II. Phương tiện dạy học:</b>


+ GV: - SGK, sách bài tập, sách giáo viên tin 11.
- Giáo án,phịng máy tính.


+ HS: - SGK tin học 11.


- Học và làm bài tập ở nhà.
<b>III. Phương pháp dạy học:</b>


Các phương pháp nhằm tích cực hóa hoạt động học tập của HS, thực hành.
<b>IV. Tiến trình dạy học:</b>


<i><b>1. Ổn định tổ chức:2’</b></i>
<i><b>2. Kiểm tra bài cũ:</b></i>


<i>- Kết hợp kiểm tra kiến thức trong giờ. </i>
<i><b>3. Bài mới:</b></i>


TG Hoạt động của GV và HS Nội dung


Tiết
26


GV: Chia HS theo nhóm (2HS/1 máy)
HS: bắt đầu thực hành


GV: quan sát HS thực hành
GV: chấm điểm một vài HS



<i><b>1. thực hành bài 1 trong tiết 24</b></i>


Tiết


27 GV: Chia HS theo nhóm (2HS/1 máy)HS: bắt đầu thực hành
GV: quan sát HS thực hành


GV: chấm điểm một vài HS


<i><b>2. thực hành bài 2 trong tiết 25</b></i>


4. Củng cố:


- Nhấn mạnh các thuật tốn tìm và đếm các phần tử của mảng thỏa mãn một yêu cầu nào đó
(lớn nhất, nhỏ nhất, là bội (ước) của một sơ nguyên, …)


- Nhấn mạnh cách nhập dữ liệu cho mảng, duyệt tất cả các phần tử của mảng.
- Lưu lại tồn bộ chương trình vừa thực hiện.


- Thốt khỏi Pascal, tắt máy tính đúng qui trình.
5. Hướng dẫn về nhà:


- Tự viết lại các chương trình theo yêu ccầu của bài 1, bài 2.
- Trả lời các câu hỏi và bài tập 1 → 9 (SGK – Tr 79, 80)
<b>V. Kiểm tra – đánh giá:</b>


</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=58>

<b>VI. Rút kinh nghiệm:</b>


<b>………</b>


<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2012</i>
<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>


<b> </b>




Ngày soạn: 10/02/2012 Tuần thứ: 24
Ngày dạy : 13/01/2012<sub></sub>18/02/2012 Tiết thứ: 28,29
Lớp dạy : 11B1<sub></sub>11B6


</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

<b>I - Mục đich yêu cầu:</b>


- Củng cố cho HS những kiến thức và kỹ năng đã có khi lập trình với kiểu dữ liệu mảng.
- Củng cố cho HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi) và kĩ
năng diễn đạt thuật toán này bằng chương trình sử dụng kiểu dữ liệu mảng.


<b>II - Phương tiện:</b>


+ GV: - SGK, sách bài tập, sách giáo viên tin 11.
- Giáo án, phịng máy tính.


+ HS: - SGK tin học 11.


- Học và làm bài tập ở nhà.
<b>III - Phương pháp : thực hành</b>
<b>IV - Tiến trình dạy học:</b>


1. Ổn định tổ chức: 2’


2. Kiểm tra bài cũ: kiểm tra trong quá trình thực hành
3. Bài mới:


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


5’
10’


18’


10’


GV: cho HS thực hành bài
tập:


<i>Viết Chương trình giải bài</i>
<i>tốn sắp xếp dãy N số bằng</i>
<i>tráo đởi.(ví dụ 2/57 SGK)</i>
Yêu cầu HS xác định: Input,
Output.


HS: Xác định các thơng tin
Input, Output.


GV: Hướng dẫn HS cài đặt
chương trình


băng ngơn ngữ Pascal sau đó


giới thiệu chương trình mẫu
để HS quan sát, tìm hiểu.
Yêu cầu HS gõ chương trình
vào máy, tìm hiểu, chạy thử
để kiểm nghiệm.


HS: Thực hiện theo yêu cầu
của GV.


GV: yêu cầu HS chạy thử
chương trình với N khá lớn
(100<=N<=250) và nhận xét
về thời gian chạy của
chương trình.


<i><b>1) Chương trình giải bài tốn sắp xếp dãy N số bằng tráo</b></i>
<i>đổi.</i>


Input: dãy số gồm N số chưa sắp xếp
Output: dãy số đã được sắp xếp
<i><b>Chương trình:</b></i>


</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60>

HS: thực hiện yêu cầu của
GV.


GV: Hãy sửa lại chương
trình để được chương trình
sắp xếp dãy số theo chiều
khơng tăng?



HS: Sửa lại chương trình.
Thay If A[i]> A[i+1] then
<b>…</b>


bởi If A[i]< A[i+1] then …
Chạy chương trình để kiểm
tra.


Tiết
29


5’


10’


20’


Yêu cầu HS xác định: Input,
Output.


HS: Xác định các thông tin
Input, Output.


2a. Input: dãy số nguyên
gồm N phần tử.


Output: in ra các số là
bội của 3 và trung bình cộng
của các số này.



2b. Input: dãy số nguyên
gồm N phần tử.


Output: Đưa ra các số
âm và vị trí của các số âm
đó.


GV: Hướng dẫn HS cài đặt
chương trình


bằng ngơn ngữ Pascal.
Yêu cầu HS gõ chương trình
vào máy, tìm hiểu, chạy thử
để kiểm nghiệm.


HS: Thực hiện theo yêu cầu
của GV.


GV: yêu cầu HS chạy thử
chương trình với N khá lớn
(100<=N<=250) và nhận xét
về thời gian chạy của
chương trình.


<i><b>2. Nhập vào 1 dãy số nguyên gồm N phần tử </b></i>
<i><b>(N <= 100)</b></i>


<i><b>a.Tính TB cộng các bội số của 3 và đưa ra các bội số </b></i>
<i><b>đó</b></i>



<i><b>vd: Dãy gồm 5 phần tử: 10 6 4 3 13</b></i>
 <i><b>Cac boi so cua 3 la:</b></i>


<i><b>6</b></i> <i><b>3</b></i>


<i><b>TB Cong la: 4.5</b></i>


<b> b</b>

<i><b>. Đưa ra các số âm có trong dãy và vị trí của chúng</b></i>
<i><b>ví dụ: Dãy A gồm 5 phần tử: 2 15 -7 4 -20</b></i>


 <i><b>Cac so am la:</b></i>
<i><b>-7 vi tri la: 3</b></i>


<i><b>-20 vi tri la: 5</b></i>
<b>Bài giải:</b>


<b>2a. </b>


program bai2a;
uses crt;


var a: array[1..100] of integer;
i,n,dem,s: integer;


tbc: real;
begin


writeln('nhap sl phan tu: ');
readln(n);



for i:=1 to n do
begin


writeln('nhap so thu: ',i,' ');
readln(a[i]);


end;


writeln('cac boi so cua 3 la: ');
for i:=1 to n do


</div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

5’


HS: thực hiện yêu cầu của
GV.


GV: Kiểm tra bài của HS và
chấm điểm.


GV: Cho HS vệ sinh phịng
máy tính.


HS: thực hiện yêu cầu của
GV.


write(a[i]:4);
dem:=dem+1;
s:=s+a[i];
end;



writeln; {xuong dong}
tbc:= s/dem;


writeln('tb cong la: ',tbc:6:1);
readln


end.
2b.


Program cau2b;
uses crt;


var a: array[1..100] of integer;
i,n: integer;


begin


writeln('nhap sl phan tu: ');
readln(n);


for i:=1 to n do
begin


writeln('nhap so thu: ',i,' ');
readln(a[i]);


end;


writeln('cac so am la: ');
for i:=1 to n do



if a[i] < 0 then
begin


write(a[i]:4);


writeln(' vi tri la: ',i);
end;


readln
end.


4. Củng cố:2’


- Kỹ thuật nhập dữ liệu cho mảng, in mảng, duyệt mảng, đếm số phần tử thỏa mãn một
yêu cầu nào đó.


5.Dặn dò: 2’


BTVN: Viết chương trình nhập vào N (N≤100) số nguyên,một số nguyên dương k (k ≤N).
Tính và đưa ra màn hình tổng của k số đầu tiên trong dãy N số vừa nhập.


Hướng dẫn:


- khai báo mảng để lưu trữ dãy số


- nhập số nguyên K (khi nhập chú ý k ≤N)


</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

<b>………</b>
<b>………</b>


<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2012</i>
<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>


Ngày soạn: 15/02/2012 Tuần thứ: 25
Ngày dạy : 20/02/2012<sub></sub>25/02/2012 Tiết thứ: 30, 31
Lớp dạy : 11B1<sub></sub>11B6


<b>CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC</b>
<b> §12 KIỂU XÂU (Tiết 1)</b>


<b>I - Mục đích yêu cầu:</b>


- Biết xâu là một dãy kí tự (có thể coi xâu là một mảng một chiều)
- Biết cách khai báo xâu, truy cập phần tử của xâu.


- Biết sử dụng một số thủ tục, hàm thông dụng về xâu.


- Cài đặt được một số chương trình đơn giản có sử dụng xâu.
<b>II - Phương tiện dạy học:</b>


</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

+ HS: - SGK tin học 11.
<b>III - Phương pháp dạy học:</b>


- Các PP nhằm tích cực hóa hoạt động học tập của HS: Thuyết trình, vấn đáp gợi mở.


<b>IV - Tiến trình dạy học:</b>


1. Ổn định tổ chức:
2. Kiểm tra bài cũ:


<i>Hỏi: Nêu cách tham chiếu tới phần tử của mảng 1 chiều ? cho VD ?</i>
<i><b> 3. Bài mới:</b></i>


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


10’


25’


Hoạt động 1: tìm hiểu về kiểu dữ liệu kiểu xâu
GV: Nêu khái niệm xâu ?


HS: Trả lời


GV:Y/c Hs khác nhận xét, cho VD ?
HS: Trả lời


GV: Cho HS nhận xét số kí tự của xâu ?
HS: Trả lời.


GV: Y/c HS cho VD xâu có kí tự trống, xâu rỗng,
và nhận xét số lượng kí tự của mỗi xâu.


HS: Trả lời



GV: Giới thiệu cách tham chiếu tới phần tử của
xâu ?


GV: Cho VD ? Cho HS nhận xét ?


Hoạt động 2: Khai báo dữ liệu kiểu xâu và các thao
tác xử lí xâu.


GV: Giới thiệu cách khai báo biến xâu ? Cho VD ?


<b>* Một số khái niệm:</b>


- Xâu là một dãy kí tự trong bảng mã
ASCII.


- Có thể xem xâu là mảng một chiều.
Mỗi kí tự của xâu là một phần tử của
mảng.


- Số lượng kí tự trong xâu được gọi là
độ dài của xâu.


- Xâu có độ dài bằng 0 gọi là xâu
rỗng.


- Trong ngôn ngữ Pascal, tham chiếu
tới phần tử thường được viết: <tên
biến xâu>[chỉ số]


- Chỉ số phần tử trong xâu thường


được đánh số bắt đầu từ 1.


Ví dụ:


<b>A</b> <b>T</b> <b>I</b> <b>N</b> <b>H</b> <b>O</b> <b>C</b>


1 2 3 4 5 6 7


- Tên xâu: A


- Độ dài xâu (số kí tự trong xâu): 7
- Tham chiếu đến kí tự thứ i ta viết
A[i]


Ví dụ: A[5] = ‘H’


<b>Cách khai báo và xử lí xâu trong</b>
<b>ngơn ngữ Pascal:</b>


<i><b>1. Khai báo biến xâu:</b></i>


</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

GV: Độ dài lớn nhất của xâu là bao nhiêu ?Vì sao ?
HS: Trả lời


GV: hãy nhắc lại định nghĩa biểu thức số học ?
Từ đó đưa ra khái niệm biểu thức xâu ?


HS: Trả lời


GV: Y/c HS định nghĩa cách ghép xâu ? Cho VD ?


HS: Trả lời


GV: Hãy nhắc lại các phép toán đã học trên kiểu
dữ liệu chuẩn ?


HS: Trả lời.


GV: giới thiệu các phép so sánh xâu, cho VD ?


Trong đó:


+ String: là tên dành riêng.


+ Độ dài lớn nhất của xâu khơng
vượt q 255


Ví dụ: Var hoten: string[26];


Chú ý: Khi khai báo xâu có thể bỏ
qua phần khai báo [độ dài lớn nhất
<i>của xâu], khi đó độ dài lớn nhất của</i>
xâu sẽ nhận giá trị ngầm định là 255.
Ví dụ: Var chuthich: string;


<i><b>2. Các thao tác xử lí xâu:</b></i>


<b>a. Biểu thức xâu, phép ghép xâu:</b>
Biểu thức xâu là biểu thức trong đó
các tốn hạng là các biến xâu hoặc
biến kí tự.



* Phép ghép xâu: Kí hiệu ‘+’ dùng để
ghép nhiều xâu thành một xâu.


VD: ‘Ha ‘ + ‘Noi’ <sub></sub> ‘Ha Noi’


<b>b. Phép so sánh: =, <>, >, <, >=, <=</b>
Quy ước:


+ Xâu rỗng là xâu: ‘’


+ Xâu A = B nếu chúng giống hệt
nhau.


VD: ‘Tin hoc’ = ‘Tin hoc’
+ Xâu A> B nếu:


- Kí tự đầu tiên khác nhau giữa
chúng ở xâu A có mã ASCII lớn hơn
ở xâu B.


- Xâu B là đoạn đầu của xâu A
Ví dụ:


‘Ha Noi’ > ‘Ha Nam’
‘Xau’ < ‘Xau ki tu’


20’ <b>KIỂU XÂU (TT)</b>



Hoạt động 1: Tìm hiểu một số thủ tục và hàm dùng để xử lí xâu.
<b>c. Các thủ tục và hàm chuẩn xử lí xâu:</b>


GV: Đưa ra một số câu hỏi:


- Làm sao biết một ký tự là dấu cách?
- Làm sao để xóa đi một vài kí tự?


- Làm sao để thêm vào xâu một vài kí tự?


</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

- Làm sao biết xâu hiện có bao nhiêu kí tự?


Trên cơ sở đó giới thiệu một số hàm, thủ tục thông dụng của kiểu xâu.
GV: Hướng dẫn HS lập bảng.


<b>Thủ tục</b> <b>Ý nghĩa</b> <b>Ví dụ</b>


1. Delete(st,vt,n) Xóa n kí tự của biến xâu st bắt <sub>đầu từ vị trí vt.</sub> S = ‘Song Hong’<sub>Delete(S,5,5) </sub>


 S = ’Hong’
2. insert(s1,s2,vt) Chèn xâu s1 vào xâu s2, bắt <sub>đầu ở vị trí vt.</sub> S1 = ’1’, S2 = ’Hinh .2’<sub>Insert(s1,s2,6) </sub>


 S2 =’Hinh 1.2’


<b>Hàm</b> <b>Ý nghĩa</b> <b>Ví dụ</b>


1. copy(s,vt,n) Tạo xâu gồm n kí tự liên tiếp <sub>bắt đầu từ vị trí vt của xâu S</sub> S = ‘Tin hoc’<sub>Copy(S,5,3) = ‘hoc’</sub>
2. Length(S) Cho giá trị là độ dài xâu S S = ‘Tin hoc’


Length(S) = 7


3. Pos(S1,S2) Cho vị trí xuất hiện đầu tiên


của xâu S1 trong xâu S2. S=’ABCDBCE’ Pos(‘BC’,S) = 2
Pos(‘G’,S)=0
4. Upcase(ch) Cho chữ cái in hoa ứng với chữ


cái trong ch Upcase(ch) = ‘A’ch = ’a’
20’ Hoạt động 2: Rèn luyện kỹ năng vận dụng hàm và


thủ tục.


GV: Treo bảng phụ
HS: Quan sát


GV: Y/c HS trả lời một số câu hỏi:


- Độ dài của 2 xâu đã khai báo là bao nhiêu ?


- Ý nghĩa của hàm Length(a), Length(b).
HS: Trả lời


GV: nhận xét.


Trình chiếu VD1
Var a,b: string;
Begin


Writeln(‘nhap ho ten thu nhat’);
Readln(a);



Writeln(‘nhap ho ten thu hai’);
Readln(b);


If length(a)>length(b) then
writeln(a)


else writeln(b);
readln


End.
GV: Treo bảng phụ thứ 2


HS: Quan sát


GV: Ý nghĩa của lệnh X:=length(b);
HS: Trả lời


GV: Nhận xét


GV: Cho HS giải thích câu lệnh
For i:=k downto 1 do write(a[i]);


HS: in ra các kí tự theo chiều ngược lại.


Trình chiếu VD 2
Var x:byte;
a, b: string;
begin


Writeln(‘nhap ho ten thu nhat’);


Readln(a);


Writeln(‘nhap ho ten thu hai’);
Readln(b);


X:=length(b);


If a[1]=b[x] then writeln(‘trung
nhau’) else writeln(‘khong trung
nhau’);


readln
End.


</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

GV: Quan 3 VD vai trò của hàm length();
HS: trả lời


GV: nhận xét.
4. Củng cố:3’


- Nhắc lại một số khái niệm? Lấy vị dụ minh họa?


- Nêu các thủ tục và hàm chuẩn thông dụng của kiểu xâu? Ý nghĩa, Ví dụ?
5.Dặn dò: 2’


- Nắm chắc các khái niệm về xâu.


- Nắm chắc cách khai báo xâu, lấy được ví dụ minh họa.


- Nắm và hiểu được ý nghĩa của các thủ tục và hàm thông dụng trên xâu, vận dụng được vào


các trường hợp cụ thể.


- Đọc trước các ví dụ (SGK – Tr 71, 72)
<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2012</i>
<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>


Ngày soạn: 20/02/2012 Tuần thứ: 26
Ngày dạy : 27/02/2012<sub></sub>03/032/2012 Tiết thứ: 32
Lớp dạy : 11B1<sub></sub>11B6


<b>BÀI TẬP</b>


<b>I. Mục đích yêu cầu:</b>


<b>1. Kiến thức: </b>


- Củng cố cho HS những kiến thức và kỹ năng đã có khi lập trình với kiểu xâu.
<b>2. Kỹ năng:</b>


<b>- Vận dụng được các hàm và thủ tục trong kiểu dữ liệu xâu để giải bài tập, các thao tác xử lí</b>
xâu.



<b>II. Chuẩn bị:</b>


<b>1. GV: Giáo án, SGK, máy chiếu.</b>
<b>2. HS: Vở ghi, học bài cũ ở nhà.</b>


<b>III. Phương pháp: GV hướng dẫn cho HS giải bài tập</b>
<b>IV. Tiến trình lên lớp:</b>


<b>1. Ổn định lớp, kiểm tra sỉ số: 1’</b>


<b>2. Kiểm tra bài cũ: Kiểm tra trong quá trình giải bài tập.</b>
<b>3. Bài mới:</b>


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>


</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

<b>15’</b>


<b>15’</b>


<b>cũ về kiêu dữ liệu xâu.</b>
<b>GV: đặt câu hỏi</b>


- Nêu cách khai báo một biến kiểu
xâu kí tự ? Cho VD ?


- Nêu tên, ý nghĩa, cho VD các hàm
và thủ tục để xử lí xâu kí tự ?
GV: Gọi 3 HS lên bảng trình bày.
HS: Lên bảng.



GV: Goi HS dưới lớp nhận xét, sửa
lỗi (nếu có sai) và cho điểm HS.
<b>* Hoạt động 2: Vận dụng lý thuyết</b>
<b>để giải một số bài tập.</b>


GV: Cho HS đọc đề và nêu input
và output của bài toán.


HS: Đọc đề và trả lời.


GV: Cho HS nêu hướng giải quyết
bài toán.


HS: suy nghĩ và trả lời
GV: Nhận xét, bổ sung.


GV: Cho HS viết chương trình
hồn chỉnh dựa vào ý tưởng.


GV: nhận xét, sửa lỗi chương trình
HS: ghi bài.


GV: Cho HS đọc đề và nêu input
và output của bài toán.


HS: Đọc đề và trả lời.


GV: Cho HS nêu hướng giải quyết
bài toán.



HS: suy nghĩ và trả lời
GV: Nhận xét, bổ sung.


GV: Cho HS viết chương trình
hồn chỉnh dựa vào ý tưởng.


<b> Xem lại vở ghi bài.</b>


<b>2.Vận dụng:</b>


<b>Bài 1: Viết chương trình nhập vào một xâu kí</b>
tự dếm và đưa ra màn hình số kí tự của xâu
vừa nhập vào.


Input: nhập vào một xâu kí tự.


Output: đưa ra thơng báo số kí tự của xâu.
Ý tưởng:


Vận dụng hàm Length() để tính độ dài của
xâu kí tự nhập vào và độ dài này cũng chính
là số kí tự của xâu.


Chương trình
Program bt1;
Uses crt;
Var s: string;
x: byte;
begin


clrscr;


writeln(‘nhap vao xau ki tu’);
readln(s);


x:=length(s);


writeln(‘so ki tu cua xau la : ’, x);
readln


end.


<b>Bài 2: Nhập vào xâu kí tự sau đố in ra xâu </b>
đảo ngược và xâu chữ in hoa trên màn hình.
Input: Nhập vào xâu kí tự s


Output: Đưa ra màn hình 2 xâu: 1 xâu đảo
ngược của s và 1 xâu chữ in hoa của xâu s.
Ý tưởng:


+ áp dụng hàm Length(), duyệt các phần tử
của xâu theo chiều ngược lại đồng thời in ra
từng phần tử của xâu s


</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

GV: nhận xét, sửa lỗi.
HS: ghi bài vào vở.


clrscr;


writeln(‘nhap vao xau ki tu’);


readln(s);


x:=length(s);
{in xau dao nguoc}


Write(‘xau dao nguoc cua xau s la :’);
For i:=x downto 1 do write(s[i]);
{in xau chu in hoa}


For i:= 1 to x do write(upcase(s[i]));
Readln


End.


<b>4. Củng cố: 2’ Nhấn mạnh các hàm và thủ tục trong 2 bài tập để thấy được vai trò của </b>
chúng.


<b>5. dặn dò: 2’</b>
<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2012</i>
<b> Hướng dẫn tập sự</b>


<b> Hồ Phước Điền</b>



Ngày soạn: 20/02/2012 Tuần thứ: 26
Ngày dạy : 27/02/2012<sub></sub>03/032/2012 Tiết thứ: 32
Lớp dạy : 11B1<sub></sub>11B6


<b>BÀI TẬP (TT)</b>


<b>I. Mục đích yêu cầu:</b>


<b>a. Kiến thức: </b>


- Củng cố cho HS những kiến thức và kỹ năng đã có khi lập trình với kiểu xâu.
<b>b.</b> <b> Kỹ năng:</b>


<b>- Vận dụng được các hàm và thủ tục trong kiểu dữ liệu xâu để giải bài tập, các thao tác</b>
xử lí xâu.


<b>II. Chuẩn bị:</b>


<b>a. GV: Giáo án, SGK, máy chiếu.</b>
<b>b. HS: Vở ghi, học bài cũ ở nhà.</b>


<b>III.</b> <b>Phương pháp: GV hướng dẫn cho HS giải bài tập</b>
<b>IV.Tiến trình lên lớp:</b>


<b>1. Ổn định lớp, kiểm tra sỉ số: 1’</b>


<b>2. Kiểm tra bài cũ: Kiểm tra trong quá trình giải bài tập.</b>
<b>3. Bài mới:</b>


<b>TG</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>



</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

<b>15’</b>


<b>20’</b>


<b>GV: Y/C HS đọc đề bài toán xác đinh </b>
Input và Output bài toán.


HS: Thực hiện Y/C của GV.




Input: nhập vào xâu kí tự




Output: đưa ra số kí tự là chữ số trong
xâu vừa nhập.


GV:Cho HS tìm hướng giải quyết bài
tốn.


GV: hướng dẫn: các kí tự là chữ số
nếu ‘0’<=kí tự <=’9’


HS: suy nghĩ trả lời




dùng biến đếm và duyệt qua từng


phần tử nếu phần tử nào nằm trong
đoạn đó thì tăng biến đếm lên 1 đưn
vị.


GV: y/c HS viết chương trình cho bài
tốn.


HS: Viết chương trình.


<b>* Hoạt động 2: Vận dụng lý thuyết </b>
<b>để giải một số bài tập.</b>


GV: Cho HS đọc đề và nêu input và
output của bài toán.


HS: Đọc đề và trả lời.


GV: Cho HS nêu hướng giải quyết
bài toán.


HS: suy nghĩ và trả lời


GV: Nhận xét nếu HS không trả lời
được GV đưa ra ý tưởng.


GV: Hướng dẫn cho HS viết chương
trình hoàn chỉnh dựa vào ý tưởng.


<b>3.Bài tập nâng cao: </b>



<i><b> * đề:Viết chương trình đếm số ký tự chữ số</b></i>
<i>trong một xâu ký tự được nhập vào từ bàn</i>
<i>phím.</i>


Chương trình:
Uses Crt;


Var St:String;


i,d, x:Byte;
Begin


Write(‘Nhap xau St: ‘); Readln(St);
x:=length(st);


For i:=1 to x do


If (St[i]>=‘0’) and (St[i]<=
‘9’) Then


d:=d+1;


Write(‘So ky tu chu so trong xau: ‘,
d);


Readln;
End.


<i>* Đề: Viết chương trình nhập vào một xâu ký</i>
<i>tự từ bàn phím. Thơng báo lên màn hình các</i>


<i>chữ cái có trong xâu và số lượng của chúng</i>
<i>( Không phân biệt chữ hoa hay chữ thường).</i>


<i><b>Ý tưởng:</b></i>


- Dùng một mảng dem với chỉ số là
các chữ cái để lưu trữ số lượng của các chữ
cái trong xâu.


- Duyệt qua tất cả các ký tự của xâu
St: Nếu ký tự đó là chữ cái thì tăng ơ biến
mảng dem[St[i]] lên 1 đơn vị.


Chương trình:
Uses Crt;


Var St:String;


dem: Array[‘A’..’Z’] Of Byte;
i:Byte;


ch:Char;
Begin


Write(‘Nhap xau St: ‘); Readln(St);
{Khởi tạo mảng}


</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

GV: nhận xét, sửa lỗi chương trình
HS: ghi bài.



GV: nhận xét, sửa lỗi.


For i:=1 To Length(St) Do


If Upcase(St[i]) IN [‘A’..’Z’]
Then Inc(dem[Upcase(St[i])]);


{Liệt kê các ký tự ra màn hình}
For ch:=’A’ To ‘Z’ Do


If dem[ch]>0 Then Writeln(ch,’: ’,dem[ch]);
Readln;


End.


<b>4. Củng cố: 2’ Nhấn mạnh các hàm và thủ tục trong 2 bài tập để thấy được vai trò của </b>
chúng.


<b>5. dặn dò: 2’</b>


Về nhà xem lại các chương trình trong 2 tiết bài tập chuẩn bị tiết sau thực hành
<b>V. Kiểm tra – đánh giá:</b>


<b>………</b>
<b>………</b>
<b>VI. Rút kinh nghiệm:</b>


<b>………</b>
<b>………</b>
<i>Khánh Vĩnh, ngày tháng năm 2012</i>


<b> Hướng dẫn tập sự</b>


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×