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

giao an 11 full

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 (422.47 KB, 81 trang )

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

<b> CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP</b>


<b>TRÌNH</b>



<b></b>



<b>------KHÁI NIỆM LẬP TRÌNH VÀ</b>


<b>NGƠN NGỮ LẬP TRÌNH </b>



<b>I. MỤC ĐÍCH, U CẦU</b>


- 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ữ.
- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch.


- Phân biệt được biên dịch và thông dịch.


<b>II. PHƯƠNG PHÁP</b>


Phát vấn kết hợp diễn giảng


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


SGK, SGV, bảng vẽ khổ lớn… nếu có máy chiếu thì tốt.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (Kiểm tra sĩ số)</b></i>


<i><b>2. Ôn lại kiến thức cũ (nếu có)</b></i>
<i><b>3. Hoạt động dạy và học</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>



<b>Hoạt động 1: tìm hiểu khái niệm </b>


lập trình và ngơn ngữ lập trình
Ở lớp 10 các em đã học các loại
ngơn ngữ lập trình.


<b>?</b>

<b> Hãy cho thầy biết có mấy loại </b>


ngơn ngữ lập trình?


<b>? Cho biết đặc điểm của từng </b>


loại?


<b>? Có mấy bước để giải bài tốn </b>


trên máy tính? Kể tên?


Chúng ta thấy ở bước thứ 3 viết
chương trình hay cịn gọi là lập
trình?


Thế nào là lập trình?


<i><b>Bài tốn:</b></i>


Viết chương trình giải phương
trình ax + b = 0?


Có 3 loại: ngơn ngữ máy,
hợp ngữ, ngơn ngữ lập
lập trình bậc cao?


Ngơn ngữ máy là ngơn
ngữ máy có thể hiểu trực
tiếp.


Hợp ngữ: sd từ tiếng
Anh


Ngơn ngữ lập trình bậc
cao:


Các bước để giải bài tốn
trên máy tính:


- Xác định bài toán
- Xây dựng và lựa thuật
toán


- Viết chương trình (lập
trình)


- Hiệu chỉnh
- Viết tài liệu


Input: hai số a, b.


Ngày soạn: 03/8/2010 Tuần: 1


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

<b>?</b>

<b> Hãy xác định Input và Output </b>


bài toán?



Xác định thuật tốn?


Đó là thuật tốn của bài tốn.

<b>? Để diễn tả thuật tốn cho </b>


người nước ngồi hiểu em dùng
ngơn ngữ nào?


<b>? Cịn để cho máy hiểu em dùng </b>


ngôn ngữ nào?


Dẫn dắt vấn đề: như vậy hoạt
động diễn đạt một thuật tốn thơng
qua ngơn ngữ lập trình được gọi là
lập trình.


Đọc SGK cho biết thế nào là lập
trình?


Giải thích thế nào là câu lệnh
Về việc chọn ngơn ngữ lập trình
ta có thể chọn 1 trong 3 loại ngơn
ngữ trên.


Nhưng do đặc điểm vượt trội của
ngôn ngữ bậc cao nên người ta
thường sd nó để lập trình.


<b>?</b>

<b> Những đặc điểm đó là những </b>



đặc điểm nào? Và để sd ngơn ngữ
lập trình bậc cao phải có cái gì?
Đó là những đặc điểm của ngơn
ngữ lập trình. Nhưng khi sd ngơn
ngữ lập trình bậc cao cần phải có
chương trình dịch.


Chức năng của chương trình
dịch.


Ví dụ trong SGK giới thiệu về
trường.


Chương trình dịch có hai loại:
Biên dịch và thông dịch.


Output: x = - b/a, ptvn,
pt có vơ số nghiệm.
Bước 1: nhập a, b;
Bước 2: nếu a <> 0 thì
x=-b/a


Bước 3: Nếu a = 0 thì
ptvn;


Bước 4: nếu a = 0 và b=0
thì pt có vơ số nghiệm
Em dùng tiếng Anh
Ngơn ngữ lập trình
HS phát biểu



HS chia nhóm thảo luận
trong 3 phút


Dịch từ ngôn ngữ khác
sang ngôn ngữ máy


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


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


<b>2. Chương trình dịch </b>


Chức năng: chuyển đổi chương
trình được viết bằng NNLT bậc cao
thành chương trình thực hiện trên máy
được.


Chương trình dịch có hai loại: biên
dịch và thơng dịch


<i><b>a) Thơng dịch: </b></i>


Chương trình dịch


<b>Chương trình nguồn</b>



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

<b>?</b>

<b> Biên dịch và thông dịch khác </b>


nhau chỗ nào?


Biên dịch:


- Dịch tồn bộ chương
trình


- Có thể lưu trữ để sd lại
Thơng dịch:


- Dịch từng câu lệnh
- Không lưu lại được


 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 hoặc nhiều câu lệnh tương
ứng trong NN máy


 Thực hiện câu lệnh vừa
chuyển được


<i><b>b) Biên dịch:</b></i>


 Duyệt, phát hiện lỗi, kiểm tra
tính đúng đắn của câu lệnh



 Dịch tồn bộ chương trình
nguồn thành chương trình đích có thể
thực hiện trên máy và có thể lưu trữ
để sd lại khi cần thiết.


<b>V. CỦNG CỐ - DẶN DỊ</b>
<i><b>a. Củng cố: </b></i>


Thế nào là lập trình?


Chức năng của chương trình dịch?


Sự giống và khác nhau của biên dịch và thơng dịch?


<i><b>b. Dặn dị: </b></i>
<b>Soạn bài trước:</b>


? Thành phần của NNLT?


? Thế nào là tên? Qui tắc đặt tên?


? Có mấy loại tên? tại sao phải nhớ tên riêng?
? Thế nào là hằng? thế nào là biến?


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

<b>CÁC THAØNH PHẦN CƠ BẢN CỦA </b>


<b>NGƠN NGỮ LẬP TRÌNH</b>






<b>I. MỤC ĐÍCH U CẦU</b>


- Biết ngơn ngữ lập trình có ba thành phần cơ bản


- Biết một số khái niệm tên, tên dành riêng, tên chuẩn, hằng và biến


- HS nhớ qui định về cách đặt tên hằng, biến... Biết nhận biết tên đặt sai, đúng.


<b>II. PHƯƠNG PHÁP </b>


Diễn giảng kết hợp phát vấn


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


SGK, SGV, nếu có máy chiếu thì tốt


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (Kiểm tra sỉ số)</b></i>


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


Câu 1: Chức năng của chương trình dịch


Câu 2: Sự giống và khác nhau giữa biên dịch và thông dịch


<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DỤNG</b>


<b>Hoạt động 1:</b>



<b>? Có những yếu tố nào để</b>


xây dựng nên ngôn ngữ tiếng
Việt?




NNLT cũng tương tự như
vậy, nó gồm các thành phần:
bảng chữ cái, cú pháp và ngữ
nghĩa.


<b>? Hãy đọc SGK trang 9</b>


cho thầy biết trong Pascal
bảng chữ cái bao gồm kí tự
nào?


Sau khi HS trả lời treo
bảng khổ lớn bảng chữ cái


Bảng chữ cái của các
NNLT nói chung khơng khác
nhau nhiều.


VD: trong C++ khác với
Pascal cịn có sd thêm kí tự
như dấu (“), ( \), ( ! ).


Nhờ vào chúng mà chương
trình dịch biết được tổ hợp
nào của các kí tự trong bảng


chữ cái là hợp lệ và tổ hợp


<sub>Bảng chữ cái tiếng Việt,</sub>
số, dấu.


<sub> Cách ghép kí tự thành</sub>
câu, cách ghép từ thành câu

<sub> Ngữ nghĩa của từ và</sub>
câu.


Đọc SGK và trả lời câu hỏi


Chú ý nghe giảng


<b>1. Các thành phần cơ bản</b>
<i><b>a) Bảng chữ cái </b></i>


Tập hợp kí tự được dùng để viết
chương trình.


Khơng được dùng bất cứ kí tự nào
ngồi các kí tự qui định trong bảng chữ
cái


Ví dụ:


Trong Pascal bảng chữ cái bao gồm:
Chữ cái thường và chữ cái in hoa tiếng
Anh



a...z ; A..Z;


10 chữ thập phân: 0..9
kí tự đặc biệt:


+ - * / = < < [ ] . ,
; # ^ @ $ & ( ) { } : ‘


Dấu cách (mã ASCII là 32)



<i><b>b) Cú pháp Là bộ qui tắt để viết chương</b></i>


trình


Ngày soạn: 08/8/2010 Tuần: 2


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

nào là khơng hợp lệ. Nhờ đó,
có thể mô tả thuật toán để
máy thực hiện.


VD: phần lớn NNLT đều sd
dấu cộng ( +)


Xét hai biểu thức sau:


A + B (1)


I + J (2)


Giả sử: A, B là đại lượng nhận


giá trị thực; I, J nhận giá trị
nguyên


(giải thích số thực và số
nguyên)


Dấu (+) trong biểu thức (1)
là cộng hai số thực


Dấu (+) trong biểu thức (2)
là cộng hai số nguyên.


<b>Hoạt động 2: Một số khái</b>
<b>niệm</b>


Một trong những khái niệm
đó là tên.


Tên phải được đặt theo qui
tắc đặt tên tuỳ vào từng
NNLT


<b>? Những tên sao đây tên nào</b>


đúng qui tắc tên nào sai qui
tắc trong NNLT Pascal?
LOP11C2


LOP 11C2
LOP_11C2
2D



A\B


Lưu ý: NNLT Pascal khơng
phân biệt chữ hoa chữ thường


Lấy ví dụ về tên HS
Tên thì có các loại tên sau:


Chúng ta không được dùng
tên này với ý nghĩa khác.


<b>? Trong Pascal có những</b>


tên riêng nào?


Ý nghĩa của tên chuẩn được
qui định trong các thư viện
của NNLT.


<b>? Trong Pascal có những</b>


tên chuẩn nào?


Chúng ta nên đặt tên sao
cho gợi nhớ nội dung của nó
khơng nên đặt q dài hay q


Những tên đúng:
LOP11C2 LOP_11C2
Những tên sai



LOP 11C2, 2D, A\B


Program, uses, const, type,
var, begin, end…


abs, sqr, sqrt, byte, integer,
real, longin…


<i><b>c) Ngữ nghĩa xác định ý nghĩa thao tác</b></i>


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ó


<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 đặt tên theo qui tắc của NNLT và của
từng chương trình dịch cụ thể


* Trong Turbo Pascal tên:


- Không chứa dấu cách, không q
127 kí tự, khơng chứa kí hiệu đặc biệt.


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


VD:



- Tên đúng


LOP11C2, LOP_11C2
- Tên sai:


LOP 11C2, 3D, A\B


<i>* Tên dành riêng (từ khoá): NNLT qui</i>
định dùng với ý nghĩa xác định.


<i>Vd: Trong pascal: program, uses,</i>
<i>const, type, var, begin, end…</i>




<i>* Tên chuẩn: được dùng với một ý nghĩa</i>
nào đó. Nhưng ta có thể khai báo và dùng
với ý nghĩa và mục đích khác.


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

ngắn. vd: để đặt tên cho điểm
mơn tốn thì ta nên đặt dtoan
khơng nên đặt dt hay
diem_mon_toan.


<b>? Vì sao ta phải nhớ tên dành</b>


riêng?


Hằng có nhiều loại như: hằng
số học, hằng logic, hằng
xâu…



VD: DELTA, I, J…


Khi đặt chú thích thì
chương trình dịch sẽ bỏ qua.


Để khi đặt tên khơng trùng.


* Tên do người lập trình đặt: tên này xác
định bằng cách khai báo trước khi sd,
không được trùng với tên dành riêng
Vd: X1; X2; DELTA, CT_VD; BAI6_3


<i><b>b) Hằng và biến</b></i>
<b>* Hằng: </b>


Hằng là đại lượng khơng thay đổi
trong q trình thực hiện chương trình.
Vd: - hằng số học: 2; 0; -5; 1.25; -2.36


- hằng logic: TRUE; FALSE.


- hằng xâu: ‘tin hoc’;
‘nguyen_van_A’; ‘Truong THPT Duyen
Hai’


<b>* Biến: </b>


Biến là đại lượng được đặt tên,
dùng để lưu trữ giá trị và giá trị có thể


được thay đổi trong q trình thực hiện
chương trình.


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


Đặt chú thích để người đọc chương
trình đó dễ hiểu hơn


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


<b>V.CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


- Thành phần của NNLT: bảng chữ cái, cú pháp, và ngữ nghĩa.
- Một số khái niệm: tên, hằng, biến.


<i><b>2. Dặn dò: </b></i>


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

<b>BÀI TẬP CUỐI CHƯƠNG 1</b>





<b>------I. MỤC ĐÍCH - YÊU CẦU</b>


- Củng cố lại kiến thức chương 1
- Giải một số bài tập của chương


<b>II. PHƯƠNG PHÁP </b>



Phát vấn kết hợp làm việc theo nhóm và diễn giảng.


<b>III. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp: (Kiểm tra sĩ số)</b></i>


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


Câu 1: Hãy kể tên thành phần của NNLT?


Câu 2: Thế nào là tên dành riêng? Tại sao ta phải nhớ tên dành riêng?
Câu 3: Những tên nào sau đây là đúng qui tắc, sai qui tắc?


_VIDU1; A#B; VI_DU1; VAR; VAR1.


3. Nội dung:


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DỤNG</b>


<b>Câu 1 Tại sao người ta phải</b>


xây dựng các NNLT bậc cao?


<b>Câu 2: Chương trình dịch là</b>


gì? Tại sao phải có chương
trình dịch?


Nêu Input và Output của
chương trình dịch.



<b>Câu 3: Biên dịch và thông</b>


dịch khác nhau chỗ nào?


<b>Câu 4 Cho biết sự các điểm</b>


khác nhau giữa tên riêng và
tên chuẩn?


Gọi một em trả lời


<b>Câu 5: Hãy viết ra 3 tên đúng</b>


và 3 tên sai theo qui tắc của
Pascal.


<b>Câu 6: Hãy cho biết những</b>


biểu diễn nào dưới đây khơng


Trao đổi nhóm trong 7 phút


Trao đổi nhóm trong 2 phút?


Trả lời câu hỏi


Trả lời câu hỏi


-3 tên đúng: VI_DU, _BAI6,
BAITAP.



- 3 Tên sai: 2AB, I+J,
BAI TAP.


<b>Câu 1</b>


Người ta phải xây dựng các NNLT bậc
cao:


- NNLT bậc cao gần với NN tự nhiên
hơn, thuận tiện cho đông đảo người lập
trình.


- Chương trình viết bằng NNLT bậc cao
ít phụ thuộc vào máy.


- Chương trình viết bằng NNLT bậc cao
dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp.
- 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.


<b>Câu 2:</b>


- SGK trang 4


- Nhờ có chương trình dịch mà chương
trình dịch mà máy có thể thực hiện được
chương trình viết bằng NNLT bậc cao.



<b>Câu 4: tên dành riêng không được dùng</b>


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


Ngày soạn: 14/8/2010 Tuần: 3


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

phải là biểu diễn hằng trong
Pascal và chỉ lỗi từng trường
hợp:


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


<b>Nếu còn thời gian cho bài</b>
<b>tập thêm:</b>


<b>Câu 7: Hãy chỉ ra những tên</b>


nào đúng tên nào sai trong
Pascal giải thích lí do:


#TONG 1DIEM SO2


USES1 DT HV END


EN5D BAI_1 BAI1



<b>Câu 8: những chú thích nào</b>


sau đây là sai? Giải thích lí
do?


a. (*giải phương trình*
b.(*giải phương trình*)
c.(*giải phương trình}
d.{giải phương trình
e.{giải {phương{ trình}
f.{giải (*phương trình}


Thảo luận trong 5 phút


Những tên sai:


#TONG : Sai vì tên bắt đầu
bằng kí tự đặc biệt #


1DIEM : Sai vì bắt đầu
bằng kí tự số.


END : Sai vì trùng với
từ khoá


DT HV : Sai vì có dấu
cách


Chú thích sai:
a : sai vì thiếu dấu )



c : sai vì mở là (* nhưng
đóng }


d : sai vì thiếu dấu }


Những biểu diễn khơng là hằng:


6,23: dấu phẩy (nếu là dấu chấm thì
đúng)


A20: tên khơng rõ giá trị


‘C: sai qui định về hằng xâu: thiếu dấu
nháy đơn ở cuối


<b>IV. DẶN DÒ</b>


Về nhà học bài tiết sau kiểm tra 15 phút.
Soạn bài trước theo câu hỏi sau:


Câu 1: Cấu trúc của một chương trình được viết bằng NNLT?


Câu 2: Các cách khai báo trong Pascal: khai báo tên chương trình, khai báo thư viện, khai báo
hằng, khai báo biến.


Câu 3: thân chương trình của Pascal gồm những từ khố nào?


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

<b>KIỂM TRA ĐÁNH GIÁ 15 PHÚT</b>




<b>I. MỤC ĐÍCH</b>


Kiểm tra lại khã năng tiếp thu cũng như quá trình học tập của HS. Từ đó có thể điều chỉnh
phương pháp giảng dạy.


<b>II. BẢNG RA ĐỀ KIỂM TRA</b>


<b>III. NỘI DUNG </b>


<b>IV. KẾT QUẢ KIỂM TRA</b>


Trên trung bình:
Dưới trung bính:


Mức độ Bài 1 Bài 2


Biết 1, 2, 3, 4 5, 6, 7, 8, 10, 13, 14, 15, 18, 19, 20


Hiểu 9, 11, 12


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

<b>CHƯƠNG II. CHƯƠNG TRÌNH ĐƠN GIẢN</b>


<b>--- </b>



<b>---BÀI 3. CẤU TRÚC CHƯƠNG TRÌNH</b>



<b>I. MỤC ĐÍCH – U CẦU</b>


Hiểu chương trình là sự mơ tả của thuật tốn bằng NNLT.


Biết cấu trúc của chương trình đơn giản: cấu trúc chung và các thành phần


Nhận biết được thành phần của một chương trình đơn giản


<b>II. PHƯƠNG PHÁP </b>


Phát vấn kết hợp với diễn giảng.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


SGK, SGV, giáo án, một số bảng vẽ lớn.


<b>IV. NỘI DUNG VÀ DIỄN BIẾN TIẾT DẠY</b>
<b>1. Ổn định lớp (kiểm tra sĩ số)</b>


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


<b>Câu 1: NNLT có những thành phần nào?</b>


<b>Câu 2: Thế nào là tên dành riêng? Viết một số tên dành riêng mà em biết?</b>
<b>Câu 3: Tên dành riêng khác với tên chuẩn ở điểm nào?</b>


<b>3. Nội dung</b>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>Hoạt động 1: </b>


<b>? Một bài làm văn em thường viết </b>


có mấy phần? các phần đó có thứ
tự khơng? tại sao phải chia như
vậy?


Tư tự như vậy một chương trình
viết bằng NNLT bậc cao cũng có
thành phần và thứ tự của các thành
phần đó.


Yêu cầu HS đọc SGK.


<b>? Cấu trúc chung của chương trình</b>


viết bằng NNLT bậc cao có những
thành phần nào?


Phần khai báo được đặt trong dấu
ngoặc vng có nghĩa là có thể có
hoặc khơng. Phần thân nhất thiết
phải có.


<b>? Trong khai báo có những loại </b>


nào?


<b>? Để khai báo tên chương trình ta </b>


bắt đầu bằng từ khố nào?


Khai báo tên chương trình chỉ có ý
nghĩa để ghi nhớ tên bài toán cần
giải .


Một số NNLT có thể khơng cần


Lắng nghe, suy nghĩ trả lời:


<sub> Có 3 phần</sub>


<sub> Có thứ tự: mở bài, thân </sub>
bài, kết luận.


<sub> Để dễ viết, dễ đọc, dễ </sub>
hiểu nội dung.


Đọc SGK
Trả lời câu hỏi


Bắt đầu bằng từ khoá


<b>Program</b>


<b>1. Cấu trúc chung</b>


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


<b>2. Thành phần của chương trình</b>
<i><b>a. Phần khai báo:</b></i>


<i>a1) Khai báo tên chương trình</i>
Cú pháp:


<i><b>Program <tên chương trình>;</b></i>


Ví dụ:



<b>Program giai_phuong_trinh;</b>
<b>Program VI_DU;</b>


Ngày soạn: 24/8/2010 Tuần: 4


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

phải khai báo tên chương trình.


<i><b>Lưu ý là kết thúc câu lệnh ta </b></i>
<i><b>dùng dấu chấm phẩy‘;’ </b></i>


Mỗi NNLT thường có sẵn một số
thư viện cung cấp một số chương
trình thơng dụng đã được lập sẵn.
để sử dụng chương trình đó cần
khai báo thư viện chứa nó.


Trong thư viện CRT trong
pascal cung cấp các chương trình
có sẵn để làm việc với màn hình
văn bản và bàn phím.


Khai báo hằng thường được sử
dụng cho những giá trị xuất hiện
nhiều lần trong chương trình.


<b>? u cầu lấy ví dụ khai báo </b>


hằng trong Pascal.


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


Khai báo biến ta sẽ học ở bài 5.
<i>Ở đây ta làm quen khái niệm biến</i>
<i>đơn. </i>


Ví dụ: khi khảo sát phương
trình đường thẳng ax + by + c = 0
các hệ số a, b, c có thể được khai
báo như một biến đơn.


Ngồi ra ta cịn khai báo chương
trình con được trình bày ở chương
VI.


<b>? Dấu hiệu nào để nhận biết thân </b>


chương trình.


Hướng dẫn học sinh các bước

Khai báo tên chương trình

<sub> Dùng câu lệnh đưa ra màn </sub>
hình là lệnh Write hay Writeln
trong Pascal.


u cầu học sinh viết chương
trình này?


Giải thích sự khác nhau giữa
lệnh write và writeln.



Ví dụ 2 tương tự như ví dụ 1
nhưng thêm câu lệnh Writeln


Ví dụ:


CONST Nmax = 1000;
PI = 3.14;


Thân chương trình nằm
trong hai từ khoá mở đầu và
kết thúc.


Một em lên bảng trình bày
các em khác làm trong
nháp.


<i>a2) Khai báo thư viện </i>
Cú pháp:


<b>USES <tên thư viện>;</b>


Ví dụ: khai báo thư viện trong
pascal:


<b>USES CRT;</b>


Sau khi khai báo CRT ta dùng
<b>lệnh: clrscr; (lệnh xóa màn hình)</b>
<i>a3) Khai báo hằng</i>



