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>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.
ngơn ngữ lập trình?
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?
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
bài toán?
Xác định thuật tốn?
Đó là thuật tốn của bài tốn.
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.
đặ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>
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?
- 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>
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.
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
Đọ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
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ả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
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.
Ý nghĩa của tên chuẩn được
qui định trong các thư viện
của NNLT.
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.
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.
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ể
<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>
<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
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?
<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
<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
<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>
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.
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ó.
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:
Đọ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
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.
Tất cả các biến dùng trong chương
trình đều phải đặt tên và phải khai
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.
Hướng dẫn học sinh các bước
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>
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>
<i><b>2. Dặn dò</b></i>
Về nhà soạn bài 4, 5 SGK.
<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
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
ASCII thập phân là 65.
<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
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;
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>
đế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>
- 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?
<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>
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
(hoặc),
(và)
not, or, and
Ngày soạn: 10/9/2010 Tuần: 6
<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>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
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>
→ sin(x) = sqrt(1-sqr(cos(x)))
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
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>
<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>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
<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
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.
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>
màn hình?
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
<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 đó
sang NN máy. Các hệ thống
lập trình cụ thể thường cung
<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.
- 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>
<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
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*b4*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
Phân tích hướng dẫn học
sinh làm bài toán
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à
- 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>
<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>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
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
? Đường thẳng a có phương
trình là gì?
? Đường thẳng b, c có phương
? 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:
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 <=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
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>
<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
Để mô tả cấu trúc rẽ nhánh,
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>
Ví dụ 1: Tìm nghiệm thực của
PTB2: ax2<sub> + bx + c = 0 (a </sub>
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>
<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>
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
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
Ở 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>
<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
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
Để 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
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>
<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
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
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
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>
<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)
2
2
<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: ……
Đ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
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 .
<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)
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
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>
<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: …….
TUẦN: ………
TIẾT: ……..
NGÀY SOẠN: ……….
<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>
Để 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ố.
<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>1. Kiểu mảng một chiều</b>
− 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>
Khi khai báo mảng một
chiều ta có 2 cách để khai báo
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>
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.
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: ‘,
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
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>
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>
TUẦN: ………
NGÀY SOẠN: ……….
<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.
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>
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. Chỉnh sửa chương trình trên
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>
TUẦN: ………
TIẾT: ……..
<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>
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.
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ử
− 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>
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>
TUẦN: ………
NGÀY SOẠN: ……….
<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
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>
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>
TUẦN: ………
TIẾT: ……..
NGÀY SOẠN: ……….
<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.
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:’);
Giới thiệu HS chương trình
chưa 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>
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>
TUẦN: ………
TIẾT: …….. NGÀY SOẠN: ……….
<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
<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>
TUẦN: ………
TIẾT: ……..
<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.
Dẫn dắt vào bài mới
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
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>
ta phải khai báo nó
Yêu cầu HS lên viết cú pháp
khai báo
Để 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’
ví dụ: S: ‘Nguyen Van A’
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>
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>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>
TUẦN: 27
TIẾT: 33
<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
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>
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>
TUẦN: ………
TIẾT: ……..
<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>
readln
<b>end.</b>
b. Hãy viết lại chương trình đó, khơng dùng
biến xâu p
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ì
<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>
TUẦN: 27
TIẾT: 34
<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
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
Để 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
* Để 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 đó:
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);
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;
<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>
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>
TUẦN: 28
TIẾT: 35 NGÀY SOẠN: ……….
<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
<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
đ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
<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
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;
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>
TUẦN: 28
TIẾT: 36 NGÀY SOẠN: ……….
<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;
2đ
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:=’’;
2đ
For i:= 1 to l do
st:= st + upcase(s[i]);
Write(‘xau vua tao: ‘, st);
Readln
End. 1đ
TUẦN: 29
TIẾT: 37 NGÀY SOẠN: ……….
<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>
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
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 đó
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
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ạ
Yêu cầu HS lấy ví dụ?
Đưa ra lí do phải đóng tệp để
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>
<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>
TUẦN: 29
TIẾT: 38 NGÀY SOẠN: ……….
<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:
<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)
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 để
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;
R1, R2, R3: real;
i: integer;
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,‘= ‘);
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>
TUẦN: 30
TIẾT: 39 NGÀY SOẠN:
<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
<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>
TUẦN: 30 - 31
TIẾT: 40 - 41 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 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
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
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)
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>
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>
TUẦN: 31 - 32
TIẾT: 42 - 43 NGÀY SOẠN:
<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ụ
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>Hoạt động 3: cấu trúc thủ</b>
tục
Theo dõi
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>
Nhấn mạnh một số đặ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>
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
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ụ
<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
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>
TUẦN: 32 - 33
TIẾT: 44 - 45
<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
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
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
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ự.
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.
TUẦN: 25
TIẾT: 44
<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.