Cú pháp


<i><b>CONST Tên _hằng = giá trị;</b></i>


<i>a4) Khai báo biến:</i>


Biến đơn là biến chỉ nhận một giá
trị tại mỗi thời điểm thực hiện chương
trình.


<b>b) Phần thân chương trình: </b>


Thân chương trình trong Pascal


<b>3. Ví dụ chương trình đơn giản</b>
<b>Ví dụ 1: viết chương trình đưa ra </b>


màn hình thơng báo ‘Xin chao cac
ban!’


<b>Program vi_du1;</b>
<b>Begin</b>


writeln(‘Xin chao cac ban’);


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


<b>Program vi_du2;</b>



<b>BEGIN</b>


<i><b>[<dãy các câu </b></i>
<i><b>lệnh>]</b></i>


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

Yêu cầu học sinh viết chương
trình này?


Lên bảng viết chương trình <b>Begin</b>


writeln(‘Xin chao cac ban’);
writeln(‘Moi cac ban lam quen
voi Pascal’);


<b>End.</b>


<b>V. CỦNG CỐ </b>

<b><sub> DẶN DÒ</sub></b>
<i><b>1. Củng cố: </b></i>


<sub>Cấu trúc của chương trình có mấy phần?</sub>


<sub> Các từ khố trong khai báo: tên chương trình; hằng; thư viện.</sub>

Dấu hiệu nhận biết thân chương trình trong Pascal.


<i><b>2. Dặn dò</b></i>


Về nhà soạn bài 4, 5 SGK.


Trong Pascal sử dụng kiểu dữ liệu nào? Phạm vi của từng kiểu?

<sub> Cách khai báo biến. Ví dụ khai báo biến trong Pascal.</sub>


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

<b>§ 4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN</b>


<b>§ 5 KHAI BÁO BIẾN</b>



<b>I. MỤC ĐÍCH – YÊU CẦU</b>


Biết một số kiểu dữ liệu chuẩn: nguyên; thực, logic, kí tự.
Xác định được kiểu cần khai báo của dữ liệu đơn giản.
Hiểu cách khai báo biến


Biết khai báo biến đúng


<b>II. PHƯƠNG PHÁP </b>


Diễn giảng, phát vấn kết hợp làm việc nhóm.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng vẽ khổ lớn, SGK, giáo án…


<b>IV. NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY</b>
<b>1. Ổn định lớp (kiểm tra sĩ số)</b>


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


<b>Câu 1: Cấu trúc chung của chương trình viết bằng NNLT bậc cao?</b>


<b>Câu 2: Trong Pascal khi khai báo tên chương trình, thư viện, hằng ta dùng từ khố nào?</b>
<b>3. Nội dung</b>



<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Các bài tốn trong thực
tế thường có dữ liệu vào
và kết quả ra thuộc những
kiểu dữ liệu quen biết: số
nguyên, thực, kí tự…


Treo bảng vẽ lên bảng
Ta nên chọn kiểu số
nguyên sao cho phù hợp
để ít tốn bộ nhớ.


Có nhiều kiểu dùng để
khai báo các đại lượng
nhận giá trị là số thực.
Thường dung hơn cả là
các kiểu được liệt kê trong
bảng


Treo bảng lên


<b>?</b>

<b> Ở đây kí tự chính là kí</b>


tự trong bảng mã ASCII
Bộ mã ASCII bao nhiêu kí
tự?


Ví dụ kí tự A có mã



<b>§ 4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN </b>
<b>1. Kiểu nguyên</b>


Kiểu Bộ nhớ lưu trữ


một giá trị Phạm vi giá trị


Byte 1 Byte 0 → 255


Integer 2 Byte -215<sub> → 2</sub>15<sub> – 1</sub>


Word 2 Byte 0 → 216<sub>-1</sub>


Longint 4 Byte -231 <sub>→ 2</sub>31<sub>-1</sub>


<b>2. Kiểu t</b>hực


Kiểu


Bộ nhớ lưu
trữ một giá


trị Phạm vi giá trị
Real 6 Byte 0 hoặc giá trị tuyệt đối nằm trong phạm vi


10-38<sub> Đến 10</sub>38


Extended 10 Byte 0 hoặc giá trị tuyệt đối nằm trong phạm vi
10-4932<sub> đến 10</sub>4932



3. Kiểu kí tự


Kiểu


Bộ nhớ lưu
trữ một giá


trị


Phạm vi giá trị
Char 1 Byte 256 Ktự trong mã


Ngày soạn: 3/9/2010 Tuần: 5


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

ASCII thập phân là 65.

<b>? Dấu cách có mã ASCII </b>


là bao nhiêu?


<i><b>Chú ý: người lập trình</b></i>


cần tìm hiểu đặc trưng của
các kiểu dữ liệu chuẩn
được xác định bởi bộ dịch
và sử dụng để khai báo
biến


Như nói ở trên, 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
dung để xác lập quan hệ
giữa biến với địa chỉ bộ
nhớ nơi lưu giữ giá trị
biến.


<b>? Trong chương trình biến</b>


được khai báo bao nhiêu
lần?


Phần này được trình
bày trong chương IV.
Ta sẽ khai báo như thế
nào?


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


Xét khai báo sau:


<b>VAR</b>


X, Y, Z: real;
C: char;
I, J: byte;
N: word;


<b>?</b>

<b> Trong khai báo này bộ </b>


nhớ cần cấp phát bao
nhiêu ?



Khi khai báo ta cần chú ý


Bộ mã ASCII có 256 kí tự
Dấu cách có mã ASCII là
32


Một lần


Lên bảng khai báo


Bộ nhớ cấp cho ba biến
X, Y, Z là 18 byte


ASCII


<b>4. Kiểu lôgic </b>


Kiểu Bộ nhớ lưu
trữ một giá


trị


Phạm vi giá trị
Boolean 1 Byte True hoặc False


<b>§ 5 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.



Trong Pascal khai báo biến bắt đầu bằng từ khoá


<i><b>VAR</b></i>
<i><b>Cú pháp </b></i>


<i><b>VAR <danh sách biến>: <kiểu dữ liệu>;</b></i>


<i>Danh sách biến: gồm một hoặc nhiều biến, các</i>
biến được viết cách nhau bởi dấu phẩy;


<i>Kiểu dữ liệu là kiểu dữ liệu chuẩn hoặc kiểu dũ</i>
liệu do người lập trình tự định nghĩa


<b>Ví dụ 1: GSử trong chương trình cần các biến</b>


A, B, C, D, X1, X2 là các biến thực
M, N là biến nguyên


Ta khai báo


<b>VAR </b>


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

đến một số vấn đề sau:
- Ví dụ: cần đặt tên hai
biến biểu diễn điểm tốn,
điểm tin mà khơng nên vì
ngắn gọn mà đặt d1, d2
mà nên đặt dtoan, dtin.



- Ví dụ không nên
dùng d1, d2 hoặc
diemmontoan, diemmontin
Ví dụ khi khai báo biến là
số học sinh của một lớp thì
nên khai báo biến đó thuộc
kiểu byte, nhưng nếu là số
HS tồn trường thì phải là
kiểu word.


C là 1 byte
I, J là 2 byte
N là 2 byte


Tổng cộng: 23 byte


<i><b>* Một số vấn đề cần chú ý:</b></i>


<i>- Cần đặt tên biến sao cho gợi nhớ ý nghĩa của</i>
<i>biến đó.</i>


<i>- Khơng nên đặt tên biến quá ngắn hay quá </i>
<i>dài, dễ mắc lỗi khi viết tên biến nhiều lần.</i>


<i>- Khai báo biến cần đặc biệt lưu ý đến phạm vi</i>
<i>giá trị của nó.</i>




<b>V. CỦNG CỐ DẶN DÒ</b>


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


- Các kiểu dữ liệu chuẩn: số nguyên (integer), số thực (real), kí tự (char), logic (Boolean)
- Mọi biến trong chương trình đèu phải được khai báo tên và kiểu dữ liệu


VAR <danh sách biến>: <kiểu dữ liệu>;


<i><b>2. Dặn dò</b></i>


Về nhà học bài trả lời các câu hỏi 1; 2; 3; 4; 5 SGK trang 35.


<b>Soạn bài 6:</b>


<i><b>Yêu cầu 1: lớp chia làm 3 nhóm chuẩn bị bảng phụ ghi những bảng sau:</b></i>


Tổ 1: ghi bảng phép toán trong Pascal.


Tổ 2: ghi qui tắt viết biểu thức toán học trong Pascal.
Tổ 3: chuẩn bị bảng một số hàm chuẩn.


<i><b>Yêu cầu 2: soạn phần 4, 5, 6</b></i>


Câu 1: biểu thức quan hệ có dạng nào? Trình tự thực hiện biểu thức quan hệ? Kết quả
biểu thức quan hệ?


Câu 2: Biểu thức lôgic gồm những biểu thức nào? Các biểu thức quan hệ đặt đâu? Giá trị
khi thực hiện biểu thức logic?


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

<b>§ 6 PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN</b>




<b>I. MỤC ĐÍCH – YÊU CẦU</b>


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.


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


Viết được các biểu thức số học và logic với các phép tốn thơng dụng.


<b>II. PHƯƠNG PHÁP </b>


Phát vấn và diễn giảng


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng phụ, SGK, giáo án…


<b>IV. NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY</b>
<b>1. Ổn định lớp (kiểm tra sĩ số)</b>


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


<b>Câu 1: Có những kiểu dữ liệu chuấn nào? </b>


<b>Câu 2: Để khai báo tuổi của con người tốt nhất ta dùng kiểu dữ liệu nào?</b>


<b>Câu 3: giả sử ta có các biến sau: x, y nhận giá trị thực; i, j nhận giá trị nguyên vậy ta khai báo </b>


như thế nào?



<b>3. Nội dung</b>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Để mô tả các thao tác của
thuật toán, mỗi NNLT đều xác
định và sd khái niệm cơ bản:
Phép toán, biểu thức gán giá trị
cho biến.


<b>Hoạt động 1</b>


<b>? Hãy kể những phép tốn </b>


trong tốn học.


Tương tự trong Pascal cũng
có những phép tốn đó nhưng
diễn đạt bằng cách đó.


Cho tổ 1 treo bảng phụ phép
tốn trên bảng


<i><b>Giải thích phép tốn div, </b></i>
<i><b>mod, not, or, and.</b></i>


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


Kết quả các phép toán quan
hệ cho giá trị logic.



Ứng dụng của phép toán
logic là để tạo ra các biểu thức
phức tạp từ các quan hệ đơn
giản.


Cộng, trừ, nhân, chia, lấy
phần dư, chia nguyên…


Lên treo bảng phụ đã chuẩn
bị trước


<b>§ 6 PHÉP TỐN, BIỂU THỨC, CÂU</b>
<b>LỆNH GÁN</b>


<b>1. Phép toán </b>


Phép toán Trong toán<sub>học</sub> <sub>Pascal</sub>Trong
Các phép


toán số học
với số
nguyên


+, -, x, /, div,
mod


+, -, x, /,
div, mod
Các phép



toán số học


với số thực +, -, x, / +, -, x, /
Các phép


toán quan


hệ 







,


,
,
,


, <sub><, <=, >,</sub>


>=, =, <>
Các phép


tốn lơgic

(phủ
dịnh),



(hoặc),




(và)


not, or, and


Ngày soạn: 10/9/2010 Tuần: 6


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

<b>Hoạt động 2</b>


Trong lập trình, biểu thức số
học là một biến kiểu số hoặc
các biến kiểu sô và các hằng số
liên kết với nhau bởi một số
hữu hạn phép toán số học và
dấu ngoặc tròn (và )


Treo bảng do tổ 2 chuẩn bị


Lấy một số ví dụ


Yêu cầu HS viết cho đúng


Chú ý:


Nếu biểu thức chứa hằng
hay biến thực thì ta có biểu
thức số học thực, giá trị biểu
thức cũng thuộc kiểu thực


Trong một số trường hợp
nên dùng biến trung gian



<b>Hoạt động 3</b>


Để lập trình dễ dàng và
thuận tiện hơn, các NNLT đều
có thư viện chứa một số chương
trình tính giá trị những hàm
tốn học thường dùng


Cú pháp:


Hàm(đối số)
Treo bảng hàm chuẩn


Yêu cầu hai học sinh lên
bảng biểu diễn


<b>Hoạt động 4</b>


Hai biểu thức cùng kiểu liên


Tổ 2 đem bảng lên


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


Hai em lên bảng


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



Qui tắc viết biểu thức:


- Dùng dấu ngoặc tròn để xác định trình
tự thực hiện phép tốn


- Viết lần lượt từ trái sang phải


- Không được bỏ qua dấu nhân (*) trong
tích.


Thứ tự thực hiện phép tốn:
- Trong ngoặc thực hiện trước


- Nếu khơng có dấu ngoặc thì thực hiện
từ trái sang phải theo thứ tự nhân, chia, div,
mod, thực hiện trước sau đó cộng, trừ.
Vd: 3<i>x</i>7<i>y</i> 3*<i>x</i>7*<i>y</i>


<i>c</i>
<i>b</i>
<i>a</i>
<i>c</i>
<i>ab</i>
/
*

<i>C</i>
<i>x</i>
<i>B</i>
<i>x</i>


<i>x</i>
<i>A</i>
<i>C</i>
<i>Bx</i>


<i>Ax</i>2   * *  * 


<i>xy</i>
<i>z</i>
<i>x</i>
<i>x</i>
<i>y</i>
<i>x</i> 



2
1


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


3. Hàm số học chuẩn


Hàm Toán<sub>học</sub> Pascal <sub>đối số</sub>Kiểu <sub>kết quả</sub>Kiểu


Bình


phương x2 sqr(x) I or R


Theo


kiểu đối


số
Căn bậc


hai 2 sqrt(x) I or R R
Trị tuyệt


đối |x| abs(x) I or R


Theo
kiểu đối


số


Lôgarit Lnx ln(x) R R


Lũy thừa


của e ex exp(x) R R


Sin sinx sin(x) R R


Cos cosx cos(x) R R


VD: a.


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


<i>b</i>
2
4
2



→ (-b+sqrt(sqr(b)-4*a*c)/(2*a)
b. <sub>sin</sub><i>x</i> <sub>1</sub> <sub>cos</sub>2 <i>x</i>





→ sin(x) = sqrt(1-sqr(cos(x)))


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

kiết với nhau bởi phép toán
quan hệ cho ta biểu thức quan
hệ


Biểu thức quan hệ có dạng
như thế nào?


Lấy ví dụ cụ thể
i +1 >=2*j
Lấy ví dụ trong SGK


<b>Hoạt động 5</b>


Các biểu thức quan hệ
thường được được đặt trong


ngoặc trịn


Giải thích biểu thức quan hệ
Kết quả biểu thức quan hệ
cũng là TRUE hoặc FALSE


<b>Hoạt động 6</b>


Trong trường hợp đơn giản
tên biến là biến đơn.


Kiểu của biểu thức phải
cùng kiểu của biến


VD: biến là kiểu thực thì
biểu thức phải là kiểu thực


Dấu := có nghĩa là giá trị
mới bằng giá trị của biểu thức ở
vế phải


<b>Chú ý: viết dấu ( : )sát với </b>
dấu bằng


Ý nghĩa của lệnh 3 là giảm
giá trị z một đơn vị


Ý nghĩa của lệnh 4 là tăng
giá trị x lên một đơn vị



Đọc SGK, lên bảng viết - Dạng:<i><b><Bthức 1><Phép toán qhệ><Bthức 2></b></i>


VD: x<5


i + 1 >= 2*j
- Trình tự thực hiện:


+ Tính giá trị biểu thức


+ Thực hiện phép toán quan hệ
<i><b>- Kết quả: TRUE hoặc FALSE</b></i>


<b>5. Biểu thức logic</b>


- Biểu thức logic đơn giản là biến hoặc
hằng logic


- Biểu thức logic là biểu thức logic đơn
giản, các biểu thức quan hệ lien kết với
nhau bởi phép toán logic


VD: not(4>6)


(5 <= x) and (x<=11)


(M mod 3 = 0) or (N mod 3 = 0)


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


- Dạng:



<i><b><tên biến> := <biểu thức>;</b></i>


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


z := z – 1;
x := x + 1;


<b>V. CỦNG CỐ DẶN DỊ</b>
<i><b>1. Củng cố:</b></i>


Các phép tốn , biểu thức số học, hàm chuẩn, biểu thức quan hệ, biểu thức lơgic, câu lệnh gán
trong Pascal.


<i><b>2. Dặn dị</b></i>


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

<b>§7. CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN</b>


<b>§8. SOẠN THẢO, DỊCH, THỰC HIỆN </b>



<b>HIỆU CHỈNH CHƯƠNG TRÌNH</b>



<b>I. MỤC ĐÍCH – YÊU CẦU</b>


Biết các lệnh vào/ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình
Viết được một số lệnh vào ra đơn giản.


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.



Bước đầu sd đượ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 thong 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>II. PHƯƠNG PHÁP </b>


Phát vấn và diễn giảng


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính có soạn sẵn chương trình đơn giản, SGK, giáo án…


<b>IV. NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY</b>
<b>1. Ổn định lớp (kiểm tra sĩ số)</b>


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


<b>Câu 1: Viết biểu thức biểu diễn trong toán học sang biểu thức trong pascal</b>


<i>d</i>
<i>b</i>
<i>c</i>
<i>a</i>


 ; (<i>x</i> <i>y</i>)


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


<i>x</i>


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







<b>Câu 2: Biểu diễn hàm sau trong pascal: </b>


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


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


sin
1
cos


)
(
sin
cos2 2






<b>3. Nội dung</b>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>Đặt vấn đề</b>


Để khởi tạo giá trị ban đầu
của biến, ta có thể dùng lệnh
gán để gán một giá trị cho biến.
Như vậy mỗi chương trình ln
làm việc với một bộ dữ liệu
vào.


Để chương trình có thể làm
việc với nhiều bộ dữ liệu vào
khác nhau, thư viện của các
NNLT cung cấp một số chương
trình dùng để dưa dữ liệu vào
và đưa dữ liệu ra.


Các chương trình đưa dữ liệu
vào và ra được gọi chung là các
thủ tục chuẩn vào/ra đơn giản.


<b>Hoạt động 1</b>


Chú ý lắng nghe


§7. CÁC THỦ TỤC CHUẨN



VÀO/RA ĐƠN GIẢN



<b>1. Nhập dữ liệu vào từ bàn phím </b>


Cú pháp:


Ngày soạn: 13/9/2010 Tuần: 7


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

Danh sách biến gồm 1 hoặc
nhiều biến(trừ biến kiểu
Boolean). Trường hợp có nhiều
biến thì tên biến được viết cách
nhau bởi dấu phẩy.


<b>? Lệnh thứ nhất và lệnh thứ</b>


hai dùng để làm gì?


Khi nhập giá trị cho nhiều
biến, những giá trị này được gõ
cách nhau ít nhất một dấu cách
<b>hoặc xuống dịng (nhấn Enter)</b>


Nhập giá trị biến nguyên
không được sd dấu chấm thập
phân.


Nhập giá trị biến thực có
thể nhập bình thường hoặc
dùng dấu phẩy động.



Vd: nhập giá trị cho a, b, c bằng
1, -5, 6 ta gõ;


1 -5 6 
hoặc 1.0 
-5 
6 


<b>Hoạt động 2</b>


<b>?</b>

<b> viết cú pháp thủ tục đưa ra</b>


màn hình?


<b>? Phân biệt thủ tục write và</b>


writeln.


Minh hoạ cụ thể


Giải thích sự qui cách trên


Lệnh thứ nhất để nhập N
Lệnh thứ hai để nhập a, b, c


Lên bảng viết


Write khi đưa kết quả ra
màn hình con trỏ khơng
chuyển xuống dòng, còn
đối với thủ tục writeln khi


đưa ra màn hình con trỏ tự
động xuống dịng.


<i><b>Read(<danh sách biến vào>);</b></i>


hoặc


<i><b>Readln(<danh sách biến vào>);</b></i>


Ví dụ: <i><b>read(N);</b></i>
<i><b>readln(a, b, c);</b></i>


Nhập giá trị cho a, b, c bằng 1, -5, 6
ta gõ:


1 -5 6 
hoặc 1.0 
-5 
6 


<b>2. Đưa dữ liệu ra màn hình </b>


<i><b>*Cú pháp: </b></i>


Write(<danh sách kết quả ra>);
hoặc


writeln(<danh sách kết quả ra>);
Vd. để nhập giá trị cho biến M ta dùng



<i>Writeln('nhap gia tri M’);</i>
<i>Readln(M); </i>


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


<i>Các thủ tục readln và write có thể </i>
<i>khơng có tham số.</i>


<i>Trong thủ tục write hoặc writeln, </i>
<i>sau mỗi kết quả có thể qui cách ra:</i>


<i>+ Đối với kết quả thực</i>
<i>:<độ rộng>:<số chữ số thập </i>
<i>phân></i>


<i>+ Đối với kết quả khác:</i>
<i>: <độ rộng></i>


Ví dụ:


Writeln(N:5, x:6:2);
Write(( i:3, j:4, a+b:8:3);


Để có thể thực hiện chương
trình được viết bằng NNLT,
cần soạn thảo, sd chương trình
dịch để dịch chương trình đó


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

sang NN máy. Các hệ thống
lập trình cụ thể thường cung


cấp phần mềm phục vụ cho
việc soạn thảo, dịch và hiệu
chỉnh chương trình.


<i><b>Chiếu lên màn hình</b></i>


Giới thiệu sơ lược về màn
hình của Pascal.


Việc soạn thảo giống như
soạn thảo trong word và lưu ý
là khơng bỏ dấu.


Nếu chương trình có lỗi cú
pháp phần mềm sẽ hiển thị
thông báo. Cần sửa lỗi lại và
biên dịch lại tới khi không cịn
lỗi.


<b>§8. SOẠN THẢO, DỊCH, THỰC</b>


<b>HIỆN HIỆU CHỈNH CHƯƠNG</b>



<b>TRÌNH</b>



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


- Soạn thảo: gõ nội dung chương trình gồm
phần khai báo và các lệnh trong phần thân


- Lưu chương trình:



 Nhấn phím F2 → gõ tên tệp
 Vào File → Save → gõ tên tệp
<b>- Biên dịch chương trình: Nhấn Alt +F9</b>
<b>- Chạy chương trình: nhấn Ctrl + F9</b>
- Dóng cửa sổ chương trình: nhấn phím


<b>Alt + F3 </b>


<b>- Thốt khỏi phần mềm: Alt + X</b>


<b>- Mở tệp đã có: nhấn phím F3</b>




<b>V. CỦNG CỐ DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Viết được thủ tục đưa dữ liệu vào/ra: write( ) hoặc writeln( ), read( ) hoặc readln.
Các thao tác lưu tệp, dịch chương trình, đóng cửa sổ, đóng phần mềm, mở tệp


<i><b>2. Dặn dò</b></i>


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

<b>BÀI THỰC HÀNH 1</b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


 Giới thiệu một chương trình Pascal hồn chỉnh đơn giản;



 Làm quen với một số dịch vụ cơ bản của Turbo Pascal hoặc Free Pascal trong việc soạn thảo, lưu
trữ, dịch và thực hiện chương trình.


<i><b>2. Kĩ năng</b></i>


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


 Bước đầu biết phân tích và hồn chỉnh một chương trình đơn giản trên Turbo Pascal


<i><b>3. Thái độ</b></i>


Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phòng máy thực hành của trường, máy chiếu nếu có


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Phổ biến nội qui phòng máy


Chiếu chương trình lên bảng
yêu cầu học sinh thực hiện các
nhiệm vụ.


Hướng dẫn học sinh cách
khởi động chương trình Pascal


Soạn chương trình vào máy
Lưu chương trình với tên
PTB2.PAS


Dịch và sửa lỗi cú pháp
Thực hiện chương trình


Nhập dữ liệu 1 3 2 . Xem
kết quả.


Trở về màn hình soạn thảo
Thực hiện chương trình
Nhập dữ liệu 1 0 2 xem
thơng báo.


? Vì sao có lỗi xảy ra.
Sửa lại chương trình khơng
dùng biến D.


Khởi động chương trình
Pascal


Gõ nội dung vào máy



<b>Program Giai_PTB2;</b>
<b>Uses</b> crt;


<b>Var </b> a, b, c, D: real;
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;


writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2);
readln


<b>End.</b>


x1 = (b  sqrt(b*b4*a*c))/(2*a);
x2 = (b +sqrt(b*b  4*a*c))/(2*a)
writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2);
readln


Nếu còn thời gian cho thêm bài
tập



Chiếu nội dung bài tập lên bản Quan sát lắng nghe


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


Ngày soạn: 20/9/2010 Tuần: 8


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

Phân tích hướng dẫn học
sinh làm bài toán


<b>? Dữ liệu vào?</b>


<b>? Dữ liệu ra? </b>


Cách tính:


Yêu cầu HS soạn chương
trình và lưu trên đĩa.


Quan sát hướng dẫn HS
trong lúc thực hành


Yêu cầu HS nhập dữ liệu và
thông báo kết quả


a = 3


Dữ liệu vào a
Dữ liệu ra S


Tính diện tích hình trịn và


diện tích hình vng
Diện tích hình tơ đen =
diện tích hình trịn - diện
tích hình vng


- Soạn chương trình
- Nhấn phím F2, gõ tên vào
- Nhấn phím Alt + F9, dịch
sửa lỗi nếu có.


- Nhấn phím Ctrl + F9 để
thực hiện chương trình
Nhập dữ liệu vào


S1:= Pi*R*R;
S2:= sqr(a*sqrt(2));
S := S1- S2;


Với a = 3 ta được S = 10.26


Với a = - 3 kết quả không đúng vì độ dài
cạnh phải là hình vng.




<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Các bước để hồn thành một chương trình
- 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 trữ 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>2. Dặn dị</b></i>


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

BÀI TẬP CHƯƠNG 2



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


− Cũng cố những nội dung đã đạt được ở tiết thực hành 1
− Biết sử dụng thủ tục chuẩn vào/ra


− Biết xác định Input và Output


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Hình vẽ khổ lớn, bảng phụ…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>


<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


<b>Câu 1. Trong Pascal, nếu một biến chỉ nhận giá trị nguyên từ phạm vi 10 đến 25532 thì biến đó có </b>


thể được khai báo bằng các kiểu dữ liệu nào?


<b>Câu 2. Viết dạng của thủ tục vào/ra? Cho biết sự khác nhau giữa thủ tục write và writeln?</b>


<b>Câu 3. Biến P có thể nhận giá trị 5, 10, 15, 20, 30, 60, 90 biến X có thể nhận giá trị 0.1, 0.2, 0.3, </b>


0.4, 0.5. Khai báo nào trong khai báo sau là đúng?


a. Var X, P: byte; b. Var X, P: real;


c. Var P: real; d. Var X: real;


X: byte; P: byte;


<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Yêu cầu 2 học sinh lên bảng
biểu diễn


Yêu cầu 4 HS lên bảng


Lên bảng biểu diễn trong


Pascal


a.


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


<i>a</i> 2


2  b.


2


<i>abc</i>


c.


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


<i>b</i>


<i>a</i> <sub></sub>


1


d.



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


<i>b</i>




2


<b>Bài 6. tr35</b>


Hãy biểu diễn biểu thức toán học sau
đây trong Pascal


3


1
1
)


1
(


<i>x</i>
<i>a</i>


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









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


<b>Bài 7 - tr36</b>


Hãy chuyển biểu thức trong Pascal dưới
đây sang biểu thức toán học tương ứng.
a. a/b*2 b. a*b*c/2


c. 1/a*b/c d. b/sqrt(a*a+b)


<b>Bài 8 - tr 36</b>


Hãy viết biểu thức lôgic cho cho kết quả
True khi toạ độ (x,y) là điểm nằm trong
vùng gạch chéo kể cả biên của các hình 2.a
và 2.b


Ngày soạn: 01/10/2010 Tuần: 10


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

? Đường thẳng a có phương
trình là gì?


? Đường thẳng b, c có phương


trình là gì?


? Vậy miền nằm trên của hai
đường thẳng có phương trình?


Tóm lại những điểm nằm
trong hình gạch chéo phải thoả
điều kiện:









<i>x</i>


<i>y</i>


<i>y 1</i>



Yêu cầu HS lên biểu diễn trong
Pascal


Hãy lên biểu diễn hình 2b


Hãy đưa ra phương án giải


y = 1


y = x và y = −x


y > x và y > −x


(y <=1) and (y >= abs(x))


((−1 <= y) and (y<=1)) or
((−1<= x) and (x <= 1))


Thảo luận trong vòng 3
phút


Ta thấy nếu lấy một tam
giác và một phần cung bị
bơi đen thì là ¼ đường trịn.
Nếu cộng lại thì được ½
diện tích đường trịn.
Vậy ta chỉ tính diện tích
đường trịn rồi chia hai


Hình 2: các miền cần xác định


<b>Bài 9 tr 36</b>


Hãy viết chương trình nhập số R (R >
0) rồi tính và đưa ra diện tích phần bơi đen
trong hình 3


Program BAI_9;
Const pi = 3.1416;
Var S, R: real;
BEGIN



Write('nhap vao ban kinh duong tron’);
Readln(R);


S:=1/2*pi*R*R;


Write(' dien tich phan boi den den S = ',
S: 6:4);


END.


<i><b>Bài 10 tr 36</b></i>


−1 1


1


x
y


a


−1


−1 1


1


x
y



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

Hướng dẫn sau đó yêu cầu HS
lên bảng viết.


Trao đổi thảo luận, sau đó
lên bảng


Lập trình đưa ra 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> 2<i>gh</i>trong đó g là gia tốc tự do


và g = 9.8 m/s2<sub>. Độ cao h (m) được nhập từ</sub>
bàn phím.


Chương trình
Program BAI_10;
Const g = 9.8;
Var v, h: real;
BEGIN


Write('nhap vao do cao cua vat d = ’);
Readln(h);


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


Write(' van toc khi vat cham dat la v= ',
v: 6:4, ' m/s’);


END.



<b>V. CỦNG CỐ - DẶN DỊ</b>
<i><b>1. Củng cố:</b></i>


Một số chương trình tính đơn giản


<i><b>2. Dặn dò</b></i>


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

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


§ 9 CẤU TRÚC RẼ NHÁNH







<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. 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>2. Kĩ năng: </b></i>


− Sử dụng cấu trúc rẽ nhánh trong mơt tả thuật tốn của một số bài toán đớn z giản


− Viết được câu lệnh rẽ nhánh dạng đủ, dạng thiếu và áp dụng để thể hiện được thuật toán của
một số bài toán đơn giảng


<b>II. PHƯƠNG PHÁP</b>


Phát vấn, diễn giảng.



<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Hình vẽ khổ lớn, bảng phụ…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: (nếu có)</b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Nêu ví dụ thực tiễn minh
hoạ cho tổ chức rẽ nhánh:


Chiều nay, nếu trời không
mưa An sẽ đi xem đá bóng nếu
trời mưa An sẽ mở Tivi xem.


Yêu cầu HS lấy một vài ví
dụ tương tự.


Yêu cầu học sinh đưa ra cấu
trúc chung của cách diễn đạt đó


u cầu HS lấy ví dụ dạng
khuyết và đưa ra cấu trúc chung
đó.



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 dạng
thiếu và đủ.


? Hãy nêu các bước kết lụân
nghiệm phương trình bậc hai
ax2<sub> + bx + c = 0 (a ≠ 0) </sub><sub>?</sub>


Như vậy, sau khi tính D tuỳ
thuộc vào giá trị của D, một
trong hai thao tác sẽ được thực
hiện.


Mọi NNLT đều có câu lệnh
để mô tả cấu trúc rẽ nhánh.


Nếu đội tuyển VN thắng
Indonesia thì đá tiếp tranh
huy chương vàng với Thái
Lan, nếu khơng thắng
Indonesia thì sẽ tranh huy
chương đồng với Mianma.
Nếu….. thì ….. nếu khơng
….. thì …….


Nếu Nam làm bài tập sớm
thì Nam sẽ được đi chơi.
Nếu ….. thì…….



Trước hết ta tính delta:
D = b2<sub> − 4ac;</sub>


Nếu D không âm ta đưa ra
các nghiệm. Trong trường
hợp ngược lại, ta thơng báo
là phương trình vơ nghiệm.


Xét bài giải phương trình bậc 2
ax2<sub> + bx + c = 0 (a ≠ 0) </sub>


TUẦN: 6
TIẾT: 11


NGÀY SOẠN: ……….


Nhập a, b, c


D ← b2<sub> − 4ac </sub>


D ≥ 0?


Thơng báo vn<sub>o</sub>
rồi kết thúc


Tính và đưa ra
n<sub>o</sub> rồi kết thúc


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

Để mô tả cấu trúc rẽ nhánh,


Pascal dùng câu lệnh gì?


Yêu cầu học sinh lên bảng
viết dạng thiếu và dạng đầy đủ


Ở dạng thiếu: điều kiện sẽ
được tính và kiểm tra. Nếu điều
kiện đúng thì câu lệnh sẽ được
thực hiện, ngược lại câu lệnh sẽ
bỏ qua.


Ở dạng đủ: điều kiện cũng
được tính và kiểm tra. Nếu điều
kiện đúng thì câu lệnh 1 sẽ
được thực hiện, ngược lại câu
lệnh 2 sẽ được thực hiện.


<i><b>Theo cú pháp sau từ khoá then</b></i>
<i><b>hoặc esle phải là một câu lệnh.</b></i>
Nhưng nếu sau từ khố đó có
<i>nhiều câu lệnh thì ta gọi câu</i>
<i>lệnh ghép.</i>


<i><b>Câu lệnh If …. then …..</b></i>


Hai em lên bảng viết


<b>2. Câu lệnh if ... then...</b>
<i><b>a. Dạng thiếu </b></i>



<i>if <điều kiện> then <câu lệnh>;</i>


<i><b>b. Dạng đủ </b></i>


<i>if <điều kiện> then <câu lệnh1></i>
<i> else <câu lệnh 2>;</i>


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


<b>if</b> <b> D < 0 then </b>


writeln( 'phuong trinh vo nghiem’);


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


<b>if a mod 3 = 0 then write('a chia het cho 3’)</b>
<b>esle write('a khong chia hết cho 3’);</b>


<i><b>Ví dụ 3: Để tìm giá trị lớn nhất a và b có </b></i>


thể dùng hai cách sau:


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


<b>if</b> <b> b >a then max := b;</b>
Dạng đủ:


<b>if b >a</b> <b>then max := b esle max:=a;</b>
<b>3. Câu lệnh ghép</b>



Câu lệnh ghép trong Pascal có dạng


Ví dụ:


<b>if D < 0 then </b>


writeln('phương trinh vo nghiem’)


<b>esle </b>
<b>begin</b>


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


<b>end;</b>


Điều
kiện


Câu lệnh
True


False


Điều
kiện


Câu lệnh
True



False
Câu lệnh 2


<b>Begin</b>


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

Ví dụ 1: Tìm nghiệm thực của
PTB2: ax2<sub> + bx + c = 0 (a </sub>

<sub></sub>

<sub>0)</sub>
? Hãy xác định bài tốn?


Hướng dẫn HS viết chương
trình.


u cầu HS lên bảng viết


Ví dụ 2: Viết chương trình tính
số ngày của năm N, biết rằng là
năm chia hết cho 400 hoặc chia
hết cho 4 nhưng không chia hết
cho 100.


? Hãy xác định bài toán?
Hướng dẫn HS viết chương
trình.


Yêu cầu HS lên bảng viết


Lên bảng viết chương trình


Lên bảng viết chương trình



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


Ví dụ 1:


<b>Program Giai_PTB2;</b>
<b>Uses</b> crt;


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


<b>Begin</b>


Clrscr;


Write(‘nhap a, b, c: ‘);
Readln(a, b, c);


D:=b*b  4*a*c;


<b>if D < 0 then </b>


writeln('phương trinh vo nghiem’)


<b>esle </b>
<b>begin</b>


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


writeln(‘x1= ‘, x1:6:2,’x2 = ‘, x2:6:2);



<b>end;</b>


readln


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


<b>Program Nam_nhuan;</b>
<b>Uses</b> crt;


<b>Var </b> N, SN: integer;


<b>Begin </b>


clrscr;


write(‘nhap nam: ’); readln(N);
if (N mod 400 = 0) or ((N mod 4 = 0)
<b>and ((N mod 100 <> 0)) then </b>


<b>SN: =366 esle SN:=365;</b>


Write(‘so ngay cua nam:‘, N, ‘la:’, SN);
Readln


<b>End.</b>
<b>V. CỦNG CỐ - DẶN DÒ</b>


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



<i><b>Cấu trúc rẽ nhánh if .... then </b></i>
Câu lệnh ghép


<i><b>2. Dặn dị</b></i>


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

<b>§ 10. CẤU TRÚC LẶP</b>






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


− Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán


<b>− Hiểu cấu trúc lặp với số lần biết trước bằng câu lệnh for … do …</b>


<b>II. PHƯƠNG PHÁP</b>


Phát vấn, diễn giảng.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Hình vẽ khổ lớn, bảng phụ…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu 1: Viết cú pháp của cấu trúc lặp: dạng thiếu và dạng đủ
<b> Câu 2. Begin </b>



clrscr;


write(‘nhap nam: ’); readln(N);


<b>... (N mod 400 = 0) .... ((N mod 4 = 0) .... ((N mod 100 <> 0)) then </b>
<b>SN: =366 ... SN:=365;</b>


Write(‘so ngay cua nam:‘, N, ‘la:’, SN);
Readln


<b>End.</b>


<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>Hoạt động 1</b>


Nêu vấn đề bài toán 1:


Ta thấy cả hai bài tốn cách
tính tổng S có nhiều điểm
tương tự nhau


Đối với bài toán 1: số lần lặp
là 100, và việc cộng vào tổng S
sẽ kết thúc khi đã thực hiện
việc cộng 100 lần



Cịn ở bài tốn 2: số lần lặp
chưa biết trước nhưng việc
cộng vào tổng kết thúc khi điều


Chú ý lắng nghe và ghi bài


<b>1. Lặp</b>


<b>Bài toán 1: tính và đưa kết quả ra màn </b>


hình tổng
100
1
...
2
1
1
1
1








<i>a</i>
<i>a</i>
<i>a</i>


<i>a</i>
<i>S</i>


Bài tốn 2: tính và đưa kết quả ra màn
hình tổng
...
1
...
2
1
1
1
1









<i>N</i>
<i>a</i>
<i>a</i>
<i>a</i>
<i>a</i>


<i>S</i> cho



đến khi 1 0,0001
<i>N</i>


<i>a</i>


+ Xuất phát S được gán cho giá trị
<i>a</i>


1


+ Tiếp theo cộng vào S một giá trị:
<i>N</i>


<i>a </i>


1


với N =1, 2, 3, ...


<i><b>* Cấu trúc lặp có hai loại: lặp với số lần </b></i>


<i><b>biết trước và lặp với số lần không biết </b></i>
<i><b>trước.</b></i>


TUẦN: 6


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

kiện 1 0,0001
<i>N</i>


<i>a</i> được thoả



mãn.


Nói chung một số thuật tốn
có những thao tác lặp đi lặp lại
một số lần.


Các NNLT đều có các câu
lệnh để mô tả cấu trúc lặp


<b>Hoạt động 2 </b>


Trao đổi nhóm trong 3 phút
và lên bảng viết thuật tốn 1a
và 1b:


Nhóm 1, 2, 3 nghiên cứu
thuật tốn 1a;


Nhóm 4, 5, 6 nghiên cứu thuật
tốn 1b;


Ta thấy thuật toán Tong_1a
giá trị N khi bắt đầu tham gia
vòng lặp là 1 và sau mỗi lần lặp
là tăng lên 1cho đến khi N >100
Thuật toán Tong_1b giá trị
N khi bắt đầu tham gia vòng lặp
là 100 và sau mỗi lần lặp là
giảm xuống 1 cho đến khi N <1


Ta nói cách lặp ở thuật toán
Tong_1a là dạng tiến còn
Tong_1b là dạng lùi.


Ở dạng lặp tiến câu lệnh sau
<b>từ khoá do được thực hiện tuần</b>
tự, biến đếm lần lược nhận giá
trị liên tiếp từ giá trị đầu đến
giá trị cuối.


Ở dạng lặp lùi câu lệnh sau từ
<b>khoá do được thực hiện tuần tự,</b>
biến đếm lần lược nhận giá trị
giảm liên tiếp từ giá trị cuối đến
giá trị đầu


Chia nhóm thảo luận và lên
bảng trình bày


Các nhóm khác nhận xét và
bổ sung


<b>2. Lặp với số lần biết trước và câu lệnh </b>
<i><b>for……do….. </b></i>


<b>Thuật toán Tong_1a</b>


B1: S ← 1/a; N ← 0; {khởi tạo S,N};
B2: N ← N + 1;



B 3: Nếu N > 100 thì chuyển đến B5;
B 4: 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


<b>Thuật toán Tong_1a</b>


B1: S ← 1/a; N ← 101; {khởi tạo S,N};
B2: N ← N − 1;


B 3: Nếu N < 1 thì chuyển đến B5;
B 4: 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


<i><b>* Trong Pascal ta dùng câu lệnh lặp for−do</b></i>
+ Lặp dạng tiến:


<b>For <biến đếm>:=<giá trị đầu> to <giá trị </b>


<b>cuối> do <câu lệnh>;</b>
+ Lặp dạng lùi:


<b>For <biến đếm>:=<giá trị cuối> downto </b>


<b><giá trị đầu> do <câu lệnh>;</b>


 Biến đếm là biến đơn và là kiểu nguyên
 Giá trị đầu giá trị cuối cùng kiểu với


biến đếm



<b>* Chú ý: giá trị biến đếm được điều chỉnh </b>


<b>tự động, vì vậy câu lệnh viết sau do không </b>
được thay đổi giá trị biến đếm.


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Cấu trúc lặp dạng lặp với số lần biết trước
Cú pháp của dạng lặp tiến và lặp lùi


<i><b>2. Dặn dị</b></i>


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

<b>§ 10. CẤU TRÚC LẶP (tt)</b>






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


− 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ể
− Mơ tả một số thuật tốn của một số bài tốn đơn giản có sd lệnh lặp.
<i><b>− Viết được chương trình đơn giản có sd dòng lặp for ……do……</b></i>


<b>− Biết sử dụng cấu trúc lặp với số lần chưa biết trước bằng câu lệnh while … do…</b>


<b>II. PHƯƠNG PHÁP</b>


Phát vấn, diễn giảng.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>



Hình vẽ khổ lớn, bảng phụ…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu hỏi: Viết cú pháp của câu lệnh lặp dạng tiến và dạng lùi và giải thích biến đếm, giá trị đầu giá
trị cuối phải như thế nào ?


<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Ở tiết trước các em đã học cú
pháp của dòng lặp for ... do ...
Tiết này chúng ta đi tìm hiểu
cách vận dụng vịng lặp đó để
viết chương trình


Trao đổi nhóm trong 5 phút
lên bảng viết chương trình


Lên bảng trình bày


Các nhóm cịn lại chú ý
nhận xét bổ sung


<b>2. Lặp với số lần biết trước và câu lệnh </b>
<i><b>for……do….. </b></i>



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


<b>Program Tong_1a;</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/a;


For N:=1 to 100 do
S:= S+1/(a+N);
Write(‘tong S = ’, S:8:4);
Readln


<b>End.</b>


<b>Program Tong_1a;</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/a;


For N:=100 to 1 do
S:= S+1/(a+N);
Write(‘tong S = ’, S:8:4);
Readln


<b>End.</b>


TUẦN: 7


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

Hãy xác định bài toán


Thảo luận trong 4 phút lên bảng
trình bày


Nhận xét đánh giá cho điểm


Thảo luận nhóm đưa để đưa ra
thuật tốn tính tổng bài toán 2


Nhận xét, đánh giá cho điểm
Như vậy, việc lặp với số lần
chưa biết trước sẽ chỉ kết thúc
khi một điều cho trước được
thoả mãn.


Để mô tả cấu trúc lặp như vậy
trong Pascal người ta dùng câu
<i>lệnh while−do </i>


Nếu là câu lệnh ghép ta
dùng từ khố gì?


Treo sơ đồ lặp while − do


Treo sơ đồ khối thuật toán
Tong_2


Input: Hai số M, N;


Output: tổng các số chia hết
cho 3 hoặc chia hết cho 5


Lên bảng trình bày


Begin và end.


Quan sát theo dõi


<b>Ví dụ2: Viết chương trình nhập từ bàn </b>



phím hai 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.


<b>Program vi_du_2;</b>
<b>Uses crt;</b>


<b>Var M, N, I: integer;</b>


T: longint;


<b>Begin </b>


Clrscr;


Write(‘nhap M nho hon N’);
Write(‘M = ‘); readln(M);
Write( ‘N = ‘); readln(N);
T:= 0;


For I := M to N do


if (I mod 3 = 0) or (I mod 5 = 0) then
T:= T+I;


Write(‘KET QUA: ‘, T);
Readln;


<b>End.</b>



<b>3. Lặp với số lần chưa biết trước và câu </b>
<i><b>lệnh while − do</b></i>


Thuật toán Tong_2


B1: S ← 1/a; N ← 0; {khởi tạo S và N}
B2: Nếu 1/(a+N)<0.0001 thì chuyển đến
bước 5;


B3: N= N+1;


B4: S ← S + 1/(a+N) rồi quay lại bước 2;
B5: đưa S ra màn hình, rồi kết thúc.


<b>Cú pháp: </b>


<b>While <điều kiện> do <câu lệnh>;</b>


Trong đó:


Điều kiện là biểu thức lơgic


Câu lệnh: là câu lệnh đơn hay lệnh ghép


Điều
kiện


Câu lệnh
TRUE



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

Có nhiều thuật tốn khác nhau
tìm ƯCLN của M, N. Ở lớp 10
các em đã học thuật toán này
Treo hình thuật tốn liệt kê
từng bước và sơ đồ khối.


<b>Chương trình</b>
Program Tong_2;


<b>Uses crt;</b>
<b>Var S: real;</b>


A, N: integer;


<b>Begin</b>


Write((hay nhap gia trị a vào!’);
Readln(a);


S:=1/a; N:= 0;


<b>While not(1/(a+N) < 0.0001) do </b>
<b>Begin</b>


N:=N+ 1;


S:= S + 1/(a + N );


<b>End;</b>



Writeln(‘ Tong S la: ‘, S: 8: 3);
Readln


<b>End.</b>


Ví dụ: Tìm ước chung lớn nhất (ƯCLN)
của hai số nguyên dương M, N.


<b>Chương trình:</b>
<b>Program UCLN;</b>
<b>Uses crt;</b>


<b>Var M, N : integer;</b>
<b>Begin</b>


Clrscr;


Write(‘nhap gia tri M= ’); readln(M);
Write(‘nhap gia tri N= ’); readln(N);
While M <> N do


If M > N then M:= M − N
else N:= N − M;


writeln(‘UCLN= ’, M);
readln


<b>end.</b>



<b>Chú ý: câu lệnh trong dòng lặp thường</b>


được lặp lại nhiều lần, vì vậy để tăng hiệu
quả của chương trình thì những thao tác
khơng cần lặp lại nên đưa ra ngồi vịng lặp


<b>V. CỦNG CỐ - DẶN DỊ</b>
<i><b>1. Củng cố:</b></i>


Cấu trúc lặp dạng lặp với số lần chưa biết trước
Các chương trình đơn giản.


<i><b>2. Dặn dị</b></i>


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

<b>BÀI THỰC HÀNH 2</b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


 Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh.
− Tiếp tục làm quen với việc hiệu chỉnh chương trình.


<i><b>2. Kĩ năng</b></i>


Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải bài tốn cụ thể.


<i><b>3. Thái độ</b></i>


Tự giác, tích cực, chủ động trong thực hành.



<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phịng máy thực hành vi tính , máy chiếu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Gợi ý để HS nêu khái niệm về
bộ số Pitago:


? Thế nào là bộ số Pi ta go


? Lấy ví dụ bộ số Pitago cụ thể?
? Vậy để kiểm tra bộ số có phải
là bộ số Pi ta go ta kiểm tra
đẳng thức nào?


Dành thời gian cho học sinh
gõ nội dung vào.


Ba số nguyên dương a, b, c
được gọi là bộ số Pi ta go


nếu tổng bình phương hai
số bằng bình phương số
còn lại.


3, 4, 5
a2<sub> = b</sub>2 <sub>+ c</sub>2
b2<sub> = a</sub>2<sub> + c</sub>2
c2<sub> = a</sub>2<sub> + b</sub>2
Gõ nội dung vào


Viết chương trình nhập từ bàn phím ba số
ngun dương a, b, c và kiểm tra xem
chúng có là bộ số Pi ta go hay không


<b>Program Pi_ta_go;</b>
<b>Uses crt;</b>


<b>Var a, b, c : integer;</b>


a2, b2, c2: longint;


<b>Begin</b>


Clrscr;


Write('nhap a = '); Readln(a);
Write('nhap b = '); Readln(b);
Write('nhap c = '); Readln(c);
a2 : = a;



b2 := b;
c2 := c;
a2 := a2*a;
b2 := b2*b;
c2 := c2*c;


<b>if (a2 = b2 + c2) or (b2 = a2 + c2) or </b>


<b>(c2=a2+ b2) then </b>


writeln('ba so da nhap la bo so Pi ta go)


TUẦN: 7


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

Lưu chương trình với tên
PITAGO vào thư mục lớp mình
Nhấn phím F7 để thực hiện
từng câu lệnh chương trình,
nhập các giá trị a = 3, b = 4,
c=5.


<b> Vào bảng Debug mở cửa sổ</b>
hiệu chỉnh để xem giá trị a2,
b2, c2.


Nhấn phím F7 để thực hiện
câu lệnh tính những giá trị nói
trên và so sánh với kết quả
a2=9, b2 = 16, c2 = 25.



Quan sát rẽ nhánh.


Lặp lại các bước trên với bộ
dữ liệu a = 700, b = 1000,
c=800.


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;


Thì kết quả có gì thay đổi ở bộ
dữ liệu a = 700, b = 1000,
c=800.


Lưu vào (nhấn F2)


Nhấn F7 sửa lỗi và nhập a
= 3, b = 4, c=5 nêu kết quả
<b>Vào bảng debug</b>


Nhấn F7 và so sánh kết quả
Tiếp tục nhấn F7 để theo


dõi quá trình rẽ nhánh.
Nhập bộ số: a = 700,
b=1000, c = 800. Thông
báo kết quả.


Thay đổi câu lệnh với bộ
dữ liệu và kết luận


<b>else writeln('ba so da nhap khong phai </b>


la bo so Pi ta go);
readln


<b>end.</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>


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

<b>BÀI TẬP CHƯƠNG III</b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Củng cố kiến thức đã học ở chương III: cấu trúc rẽ nhánh và cấu trúc lặp


<i><b>2. Kĩ năng</b></i>



Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải bài tốn cụ thể.


<i><b>3. Thái độ</b></i>


Tự giác, tích cực, chủ động trong việc làm bài tập.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng phụ, giáo án…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu 1: viết cấu trúc lặp trong pascal: dạng lặp tiến hoặc lặp lùi? Cho ví dụ?
Câu 2: hãy điền câu lệnh vào đoạn chương trình sau: Program Tong_2;


<b>Uses crt;</b>


<b>Var A, N: integer;</b>


……….


<b>Begin</b>



Write((hay nhap gia trị a vào!’);
Readln(a);


S:=1/a; N:= 0;


<b>While not(1/(a+N) < 0.0001) do </b>
<b>Begin</b>


N:=N+ 1;


……….


<b>End;</b>


Writeln(‘ Tong S la: ‘, S: 8: 3);
Readln


<b>End.</b>
<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Yêu cầu HS thảo luận trong 3


phút lên bảng viết câu lệnh Thảo luận và trình bày trên bảng


Bài 4: Viết câu lệnh rẽ nhánh tính


a)













5.


0



2
2


<i>y</i>


<i>x</i>



<i>y</i>


<i>x</i>


<i>z</i>



<b>if (sqr(x) + sqr(y)) <= 1 then </b>
<b>z :=sqr(x) + sqr(y) </b>
<b>else </b>


<b>if ((sqr(x) + sqr(y)) > 1) and (y>=x) </b>
<b>then z := x+ y else z := 0.5; </b>



nếu x2 <sub>+ y</sub>2<sub> ≤ 1</sub>


nếu x2 <sub>+ y</sub>2<sub> > 1 và y ≥ x</sub>


nếu x2 <sub>+ y</sub>2<sub> > 1 và y < x</sub>


TUẦN: …….
TIẾT: ……


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

Điều kiện để M thuộc đường
tròn tâm O


Yêu cầu HS lên biểu diễn trong
Pascal


Hướng dẫn giải bài 5


?

n có giá trị như thế nào?


?

Vậy ta phải dùng cấu trúc lặp
nào tốt nhất?


Tương tự như chương trình tính
tổng VD1


u cầu HS viết chương trình


Gơi ý HS khởi tạo giá trị ban
đầu:



OM ≤ R
Hay


<i>R</i>
<i>b</i>
<i>y</i>
<i>a</i>


<i>x</i> )2(  )2 
(


Lên bảng trình bày


N sẽ có giá trị từ 1 đến 50
Cấu trúc lặp với số lần biểt
trước For − do


Viết chương trình


b .







<i>y</i>


<i>x</i>


<i>y</i>



<i>x</i>


<i>z</i>



<b>if sqrt(sqr(x − a) +sqr(y − b))<= R then </b>
<b>z:=abs(x) + abs(y) else z := x + y;</b>


Bài 5. Lập trình tính:


a)

<sub></sub>



 

50
1 1
<i>n</i> <i>n</i>
<i>n</i>
<i>y</i>
<b>Program bai_5a;</b>
<b>Uses crt;</b>


<b>Var y : real;</b>


n: byte;


<b>Begin </b>


clrscr;


y := 0; {khởi tạo giá trị của y}



<b> for n:= 1 to 50 do </b>


y:= y + n/(n+1);
write('y= ', y:9:3);
readln


<b>end. </b>


b. ...


!
1
...
!
2
1
!
1
1
1
)
(      
<i>n</i>
<i>n</i>


<i>e</i> cho đến


khi <sub>2</sub> <sub>10</sub> 6


!



1 <sub></sub> <sub></sub> 


<i>n</i> đưa ra giá trị ra màn hình


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


<b>var n: longint;</b>


e, gt: real;


<b>begin</b>


gt := 1/2; {khởi tạo gt}
n := 2;


e := 2 + gt;


<b>while gt > 2*E−6 do </b>
<b>begin </b>


inc(n); {tăng n lên 1 đơn vị}


Nếu điểm (x, y) thuộc hình trịn
bán kính r (r > 0), tâm (a,b)
Trường hợp còn lại
M(x, y)


R



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

Gợi ý HS viết chương trình


Các bài tập cịn lại yêu cầu HS
tự về nhà giải.


Hướng dẫn:


Bài 7 dùng dòng lặp while −
do


Khi nào tuoicha <> 2*tuoicon
thì làm


tăng tuổi cha lên 1
tăng tuổi con lên 1
tăng năm lên 1


gt := gt*(1/n);
e := e + gt;


<b>end;</b>


write('gia tri e(n) la: ', e: 9:4);
readln


<b>end.</b>


<b>Bài 6: lập trình giải bài toán cổ</b>
<b>program btoan_co;</b>



<b>uses crt;</b>


<b>var cho, ga: byte;</b>
<b>begin</b>


<b>for cho := 1 to 24 do </b>
<b>begin </b>


ga := 36 − cho;


<b>if ga + 2*cho = 50 then</b>


write('ga: ', ga, ' cho: ',cho);


<b>end;</b>


readln


<b>end.</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại câu lệnh lặp với số lần biết trước và số lần chưa biết trước


<i><b>2. Dặn dò</b></i>


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

<b>KIỂM TRA ĐÁNH GIÁ 1 TIẾT</b>




<b>I. MỤC ĐÍCH</b>


Kiểm tra lại khã năng tiếp thu cũng như quá trình học tập của HS. Từ đó có thể điều chỉnh
phương pháp giảng dạy.


<b>II. BẢNG RA ĐỀ KIỂM TRA</b>


<b>III. NỘI DUNG </b>


<b>IV. KẾT QUẢ KIỂM TRA</b>


Mức độ Chương I Chương II Chương III


Biết Câu 1, 3, 6, 28, 30 Câu 2, 5, 9, 17, 18, 20, 21,


22 , 27 Câu 4, 10, 13, 14, 15, 16, 29,31, 32, 33, 34, 35, 36, 37, 38,
39, 40


Hiểu 7, 24, 25, 11 8, 19, 23, 26, 8, 12


Vận dụng


Lớp Giỏi Khá Trung bình yếu


11C1
11C3
11C4
11C5


TUẦN: …….


TIẾT: ……


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

TUẦN: ………
TIẾT: ……..


NGÀY SOẠN: ……….


<b>CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC</b>


<b>§ 11. KIỂU MẢNG</b>







<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


− Kiểu mảng là kiểu dữ liệu có cấu trúc, cần thiết và hữu ích trong chương trình
− Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu


− NNLT thông dụng cho phép mô tả 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ác phần tử và cách đánh số các phần tử


− 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


<i><b>2. Kĩ năng: </b></i>


− Nhận biết các thành phần trong khai báo kiểu mảng một chiều


− Nhận biết định danh của phần tử kiểu mảng một chiều xuất hiện trong một chương trình
− Biết cách khai báo mảng đơn giản với chỉ sô kiểu miền con của kiểu nguyên.



<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu Projector.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: (nếu có)</b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<i><b>Chiếu đề bài và chương trình</b></i>
<i><b>ví dụ </b></i>


Giải thích: ta dùng 7 biến để
lưu trữ nhiệt độ các ngày trong
tuần.


Và để xét nhiệt độ nào lớn
hơn nhiệt độ trung bình ta dùng
<b>7 câu lệnh if − then</b>


<b>? </b>

Khi ta cần xét nhiệt độ cho cả
năm thì sau?


Để khắc phục những hạn chế
trên người ta thường ghép
chung 7 biến trên thành một
dãy và đặt cho nó chung một
tên và đánh cho mỗi phần tử
một chỉ số.


<b>?</b>

Thế nào là mảng một chiều?
Ví dụ: a1, a2, …, an


<b>?</b>

Để mô tả mảng một chiều ta
cần chú ý đến yếu tố nào?


<i><b>Chiếu slide 2</b></i>


Hầu hết các NNLT đều có
qui tắc cho phép xác định


− Tên kiểu mảng một chiều


Chú ý lắng nghe


cần dùng nhiều biến viết
<b>nhiều câu lệnh if − then</b>


Đứng dậy phát biểu


Kiểu phần tử và cách đánh
số các phần tử của nó.



<b>§ 11. KIỂU MẢNG</b>



<b>1. Kiểu mảng một chiều</b>


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

− Số lượng phần tử


− Kiểu dữ liệu của phần tử
− Cách khai báo biến mảng
− Cách tham chiếu đến ptử


<i><b>Chiếu slide phần khai báo</b></i>


<i><b>Chiếu chương trình ví dụ</b></i>


?

Trong ví dụ trên dịng nào là
khai báo mảng một chiều.


Khi khai báo mảng một
chiều ta có 2 cách để khai báo


<b>?</b>

Hãy xác định bài toán?


Treo bảng thuật tốn


u cầu thảo luận trong 5 phút
lên viết chương trình.


Dòng 3 và 4



Input: số nguyên N và dãy
N số nguyên a1, a2, …,aN
Output: chỉ số và giá trị lớn
nhất của dãy.


thảo luận lên viết chương
trình


<i><b>a. Khai báo</b></i>


− Khai báo trực tiếp:


<i><b>Var <tên biến mảng>:array [kiểu chỉ </b></i>


<i><b>số] of <kiểu phần tử>; </b></i>


<b>Ví dụ: var A : array[1..10] of integer;</b>
− Khai báo gián tiếp


<i><b>Type <tên kiểu mảng> = array [kiểu </b></i>


<i><b>chỉ số] of <kiểu phần tử>;</b></i>


<b> var <tên biến mảng>:< tên kiểu mảng>;</b>


ví dụ: type mang = array[1..10] of integer;
var A : mang;


trong đó:



<i>− Kiểu chỉ số: thường là đoạn số nguyên </i>
liên tục


<i>− Kiểu phần tử là kiểu của các phần tử </i>
mảng.


<i><b>* Tham chiếu phần tử của mảng: thông </b></i>
qua tên mảng và chỉ số


<i>Cú pháp: tên_mảng[chỉ số]</i>


Ví dụ: A[2] {tham chiếu đến phần tử thứ
hai của mảng A.


Để tham chiếu đến phần tử thứ 10 của
<b>mảng ta viết nhietdo[10]</b>


chỉ số phần tử 1 2 ... 10 11 ...


Mảng


<b>Nhietdo</b> 23 24 ... 22 28 ...


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


ví dụ 1: viết chương trình tìm và đưa ra
màn hình phần tử lớn nhất của dãy dố
nguyên


* Chương trình:



<b>Program TimMax;</b>
<b>Uses crt;</b>


<b>Type Dayso = array[1..250] of integer;</b>
<b>Var N, i, Max, csMax: integer;</b>


A: Dayso;


<b>Begin </b>


Clrscr;


Write(‘nhap so phan tu: ‘); readln(N);


<b>For i := 1 to N do</b>
<b>Begin </b>


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

Yêu cầu xác định bài toán


Yêu cầu thảo luận trong 5 phút
lên bảng viết chương trình


Hãy xác định bài tốn


u cầu thảo luận trong 5 phút


Input: Số nguyên dương N,
và dãy A gồm N số nguyên
dương A1, A2, …,AN.


Output: Dãy số A đã được
sắp xếp thành dãy không
giảm.


Input: Số nguyên dương N,
và dãy A gồm N số nguyên
dương A1, A2, …, AN và số
nguyên k.


Output: chỉ số i mà Ai = k
hoặc thông báo “khơng tìm
thấy số hạng nào bằng k


Readln(A[i]);


<b>End;</b>


Max:= A[1]; csMax := 1;


<b>For i:= 2 to N do </b>
<b>If A[i] > Max then</b>
<b>Begin</b>


Max := A[i];
Csmax := i;


<b>End;</b>


Write(‘gia tri cua phan tu max: ‘,max);
Write(‘chi so cua phan tu Max: ‘,


csmax);


Readln


<b>End.</b>


Ví dụ 2: Sắp xếp dãy số nguyên bằng
thuật toán tráo đổi


Program sapxep;
Uses crt;


Type Dayso = array[1..250] of integer;
Var N,i, j,t: integer;


Begin
Clrscr;


Write(‘nhap so phan tu day: ‘);
readln(N);


for i:=1 to N do
begin


write(‘nhap vao phan tu thu ‘,i,’: ‘);
readln(A[i]);


end;


for j := N downto N do


for i := 1 to j – 1 do


if A[i] > A[i + 1] then


begin {trao doi A[i] va A[i + 1]}
t := A[i];


A[i]:= A[i + 1];
A[i + 1] := t;
end;


writeln(‘day so duoc sap xep la:’);
for i := 1 to N do write(A[i]:4);
readln;


End.


<b>Ví dụ 3: tìm kiếm nhị phân</b>


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


<b>Program TK_nhiphan;</b>
<b>Uses crt;</b>


<b>Type Dayso = array[1..250] of integer;</b>
<b>Var N, i, k: integer;</b>


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

lên bảng trình bày chương trình A: Dayso;


Tim_thay: boolean;



<b>Begin</b>


<b>clrscr;</b>


write(‘nhap so phan tu cua day, N = ‘);
readln(N);


writeln(‘nhap cac phan tu cua day so
tang: ‘);


<b>For i := 1 to N do </b>
<b>begin</b>


write(‘phan tu thu’,i,’ = ‘);
readln(A[i]);


<b>end;</b>


write(‘nhap gia tri k = ‘);
readln(k);


Dau:= 1; cuoi := N; Tim_thay:= false;


<b>while (dau<=cuoi) and not (Tim_thay) </b>
<b>do </b>


<b>begin </b>


Giua:= (Dau + Cuoi) div 2;



<b>if A[Giua] = k then </b>


Tim_thay := True


<b>else if A[Giua] > k then </b>


Cuoi := Giua − 1


<b>else Dau:= Giua + 1;</b>
<b>end;</b>


<b>if Tim_thay then </b>


writeln(‘chi so tim duoc la: ‘,Giua)


<b>else write(‘khong tim thay’);</b>


readln


<b>end.</b>
<b>V. CỦNG CỐ - DẶN DÒ</b>


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


Các cách khai báo mảng, tham chiếu đến phần tử của mảng.


<i><b>2. Dặn dò</b></i>


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

TUẦN: ………


TIẾT: ……..


NGÀY SOẠN: ……….


<b>BÀI THỰC HÀNH 3</b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Củng cố các kiến thức cơ bản về kiểu dữ liệu mảng.


<i><b>2. Kĩ năng</b></i>


− Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình cụ thể:
+ Khai báo kiểu dữ liệu mảng


+ Nhập/Xuất dữ liệu cho mảng.


+ Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử.
− Biết giải một số bài tốn cơ bản thường gặp:


+ Tính tổng các phần tử thoả mãn điều kiện nào đó.
+ Đếm các phần tử thoả mãn điều kiện nào đó.
+ Tìm phần tử nhỏ nhất, lớn nhất.


<i><b>3. Thái độ</b></i>


Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>



Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phòng máy thực hành vi tính , máy chiếu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Chiếu chương trình lên bảng
Hướng dẫn tìm hiểu chương
trình.


<b>?</b>

Myarray là tên kiểu dữ liệu
hay tên biến?


<b>?</b>

Những dòng nào tạo biến
mảng A?


<b>?</b>

<i> Thủ tục Randomize có ý</i>
nghĩa gì?


Giải thích hàm chuẩn
<i>Random(n)</i>



Tên kiểu dữ liệu
Học sinh trả lời


Khởi tạo cơ chế sinh số
ngẫu nhiên.


Gõ nội dung vào máy


<b>Bài 1: Tạo mảng A gồm n (n<= 100) số </b>


ngun, mỗi số có trị tuyệt đối khơng vượt
quá 300. Tính tổng các phần tử của mảng là
bội số nguyên dương k cho trước.


<b>a. Chương trình</b>
<b>proram Sum1;</b>
<b>uses crt;</b>


<b>type Myarray = array[1..100] of integer;</b>
<b>var A:Myarray;</b>


s, n, i, k: integer;


<b>begin</b>


clrscr; randomize;
write('nhap n = ');
readln(n);


<b>for i := 1 to n do </b>



A[i] :=random(300) − random(300);


<b>for i:=1 to n do </b>


write(A[i]: 5);
writeln;


write('nhap k = ');
readln(k);


s := 0;


<b>for i := 1 to n do </b>


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

b) Yêu cầu HS đưa câu lệnh
posi, neg: integer;


posi := 0; neg := 0;


if A[i] > 0 then posi := posi + 1
else if A[i] < 0 then
neg:=neg +1;


writeln(posi:4, neg:4);


<b>?</b>

câu lệnh trên có ý nghĩa gì?
Sửa lỗi và chạy chương trình


b. Chỉnh sửa chương trình trên


và chạy chương trình


Thêm vào chương trình cho
đúng vị trí câu lệnh


Đếm phần tử của mảng A
là dương hay âm.


Gõ chương trình vào máy


writeln(' Tong can tinh la: ', s);
readln


<b>end.</b>


<b>Bài 2: Viết chương trình tìm phần tử có giá </b>


trị lớn nhất của mảng và đưa ra màn hình
chỉ số và giá trị của phần tử tìm được. Nếu
có nhiều phần tử có cùng giá trị lớn nhất thì
đưa ra phần tử có chỉ số nhỏ nhất.


<b>a. Chương trình</b>
<b>Program MaxElement;</b>


<b>uses crt;</b>


<b>type Myarray = array[1..100] of integer;</b>
<b>var N, i, j: integer;</b>



A: Myarray;


<b>begin </b>


clrscr;


write(‘nhap so phan tu: ‘); readln(N);


<b>for i := 1 to N do</b>
<b>begin </b>


write(‘nhap phan tu thu ‘,i, ‘:’);
readln(A[i]);


<b>end;</b>


j := 1;


<b>for i:= 2 to N do </b>


<b>if A[i] > A[j] then j := i;</b>


write(‘chi so: ’, j, ‘ Gia tri: ’,A[j]:4);
Readln


<b>end.</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>



Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>


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

TUẦN: ………


TIẾT: ……..

<b><sub>§ 11. KIỂU MẢNG (tt)</sub></b>

NGÀY SOẠN: ……….






<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


HS nắm được cấu trúc mảng hai chiều.
Biết khai báo biến mảng hai chiều


Tham chiếu đến phần tử của biến mảng hai chiều.


<i><b>2. Kĩ năng: </b></i>


− Nhận biết các thành phần trong khai báo kiểu mảng hai chiều


− Nhận biết định danh của phần tử kiểu mảng hai chiều xuất hiện trong một chương trình
− Biết cách khai báo mảng đơn giản với chỉ sô kiểu miền con của kiểu nguyên.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng.


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>



Máy chiếu Projector.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: (nếu có)</b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>?</b>

Với kiểu dữ liệu thơng
thường ta có thể biểu diễn bài
toán yêu cầu dạng bảng hay
không?


Với kiểu dữ liệu thông thường
chúng ta không thể biểu diễn
dạng bảng. Do đó, chúng ta
cần xây dạng kiểu dữ liệu mới
sau khi học phần tiếp theo.

<b>?</b>

Hãy cho biết thế nào là
mảng hai chiều?


Ta thấy mỗi hàng của mảng hai
chiều có cấu trúc như mảng
một chiều cùng kích thước.
? Để mo tả mảng hai chiều ta
cần xác định những yếu tố nào?



Cũng giống như mảng một
chiều, muốn sử dụng biến
mảng hai chiều thì ta phải khai
báo.


Khai báo mảng hai chiều cũng
tương tự như mảng một chiều.
u cầu HS lên khai báo


Có (hoặc khơng)


Đứng dậy phát biểu.


Nêu ra 5 yếu tố trong SGK.


Lên bảng khai báo


<b>§ 11. KIỂU MẢNG (tt)</b>


<b>2. Mảng hai chiều:</b>


Mảng hai chiều là bảng các phần tử có
cùng kiểu.


<i><b>* Các yếu tố để xây dựng mảng hai chiều:</b></i>


- Tên kiểu mảng hai chiều
- Số lượng phần tử


- Kiểu dữ liệu của phần tử


- Các cách khai báo biến
- Cách tham chiếu đến phần tử.
a. Khai báo


− Khai báo trực tiếp:


<i><b>Var <tên biến mảng>:array [kiểu chỉ </b></i>


<i><b>số hàng, kiểu chỉ số cột] of <kiểu phần </b></i>
<i>tử>; </i>


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

Thông thường thì cách 1 ta
thường dùng hơn.


Khi khai báo mảng hai chiều
cần chú ý đến chỉ số dòng và
chỉ số cột và kiểu phần tử


Hãy nêu cú pháp tham chiếu
đến phần tử của mảng một
chiều.


Tương tự như mảng một chiều
tham chiếu đến phần tử của
mảng hai chiều thì ta có thêm
chỉ số cột.


Soạn sẵn chương trình và chiếu
lên giải thích từng câu lệnh.



u cầu thảo luận nhóm để viết
chương trình


Chiếu lên màn hình nhận xét
đánh giá


Chuẩn bị chương trình để chiếu
và chạy thử.


Tên biến mảng[chỉ số]


Thảo luận nhóm sau đó
trình bày bằng giấy


− Khai báo gián tiếp


<i><b>Type <tên kiểu mảng> = array [kiểu </b></i>


<i><b>chỉ số hàng, kiểu chỉ số cột] of <kiểu phần </b></i>
<i>tử>;</i>


<b> var <tên biến mảng>:<tên kiểu mảng>;</b>


ví dụ: type mang = array[1..9,1..10] of
integer;


var A : mang;
Trong đó:


<i>- Type, Var, of: từ khóa</i>



<i>- Array: từ khóa để khai biến mảng</i>


- Tên biến mảng, tên kiểu mảng: do người
lập trình tự đặt.


<i>− Kiểu chỉ số hàng, kiểu chỉ số cột: là </i>
đoạn số nguyên liên tục


<i>− Kiểu phần tử là kiểu của các phần tử </i>
mảng.


* Tham chiếu đến phần tử của mảng hai
chiều


<i><b><Tên biến mảng>[chỉ số dịng, chỉ số cột]</b></i>
<i><b>b. Một số ví dụ</b></i>


Ví dụ 1: chương trình và đưa ra bảng nhân


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


<b>var </b>


B: array[1..9,1..10] of integer;
i, j : integer;


<b>begin</b>



clrscr;


<b>for i:=1 to 9 do </b>
<b>for j:= 1 to 10 do </b>


B[i,j]:= i*j;


<b>for i:=1 to 9 do </b>
<b>begin </b>


<b>for j:= 1 to 10 do write(B[i,j]:4);</b>


writeln;


<b>end;</b>


readln


<b>end.</b>


Ví dụ 2:


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Các cách khai báo mảng, tham chiếu đến phần tử của mảng hai chiều


<i><b>2. Dặn dò</b></i>


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

TUẦN: ………


TIẾT: ……..


NGÀY SOẠN: ……….


<b>BÀI TẬP CHƯƠNG IV</b>






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


Củng cố kiến thức đã học ở bài 11


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng., thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng phụ, máy chiếu, máy tính.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu 1: Viết cú pháp khai báo mảng hai chiều?


Câu 2: Viết câu lệnh nhập các phần từ cho mảng hai chiều?


<i><b>3</b></i>. Nội dung



<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Yêu cầu HS thảo luận trong
5 phút


Gợi ý cho HS viết chương
trình


Lấy d = A[2]-A[1]


Khi đó dãy A là cấp số cộng
nếu thỏa mãn điều kiện


A[i]=A[1]+(i-1)d


Hoặc điều kiện A[i+1]-A[i]=d
(với 1<i<N)


Dùng dòng lặp theo biến
đếm i để kiểm tra xem mỗi A[i]
có thỏa mãn điều kiện nói trên
hay không, chỉ cần phát hiện
được một phần tử của A không
thỏa mãn là kết luận được dãy
A không phải là cấp số cộng.


Yêu cầu HS thảo luận để
viết chương trình


HS thảo luận và đưa ra


phương án để giải.


Thảo luận và viết chương
trình.


<b>Câu 5 trang 79</b>


<b>Câu 6/79: Chương trình</b>
<b>Program baitap6;</b>
<b>uses crt;</b>


<b>var A: array[1..100] of integer;</b>


N, i, u: integer;


so_nt, so_chan: integer;


<b>begin</b>


so_chan:= 0; so_nt := 0;


write(‘so phan tu cua day A (N<=100),
N= ‘); readln(N);


<b>while (N < 0) or (N > 100) do </b>
<b>begin </b>


write(‘nhap lai so phan tu cua day A
(N<=100), N = ‘); readln(N);



<b>end.</b>


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

Nhận xét đánh giá cho điểm.


Chương trình chỉ thực hiện với
N = 24 vì số Phi-pơ-na-xi thứ
25 là 75025 vượt q phạm vi
của kiểu word.


<b>begin </b>


write(‘A[‘,i,’]= ’); readln(A[i]);


<b>if A[i] mod 2 = 0 then </b>


so_chan:=so_chan+1;


<b>if A[i] > 1 then </b>
<b>begin </b>


u:=2;


<b>while (u<=sqrt(A[i])) and </b>


<b>(a[i]mod u <>0) do u:=u+1;</b>


<b>if u> sqrt(a[i]) then </b>


so_nt:=so_nt +1;



<b>end;</b>
<b>end;</b>


writeln(‘so luong so chan: ‘, so_chan);
writeln(‘so luong so le: ‘, N-so_chan);
writeln(‘so luong so ngto: ‘, so_nt);
readln


<b>end.</b>
<b>Câu 7/79</b>


Chương trình:


<b>Program cau_7;</b>
<b>Uses crt;</b>


<b>Var n, i:word;</b>


F1, F2, F: word;


<b>Begin</b>


clrscr;


write(‘tim so hang thu N cua day
phi-po-na-xi, N= ‘); readln(N);


F1:=1;
F2:= 1;



<b>for i:=1 to n do</b>
<b>begin </b>


F:= F1+F2;
F1:=F2;
F2:=F;


<b>end;</b>


write(F);
readln


<b>end.</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số chú ý khi viết chương trình


<i><b>2. Dặn dị</b></i>


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

TUẦN: ………
TIẾT: ……..


NGÀY SOẠN: ……….


<b>BÀI THỰC HÀNH 4 </b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>



Củng cố các kiến thức cơ bản và kĩ năng đã có khi lập trình với kiểu dữ liệu mảng.\
Củng cố 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)


<i><b>2. Kĩ năng</b></i>


Diễn đạt thuật toán bằng chương trình sử dụng kiểu dữ liệu mảng.


<i><b>3. Thái độ</b></i>


Rèn luyện HS ý thức cần có của người lập trình là viết chương trình với khối lượng tính tốn ít
nhất có thể được


Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phịng máy thực hành vi tính , máy chiếu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ</b></i>
<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>



Yêu cầu HS mở chương trình
Pascal


Hướng dẫn HS tìm hiểu chương
trình.


<b>?</b>

Hãy xác định bài tốn?


Sử dụng ví dụ chuyển đĩa để
đưa ra bước chuyển đổi sd biến
tạm t


yêu cầu HS chỉnh lỗi và chạy
chương trình


Đặt yêu cầu mới khai báo thêm
<i>biến dem và bổ sung vào</i>
chương trình những câu lệnh để
tính số lần thực hiện tráo đổi
trong chương trình.


Chúng ta khai báo biến đếm
như thế nào?


Yêu cầu HS viết câu lệnh đếm
số lần tráo đổi.


Đặt dem:= dem +1 ở đâu:



Mở chương trình Pascal


Input: Dãy A gồm N số
nguyên


Output: dãy A được sắp
xếp


- Dem : integer;
dem:= dem +1


- Sau câu lệnh tráo đổi
A[i+1] := t;


Bài 1:


<b>uses crt;</b>


<b>type Arrint = array[1..250] of integer;</b>
<b>var n, i, j, t: integer;</b>


A : ArrInt;


<b>begin</b>


clrscr;
randomize;


write('nhap n = ’); readln(n);



<b>for i:= 1 to n do</b>


A[i] := random(300) – random(300);


<b>for i:=1 to n do write(A[i]:5);</b>


writeln;


<b>for j:= n downto n do</b>
<b>for i:= 1 to j -1 do </b>


<b>if A[i] > a[i+1] then</b>
<b>begin</b>


t := A[i];
A[i]:= A[i+1];
A[i+1] := t;


<b>end;</b>


writeln('day da duoc sap xep:’);


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

Giới thiệu HS chương trình
chưa cải tiến.


<b>?</b>

Trong chương trình phải thực
hiện bao nhiêu phép cộng


<b>?</b>

Có cách nào cải tiến?



Yêu cầu HS dùng lệnh
<i>B[1]:=A[1];</i>


<i>for i:= 2 to n do</i>


<i> B[i]:=B[i-1]+A[i]; </i>


<i>thay đoạn chương trình từ{Bat </i>
<i>dau tao B} đến{Ket thuc tao B}</i>


Phân tích ưu điểm của việc
thay lệnh này.


Quan sát giáo viên thực
hiện


n(n+1)/2 phép cộng
Để tính bước thứ i ta sử
dụng kết quả ở bước thứ i-1


writeln;
readln


<b>end.</b>
<b>Bài 2: </b>


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


<b>type MyArray = array[1..250] of integer;</b>


<b>var </b> n, i, j: integer;


A,B : MyArray;


<b>begin</b>


clrscr;
randomize;


write('nhap n = ’); readln(n);


<b>for i:= 1 to n do</b>


A[i] := random(300) – random(300);


<b>for i:=1 to n do write(A[i]:5);</b>


writeln;
{Bat dau tao B}


<b>for i :=1 to n do </b>
<b>begin</b>


B[i]:=0;


<b>for j:= 1 to i do B[i]:=B[i]+ A[j];</b>
<b>end;</b>


{Ket thuc tao B}



<b>for i:= 1 to n do write(B[i]:7);</b>


readln


<b>end.</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>


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

TUẦN: ………


TIẾT: …….. NGÀY SOẠN: ……….


<b>KIỂM TRA 1 TIẾT</b>



<i><b>I. MỤC TIÊU ĐÁNH GIÁ:</b></i>


Đánh giá khả năng tiếp thu của học sinh ở bài 11.


<i><b>II.MỤC ĐÍCH YÊU CẦU CỦA ĐỀ: </b></i>


Yêu cầu học sinh:


- Biết một số khái niệm về mảng, khai báo mảng.


- Nhận biết một số lỗi và chức năng của một chương trình


- Viết được một số chương trình về mảng một chiều


<b>III. CẤU TRÚC ĐỀ</b>
<b>IV. KẾT QUẢ</b>


<b>Lớp</b> <b>11A1</b> <b>11A2</b> <b>11C4</b> <b>11C5</b> <b>11C6</b> <b>11C7</b>


<b>Giỏi</b>
<b>Khá</b>
<b>TB</b>
<b>Yếu kém</b>


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

TUẦN: ………


TIẾT: ……..

<b><sub>§ 12. KIỂU XÂU</sub></b>

NGÀY SOẠN: ……….






<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều).
Biết khai báo xâu, truy cập đến phần tử của xâu.


<i><b>2. Kĩ năng: </b></i>


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ó sd xâu.


<b>II. PHƯƠNG PHÁP</b>



Nêu vấn đề, diễn giảng., thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng phụ có viết các hàm, thủ tục xử lí xâu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: </b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Đưa ra bài tốn: Viết chương
trình nhập họ tên của 40 HS.


<b>? </b>

Ta chọn kiểu dữ liệu như thế
nào? Khai báo như thế nào?
Nhập tên như thế nào?


<b>?</b>

Vậy khi viết chương trình
nhập vào tên của 40 HS thì có
điều gì bất tiện?


Dẫn dắt vào bài mới


<b>?</b>

Thế nào là xâu?



<b>?</b>

Độ dài của xâu là gì?


<b>?</b>

Thếnào là xâu rỗng ?


<b>?</b>

Để mô tả kiểu xâu ta cần xác
định những yếu tố nào?


Ta có thể xem kiểu xâu như
mảng một chiều, các phần tử
được đánh số bẳt đầu là 1


Hãy nhắc lại cú pháp tham
chiếu đến phần tử của mảng
một chiều


Tương tự để tham chiếu đến
phần tử của xâu ta cũng có cú
pháp sau:


Để sd biến xâu thì trước hết


Kiểu mảng một chiều gồm
40 kí tự.


readln(A[1]); readln(A[2]);
readln(A[3]); readln(A[4]);
....


Phải viết 40 câu lệnh nhập
vào phần tử của mảng


Đứng dậy phát biểu


Nhìn SGK và mỗi em đọc
một yếu tố.


Tên biến mảng[chỉ số]


<b>§ 12. KIỂU XÂU</b>


* Một số khái niệm:


- Xâu là dãy các kí tự trong bộ mã ASCII,
mỗi kí tự là một phần tử trong xâu.


- 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.
* Để mô tả kiểu xâu ta cần xác định:


- Tên kiểu xâu.


- Cách khai báo biến kiểu xâu
- Số lượng kí tự kiểu xâu.


- Các phép tốn thao tác với xâu.
- Cách tham chiếu tới phần tử của xâu
* Tham chiếu đến phần tử của xâu


<i><b>Tên biến xâu[chỉ số]</b></i>



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

ta phải khai báo nó


Yêu cầu HS lên viết cú pháp
khai báo


<b>? </b>

Nếu không có độ dài tối đa
thì hiểu xâu đó có tối đa bao
nhiêu kí tự?


Để thao tác trên xâu thì ta cần
có những phép toan, hàm, thủ
tục xử lí xâu


u cầu HS viết kết quả


? Khi nào hai xâu bằng nhau?


Đưa ra ví dụ yêu cầu HS đưa ra
kết quả


ví dụ:
s1: ‘Le’


s2: ‘Nguyen Van A’
insert(s1, s2,8) --->?


ví dụ:


S: ‘Nguyen Van A’



?

<i><b> Muốn lấy ra xâu ‘Van’ ta</b></i>
phải viết như thế nào?


ví dụ: S: ‘Nguyen Van A’


<b>?</b>

length(s) cho giá trị là bao
nhiêu?


Lên viết phần khai báo


255 kí tự


Truong Duyen Hai


khi chúng giống nhau hoàn
toàn.


Đưa ra kết quả
<i><b>Nguyen A</b></i>


‘Nguyen Le Van A’


copy(S,8,3)


12


<b>1. Khai báo</b>
<b>var </b>



<i><b><tên biến xâu>: string[độ dài tối đa của xâu]</b></i>


Trong đó:


- Tên biến xâu: do người lập trình tự đặt
- var, string: từ khố


- độ dài tối đa qui định số kí tự tối đa xâu
có, nêu khơng ghi thì ngầm định là 255 kí
tự


ví dụ: var hoten: string[30];
S : string;


<b>2. Các thao tác trên xâu: </b>


<i><b>* Phép ghép xâu (kí hiệu là cộng)</b></i>
ví dụ: ‘Truong’ + ‘ ’+ ‘Duyen Hai’
* Phép so sánh xâu: <, >, <=, >=, =, <>
theo qui tắc so sánh lần lượt từ kí tự trái
sang phải.


Ví dụ: ‘may tinh’ < ‘may tinh cua toi’
‘TIN HOC’ = ‘TIN HOC’
* Các thủ tục và hàm xử lí xâu


<i><b>a. Thủ tục xố n kí tự</b></i>


<i><b>Cú pháp delete(st,vt,n)</b></i>
trong đó



st: xâu.


vt: vị trí bắt đầu xố.
n: số kí tự xóa
ví dụ:


Giá trị st Thao tác Kết quả


‘Nguyen Van A’ delete(st,8,3) ?


<i><b>b. Thủ tục chèn xâu S1 vào xâu S2</b></i>


<i><b>Cú pháp: Insert(s1,s2,vt)</b></i>
s1, s2: xâu


vt: vị trí bắt đầu chèn xâu s1


<i><b>c. Hàm tạo xâu</b></i>


Cú pháp: copy(s,vt,n)
s: xâu.


vt: vị trí bắt đầu lấy trong xâu s
n: số kí từ sé lấy


<i><b>d. Hàm tính độ dài xâu</b></i>


<i><b>Cú pháp: length(s)</b></i>



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

ví dụ: s1: ‘uy’


s2: ‘Nguyen Van A’
pos(s1,s2) có giá trị là
bao nhiêu?


Chia nhóm mỗi nhóm là một
ví dụ thảo luận trong 5 phút và
lên bảng viết chương trình


Nhận xét cho điểm


3


Nhóm 1-6: ví dụ 1
Nhóm 2-5: Ví dụ 2
Nhóm 3-4: ví dụ 3


lên bảng viết chương trình


<i><b>cú pháp: pos(s1,s1)</b></i>


<i><b>f. Hàm cho chữ cái in hoa</b></i>


<i><b>Cú pháp: upcase(ch)</b></i>
ví dụ: upcase(a) ---> ‘A’


upcase(B) ---> ‘B’


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


<b>SGK</b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Thế nào là xâu?


Cách khai báo xâu? Tham chiếu đến phần tử của xâu?
Các hàm thủ tục xử lí xâu?


<i><b>2. Dặn dị</b></i>


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

TUẦN: 27


TIẾT: 33

<b><sub>BÀI TẬP CHƯƠNG IV (tt)</sub></b>

NGÀY SOẠN: 31/01/2010






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


Củng cố kiến thức đã học ở bài 12


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng., thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Bảng phụ viết chương trình trong bài tập chương.



<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu 1: viết cú pháp khai báo xâu?


Câu 2: Giả sử biến xâu St lưu giá trị ‘Truong THPT Duyen Hai’ hãy viết kết quả sau:
Delete(St,13,9) → ?, Copy(st,8,4)→ ?, length(St)→ ?


<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Hôm trước ta dừng lại ở ví
dụ 3 ở tiết bài tập này ta xét
tiếp các ví dụ cịn lại


Ví dụ 4: Viết chương trình
nhập vào một xâu và đưa ra
màn hình xâu thu được từ nó
bởi loại đi dấu cách.


Vd:


I: ‘a d nf h d f’
O: ‘adnfhdf’


Ví dụ 5: Viết chương trình
nhập vào một xâu s1, tạo xâu


s2 gồm tất cả các chữ số trong
xâu s1.


I: ‘a7cv912n9d356’
O: ‘79129356’


Hướng dẫn gợi ý học sinh thảo
luận


Hãy đưa ra phương án


Bài 10/80


Viết chương trình nhập từ bàn
phím xâu kí tự s có độ dài
không quá 100. Hãy cho biết
có bao nhiêu chữ số xuất hiện
trong xâu s


HS thảo luận và đưa ra
phương án để giải.


Có thể dùng thủ tục delete
Dùng một xâu mởi lưa xâu
là xâu kí tự


Kiểm tra lần lượt từng kí tự
nếu nó là kí tự số thì đưa
vào xâu mới giống như ví
dụ 4



<b>SGK</b>


<b>SGK</b>
<b>Câu 10/80.</b>


Chương trình


<b>Program cau_10;</b>
<b>Var S:tring[100];</b>


i, dem: byte;


<b>begin</b>


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

Thảo luận và viết chương
trình.


readln(S);
dem:= 0;


<b>for i:=1 to length(S) do </b>


<b>if (‘0’ <= S[i]) and (S[i]<9) then </b>


dem:= dem +1;


write(‘trong xau co ’, dem, ‘ chu so’);
readln



<b>end. </b>


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số chú ý khi viết chương trình


<i><b>2. Dặn dị</b></i>


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

TUẦN: ………


TIẾT: ……..

<b><sub>BÀI THỰC HÀNH 5 </sub></b>

NGÀY SOẠN: ……….


<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Làm quen với tiềm kiếm, thay thế và biến đổi xâu.


<i><b>2. Kĩ năng</b></i>


HS biết khai báo xâu


Nhập dữ liệu cho xâu, đưa ra màn hình giá trị của xâu.
Duyệt qua tất cả các kí tự của xâu.


Sử dụng hàm và thủ tục chuẩn đã học


<i><b>3. Thái độ</b></i>


Rèn luyện HS ý thức cần có của người lập trình



Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phòng máy thực hành vi tính, máy chiếu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ</b></i>
<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Yêu cầu HS mở chương trình
Pascal


Hướng dẫn HS tìm hiểu chương
trình.


Một xâu được gọi là
Palidrom nếu ta đọc các kí tự từ
phải sang trái sẽ giống từ trái
sang phải.



<b>Bài 2:</b>


Hướng dẫn HS :


Ta thấy cần ghi nhận số lần
xuất hiện của từng chữ cái. Có
tất cả 26 chữ cái từ A đến Z. Có
thể dung mảng một chiều để
ghi nhận số lần xuất hiện trong


Mở chương trình Pascal


Chương trình


<b>var i, x: byte;</b>


<b>a, p: string;</b>


<b>begin</b>


write('nhap vao xau: ’); readln(a);
x:= length(a);


p:=’’;


<b>for i := x downto 1 do </b>


p:= p+a[i];


<b>if a = p then write('xau la palindrome’)</b>


<b>else write('xau la palindrome’);</b>


readln


<b>end.</b>


b. Hãy viết lại chương trình đó, khơng dùng
biến xâu p


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

xâu S của các kí tự.


Do chương trình không phân
biệt chữ hoa chữ thường nên ta
dùng hàm upcase để đổi kí tự
thường thành kí tự hoa.


Có thể cho dàn ý sau:
{phần khai báo}


<b>begin </b>


{nhập xâu S}
N:= length(S);


{khởi tạo giá trị cho mảng
dem}


<b>for i:= 1 to N do </b>


{nếu S[i] là chữ cái thì


đếm tăng cho S[i] }


<b>for i :=1 to 26 do </b>


{Thông báo số lần xuất
hiện của chr(i+ord(‘A’) –1)}


<b>end.</b>


Yêu cầu HS về nhà chuẩn bị
bài 3.


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>


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

TUẦN: 27


TIẾT: 34

<b><sub>§ 13. KIỂU BẢN GHI</sub></b>

NGÀY SOẠN: ……….






<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Biết khái niệm kiểu bản ghi.



Biết cách khai báo bản ghi, truy cập đến trường của bản ghi.
Các thao tác nhập, xuất hay xử lí mỗi trường của bản ghi.


<i><b>2. Kĩ năng: </b></i>


Bước đầu biết mô tả một đối tượng bằng một số thuộc tính cần quản lí
Khai báo kiểu bản ghi.


Nhận biết được trường (thuộc tính) của một biến bản ghi và bước đầu viết được một vài thao tác xử
lí trên từng trường của bản ghi.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng., thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: </b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


Chiếu kết quả thi tốt nghiệp
SGK trang



<b>?</b>

Trên bảng có những thơng
tin gì?


<b>?</b>

Bảng chứa thơng tin của bao
nhiêu đối tượng?


Mỗi thông tin của một đối
tượng gọi là một thuộc tính hay
một trường. Mỗi đối tượng
được mô tả bằng nhiều thông
tin trên một hàng gọi một bản
ghi.


NNLT cũng cho phép ta xác
định kiểu bản ghi


<b>?</b>

Để mô tả kiểu bản ghi ta cần
xác định các yếu tố nào?


Để khai báo kiểu bản ghi ta cần
khai báo: Tên kiểu bản ghi, tên
các trường, kiểu dữ liệu của
mỗi trường.


Họ tên, ngày sinh, giới tính,
điểm của các mơn thi.
Bảng chứa thơng tin của 3
đối tượng


HS trả lời câu hỏi



<b>§ 13. KIỂU BẢN GHI</b>



* Để mô tả kiểu bàn ghi ta cần xác định:
- Tên kiểu bản ghi


- Tên các thuộc tính (trường)
- Kiểu dữ liệu của mỗi trường
- Các khai báo biến


- Cách tham chiếu đến trường


<b>1. Khai báo</b>


Cú pháp:


<i><b>type <tên kiểu bản ghi> = record</b></i>


<i><tên trường 1>: <kiểu trường 1>;</i>
...
<i>< tên trường k>: <kiểu trường k>;</i>


<b>end;</b>


<b>var <tên biến bản ghi>: <tên kiểu bản ghi>;</b>


* Trong đó:


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

Yêu cầu HS cho ví dụ khai báo
kiểu dữ liệu bản ghi.



Nếu A và B là hai biến bản ghi
có cùng kiểu thì ta có thể gán
giá trị của B cho A


u cầu HS viết thủ tục nhập
giá trị của các trường trong
<b>biến bản ghi DS. </b>


Yêu cầu HS nghiên cứu ví dụ
SGK.


? Sử dụng kiểu dữ liệu như thế
nào để giải quyết bài toán.
Nêu các bước để giải bài toán


Yêu cầu chia nhóm thảo luận
sau đó ghi trên giấy thu lại cho
nhóm khác nhận xét


Chiếu mẫu chương trình chạy
thử.


Lên bản cho ví dụ


Readln(DS.Ho_ten);
Readln(DS.Ngay_sinh);
Readln(DS.Gioi_tinh);
Readln(DS.Toan);
Readln(DS.Li);


Readln(DS.Hoa);
Readln(DS.Tin);
Một bảng các bản ghi
Bước1: Tạo kiểu dữ liệu,
khai báo biến.


Bước 2: Nhập dữ liệu cho
mảng các bản ghi.


Bước 3: Tính tổng điểm
Toan và điểm Van


+ Bước 4: dựa vào tổng
điểm để xếp loại.


<i><b> - <tên kiểu bản ghi>; <tên trường </b></i>


<i><b>1>, ...<tên trường k>; <tên biến bản ghi>:</b></i>


do người lập trình tự đặt.


- <kiểu trường 1>, ..., <kiểu trường k>:
thuộc kiểu dữ liệu chuẩn hay kiểu dữ liệu
có cấu trúc.


<b>Vd: type danh_sach = record</b>


Ho_ten:string[30];
Ngay_sinh:string[10];
Gioi_tinh: boolean;


Toan, Li, Hoa, Tin:real;
<b> end;</b>


<b>Var </b> DS: danh_sach;


* Tham chiếu đến trường của bảng ghi:


<i><b><tên biến bản ghi></b></i>

<i><b>.</b></i>

<i><b><tên trường></b></i>


Ví dụ: DS.Tin


<b>2.Gán giá trị</b>


Có hai cách để gán giá trị cho biến bản
ghi:


- Dùng lệnh gán trực tiếp


Nếu A và B là hai biến bản ghi có cùng
kiểu thì: A:=B;


- Gán giá trị cho từng trường:
A.ht:=B.ht; A.dtb:=B.dtb;...


Ví dụ: SGK


Chương trình: SGK


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>



Cách khai báo kiểu bản ghi, tham chiếu đến trường của bảng ghi.
Gán giá trị cho bản ghi, thủ tục, câu lệnh nhập xuất, xử lí bảng ghi.


<i><b>2. Dặn dị</b></i>


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

TUẦN: 28


TIẾT: 35 NGÀY SOẠN: ……….


<b>BÀI TẬP </b>


<b>I. MỤC ĐÍCH – YÊU CẦU:</b>


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


<i><b> </b></i> - Ôn lại các kiến thức về bản ghi: cú pháp khai biến, cách tham chiếu, một số câu lệnh
liên quan đến thao tác xử lý bản ghi.


- Nắm được một số thuật tốn: Nhập và thơng báo kết quả các trường, sắp xếp dữ liệu.


<i><b>2.Kỹ năng:</b></i>


- Khai báo được kiểu bản ghi trong NNLT Pascal.
- Nhập xuất dữ liệu cho biến bản ghi


- Tham chiếu đến từng trường của kiểu bản ghi.
- Sử dụng kiểu bản ghi để giải quyết một số bài toán.


<i><b>3.Thái độ: </b></i>



Tiếp tục rèn luyện các phẩm chất cần thiết của nguời lập trình như: ý thức chọn và xây
dựng kiểu dữ liệu, ý thức rèn luyện kỹ năng,...


<b>II. PHƯƠNG PHÁP: </b>


<i><b> Vấn đáp kết hợp diễn giảng</b></i>
<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


1.Hãy nêu cú pháp về khai báo biến bản ghi?
2.Hãy khai báo biến bản ghi của ví dụ sau:


BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008


<i>TT</i> <i>Họ tên</i> <i>năm sinh</i> <i>Toán</i> <i>Lý</i> <i>Hoá</i> <i>Văn</i> <i>TB</i> <i>Xếp loại</i>


<i><b>1</b></i>
<i><b>...</b></i>
<i><b>n</b></i>
<i><b>3. Nội dung</b></i>


<i>Đặt vấn đề(1’): </i>


Kiểu dữ liệu bản ghi được dùng để mơ tả các đối tượng có cùng một số thuộc tính mà các


thuộc tính có thể có các kiểu dữ liệu khác nhau, chúng ta đã nghiên cứu lý thuyết về kiểu bản ghi
ở tiết trước. Hôm nay chúng ta vận dụng kiểu bản ghi để làm một số bài tập.


<b>HOẠT ĐỘNG CỦA GV & HS</b> <b>NỘI DUNG KIẾN THỨC</b>
<b>Hoạt động 1: Giới thiệu cách truy xuất </b>


đến trường
<b> GV:</b>


-Yêu cầu Hs đọc câu hỏi bài tập 11/80
-Yêu cầu Hs xem lại ví dụ và trả lời
câu hỏi sau:


Hãy xem ví dụ 3 trong SGK bổ sung thêm


Bài tập 11/80(SGK):


Lưu ý vận dụng bài tập tiết 34


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

đoạn chương trình và đưa ra màn danh
sách những học sinh chỉ có xếp loại A?


<b>HS: Đọc đề bài kết hợp với ví dụ trong</b>


SGK để sửa lại chương trình


-Phân tích từng câu lệnh của Hs đưa
ra=>Kết luận chương trình cụ thể


-Đưa tồn bộ chương trình lên máy


chiếu và chạy một vài bộ test để kiểm
chứng thuật toán.


<b>Hoạt động 2: Rèn luyện tư duy lập trình</b>
<b>GV: Đưa câu hỏi bài tập 2 lên máy chiếu</b>


và Y/c học sinh đọc.


Hãy nêu cách tổ chức dữ liệu cho bài
tập 2?


<b>HS:Lên bảng viết cách khai báo biến bản</b>


ghi


Tổ chức hoạt động nhóm như sau:


+Nhóm 1: Viết đoạn chương trình nhập
Họ và tên, DTBHK1 và DTBHK2 của
từng học sinh.


+Nhóm 2: Viết đoạn chương trình tính
TBCN và xếp loại


+Nhóm3: Viết đoạn chương trình sắp
xếp theo thứ tự tăng dần của cột điểm
TBCN


+Nhóm 4: Xuất kết quả theo bảng như
sau:



TT Họ
tên


DHK1 DHK2 DCN XL
1


2
...
n


<b>HS: Thảo luận theo nhóm đã phân cơng</b>


-Y/c các nhóm trình bày trên giấy A0


-Sau khi thảo luận nhóm xong thì từng
nhóm lên bảng trình bày, các nhóm khác
bổ sung.


-Sau các nhóm bổ sung thi Gv nhận xét
và phân tích từng đoạn chương
trình=>Đưa chương tình cụ thể sau lên
máy chiếu và chạy thử một vài bộ Test để
kiểm chứng thuật toán.


Writeln(' TT ',' Ho va Ten ', ' Xloai ');
For i:=1 to n do


If lop[i].xeploai='A' Then
Begin



Write(i:4);


Write(Lop[i].ten:30);
Write(Lop[i].Xeploai);
Writeln;


End;


Bài tập 2/145(SBT Pascal5.5):


Viết chương trình nhập họ tên, điểm DHK1 và
DHK2 của từng Hs trong lớp.


a.Tính TBCN và xếp loại.


b. Xếp hạng theo thứ tự tăng dần của cột điểm
TBCN của từng học sinh.


c.Thông báo theo bảng sau theo thứ tự sắp xếp cột
điểm TBCN


TT Họ tên DHK1 DHK2 DCN XL
1


2
...
n


<i>*Chương trình:</i>



Type Bdiem=Record
Hoten:String;


DHK1,DHK2,TBCN:Real;
Xeploai:String[5];


End;


Var Hs:Array[1..60] Of Bdiem;
I,j,n:Byte;


Tg:Bdiem;
Begin


Write('Nhap so luong Hs n='); Readln(n);
For i:=1 To n Do


With Hs[i] Do
Begin


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

Write('NhapTBHK1',i); readln(DHK1);
Write('NhapTBKT2',i); Readln(DHK2);
End;


<b>{Tinh TB Ca nam va Xep loai}</b>


For i:=1 To n Do


Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3;


For i:=1 To n Do


With Hs[i] Do
Begin


If TBCN>=8.0 Then Xeploai:='Gioi';
if (TBCN>=6.5)and(TBCN<8.0) Then
Xeploai:='Kha';


If (TBCN>=5) and (TBCN<6.5) Then
Xeploai:='TB';


If (TBCN>=3.5) and (TBCN<5) Then
Xeploai:='Yeu';


If TBCn<3.5 Then Xeploai:='Kem';
End;


For i:=1 to n-1 Do
For j:=i+1 to n Do


If Hs[i].TBCN> Hs[j].TBCN Then
Begin


tg:=Hs[i];
Hs[i]:=Hs[j];
Hs[j]:=tg;
End;


<b>{Thong bao ket qua nhu sau}</b>



Writeln('...');
Writeln('| TT |','| Ho ten |','| TBCN |','|
xeploai |');


Writeln('...');
For i:=1 to n do


With Hs[i] Do


Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10);
Readln;


End.


<i><b>V.CỦNG CỐ -DẶN DÒ: </b></i>


<i><b>1.Củng cố</b></i>


 Cách khai báo biến bản ghi


 Cách truy xuất vào giá trị của trường


 Cách nhập và xuất các trường trong bản ghi.


<i><b>2. Dặn dò:</b></i>


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

TUẦN: 28


TIẾT: 36 NGÀY SOẠN: ……….



<b>KIỂM TRA THỰC HÀNH DƯỚI 45 PHÚT</b>


<b>I. MỤC ĐÍCH – YÊU CẦU</b>


<i><b> 1. Kiến thức</b></i>


- Kiểm tra lại những kiến thức cơ bản đã học của chương III.
<i><b> 2. Kĩ năng: rèn luyện kĩ năng làm bài kiểm tra</b></i>


<i><b> 3. Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra.</b></i>


<b>II. CHUẨN BỊ</b>


 Giáo viên: đề kiểm tra


 Học sinh: Học bài trước ở nhà


<i><b>III. NỘI DUNG</b></i>


<i><b>1. Ổn định lớp học</b></i>
<i><b>2. Đề kiểm tra</b></i>


Viết chương trình nhập vào xâu s


a. Đếm và xuất ra màn hình số lần chữ số xuất hiện các chữ số trong xâu.


b. Tạo xâu mới bằng cách lấy và đổi tất cả các kí tự trong xâu s thành kí tự in hoa.


<i><b>3. Đáp án</b></i>



<b>NỘI DUNG CHƯƠNG TRÌNH</b> <b>THANG ĐIỂM</b>


Program chuong_trinh;
Uses crt;


Var s, st : string[50];
dem, i, l: byte;




Begin


Write(‘nhap xau: ’); readln(s); 1đ


l:= length(s);


dem:= 0; 1đ


For i:= 1 to l do


if (s[i]>= ‘0’) and (s[i] <= ‘9’ then


dem:= dem +1; 2đ


Writeln(‘so lan xuat hien chu so: ’, dem:5); 1đ
St:=’’;



For i:= 1 to l do



st:= st + upcase(s[i]);
Write(‘xau vua tao: ‘, st);
Readln


End. 1đ


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

TUẦN: 29


TIẾT: 37 NGÀY SOẠN: ……….


<b>§ 14. KIỂU DỮ LIỆU TỆP</b>


<b>§ 15. THAO TÁC VỚI TỆP</b>







<b>I. MỤC ĐÍCH – YÊU CẦU </b>


- Biết khái niệm và vai trò của kiểu tệp.


- Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập.
- Hiểu bản chất của tệp văn bản.


- Biết các bước làm việc với tệp


- Biết khai báo tệp và các thao tác cơ bản với tệp văn bản.
- Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng., thảo luận nhóm



<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: Không kiểm tra</b></i>
<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>?</b>

Trong máy tính có những
loại bộ nhớ nào? Loại nào
không bị mất dữ liệu khi tắt
máy hoặc mất điện?


<b>?</b>

Dữ liệu thuộc các kiểu dữ
liệu được xét được lưu trữ ở
đâu?


<b>? </b>

Vì sao em biết?


Chốt lại: để lưu trữ dữ liệu lâu
dài và lưu với dung lượng lớn
người ta lưu dữ liệu trên bộ
nhớ ngồi thơng qua tệp (file).


Có nhiều cách để phân loại tệp



<b>? </b>

Xét theo cách tổ chức dữ liệu
tệp được chia thành mấy loại?
Kể tên từng loại?


<b>?</b>

Xét theo cách thức truy cập
tệp được chia thành mấy loại?
Kể tên từng loại?


Mất dữ liệu khi mất điện
Bộ nhớ trong và bộ nhớ
ngồi. Bộ nhớ ngồi khơng
mất dữ liệu khi tắt máy
hoặc mất điện


Trong RAM


Mất dữ liệu khi mất điện


2 loại: tệp văn bản và tệp có
cấu trúc


2 loại: tệp truy cập tuần tự
và tệp truy cập trực tiếp


<b>§ 14. KIỂU DỮ LIỆU TỆP</b>


<b>1. Vai trò của kiểu tệp:</b>
<i><b>Đặc điểm kiểu dữ liệu tệp</b></i>



+ Dữ liệu kiểu tệp được lưu trữ lâu dài ở
bộ nhớ ngồi và khơng bị mất khi tắt nguồn
điện.


+ Lượng dữ liệu lưu trữ trên tệp có thể
rất lớn và chỉ phụ thuộc vào dung lượng
đĩa.


<b>2. Phân loại và thao tác với tệp</b>


* Xét theo cách tổ chức dữ liệu


+ Tệp văn bản là tệp mà dữ liệu được ghi
dưới dạng kí tự theo mã ASCII


+ Tệp có cấu trúc: là tệp mà thành phần
của nó được tổ chức theo một cấu trúc nhất
định.


* Xét theo cách thức truy cập:


+ Tệp truy cập tuần tự: cho phép truy cập
một dữ liệu nào đó


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

Dẫn dắt để chuyển sang bài 15
Viết khai báo lên bảng và giải
thích các thành phần trong cú
pháp.


Yêu cầu HS lấy ví dụ minh


hoạ


Mỗi dữ liệu điều có tên tệp
để tham chiếu. Trong lập trình
ta khơng cần thao tác trực tiếp
với tệp dữ liệu trên đĩa mà
thông qua biến tệp.


Yêu cầu lấy ví dụ về gắn tên
tệp


Lấy hai tình huống cần phải mở
vở tin học 11: mở ra để ghi bài
(ghi dữ liệu), mở ra để học bài
(dọc dữ liệu) => trường hợp
phải mở tệp.


Giới thiệu 2 thủ tục để mở tệp:
Yêu cầu HS lấy ví dụ minh
hoạ


<b>?</b>

Để nhập dữ liệu từ bàn
phím, để in dữ liệu lên màn
hình ta dùng thủ tục nào?
Giới thiệu thủ tục đọc dữ liệu
từ tệp và ghi dữ liệu vào tệp.


Yêu cầu HS lấy ví dụ?


Đưa ra lí do phải đóng tệp để


giáo dục cho HS ý thức bảo
mật, an tồn thơng tin.


Ghi vào


var T1, T2: Text;


assign(T1,’BAITAP.TXT);
chú ý nghe giảng liên hệ
với bài học


Mỗi em lấy một ví dụ
Trả lời câu hỏi


Mỗi em lấy 1 ví dụ


<b>§ 15. THAO TÁC VỚI TỆP</b>


<b>1. Khai báo</b>


<b>Cú pháp: var <tên biến tệp>: Text;</b>


<b>2. Thao tác với tệp</b>
<i><b>a. Gắn tên tệp</b></i>


Thủ tục gắn tên tệp với biến tệp:


<i><b>assign(<biến tệp>,<tên tệp>);</b></i>


tên tệp: là biến xâu hoặc hằng xâu



<i><b>b. Mở tệp</b></i>


Hai thủ tục để mở tệp
- Mở để ghi dữ liệu:


Rewrite(biến tệp);
- Mở tệp để đọc dữ liệu:


Reset(biến tệp);


<i><b>c. Đọc/ghi tệp văn bản</b></i>


- Đọc dữ liệu từ tệp:


Read(biến tệp, danh sách biến);
hoặc


Readln(biến tệp, danh sách biến);
- Ghi dữ liệu vào tệp:


Write(biến tệp, danh sách kết quả);
hoặc


Writeln(biến tệp, danh sách kết quả);
<b>*Một số hàm khi đọc/ghi tệp văn bản</b>
<i><b>- Hàm eof(biến tệp) trả về giá trị TRUE </b></i>
nếu con trỏ tệp đang chỉ đến cuổi tệp.


<i><b>- Hàm eoln(biến tệp) trả về giá trị TRUE </b></i>


nếu con trỏ tệp đang chỉ đến cuổi dịng.


<i><b>d. Đóng tệp:</b></i>


Thủ tục để đóng tệp


<i><b>Close(biến tệp); </b></i>
<b>V. CỦNG CỐ - DẶN DÒ</b>


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


Cụ thể bằng sơ đồ SGK trang 86


<i><b>2. Dặn dò</b></i>


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

TUẦN: 29


TIẾT: 38 NGÀY SOẠN: ……….


<b>§ 16. VÍ DỤ LÀM VIỆC VỚI TỆP</b>






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


Hiểu các thao tác cơ bản làm việc với tệp


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng., vấn đáp…



<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy tính và máy chiếu projector


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Câu hỏi: Viết cú pháp mở, đọc/ghi, đóng tệp? Mỗi phần cho một ví dụ minh hoạ?


<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>Hoạt động 1: Ví dụ 1</b>


<i><b>Hoạt động 1.1: Tìm hiểu đề bài</b></i>


Chiếu bài tốn lên


Hướng dẫn HS tìm hiều đề
bài:


<b>? </b>

Yêu cầu HS nhắc lại cơng
thức tính khoảng cách khi biết
toạ độ hai điểm?


<i><b>Hoạt động 1.2: tìm hiểu</b></i>



chương trình:


Chiếu chương trình đã soạn
sẵn lên (có đánh vị trí các
dịng)


<b>?</b>

Gọi HS nêu ý nghĩa câu
lệnh ở các dòng?


Nhận xét, sau đó khái qt
cả chương trình để HS nắm
được và chạy chương trình.


<i><b>Hoạt động 1.3: Mở rộng bài</b></i>


toán


Yêu cầu in lên màn hình
khoảng cách của trại xa với trại
của hiệu trưởng nhất?


<b>Hoạt đơng 2: ví dụ 2</b>


<i><b>Hoạt động 2.1: Tìm hiểu bài</b></i>


tốn


Chiếu bài tốn lên


u cầu HS chia nhóm để


tính điện trở tương đương của 5
sơ đồ


Chiếu sơ đồ điện trở


Phân tích, xác định u cầu
bài tốn theo sự hướng dẫn
của giáo viên


Trả lời câu hỏi


Tìm hiểu nghiên cứu
chương trình


Quan sát kết quả chạy
chương trình.


Thảo luận trong 5 phút đưa
ra đáp án.


Quan sát và tìm hiểu bài
tốn


Chia 5 nhóm mỗi nhóm xây
dựng cơng thức tính điện
trở tương đương


Ví dụ 1:


Chương trình:



<b>Program Khoang_cach;</b>
<b>Var d:real;</b>


f:text;
x, y: integer;


<b>begin</b>


<i><b>assign(f,’TRAI.TXT’);</b></i>
<i><b>reset(f);</b></i>


<b>while not eof(f) do </b>
<b>begin</b>


<i><b>read(f,x,y);</b></i>


d:= sqrt(x*x+y*y);


write(‘khoang cach: ‘,d:10:2);


<b>end;</b>
<i><b>close(f)</b></i>
<b>end.</b>


Vi dụ 2.


Chương trình:


Program Chuong_trinh;


Var a: array[1..5] of real;


R1, R2, R3: real;
i: integer;


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

Nhận xét và yêu cầu mỗi
nhóm chuyển biểu thức đó sang
NNLT Pascal.


<i><b>Hoạt động 2.2: Xây dựng</b></i>


chương trình:


Gọi từng HS lên xây dựng
chương trình theo các bước


Chiếu các bước lên
+ Khai báo


+ Gán tên tệp cho biến tệp
+ Đọc dữ liệu từ tệp


+ Tính điện trở tương đương
+ Ghi vào tệp


+ Đóng tệp


Nhận xét và tối ưu chương
trình



Chạy chương trình


Mỗi HS lên trình bày theo
từng bước


Theo dõi và rút kinh
nghiệm những chỗ cịn sai
sót.


Begin


Assign(f1, ‘RESIST.DAT’);
Reset(f1);


Assign(f2, ‘RESIST.EQU’);
Rewrite(f2);


While not eof(f1) do
begin


readln(f1,R1,R2,R3);
a[1]:=


R1*R2*R3/(R1*R2+R1*R3+R2*R3);
a[2]:= R1*R2/(R1+R2) + R3;
a[3]:= R1*R3/(R1+R3) + R2;
a[4]:= R2*R3/(R2+R3) + R1;
a[5]:= R1+R2+ R3;


for i:=1 to 5 do write(f2,a[i]:9:2,‘= ‘);


writeln(f2);


end;
close(f1);
close(f2);
end.


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại những thủ tục thao tác với tệp.


<i><b>2. Dặn dò</b></i>


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

TUẦN: 30


TIẾT: 39 NGÀY SOẠN:


<b> TIẾT BÀI TẬP</b>






<b>I. MỤC ĐÍCH – YÊU CẦU </b>


Củng cố kiến thức đã học trong chương V


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, vấn đáp…


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>



SGK, bảng phụ…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


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


Không kiểm tra bài cũ nhưng kiểm tra 15 phút


<i><b>3</b></i>. Nội dung


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b>


<b>Hoạt động 1: câu 1/89</b>


Nêu câu hỏi sau đó yêu cầu HS suy nghĩ trả lời


<b>Hoạt động 2: câu 2/89</b>


Trong sơ đồ thao tác với tệp, khi cần nhập dữ
liệu từ tệp phải dùng những thao tác nào?


<b>Hoạt động 3: câu 3/89</b>


Tại sao cần phải có câu lệnh mở tệp trước khi
đọc /ghi tệp?


<b>Hoạt động 4: câu 4/89</b>



Tại sau phải dùng câu lệnh đóng tệp sau khi đã
kết thúc ghi dữ liệu vào tệp?


Có thể trình bày thêm những ý: trước khi dữ liệu
được thực sự ghi vào tệp, nó được lưu trữ trên bộ
nhớ đệm. Mỗi khi bộ nhớ đệm đầy hoặc có u
cầu đóng tệp thì dữ liệu trên bộ nhớ đệm (có thể
chưa đầy) mới được chuyển và ghi vào tệp.


Trả lời câu hỏi: Lưu lượng lớn thông tin, lưu
thông tin lâu dài.


Trong sơ đồ thao tác với tệp, khi cần nhập
dữ liệu từ tệp phải dùng những thao tác như:
gắn tên tệp, mở tệp để ghi, ghi dữ liệu vào
tệp, đóng tệp để hồn tất việc ghi dữ liệu


assign(f, fi);
rewrite(f);


write(f, x, ‘ ‘,y, ‘ ‘,z, ‘ ‘);
close(f);


Trước khi sử dụng tệp phải có câu lệnh để
trình dịch biết mục đích mở tệp để đọc hay
ghi, đồng thời đặt con trỏ tệp vào vị trí thích
hợp.


Phải dùng câu lệnh đóng tệp sau khi đã kết
thúc ghi dữ liệu vào tệp để hệ thống hoàn tất


việc ghi dữ liệu ra tệp


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhăc lại sự cần thiết phải sử dụng trệp


<i><b>2. Dặn dò</b></i>


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

TUẦN: 30 - 31


TIẾT: 40 - 41 NGÀY SOẠN: ……….


<b>CHƯƠNG VI. CHƯƠNG TRÌNH CON</b>


<b>VÀ LẬP TRÌNH CĨ CẤU TRÚC</b>







<b>§ 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI</b>



<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


− Biết khái niệm chương trình con.


− Sự khác biệt cơ bản giữa hàm và thủ tục.


− Biết được ý nghĩa của chương trình con, sự cần thiết phải viết một chương trình thành các chương
trình con



− Biết được cấu trúc chương trình con.


<i><b>2. Kĩ năng</b></i>


− Nhận biết được thành phần trong đầu của thủ tục


− Nhận biết được hai loại tham số hình thức trong đầu của thủ tục


− Biết cách khai thác hai loại chương trình con cùng với tham số hình thiức của chúng.
− Biết cách viết lời gọi chương trình con trong thân chương trình chính


<i><b>3. Thái độ</b></i>


Rèn luyện phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm,tn thủ u
cầu vì một công việc chung


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng, thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ: không kiểm tra bài cũ</b></i>


3. Nội dung



<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<i><b>Hoạt động 1: khái niệm</b></i>


<i>chương trình con và phân loại:</i>


<i><b>Hoạt động 1.1: Khái niệm</b></i>


chương trình con


<i><b>Đặt vấn đề: chiếu bài toán</b></i>


trong SGK


<b>? Nếu em là nhóm trưởng thì</b>


nhóm em sẽ giải quyết bài toán
như thế nào?


Dẫn dắt để đưa ra khái niệm
chương trình con


<i><b>Hoạt động 1.2: Lợi ích của</b></i>


việc sử dụng chương trình con
Chiếu chương trình giải
quyết bài tốn.


<b>? Em có nhận xét gì về chương</b>



Quan sát bài tốn


Chia nhóm thảo luận (2’)
Em sẽ chia mỗi bạn thực
hiện một bài.


Đọc chương trình trong 3’
và nhận xét:: Chương trình


<b>1. Khái niệm chương trình con</b>
<i><b>a. Khái niệm:</b></i>


Chương trình con là dãy lệnh mô tả một
số thao tác nhất định và có thể được thực
hiện (được gọi) từ nhiều ví trí trong chương
trình


<i><b>b. Lợi ích của việc sử dụng chương </b></i>
<i><b>trình con</b></i>


− Tránh được việc phải viết đi viết lại
cùng một dãy lệnh


− Chương trình dễ đọc, dễ hiểu, dễ kiểm
tra phát hiện lỗi và chỉnh sửa


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

trình này (Đặc biệt là phần bơi
đen)?



Để xử lí vấn đề này các
NNLT bậc cao cung cấp khã
năng xây dựng chương trình
con dạng tổng quát “đại diện”
cho nhiều đoạn lệnh tương tự
nhau.


Cho HS nghiên cứu lợi ích
của việc sử dụng chương trình
con


Giải thích từng lợi ích.


<i><b>Hoạt động 2: </b></i>


<i><b>Hoạt động 2.1: Phân loại</b></i>


chương trình con.


<b>? Thế nào là hàm, thủ tục?</b>


sự khác nhau cơ bản giữa hàm
và thủ tục?


? Em đã từng làm quen với
hàm và thủ tục nào


<i><b>Hoạt động 2.2: cấu trúc</b></i>


chương trình con:



Đọc SGK và yêu cầu HS lên
bảng viết.


Yêu cầu HS so sánh với cấu
trúc của chương trình chính


u cầu HS giải thích phần
khai báo và phần thân chương
trình.


<b>Hoạt động 3: Một số khái</b>


có 4 đoạn lệnh tương tự
nhau. Làm cho chương
trình trở nên dài.


Nhóm HS khác nhận xét
Đọc SGK và cho biết lợi
ích


HS phát biếu tại chỗ


Hàm: Sin(x), SQR(x),
length(s)...


Thủ tục: write( ), readln,
delete(st,p,n)...


Lên bảng viết cấu trúc CTC


Giống cấu trúc chương
trình khác ở chỗ phần đầu
chương trình bắt buộc phải
có.


HS đứng tại chỗ phát biểu


lớn


− Phục vụ cho quá trình trừu tượng hóa
− Mở rộng khã năng NN


− Thuận tiện cho việc phát triển và nâng
cấp chương trình


<b>2. Phân loại và cấu trúc của chương </b>
<b>trình con</b>


<i><b>a. Phân loại:</b></i>


<i><b>− Hàm (Function): là chương trình con </b></i>
thực hiện một số thao tác nào đó và trả về
giá trị qua tên của nó.


VD: sin(x), sqrt(s), length(s)...


<i><b>− Thủ tục (procedure): là chương trình</b></i>
con thực hiện một số thao tác nhất định nào
đó và khơng trả về giá trị qua tên của nó.



VD: write( ), readln, delete(st,p,n)...


<i><b>b. cấu trúc chương trình con</b></i>
<i><b><phần đầu></b></i>
<i><b>[<phần khai báo]></b></i>


<i><b><phần thân></b></i>


− Phần khai báo có thể là khai báo biến,
hằng.


− Phần thân là dãy các lệnh với nhiệm vụ
nào đó.


Chương trình


Modul1(CTC) Modul1(CTC)


Modul1(CTC)
Modul1(CTC)


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

niệm:


Diễn giải để đưa ra khái niệm
biến cục bộ, tham số hình thức
VD: trong chương trình con
Luythua(x,k) thì x, k là tham số
hình thức và j là biến cục bộ.


<b>Hoạt động 4: Thực hiện CTC</b>


<b>? Để sử dụng thủ tục và hàm</b>


chuẩn em thường viết ở đâu và
viết thế nào?


Để gọi chương trình con, ta cần
có lệnh gọi tương tư tự như
hàm và thủ tục chuẩn theo cú
pháp


Yêu cầu HS cho ví dụ


Chiếu chương trình và u cầu
HS xác định tham số hình thức,
tham số thực sự, biến cục bộ,
biến toàn cục.


Viết trong chương trình
chính. Viết tên thủ thục rồi
tham số và kết thúc bằng
dấu “;”. Viết hàm trong
lệnh nào đó hoặc trong thủ
tục. Hàm khơng được viết
như lệnh.


Cho ví dụ


Chia nhóm để trả lời câu
hỏi



<i><b>* Tham số hình thức </b></i>


Các biến được khai báo cho dữ liệu
vào/ra được gọi là tham số hình thức của
CTC.


<i><b>* Biến cục bộ: </b></i>


Các biến được khai báo dùng riêng cho
chương trình con gọi là biến cục bộ


<i><b>* Biến tồn cục:</b></i>


Biến có thể sử dụng cho cả chương trình,
kể cả CTC.


<i><b>* Tham số thực sự:</b></i>


Là các hằng và biến chứa dữ liệu vào ra
tương ứng với các tham số hình thức


VD: Luythua(a,m) thì a, m là tham số thực
sự.


<i><b>c. Thực hiện chương trình con:</b></i>


<i>Tên chương trình con(tham số thực sự)</i>
VD: Luythua(b,n);





<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


- Khái niệm chương trình con.
- Lợi ích của việc sd CTC
- Phân biệt hàm và thủ tục


- Tham số hình thức, tham số thực sự, biến cục bộ và biến tồn cục.
- Thực hiện chương trình con


<i><b>2. Dặn dị</b></i>


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

TUẦN: 31 - 32


TIẾT: 42 - 43 NGÀY SOẠN:


<b>§ 18. VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CTC </b>


<b>I. MỤC ĐÍCH – YÊU CẦU </b>


<i><b>1. Kiến thức</b></i>


− HS thấy được thủ tục có cấu trúc tương tự như một chương trình
− Hiểu mối liên quan giữa chương trình và thủ tục


− Phân biệt được tham trị và tham số biến trong khai báo tham số hình thức của một thủ tục


<i><b>2. Kĩ năng</b></i>


− Nhận biết được các thành phần trong đầu của thủ tục



− Nhận biết được hai loại tham số hình thức trong phần đầu của thủ tục


− Nhận biết được lời gọi thủ tục ở chương trình chính cùng các tham số thực sự


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề, diễn giảng, thảo luận nhóm


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Máy chiếu, máy tính…


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>


<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>
<i><b>2. Kiểm tra bài cũ: </b></i>


Câu 1: lợi ích của việc sd CTC?
Câu 2: hàm khác thủ tục ở điểm nào?


Câu 3: thế nào là biến cục bộ, biến toàn cục, tham số hình thức, tham số thật sự, cho ví dụ?


<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b> <b>NỘI DUNG</b>


<b>Hoạt động 1: Đặc vấn đề: </b>


Chiếu vd lên bảng (ví dụ


VD_thutuc1 trang 96)


Giới thiệu cho HS cấu
trúc thủ tục vị trí khai báo
của thủ tục, lời gọi thủ tục.
<b> Hoạt động 2: Tìm hiểu</b>
chương trình


Chiếu chương trình


<i><b>VD_thutuc1 </b></i>


Giải thích để HS thấy
được:


+ Tên thủ tục
+ Thân thủ tục
+ Lời gọi thủ tục


+ Hoạt động của ch.trình

<b>?</b>

Nếu ta muốn vẽ 4 hình chủ
nhật thì ta phải sửa chương
trình trên như thế nào?


<b>Hoạt động 3: cấu trúc thủ</b>


tục


Theo dõi



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

<b>?</b>

Vị trí thủ tục nằm ở phần
nào trong chương trình
chính?


<b>? </b>

Cấu trúc của thủ tục gồm
mấy phần?


Phần đầu thủ tục gồm từ
<i><b>khoá procedure tiếp theo là</b></i>
tên thủ tục, DS tham số có
thể có hoặc không


Phần khai báo dùng để
xác định các hằng kiểu biến
và cũng có thể xác định các
chương trình con khác sd
trong thủ tục


Dãy câu lệnh được viết
<i><b>trong cặp từ khố begin và</b></i>


<i><b>end </b></i>


<b>? </b>

Chương trình con Ve_hcn
ở trên khuyết phần nào so
với cấu trúc của thủ tục?
Tổng quát và chiếu cấu
trúc thủ tục.


Nhấn mạnh một số đặc


điểm để HS nắm được


<b>Hoạt động 4: Ví dụ về thủ</b>


tục có sử dụng tham số


<i><b>Hoạt động 4.1 VD_thutuc2</b></i>


Xây dựng chương trình
Hướng dẫn HS chia nhỏ
yêu cầu để HS có thể viết
các câu lệnh tương ứng.


+ Vẽ cạnh trên cùng
+ Vẽ hai cạnh bên
+ Vẽ cạnh dưới


Chính xác hố thủ tục và
đưa ra tồn bộ chương trình
hồn chỉnh.


Phân tích lời gọi thủ tục
đưa ra khái niệm tham trị và


Nằm trong phần khai báo,
sau phần khai báo biến
Ba phần: tên thủ tục, khai
báo của thủ tục và phần
thân



Khuyết phần khai báo


Theo dõi ghi vào tập


Viết từng câu lệnh theo
sự hướng dẫn của GV


Nghe giảng và ghi khái
niệm tham trị và tham


a. Cấu trúc của thủ tục


<i><b>procedure <Tên thủ tục>[(ds tham số)] </b></i>


[<phần khai báo>]
begin


[<dãy các lệnh>]
end;


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


<i><b>- Sau từ khoá end là dẫu “;” </b></i>


- Các thủ tục nếu có phải khai báo và
mơ tả trong phần khai báo của chương
trình chính sau phần khai báo biến.


- Khi muốn thực hiện thủ tục ta viết
lệnh gọi thủ tục như các thủ tục chuẩn




Chương trình: VD_thutuc2: SGK


<i><b>* Một số khái niệm:</b></i>


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

tham biến


<i><b>Hoạt động 4.2:</b></i>


VD_thambien1


Chiếu yêu cầu của đầu bài
và yêu cầu HS đưa ra thuật
toán hoán đổi.


Chiếu chương trình lên
màn hình và chạy chương
trình cho HS thấy được hoạt
động của tham biến.


Thay đổi thủ tục bằng cách
đưa x ra ngoài var


<b>Hoạt động 5: Cách viết</b>


và sử dụng hàm


<b>?</b>

Thủ tục khác với hàm ở
điểm nào?


Hàm có cấu trúc tương tự
như thủ tục nhưng chỉ khác
với thủ tục ở phần đầu


Giải thích cụ thể tên hàm,
DS tham số, kiểu dữ liệu.


<i><b>Hoạt động 5.1: Ví dụ 1</b></i>


Chiếu chương trình ví dụ

<b>?</b>

Trong chương trình có
mấy hàm?


<b>? </b>

Hàm UCLN(x,y) dùng để
làm gí?


<b>?</b>

Lời gọi hàm ở đâu?


<b>?</b>

Có gì khác với thủ tục
trong lời gọi hàm?


<i><b>Hoạt động 5.2: Ví dụ 2</b></i>


Yêu cầu HS tham khảo
SGK


biến


Dùng biến trung gian TG


TG x;


x  y;
y  TG;


Quan sát kết quả khi chạy
chương trình.


Trả lời câu hỏi


Quan sát ví dụ
Một hàm UCLN


Tìm UCLN lớn nhất của
hai số x, y


A:= UCLN(tuso,mauso)
Lời gọi hàm phải được
đặt trong một lệnh trong
một lời gọi chương trình
con khác.


hình thức được thay bằng tham số thực
sự tương ứng là các giá trị cụ thể và
<i><b>không được khai báo sau từ khoá var.</b></i>


<i>- Tham số biến (tham biến): tham số</i>
hình thức được thay bằng tham số thực
sự tương ứng là tên các biến và được
<i><b>khai báo sau từ khố var.</b></i>



<i><b>Chương trình VD_tham bien1: SGK</b></i>


<b>2. Cách viết và sử dụng hàm:</b>


- Hàm có cấu trúc tương tự như thủ
tục, nhưng chỉ khác ở phần đầu


function <tên hàm>[(DS tham số)]:
<kiểu dữ liệu>;


Vi dụ 1: SGK


* Cách sử dụng hàm


- Việc sử dụng hàm tương tự như việc
sử dụng các hàm chuẩn.


- Lệnh gọi hàm có thể tham gia vào
một biểu thức hoặc là tham số của lời
gọi hàm, thủ tục khác.


<b>V. CỦNG CỐ - DẶN DÒ</b>


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


- Cấu trúc của thủ tục và hàm
- Cách viết và sd thủ tục và hàm
- Phân biệt tham trị và tham biến



<i><b>2. Dặn dò</b></i>


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

TUẦN: 32 - 33


TIẾT: 44 - 45

<b><sub>BÀI THỰC HÀNH 6 </sub></b>

NGÀY SOẠN: 19/02/08


<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Củng cố lại kiến thức về xâu và chương trình con


<i><b>2. Kĩ năng</b></i>


Rèn luyện kĩ năng xử lí xâu bằng việc tạo hiệu ứng chữ chạy trên màn hình
Sử dụng chương trình con trong lập trình.


<i><b>3. Thái độ</b></i>


Rèn luyện HS ý thức cần có của người lập trình


Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề


<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phịng máy thực hành vi tính, máy chiếu.



<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ</b></i>
<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b>


Yêu cầu HS khởi động chương trình Pascal


<b>Hoạt động 1: Tìm hiểu xây dựng hai thủ tục</b>
<b>catdan(s1,s2) và cangiua(s)</b>


chiếu thủ tục catdan(s1,s2) lên màn hình


<b>?</b>

Đầu vào của thủ tục này?


Chức năng của thủ tục này là gì?
Lấy ví dụ trong SGK


Chiếu nội dung thủ tục căn giữa


<b>? </b>

Đầu vào của thủ tục?


<b>?</b>

Thủ tục thực hiện cơng việc gì?


Cần lưu ý nếu không khai báo s là tham biến thì thủ
tục này khơng có hiệu lực gì vì lệnh đưa s ra màn hình
khơng nằm trong thủ tục này.



<b>Hoạt động 2: Tìm hiểu chương trình của câu b</b>


Chiếu nội dung chương trình lên màn hình


<b>?</b>

Chức năng của chương trình?


Giới thiệu cho học sinh thủ tục và hàm chuẩn
Gotoxy(x,y):


Delay(n): thường dùng để làm chậm chương trình
lại cho ta quan sát, n số nguyên tính bằng ms.


Keypressed: cho giá trị True khi ta nhấn một phím


Khởi động chương trình


Quan sát và trả lời câu hỏi của GV
Vào: Xâu kí tự s1


Ra: biến xâu kí tự s2


Thực hiện việc tạo sâu s2 từ xâu s1 bằng việc
chuyển kí tự thứ nhất đến vị trí cuối của xâu
Đầu vào là một xâu kí tự s khơng q 79 kí tự
Bổ sung vào s một dấu cách để khi s đưa ra
màn hình kí tự ban đầu được căn giữa của dịng
gồm 80 kí tự.


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

nào đó vào bàn phím



Thực hiện chương trình để giúp HS thấy kết quả
của chương trình


<b>Hoạt động 3: Rèn luyện kĩ năng lập trình</b>


Yêu cầu HS tìm hiểu vấn đề


Yêu cầu HS lập trình trên máy


Yêu cầu HS chạy chương trình và nhập các test
Đánh giá kết quả lập trình của HS


Quan sát kết quả trên màn hình
Quan sát và đưa ra kết luận


- Giống như nhiệm vụ câu b, nhưng khác
chương trình câu b ln cho xâu kí tự chạy
dịng 12cịn trong bài này xâu kí tự phải chạy ở
xâu bất kì.Vì vậy truyền tham số cho dịng chạy
cho thủ tục


Viết chương trình trên máy và báo cáo kết quả
Nhập các test theo hướng dẫn của giáo viên


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>



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


Viết thủ tục chaychu(s, dong) nhận tham số là xâu s khơng q 79 kí tự và một biến ngun
dịng. In ra màn hình dịng chữ xác định bởi S chạy ở dòng Don. Viết chương trình và thực hiện có sử
dụng thủ tục này.


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

TUẦN: 25


TIẾT: 44

<b><sub>BÀI THỰC HÀNH 7 </sub></b>

NGÀY SOẠN: 19/02/08


<b>I. MỤC ĐÍCH – YÊU CẦU </b>
<i><b>1. Kiến thức</b></i>


Củng cố lại kiến thức về chương trình con


<i><b>2. Kĩ năng</b></i>


Rèn luyện kĩ năng lập trình giải quyết một số bài toán đơn giản


<i><b>3. Thái độ</b></i>


Rèn luyện HS ý thức cần có của người lập trình


Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ động trong thực hành.


<b>II. PHƯƠNG PHÁP</b>


Nêu vấn đề giải quyết vấn đề



<b>III. PHƯƠNG TIỆN DẠY HỌC</b>


Phịng máy thực hành vi tính, máy chiếu.


<b>IV. NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP</b>
<i><b>1. Ổn định lớp (kiểm tra sĩ số)</b></i>


<i><b>2. Kiểm tra bài cũ</b></i>
<i><b>3. Nội dung</b></i>


<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b>


Họat động 1: Tìm hiểu việc xây dựng hàm và thủ tục
Chiếu khai báo kiểu dữ liệu Diem và tam giác. Chiếu
các thủ tục lên bảng


? Chức năng của CTC?


Có các tham số nào? Tham số nào là tham số biến,
tham số nào là tham trị?


Hoạt động 2: tìm hiểu chương trình câu b SGK
Chiếu chương trình câu b


? Chương trình thực hiện cơng việc gì?


Thực hiện chương trình để giúp HS thấy được kết quả
Thay thế biến thành tham trị để HS thấy được sự sai
khác



Chức năng của CTC:


Daicanh( ) tính độ dài ba cạnh a, b, c của tam
giác r.


Chuvi( ): real; cho giá trị chu vi của tam giác
Tinhchat( ) khẳng định tính chất của tam giác:
đều, cân, vuông


Hienthi( ); hiển thị toạ độ ba đỉnh của một tam
giác.


Kh_cach( ); cho giá trị khoảng cách giữa hai
điểm.


- Tham số biến r, a, b, c
- Tham số giá trị p, q.


Nhập toạ độ ba đỉnh tam giác khảo sát tính chất
của tam giác cân, đều, vng. In ra chu vi và
diện tích tam giác.


<b>V. CỦNG CỐ - DẶN DÒ</b>
<i><b>1. Củng cố:</b></i>


Nhắc lại một số lỗi khi thực hành


<i><b>2. Dặn dò</b></i>


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



Viết thủ tục chaychu(s, dong) nhận tham số là xâu s khơng q 79 kí tự và một biến ngun
dịng. In ra màn hình dịng chữ xác định bởi S chạy ở dịng Don. Viết chương trình và thực hiện có sử
dụng thủ tục này.


</div>
<span class='text_page_counter'>(81)</span><div class='page_container' data-page=81></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
×