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 (583.38 KB, 130 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>Chương 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH</b>
Tiết1 <b>§1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH</b>
Ngày soạn: 15/08/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC ĐÍCH U CẦU</b>
1. Kiến thức:
<b>1 Biết có 3 lớp ngơn ngữ lập trình và các mức của ngơn ngữ lập trình: ngơn ngữ</b>
<b>máy, hợp ngữ và ngơn ngữ bậc cao.</b>
<b>2 Biết vai trị của chương trình dịch</b>
<b>3 Biết khái niệm thông dịch và biên dịch</b>
<b>4 Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện</b>
<b>lỗi cú pháp của chương trình nguồn.</b>
2. Kỹ năng:
3. Tư tưởng: Giúp học sinh bước đầu làm quen với các khái niệm của NNLT từ đó tạo hứng thú
học môn NNLT bậc cao này
<b>II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:</b>
<b>1 Phương pháp: Thuyết trình, vấn đáp. </b>
<b>2 Phương tiện: Máy chiếu, máy tính, phịng chiếu hoặc bảng.</b>
III. <b>NỘI DUNG BÀI MỚI:</b>
<b>1. Ổn định lớp</b>
<b>2. Kiểm tra bài cũ:</b>
Thời
gian Hoạt động của GV và HS Nội dung
* Đặt vấn đề: Em hãy cho biết các bước
giải bài toán trên máy tính.
HS: Trả lời
GV: Nhắc lại các bước giải bài tốn trên
máy tính đã học ở lớp 10.
Xác định bài toán, lựa chọn hoặc thiết kế
thuật toán, viết chương trình, hiệu chỉnh,
viết tài liệu.
GV: Em hãy cho biết có mấy loại ngơn
ngữ lập trình?
HS: Trả lời.
GV: Phân tích câu trả lời của học sinh có
3 loại ngơn ngữ lập trình: ngơn ngữ máy,
GV: Làm thể nào để chuyển chương
trình viết bằng ngôn ngữ bậc cao sang
ngôn ngữ máy?
GV:Như vậy với chương trình dịch, có
thể coi chương trình nguồn (Chương
trình viết trên ngôn ngữ bậc cao) là dữ
liệu vào và chương trình đích là chương
trình được dịch thành chương trình máy
hiểu được thông thường là ngôn ngữ
máy) kết quả ra.
GV: Đưa ra ví dụ: Bạn khơng biết tiếng
anh vậy làm sao bạn có thể nói chuyện
được với người Anh hay đọc một quyển
sách tiếng anh.
+ Khi một người làm phiên dịch thì
người đó phải dịch thế nào? (Dịch ngay
từng câu khi hai người nói chuyện)
+ Khi muốn dịch quyển sách đó phải
sang tiếng Việt người đó làm thế nào?
(Dịch ngay tồn bộ
cuốn sách đó sang tiếng việt để người
khác có thể đọc được)
GV: Như vậy có thể nói rằng để dịch
Ví dụ: Biên dịch: Khi sử dụng ngơn ngữ
chương trình Pascal để dịch một chương
trình ra ngơn ngữ máy để máy tính thực
* Chương trình viết bằng ngơn ngữ máy
có thể nạp trực tiếp vào bộ nhớ của máy
tính và bộ nhớ thi hành ngay nhưng
nhược điểm phải phụ thuộc vào loại máy
tính...
* Chương trình viết bằng ngơn ngữ bậc
cao ngôn ngữ thân thiện, mặt khác không
phụ thuộc vào loại máy nhưng phải sửa
sai nhưng ngôn ngữ gần với ngơn ngữ tự
nhiên, có tính độc lập cao
* Kết luận: Cần phải có chương trình
dịch để chuyển chương trình viết bằng
ngôn ngữ lập trình bậc cao sang ngơn
ngữ máy mới có thể thi hành được
* Sơ đồ về q trình chuyển ngơn ngữ
bậc cao sang ngơn ngữ máy.
Ctrình -> Ctr dịch -> Ctr đích
* Chương trình dịch có 2 loại: Biên dịch
và thơng dịch
hiện bước sau:
- Duyệt, kiểm tra, phát hiện lỗi và kiểm
tra tính đúng đắn của các câu trong ctr
nguồn.
- Dịch tồn bộ ctr 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ữ để sử dụng lại khi cần thiết.
* Thông dịch (interpreter) dịch lần lượt
từng câu lệnh và thực hiện ngay câu lệnh
ấy.
Thông dịch là việc lặp lại dãy các bước
sau:
- Kiểm tra tính đúng đắn của câu lệnh
tiếp theo trong ctr nguồn.
- Chuyển đổi các câu lệnh đó thành 1 hay
nhiều câu lệnh trong ngôn ngữ máy.
- Thực hiện các lện ngôn ngữ máy vừa
chuyển được.
<b>4. Củng cố:</b>
- Qua bài này học sinh nắm được khái niệm lập trình để dịch ngơn ngữ bậc cao cần có
chương trình dịch.
- Hiểu được bản chất của 2 loại chương trình: Biên dịch và thơng dịch
<i><b>Câu hỏi củng cố</b>:</i>
1, Nêu sự giống và khác nhau giữa biên dịch và thông dịch?
2, Tại cần sử dụng ngơn ngữ bậc cao?
<b>5. Dặn dị và hướng dẫn học sinh học và làm bài tập ở nhà:</b>
- Về nhà các em xem lại nội dung của bài học sáng nay.
- Trả lời các câu hỏi trong sgk.
- Đọc trước bài 2: Các thành phần của ngơn ngữ lập trình.
<b>VI. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:</b>
...
...
...
...
Ngày soạn: 15/08/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC ĐÍCH YÊU CẦU</b>
1. Kiến thức:
- <b>Biết ngơn ngữ lập trình có 3 thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ</b>
<b>nghĩa.</b>
- <b>Hiểu và phân biệt được 3 thành phần này.</b>
- <b>Biết các thành phần cơ bản của Pascal: Bảng chữ cái, tên, tên chuẩn, tên riêng (từ</b>
<b>khóa), hằng và biến.</b>
<b>2. Kỹ năng</b>
- <b>Phân biệt được tên, hằng và biến</b>
- <b>Biết đặt tên đúng.</b>
3. Tư tưởng: Giúp học sinh bước đầu làm quen với các khái niệm của NNLT từ đó tạo hứng thú
học môn NNLT bậc cao này
<b>II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:</b>
- <b>Phương pháp: Thuyết trình, vấn đáp. </b>
- <b>Phương tiện: </b>Máy chiếu, máy tính, phịng chiếu hoặc bảng
III. NỘI DUNG BÀI MỚI
1. Ổn định lóp:
2. Kiểm tra bái cũ:
Câu 1: Chương trình dịch là gì? Tại sao cần có chương trình dịch?
Câu 2: So sánh sự giống nhau và khác nhau giữa biên dịch và thông dịch?
3. Bài mới:
Thời
gian
Hoạt động của GV và HS Nội dung
* Đặt vấn đề: Các ngơn ngữ lập trình
thường có chung một số thành phần,
dùng kí hiệu nào để viết Ctr, viết theo
quy tắc nào? và mỗi ngơn ngữ lập trình
có một quy tắc viết riêng vậy chúng
trong giờ hôm nay chúng ta sẽ đi tìm
hiểu các thành phần của ngôn ngữ
Pascal.
GV: Đưa ra bảng phụ các thành phần chữ
cái phân tích...
* Lưu ý: Các NNLT khác nhau thì bảng
1, Các thành phần cơ bản
- Mỗi ngơn ngữ lập trình thường có 3
thành phần cơ bản là bảng chữ cái, ngữ
pháp và ngữ nghĩa.
chữ cái sử dụng trong ngôn ngữ cũng
khác nhau.
Vi dụ: Ngôn ngữ Pascal không sử dụng
các dấu ! ; " \ nhưng trong C và C++ <sub>thì</sub>
lại dùng.
HS: Lắng nghe và ghi chép.
GV: Thành phần thứ 2 đó là cú pháp dựa
vào bộ quy tắc này người viét cũng như
chương trình dịch sẽ cho biết tổ hợp kí tự
nào hợp lệ
VD: Trong pascal khơng cho dùng ! \ "
khi viết chương trình.
HS: lắng nghe.
GV: Vậy đó là các thành phần cơ bản của
NNLT, bây giờ ta sẽ đi tìm hiểu 1 số khái
niệm cơ bản liên quan đến NNLT.
GV: Cũng như trong cuộc sống chúng ta
muốn phân biệt mọi vật cũng như người
này với ngươì kia chúng ta phải đặt tên
vậy ở trong NNLT cũng như vậy tất cả
mọi đối tượng đều được đặt tên nhưng
phải tuân theo quy tắc nào thì chúng ta đi
tiếp.
HS: Nghe giảng và ghi chép theo ý hiểu
ta có bảng phụ sau:
Loại kí tự Biểu diễn các kí tự Mã ASCII
+Các chữ cái in 'A'...'Z' 65...90
hoa và thường 'a'...'z' 97...122
+kí tự kiểu số '0'...'9' 48...57
+ Kí tự dấu cách ' ' 32
+Kí tự dấu gạch dưới '_'
+ Kí tự các phép tốn '+','-','*','=', '>', '<'
+ Kí tự dấu ngoặc: '(', ')', '}', '{', ']','['
+ Kí tự khác như dấu . ; " @ $ # $ &
b, Cú pháp là bộ quy tắc viết chương
trình.
+ Lưu ý: Những ngôn ngữ khác nhau
cũng có quy tắc khác nhau.
VD: trong Pascal dùng cặp Begin end để
gộp nhiều câu lệnh thành 1 câu lệnh cịn
trong C thì dùng cặp ngoặc {}
c, Ngữ nghĩa: Xác định ý nghĩa thao tác
cần phải thực hiện ứng với tổ hợp kí tự
dựa vào ngữ cảnh của nó.
VD: (sgk - 10)
* Tóm lại: (sgk - 10)
- Cú pháp cho biết cú pháp của một
chương trình hợp lệ cịn ngữ nghĩa xác
định ý nghĩa của các tổ hợp kí tự trong
chương trình.
- Lỗi cú pháp được ctr dịch phát hiện và
thông báo cho người lập trình. Chương
trình khơng cịn lỗi mới có thể dịch sang
ngôn ngữ máy.
- Lỗi ngữ nghĩa được phát hiện khi chạy
chương trình.
2. Một số khái niệm
a, Tên
*, Trong Pascal
Tên là một dãy liên tiếp khơng q 127
kí tự gồm có chữ cái, chữ số và dấu gạch
dưới.
+ Tên bắt đầu bằng chữ cái hoặc dấu
gạch dưới.
GV: Ở đay chúng ta chỉ nghiên cứu quy
tắc đặt tên trong Pascal.
GV: Tất cả các NNLT đều có 3 thành
VD: while, void... trong C là tên dành
riêng.
GV: tên dành riêng dùng với một ý nghĩa
riêng xác định, người LT không được sử
dụng với một ý nghĩa khác tên dành
riêng sẽ có màu khác so với tên khác và
câu lệnh.
VD: trong Turbo Pascal tên dành riêng
có màu trắng.
HS: Nghe giảng và ghi chép.
GV: Tên chuẩn khác với tên dành riêng:
tên được NNLT dùng với ý nghĩa nào đó
trong các thư viện của NNLT tuy nhiên
người lập trình có thể dùng với một ý
nghĩa khác.
GV: Đưa ra ví dụ: để viết PT bậc 2 ta
phải khai bao những tên sau:
+ a, b, c là 3 hệ số của PT bậc 2.
+ x1, x2 là nghiệm của Pt bậc 2
+ deta dùng để lưu giá trị deta
HS: Lấy ví dụ khác.
GV: Khi những giá trị trong chương trình
khơng đổi thì ta gọi là gì?
GV: Hằng thường có 2 loại hằng, hằng
được đặt tên và hằng không được đặt tên.
Hằng không được đặt tên là những giá trị
được viết trực tiếp vào chương trình. Mỗi
NNLT có một quy định về cách viết hằng
riêng.
Ví dụ biến là đối tượng sử dụng nhiều
nhất trong khi viết chương trình. biến là
đại lượng có thể thay đổi được nên
thường dùng để lưu trữ kết quả, làm
trung gian cho các tính tốn... mỗi loại
ngơn ngữ khác nhau có những loại biến
khác nhau và cách khai báo khác nhau.
GV: Khi viết chương trình người lập
VD: tên đúng: anh, _12b,;
Tên sai: 1am; *khánh;
Lưu ý: _ Tên không được chứa dấu cách,
bắt đầu bằng chữ số, kí tự đặc biệt để đặt
tên.
_ Trong Turbo Pascal không phân
biệt chữ hoa chữ thường.
* Phân loại tên trong NNLT trong Pascal
thường có 3 loại tên cơ bản: tên dành
riêng, tên chuẩn, tên do người lập trình
đặt.
_ Tên dành riêng (Từ khoá)
VD: Một số từ khoá trong turbo pascal
như begin; end; var, const; uses;...
_Tên chuẩn: Dùng với ý nghĩa nhất định
nào đó.
VD: tên chuẩn trong turbo pascal như:
real; integer; read; cos; sin...
_ Tên do người lập trình đặt:
+Được xác định bằng cách khai báo
trước khi sử dụng và không được trùng
với tên dành riêng
- Các tên trong chương trình khơng được
trùng nhau.
b. Hằng và biến
+ Hằng: Là các đại lượng có giá trị
không đổi trong qua trình thực hiện
chương trình
- Hằng số học: số nguyên, số thực.
- Hằng xâu là chuỗi kí tự trong bộ mã
ASCII . Khi viết phải đặt trong cặp nháy
"
- Hằng lơgíc là giá trị đúng, sai (true)
hoặc (false)
VD:
trình thường có nhu cầu giải thích từng
câu lệnh mà mình viết -Các NNLT có nhiều loại biến khác nhaubiến phải được khai báo trước khi sử
dụng.
c. Chú thích:
- trong chương trình khi viết chú thích có
thể viết cho chương trình.
- Chú thích khơng làm ảnh hưởng cho
chương trình.
Ví dụ: Trong pascal chú thích được đặt
trong {} hoặc (* và *)
trong C++<sub> chú thích đặt trong /* và */</sub>
<b>4, Củng cố</b>
- Qua bài này các em cần nắm các thành phần cơ bản để viết chương trình; một số khái niệm
như tên: tên dành riêng, tên chuẩn, tên do người lập trình đặt;khái niệm biến hằng.
<i><b>- Bài tập củng cố: </b></i>
1, Hãy viết ba tên đúng ba tên sai theo quy tắc của pascal.
2, hãy chỉ ra đâu là biểu diễn hằng trong turbo pascal và chỉ lỗi
a, 186,23; b, 1.06E15; c, 273; d, lan'; e, a20; f, 'false'
<b>5. Dặn dò và hướng dẫn học sinh học và làm bài tập ở nhà:</b>
- Về nhà các em trả lời các câu hỏi 4 -> 6 (sgk - 13)
- Đọc lại kiến thức bài 1, 2 và làm bài tập 1.2-> 1.4 (sbt - 6,7)
<b>IV. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG</b>
Tiết 3 BÀI TẬP
Ngày soạn: 15/08/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
I. MỤC TIÊU CẦN ĐẠT
1. Kiến thức:
- Củng cố những kiến thức đã học ở bài 1 và bài 2
2. Kỹ năng:
- Làm một số bài tập để nắm trắc lý thuyết, biết đặt tên đúng, sai trong Pascal biết nhận sai cách
biểu diễn hằng sai đúng trong pascal.
3. Tư tưởng:
- Bước đầu làm quen với NNLT, tạo hứng thú học môn học này hơn.
II.<b>PHƯƠNG PHÁP, ĐỒ DÙNG DẠY HỌC:</b>
<b>- Đàm thoại đưa ra các dạng bài tập, đặt vấn đề và giải quyết vấn đề.</b>
<b>- Giáo án, sgk, sbt...</b>
<b>III. NỘI DUNG BÀI MỚI </b>
<b>1. Ổn định lớp</b>
<b>2. Kiểm tra bài cũ:</b>
Câu 1: Hãy nêu quy tắc đặt tên trong Pascal? ví dụ tên đúng, tên sai?
Câu 2: Hãy cho biêt điểm khác biệt giữa tên dành riêng và tên chuẩn? cho ví dụ về 2 loại tên
đó?
Thời
gian Hoạt động của giáo viên và học sinh Nội dung
GV: Nhắc lại nội dung của bài 2
1, Quy tắc đặt tên trong pascal?
2, Phân biệt tên chuẩn và tên dành riêng?
HS: Trả lời
GV: Đưa ra các bài tập
HS: Đọc bài tập 6 (sgk - 13) và trả lời.
GV: Nhận xét và bổ sung
Trả lời:
2, Tên dành riêng khơng được dùng với ý
nghĩa đã xác định, cịn tên chuẩn có thể
dùng với một ý nghĩa khác.
Bài 6 (sgk - 13)
a. 150.0 ; b, -22; c, 6,23; d, '43' ; e, A20;
f, 1.06E.15; g, 4+6; h, 'c; i, 'true'
Giải
Những biểu diễn không phải là hằng
trong pascal
c, 6,23 - dấu phẩy thay bằng dấu chấm.
e, A20 - là tên chưa rõ giá trị
chú ý:
g, 4+6 là biểu thức hằng trong pascal
cũng coi là hằng trong pascal.
i, 'true' là hằng xâu không phải hằng
lơgíc.
GV: Đưa ra các bài tập
HS: Đọc và trả lời câu hỏi.
đơn ở cuối;
Bài 1.9(sbt - 7)
a, Begin; b, '65c' ; c, 1024; d, -46; e,
5.A8; f, 12.4E-5
Hãy chọn biểu diễn hằng trong Pascal
Đáp án: b, c, d, f
Bài 1.10 (sbt - 7)
Hãy chọn biểu diễn tên trong những biểu
diễn sau:
a, '*****' b, -5+9-0; c, PpPpPp
d, +256.512; e, FA33c9; f, (2)
Đáp án: c, e
Bài 1.11(sbt-7)
Biểu diễn nào là từ khoá trong pascal
a, end; b, integer; c, real; d, sqrt; e, 'end' ;
f, var;
đáp án: a, f
Bài 1.16(sbt - 7)
Phát biểu nào sau đây là đúng
a, Khi cần thay đổi ý nghĩa của một từ
khố nào đó người lập trình cần khai báo
theo nghĩa mới.
b, tên do người lập trình đặt khơng trùng
với từ khoá nhưng được trùng với tên
chuẩn.
c, Mọi đối tượng có giá trị thay đổi trong
chương trình đều gọi là biến.
d, trong chương trình tên gọi cũng là một
đối tượng không thay nên cũng có thể
xem là hằng.
Đáp án: b, c
<b>4. Củng cố:</b> Qua bài này học sinh nắm trắc hơn lý thuyết áp dụng vào để làm bài tập rèn luyện
kỹ năng đặt tên trong pascal, phân biệt hằng biến cách biểu diễn của nó trong pascal.
<b>5. Dặn dị học sinh học và làm bài tập ở nhà:</b>
- Về nhà làm bài tập 1.7; 1.17 đến 1.20 trong sách bài tập
- Về nhà đọc trước bài cấu trúc chương trình.
V. RỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
CHƯƠNG II: CHƯƠNGTRÌNH ĐƠN GIẢN
TIẾT 4: CẤU TRÚC CHƯƠNG TRÌNH
Ngày soạn: 24/08/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC ĐÍCH YÊU CẦU</b>
1. Kiến thức:
Hiểu chương trình là sự mơ tả của thuật tốn bằng một ngơn ngữ lập trình.
Biết cấu trúc của một chương trình Pascal: cấu trúc chung và các thành phần.
2. Kỹ năng:
Nhận biết được các thành phần của một chương trình đơn giản.
3. Tư tưởng:
Hình thành ở học sinh bước đầu làm quen đến biết viết một chương trình bằng ngôn ngữ
cụ thể
<b>II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:</b>
Phương pháp: Thuyết trình, vấn đáp.
Phương tiện: Máy chiếu, máy tính, phịng chiếu hoặc bảng
III. TIẾN TRÌNH BÀI GIẢNG
1. Ổn định lớp:
2. Kiểm tra bài cũ
<b>Tg</b> <b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội dung</b>
<b>G</b>V : Ở chương I chúng ta đã biết được
các thành phần cơ bản của 1 NNLT để
mô tả những thuật tốn đó ta phải viết
chương trình vậy viết một chương trình
có cấu trúc như nào chúng ta đi vào bài
hôm nay.
GV: Cũng như ta viết 1 bài văn mặc dù
có nhiều thể loại bài văn văn nghị luận,
phân tích, mơ tả,… nhưng cấu trúc chung
để viết một bài văn hồn chỉnh thì đều có
3 phần đúng khơng? vậy thì trong NNLT
cũng như vậy có ba phần đó là những
phần nào ta đi tìm hiểu phần 1.
<b>HS: </b>Lắng nghe, ghi chép
<b>GV : </b>Thuyết trình đưa ra kiến thức
<b>HS : </b>Lắng nghe, ghi chép .
GV: đó là cấu trúc chung vậy để hiểu
<b>1. Cấu trúc chung</b>
- Mỗi chương trình nói chung gồm 2
phần: phần khai báo và phần thân chương
trình.
<i>[<Phần khai báo>]</i>
<i><Phần thân></i>
từng thành phần ta đi tiếp phần 2.
<b>GV : </b>Phần khai báo sẽ báo cho máy biết
chương trỉnh sẽ sử dụng những tài
nguyên nào của máy.
HS: ghi chép theo ý hiểu.
GV: Khai báo tên chương trình có ý
nghĩa cho biết tên bài tốn chúng ta viết
chương trình cú pháp của nó như sau.
GV: Nêu quy tắc đặt tên trong Pascal
HS: trả lời.
GV: Vậy thì để đặt tên bắt buộc chúng ta
phải có từ khóa program sau đó là tên
chương trình .
GV: Trong NNLT thường có sẳn một số
thư viện cung cấp 1 số chương trình
thơng dụng vậy thì để dùng nó cách khai
báo như thế nào chúng ta đi tiếp.
GV: Nêu cú pháp khai bào thư viện của
NNLT pascal.
HS: Nghe giảng và ghi chép.
<b>GV :</b> Mỗi ngơn ngữ lập trình có cách
khai báo khác nhau và tùy thuộc vào
ngơn ngữ mà ta cần tìm hiểu xem trong
chương trình ta cần khai báo những gì .
<b>GV :</b> Thư viện chương trình thường chứa
những đoạn chương trình lập sẵn giúp
người lập trình thực hiện một số công
việc thường dùng, các đoạn chương
trìnhnày cực kỳ hữu ích cho gnười lập
trình, nhất là trong những ngơn ngữ lập
trình tiên tiến hiện nay.
<b>GV :</b> Lấy một ngơn ngữ lập trình mới
nhất hiện nay, chẳng hạn Visual
Basic.NET, lấy một số lệnh để học sinh
thấy được sự tiện dụng khi sử dụng thư
<b>GV :</b> Khai báo hằng là việc đặt tên cho
hằng để tiện khi sử dụng và tránh việc
<b>a.Phần khai báo</b>
- Có thể khai báo tên chương trình, hằng
được đặt tên, biến, thư viện, chương trình
con,…
<b>Khai báo tên chương trình</b>
- Trong Turbo pascal
Program <tên chương trình>;
- Tên chương trình do người lập trình
tự đặt theo đúng quy tắc đặt tên.
<b>Ví dụ :</b> Program Bai_1;
Program Tong;
<b>Khai báo thư viện:</b>
- Trong ngôn gnữ Pascal :
Uses <tên thư viện>;
- Trong ngôn ngữ C++ <sub>: </sub>
#include<Tên tệp thư viện>
<b>Ví dụ:</b> Trong Turbo Pascal : Uses CRT,
GRAPH;
Trong VISUAL STUDIO 2005 :
Imports System.Xml
<b>Khai báo hằng :</b>
phải viết lặp lại nhiều lần cùng một hằng
trong chương trình. Khai báo hằng cịn
tiện lợi hơn khi cần thay đổi giá trị của
nó trong chương trình.
<b>GV :</b> Lập trình bằng ngơn ngữ nào cần
tìm hiểu cách khai báo hằng của ngơn
ngữ ấy.
<b>GV : </b>Khai báo biến và chương trình con
chúng ta nghiên cứu bài sau.
<b>GV :</b> Mỗi ngôn ngữ lập trình có cách tổ
chức chương trình khác nhau, thường thì
phần thân chứa các câu lệnh của chương
trình.
<b>GV :</b> Đưa ra những ví dụ về cách viết
thân chương trình trong ngơn ngữ lập
trình pascal.
<b>HS : </b>Quan sát và nhận xét
cho tiện khi sử dụng.
<b>Ví dụ:</b>
Trong Pascal :
Const N = 100;
e = 2.7;
Trong C++ <sub>:</sub>
Const int N = 100;
Const float e = 2.7
(Khai báo biến sẽ trình bày ở bài 5)
<b>Phần thân chương trình :</b>
- Thân chương trình thường là nơi
chứa toàn bộ các câu lệnh của
chương trình hoặc lời gọi chương
trình con.
- Thân chương trình thường có cặp
dấu hiệu bắt đầu và kết thúc chương
trình
<b>Ví dụ: </b>Trong ngơn gnữ Pascal
Begin
[<Các câu lệnh>]
End.
<b>3. Ví dụ chương trình đơn giản</b>
Xét chương trình đơn giản trong ngơn
ngữ Pascal.
<b>Chương trình 1 </b>: Trong ngơn ngữ Turbo
Pascal
Program VD;
Begin
Write(‘Chao cac ban’);
Readline;
End.
4. Củng cố:
- Qua bài này học sinh nắm được câud trúc của một chươngtrình đơn giản, biết được
phần khai báo tên, hằng, làm quen với một số chương trình cụ thể trong NNLT
Pascal.
5. Dặn dò:
- Về nhà các em học lại kiến thức của bài hôm nay để trả các câu hỏi ở cuối bài.
- Đọc trước bài một số kiểu dữ liệu chuẩn.
...
...
...
...
5 KHAI BÁO BIẾN
Ngày soạn: 27/08/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
I. MỤC TIÊU CẦN ĐẠT
1. Kiến thức:
- Biết một số kiểu dữ liệu định sẵn: nguyên, thực, ký tự, logic, và miền con.
- Xác định được kiểu cần khai báo của dữ liệu đơn giản.
- Hiểu được cách khai báo biến., khai báo đúng, nhận biết được khai báo sai.
2. Kĩ năng:
- Biết lựa chọn kiểu dữ liệu chuẩn như kiểu số nguyên, số thực…
- Biết cách khai báo biến.
3. Tư tưởng:
Rèn luyện cho học sinh biết vận dụng các kiểu dữ liệu làm quen với các dữ liệu của NNLT.
<b>II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:</b>
- Phương pháp: Thuyết trình, vấn đáp.
<b>gian</b>
<b>Hoạt động của GV và HS</b> <b>Nội dung</b>
<b>GV : </b>Vấn đáp: Khi cần viết chương
trình quản lý học sinh ta cần sử lý
thông tin ở những dạng nào ?
<b>HS : </b>Suy nghĩ, trả lời câu hỏi của GV
<b>GV :</b> Phân tích câu trả lời của học
sinh, đưa ra một vài dạng thông tin
như sau :
- Họ tên học sinh là những thông
tin dạng văn bản hay là dạng ký
tự .
- Điểm của học sinh là các thông
tin các số thực .
- Số thứ tự của học sinh là các số
nguyên.
- Một số thông tin khác lại chỉ cần
biết chúng là đúng hay sai .
<b>GV :</b> Thuyết trình đưa ra một số bổ
sung như sau :
- Ngôn ngữ lập trình nào cũng đưa
ra một số kiểu dữ liệu chuẩn đơn
NNLT Pascal có một số kiểu dữ liệu
chuẩn sau :
<b>1. Kiểu số nguyên</b>
<b>Kiểu</b> <b>Số</b>
<b>Byte</b> <b>Miền giá trị</b>
BYTE 1 0 … 255
INTEGER 2 -215<sub> … 2</sub>15<sub> – 1</sub>
WORD 2 0 … 216<sub> – 1</sub>
LONGINT 4 -231<sub> … 2</sub>31<sub> – 1</sub>
<b>2. Kiểu thực</b>
giản, từ những kiểu đơn giản này
ta có thể xây dựng thành những
kiểu dữ liệu phức tạp hơn.
- Kiểu dữ liệu nào cũng có miền
- Tùy thuộc vào ngơn ngữ lập trình
mà tên của các kiểu dữ liệu khác
nhau và miền giá trị của các kiểu
dữ liệu này cũng khác nhau.
- Với mỗi kiểu dữ liệu người lập
trình cần ghi nhớ tên kiểu, miền
giá trị và số lượng ô nhớ để lưu
một giá trị thuộc kiểu đó.
- Trong lập trình nói chung thì kiểu
kí tự thường là tập các kí tự trong
các bảng mã kí tự, trong các bảng
mã hóa kí tự người ta quy định có
bao nhiêu kí tự khác nhau và mỗi
kí tự có một mã thập phân tương
ứng. Để lưu các giá trị là kí tự thì
phải lưu mã thập phân tương ứng
của nó .
<b>GV :</b> Đặt câu hỏi: Em biết những bảng
mã nào?
<b>HS : </b>HS sẽ đưa ra một số bảng mã
nhưng GV chú ý các em NNLT Pascal
Kiểu logic là kiểu thường chỉ có 2 giá
trị đúng – sai. Mỗi ngơn ngữ khác
nhau lại có cách mô tả kiểu logic khác
nhau, Pascal dùng True – False nhưng
một số ngôn ngữ khác lại mô tả bằng 0
– 1,… Có ngơn ngữ lại khơng có kiểu
logic mà người lập trình phải tự tìm
cách để thể hên những giá trị dạng
này.
GV: Cách khai báo biến trong Pascal
và vận dụng để khai báo biến cho các
bài toán cụ thể.
<b>Tên kiểu</b> <b>Miền giá trị</b> <b>Số</b>
<b>Byte</b>
REAL 0 hoặc nằm
trong (10-38<sub> </sub>
1038<sub>)</sub>
6
EXTENDED 0 hoặc nằm
trong (10-4932
104932<sub>)</sub>
10
<b>3. Kiểu kí tự</b>
- Tên kiểu: <b>CHAR</b>
- Miền giá trị: Là các kí tự trong
bảng mã ASCII gồm 256 ký tự
- Mỗi ký tự có 1 mã tương ứng từ 0
đến 255
- Các kí tự có quan hệ so sánh, việc
so sánh dựa trên mã của từng kí tự.
<b>Ví dụ:</b> Trong bảng mã ASCII, các kí tự
trong bảng chữ cái tiếng Anh xếp liên
tiếp vối nhau, các chữ số cũng xếp liên
tiếp, cụ thể: A mã 65; a mã 97, 0 mã 48
<b>4. Kiểu logic</b>
- Tên kiểu : Boolean
- Miền giá trị : Chỉ có 2 giá trị là
TRUE (Đúng) hoặc FALSE (Sai)
- Một số ngơn ngữ có cách mơ tả các
giá trị logic bằng những cách khác
nhau.
HS: Nghe giảng và ghi chép.
GV: Khai báo biến là chương trình
báo cho máy biết phải dùng những tên
nào trong chương trình.
<b>HS : </b>Lắng nghe và ghi chép
<b>Ví dụ :</b>
- Để giải phương trình bậc hai
ax2<sub> + bx + c = 0 </sub>
cần khai báo các biến như sau:
<b>Var</b> a, b, c, x1, x2, delta : real;
- Để tính chu vi và diện tích tam
giác cần khai báo các biến sau:
<b>Var</b> a, b, c, p, s, cv: Real;
<b>Trong đó :</b>
a, b, c: dùng để lưu độ dài 2
cạnh của tam giác.
p: nửa chu vi tam giác
cv, s: chu vi và diện tích tam
giác
<b>GV : </b>Đặt câu hỏi: Khi khai báo biến
cần chú ý những điều gì ?
<b>HS : </b>Suy nghĩ trả lời câu hỏi
<b>GV :</b> Phân tích câu trả lời của học sinh
Trong ngôn ngữ Pascal, biến đơn được
khai báo như sau :
Var <danh sách biến> : <kiểu số liệu>
<b>Trong đó:</b>
+ <b>Var : </b>là từ khóa dùng để khai báo
biến
+ <b>Danh sách biến :</b> tên các biến cách
nhau bởi dấu phẩy
+ <b>Kiểu dữ liệu :</b> là một kiểu dữ liệu
nào đó của ngơn ngữ Pascal
+ Sau <b>Var</b> có thể khai báo nhiều danh
sách biến có những kiểu dữ liệu khác
nhau
+ Cần đặt tên biến sao cho gợi nhớ đến
ý nghĩa của nó.
+ Khơng nên đặt tên q ngắn hay q
dài, dễ dẫn tới mắc lỗi hoặc hiểu
nhầm.
Khai báo biến cần quan tâm đến phạm
vi giá trị của nó .
4. Củng cố:
- Qua bài này các em cần nắm các kiểu dữ liệu chuẩn trong pascal cách khai báo biến đơn có cú
pháp như thế nào và tự lấy ví dụ.
5. Dặn dị:
- Về nhà đọc lại nội dung bài hôm nay.
- Làm các bài tập 2.14 đến 2.16 (sách bài tập – 11)
- Chuẩn bị bài 6: phép toán, biểu thức, câu lệnh gán.
VI. TỰ RÚT KINH NHGIỆM SAU GIỜ GIẢNG:
...
...
...
...
Ngày soạn: 10/09/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I / </b>
MỤC TIÊU CẦN ĐẠT
<i>1. Kiến thức :</i>
- Biết được các phép tốn thơng dụng trong NNLT
- Biết cách diễn đạt một biểu thức trong NNLT
- Biết được chức năng của lệnh gán và cấu trúc của nó
- Nắm vững một số hàm chuẩn thơng dụng trong NNLT Pascal.
<i>2. Kỹ năng:</i>
<b>-</b> Nhận biết được các phép toán để xây dựng biểu thức cho hợp lý.
- Sử dụng được một số lệnh gán khi viết chương trình đơn giản.
<i>3. Tư duy và thái độ :</i>
- Phát triển tư duy lơgic, linh hoạt, có tính sáng tạo
- Biết thể hiện về tính cẩn thận chính xác trong tính tốn cũng như lập luận
II/ PHƯƠNG PHÁP:
- Thuyết trình đàm thoại, giảng giải đặt vấn đề và giải quyết vấn đề...
III/ ĐỒ DÙNG HỌC TẬP:
* <b>Giáo viên: </b>
- SGK, các tranh liên quan đến bài học.
IV/TIẾN TRÌNH BÀI GIẢNG
1. Ổn định lớp:
2. Kiểm tra bài cũ:
Câu 1: Hãy cho biết sự khác nhau giữa hằng và biến?
Câu 2: Tại sao phải khai báo biến? Nêu cú pháp.
Thời
gian
Hoạt động của GV và HS Nội dung
Đặt vấn đề: Khi viết chương trình ta
thường phải thực hiện các phép toán, thực
hiện các so sánh ... cách viết như thế nào?
có giống ngơn ngữ tự nhiên hay khơng tất
cả các ngơn ngữ có sử dụng chúng một
cách giống nhau hay khơng?
Bài 6: PHÉP TỐN, BIỂU THỨC CÂU
LỆNH GÁN.
- NNLT nào cũng sử dụng đến phép toán
biểu thức và câu lệnh gán.
GV: Trong tốn học có những phép tốn
HS: trả lời.
GV: Vậy chúng có được dùng trong
NNLT hay không?
GV: Như vậy qua bảng này ta thấy một số
phép toán được dùng, 1 số phép toán phải
xây dựng từ các phép toán khác.
VD: luỹ thừa không phải ngôn ngữ nào
cũng viết được.
GV: mỗi ngơn ngữ khác nhau lại có kí
hiệu phép tốn khác nhau.
HS: Học sinh nghe giảng và ghi chép.
GV: Trong tốn học biểu thức là gì?
GV: Cách viết các biểu thức này trong lập
trình có giống cách viết trong tốn học?
HS: Đưa ra ý kiến của mình.
GV: Phân tích ý kiến của học sinh -> Đưa
ra cách viết biểu thức và thứ tự thực hiện
phép tốn trong lập trình.
GV: Cách viết biểu thức phụ thuộc vào
từng loại NNLT
VD: xy/z ; Ax2<sub>+Bx+C</sub>
HS: lên bảng lấy ví dụ.
GV: Để viết được x2<sub> ta làm thế nào?</sub>
HS: Trả lời.
GV: Muốn tính <i>x</i> ; sinx ; cosx làm thế
nào?
GV:Để tính các giá trị đó 1 cách đơn giản
người ta xây dựng sẵn một số đơn vị
chương trình trong các thư viện chương
trình giúp người lập trình tính tốn nhanh
các giá trị thơng dụng.
GV: Với hàm chuẩn cần quan tâm đến
kiểu của đối số và các kiểu của giá trị trả
về.
VD: Sin đo bằng độ hay radian.
pascal.
1, Phép toán
- Đưa ra bảng phụ NNLT pascal sử dụng
các phép toán sau:
- Với số nguyên: +; -; * ; div; mod;
- Với số thực: +; - ; *; /;
-Các phép toán quan hê: <; > ; ≤ ; ≥ ; =;
<>; cho biết kết quả là một giá trị lơgíc
(true) hoặc false.
- Các phép tốn lơgíc: Not (phủ định); or
(hoặc); and (và) thường dùng để kết hợp
nhiều biểu thức.
* Chú ý: Kết quả của các phép tốn quan
hệ trả về giá trị lơgíc.
2. Biểu thức số học:
- KN: Là dãy các phép toán + - * / div
mod từ các hằng biến kiểu số và các hàm.
- Dùng cặp () để quy định trình tự thực
hiện các phép toán.
- Thứ tự của các phép toán trong ngoặc
trước ngoài ngoặc sau, nhân chia trước
cộng trừ sau. nếu các phép toán ngang
hàng thì thực hiện từ trái sang phải. Giá
trị của biểu thức có kiểu của biến hoặc
hằng có miền giá trị lớn hơn trong biểu
thức.
VD: 6a + 25 m -> 6*a + 25 * m
/5 /( * )
<i>z</i>
<i>y</i>
<i>x</i>
* Chú ý: (sgk -25)
3: Hàm số học chuẩn
- KN: Các NNLT thường cung cáp sẵn
một số hàm số học để tính một số giá trị
thơng dụng.
- Cách viết: tên hàm(đối số)
- kết quả của hàm phụ thuộc vào kiểu của
đối số.
GV: Nếu trong lập trình thường ta phải so
sánh 2 giá trị nào đó trước khi thực hiện
lệnh nào đó biểu thức quan hệ con được
gọi là biểu thức so sánh. Biểu thức so
sánh dùng để so sánh 2 giá trị cho biết kết
quả đúng sai.
VD: A<B; 2*A>=4+B;
GV: Muốn so sánh nhiều điều kiện đồng
thời làm thế nào?
HS: Đưa ra ý kiến của mình.
GV: Đưa ra một số ví dụ và cách viết
đùng trong NNLT pascal.
VD1: Ba số dương a, b ,c là độ dài của ba
cạnh tam giác nếu biểu thức sau cho giá
trị đúng.
((a+b)>c)and ((b+c)>a) and ((a+c)>b)
VD2:
Biểu thức điều kiện 0 ≤ x ≤ 5 vậy biểu
thức này được biểu diễn trong pascal như
thế nào?
(x ≥ 0 ) and (x ≤ 5)
GV: Mỗi NNLT khác nhau có cách viết
câu lệnh gán khác nhau.
GV: Cần chú ý điều gì khi viết câu lệnh
gán?
HS: Đưa ra ý kiến.
GV: Phân tích câu trả lời của HS cần chú
ý đến
kiểu của biến và kiểu của biểu thức.
GV: Đưa ra 1 số ví dụ minh hoạ.
học đặt trong cặp () sau tên hàm.
- Bản thân hàm cũng được coi là biểu
thức số học và có thể tham gia vào biểu
thức như tốn hạng bất kì.
4. Biểu thức quan hệ:
Cú pháp:
<Biểu thức 1> <phép toán quan hê>
<Biểu thức 2>
Trong đó: Biểu thức 1; Biểu thức 2 phải
cùng kiểu dữ liệu.
- Kết quả của BTQH là true và false
5. Biểu thức lơgíc:
- Biểu thức lơgíc đơn nhất là hằng hoặc
biến lơgíc.
- Thường dùng để liên kết nhiều biểu thức
6. Câu lệnh gán
- Câu lệnh gán là cấu trúc cơ bản nhất của
NNLT thường dùng để gán giá trị cho
biến.
Cú pháp:
<Tên biến> := <Biểu thức>;
- Trong đó: Biểu thức phải phù hợp với
tên biến; Biểu thức và biến phải cùng kiểu
dữ liệu; biến phải có kiểu bao hàm kiểu
của biểu thức.
- Hoạt động của câu lệnh gán: Tính giá trị
của biểu thức sau đó ghi giá trị đó vào tên
biến.
VD:
xi:=(-b – sqrt(b*b – 4*a*c ))/(2*a)
i := i +1;
j := j -2;
- Qua bài này học sinh nắm được khái niệm phép toán, biểu thức, hàm số học chuẩn trong
tin học, ngoài ra nắm được cấu trúc cú pháp của câu lệnh gán trong NNLT Pascal.
Bài tập củng cố: 1, Hãy chuyển các biểu thức số học sau sang Pascal.
2
2
2
2
2
,
1
sin
,
<i>y</i>
<i>x</i>
<i>e</i>
<i>b</i>
<i>x</i>
<i>a</i>
<i>x</i>
<i>a</i>
<i>a</i>
<i>y</i>
2, Hãy chuyển biểu thức pascal sang tốn học:
a. sqrt(p*(p-A)*(p-B)*(p-C));
b. ABS(x-y)/(x*x+sqr(y)+1);
5. Dặn dị:
- Về nhà học trả lời các câu hỏi trong sgk và làm bài tập 4 -> 7 (sgk – 35 +36)
- Chuẩn bị trước bài 7 các thủ tục vào ra đơn giản.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG
...
...
...
...
...
TIẾT 7: THỦ TỤC CHUẨN VÀO/ RA ĐƠN GIẢN
Ngày soạn: 10/09/2010
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I / </b>
MỤC TIÊU CẦN ĐẠT
<i>1. Kiến thức :</i>
- 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, dịch, thực hiện và hiệu chỉnhchương trình.
<i>2. Kỹ năng:</i>
<i>3. Tư duy và thái độ :</i>
Ham muốn tìm hiểu các biên soạn và thực hiện chương trình.
II/ PHƯƠNG PHÁP:
- Thuyết trình đàm thoại, giảng giải đặt vấn đề và giải quyết vấn đề...
III/ ĐỒ DÙNG HỌC TẬP:
<i>+ Giáo viên: </i>một số ví dụ.
<i>+ Học sinh:</i> Đọc trước SGK
IV/TIẾN TRÌNH BÀI GIẢNG
1. Ổn định lớp:
2. Kiểm tra bài cũ:
3. Nội dung bài mới:
<b>Thời</b>
<b>gian</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>
* Đặt vấn đề: Khi sử dụng thông tin ta
thường phải nhập thơng tin vào máy tính
như vậy bằng cách nào để nhập dữ liệu
vào máy tính? Làm thế nào để nhập các
giá trị cho biến?
GV: Diễn giải hoạt động của Read/
Readln nêu sự khác nhau khi dùng read
và readln.
HS: Nghe giảng và ghi chép theo ý hiểu.
GV: Mỗi ngơn ngữ có cách nhập thơng
tin khác nhau.
VD1: xét chương trình sau:
Program VD;
Uses crt;
Var Tuoi : Byte;
Begin
clrscr;
<b> 7: Các thủ tục chuẩn vào/ ra đơn giản</b>
<i>1. dữ liệu vào từ bàn phím</i>
- Trong pascal ta dùng thủ tục chuẩn
sau:
Read<i>(danh sách biến vào);hoặc</i>
Readln<i>(danh sách biến vào);</i>
- Ví dụ: Read(N); Readln(a,b,c);
- Chú ý:+ Khi nhập dữ liệu từ bàn phím
READ, READLN, có ý nghĩa như nhau,
thường hay dùng READLN hơn.
write (‘Moi ban cho biet tuoi cua ban:’);
readln(tuoi);
writeln(‘Cam on tuoi cua ban la:’, tuoi,
‘tuoi’);
readln;
end.
GV: Chạy chương trình cho học sinh
xem? Giải thích việc nhập giá trị cho
nhiều biến. Có thể thay đổi lệnh readln(a,
b, c) trong VD2 bằng read(a,b,c); vậy thì 3
giá trị a, b, c dính liền nhau làm thế nào
để người sử dụng phân biệt được giá trị
từng biến? Có những cách nào để hiển thị
như mong muốn của người lập trình thì ta
đi tiếp câu lệnh write/writeln;
HS: Ghi chép.
GV: Nêu 1 ví dụ và chỉ ra sự khác nhau
giữa write và writeln;
HS: Nghe giảng và ghi chép.
GV: Để người với máy hiểu nhau khi
nhập thông tin giá trị từ bàn phím ta
thường dùng.
write(‘nhap gia tri cua M:’); {1}
Read(M); {2}
Trong đó: {1} đưa ra thông bào Nhập giá
trị M;
{2} Dùng để đọc giá trị từ bàn
phím và gán cho biến M;
GV: Vậy đó là cách viết chương trình để
chạy chương trình giao tiếp với chương
trình dịch như thế nào?
một dấu cách hoặc phím Enter.
<i><b>2. Đưa dữ liệu ra màn hình</b></i>
<b>Trong pascal cung cấp thủ tục chuẩn:</b>
<i>write<b>(<Danh sách kết quả ra>); hoặc </b></i>
<i>writeln<b>(<Danh sách kết quả ra>); </b></i>
<b>trong đó <Danh sách kết quả ra>có </b>
<b>thể tên biến đơn, biểu thức, hằng.</b>
<b>Ví dụ: write(‘Nap so N:’); Readln(N); </b>
<i><b>Chú ý:</b></i>
- writeln sau khi đưa kết quả ra con trỏ
xuống dịng mới.
- Ngồi ra trong TPcó quy cách đưa
thơng tin ra nàm hình sau:
+ Kết quả thực:
<b> :<Độ rộng>:<số chữ số thập phân></b>
<b>:<Độ rộng></b>
<b>ví</b> <b>dụ:</b> <b>Write(N:3);</b>
<b>Writeln(‘X=’,x:8:2);</b>
<b> 8 Soạn thảo, dịch, thực hiện và hiệu</b>
<b>chỉnh chương trình</b>
<i>Một số tao tác thường dùng trong </i>
GV: Cũng giống như word, pascal cũng là
một phần mềm trong word có đi là .doc
thì trong NNLT pascal có thể chạy được 1
số tệp tin có đi:
turbo.exe (file chạy)
turbo.tpl (file thư viên)
turbo.tph (file hướng dẫn)
GV: Hướng dẫn một số thao tác thường
dùng trong khi chạy chương trình pascal.
- <b>Khi soạn thảo muốn xuống dòng </b>
<b>nhấn Enter.</b>
- <b>Ghi file vào đĩa: F2</b>
- <b>Biêng dịch chương trình: Alt +F9</b>
- <b>Chạy chương trình: Ctrl + F9</b>
- <b>Sốt lỗi chương trình: F9</b>
- <b>Chuyển qua lại giữa các cửa sổ:F6</b>
- <b>Xem lại màn hình kết quả:Alt </b>
<b> +F5</b>
- <b>Đóng cửa sổ chương trình: Alt + F3</b>
<b>Thốt khỏi phần mền: Alt + X</b>
<i>4.củng cố và dặn dò:</i>
- <b>Nhắt lại sự hoạt động của Write/Writeln, read/Readln</b>
- <b>Cách soạn thảo,chạy chương trình, ghi vào đĩa, thốt khỏi TP</b>
- <b>Về nhà làm bài tập trong sách trang 35,36.</b>
<b>V/ TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>Tiết thứ: 8….</b> <b>BÀI THỰC HÀNH SỐ 1 </b>
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I/ Mục tiêu:</b>
<i>1. Về kiến thức: </i>
- Biết được một chương trình Pascal hồn chỉnh.
- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện
chương trình.
<i>2. Về kỹ năng:</i>
- Viết được chương trình đơn giản, lưu được chương trình trên đĩa, dịch 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 thành một chương trình đơn giản trên Pascal hoặc
Free Pascal.
<i>3. Về tư duy và thái độ: </i>
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
<b>II/ Chuẩn bị của giáo viên và học sinh:</b>
+ Giáo viên: Phịng máy tính đã cài sẵn chương trình Turbo Pascal hoặc Free Pascal, các
chương trình làm ví dụ.
+ Học sinh:
- Sách giáo khoa, sách bài tập và bài viết sẵn ở nhà.
- Đọc trước phần phụ lục B1 trang 122 - Môi trường Turbo Pascal.
- Xem trước nội dung bài thực hành số 1.
<b>III/ Phương pháp: </b>Gởi mở thông qua hoạt động tư duy.
<b>IV/ Tiến trình bài dạy:</b>
<b>Hoạt động 1: Kiểm tra nội dung thực hành và khởi động máy.</b>
<b>TG</b> <b>Hoạt động của học sinh</b> <b>Hoạt động của giáo viên</b> <b>Ghi bảng</b>
10’ - HS để nội dung thực hành
trước mặt.
- Chý ý hướng dẫn của GV
để khởi động máy và
chương trình Turbo Pascal
hoặc Free Pascal.
- GV kiểm tra sự chuẩn bị nội
<b>Hoạt động 2: Tìm hiểu một chương trình Pascal hoàn chỉnh.</b>
<b>TG</b> <b>Hoạt động của học sinh</b> <b>Hoạt động của giáo viên</b> <b>Ghi bảng</b>
35’ - Học sinh quan sát trên
bảng và độc lập gõ chương
trình vào máy.
- GV ghi chương trình
Giai_PTB2 lên bảng.
- GV yêu cầu học sinh đọc và gõ
chương trình Giai_PTB2 như
trên bảng.
Chương trình giải
phương trình bậc hai:
<b>program</b> Giai_PTB2;
<b>uses</b> crt;
<b>var</b> a, b , c, D: real;
x1, x2: real;
<b>begin</b>
- Nhấn phím <b>F2</b> và gõ
PTB2.PAS
- Nhấn phím <b>Alt+F9</b>
- Nhấn phím <b>Ctrl+F9</b>
- x1 = 1.00 x2 = 2.00
- Nhấn phím <b>Enter</b>
<b>- </b>Nhấn phím <b>Ctrl+F9</b>
<b>- </b>Thơng báo lỗi và cho biết
vì sao: Do căn bậc hai của
một số âm.
- Sửa lại:
- Tiếp tục sửa lại:
- x1 = 2.00 x2 = 3.00
- Thông báo lỗi với lý do
delta của pt là số âm.
- GV yêu cầu học sinh thực hiện
các nhiệm vụ sau:
+ Lưu chương trình bằng cách
nhấn phím <b>F2</b> với tên
<b>PTB2.PAS</b>.
+ Dịch và sửa lỗi cú pháp với tổ
hợp phím <b>Alt+F9</b>.
+ Thực hiện chương trình với tổ
hợp phím <b>Ctrl+F9</b>.
+ Nhập các giá trị 1; -3; và 2.
Thông báo kết quả của máy đưa
ra.
+ Trở về màn hình soạn thảo
bằng phím <b>Enter</b>.
+ Tiếp tục thực hiện chương trình
+ Nhập các giá trị 1 ; 0 ; -2.
Thông báo kết quả của máy đưa
ra.
<b>HỎI: </b> Vì sao lại có lỗi xuất hiện?
+ Sửa lại chương trình trên
khơng dùng đến biến D và thực
hiện chương trình đã sửa.
+ Sửa lại chương trình bằng cách
thay đổi cơng thức tính của x2.
+ Thực hiện chương trình đã sửa
với bộ dữ liệu 1 ; - 5 ; 6. Thông
báo kết quả.
write(‘ a, b, c: ‘);
readln(a, b, c);
D:=b*b - 4a*b*c;
x1:= (b
-sqrt(D))/(2*a);
x2:= -b/a - x1;
write(‘x1 = ‘,
x1 : 6 : 2, ’x2: = ‘,
x2 : 6 : 2);
readln
<b>end. </b>
readln(a, b, c);
x1:= (b
-sqrt(b*b - 4a*b*c))/
(2*a);
x2:= -b - x1;
write(‘x1 = ‘,
x1 : 6 : 2, ’x2: = ‘,
x2 : 6 : 2);
readln(a, b, c);
x1:= (b
-sqrt(b*b - 4a*b*c))/
(2*a);
+ Thực hiện chương trình với bộ
(2*a);
write(‘x1 = ‘,
x1 : 6 : 2, ’x2: = ‘,
x2 : 6 : 2);
- x1 = 2.00 x2 = 3.00
<b>Hoạt động 3: Rèn luyện thêm về kỹ năng lập trình cho học sinh</b>
<b>TG</b> <b>Hoạt động của học sinh</b> <b>Hoạt động của giáo viên</b> <b>Ghi bảng</b>
35’ - Nghe và nhận nhiệm vụ.
- Phân tích theo yêu cầu của
giáo viên:
+ Dữ liệu vào ba cạnh a; ; b ;
c
+ Dữ liệu ra S:
+ p:= (a+b+c)/2
S: =
sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c))
- Thực hiện theo yêu cầu của
giáo viên:
+ Soạn chương trình
+ Bấm phím <b>F2</b> để lưu
chương trình.
+Bấm <b>Alt+F9</b> để dịch lỗi cú
pháp.
+ Bấm <b>Ctrl+F9</b> để chạy
chương trình.
+ Thơng báo kết quả cho giáo
viên.
- Học sinh thơng báo kết quả.
- GV yêu cầu học sinh hãy viết
một chương trình tính diện tích
một tam giác khi biết độ dài ba
cạnh của nó.
- GV định hướng để học sinh
phân tich bài toán.
+ Dữ liệu vào (Input)
+Diệu liệu ra (Output)
+ Cách tính:
- GV yêu cầu học sinh soạn và
- GV yêu cầu học sinh nhập dữ
liệu và thông báo kết quả ;
a = 3; b = 6; c = 5
a = 2; b = 5; c = 10;
<b> 4.Củng cố buổi thực hành và bài tập về nhà.</b>
Gv nhắc lại các bước khi hồn thành một chương trình
+ Phân tích bài tốn để xác định dữ liệu vào/ ra.
+ Xác định thuật tốn.
+ Soạn chương trình
+ Lưu chương trình
+ Biên dịch chương trình
+ Thực hiện và hiệu chỉnh chương trình.
- Làm bài tập trang 35 và 36
...
...
...
...
...
<b>Tiết 9 BÀI TẬP</b>
Ngày soạn: 20/09/2010
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11E
<b>/ Mục tiêu:</b>
<i>1. Về kiến thức: </i>
- Biết được một chương trình Pascal hồn chỉnh.
- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện
chương trình.
<i>2. Về kỹ năng:</i>
- Viết được chương trình đơn giản, lưu được chương trình trên đĩa, dịch 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 thành một chương trình đơn giản trên Pascal hoặc
Free Pascal.
<i>3. Về tư duy và thái độ: </i>
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
- Tự giác, tích cực và chủ động hồn thành,
<b>II/ Chuẩn bị của giáo viên và học sinh:</b>
+ Giáo viên: Phịng máy tính đã cài sẵn chương trình Turbo Pascal hoặc Free Pascal, các
chương trình làm ví dụ.
+ Học sinh:
- Sách giáo khoa, sách bài tập và bài viết sẵn ở nhà.
- Đọc trước phần phụ lục B1 trang 122 - Môi trường Turbo Pascal.
- Xem trước nội dung bài thực hành số 1.
<b>III/ Phương pháp: </b>Gởi mở thông qua hoạt động tư duy.
<b>IV/ Tiến trình bài dạy:</b>
1. Ổn định lớp:
2. Kiểm tra bài cũ:
3. Luyện tập
<b>(tg)</b> <b>Hoạt động của GV và HS</b> <b>Nội dung</b>
GV: Em hãy nhắc lại các kiểu dữ liệu
chuẩn đã học?
HS: Trả lời.
GV: Áp dụng chúng ta làm bài tập 3 và bài
4 (sgk - 35)
HS: Đọc và trả lời.
GV: hướng dẫn học sinh làm các bài tập.
HS: Lần lượt trả lời các bài tập 3 đến 10.
Bài 3(sgk -35)
Biến chỉ nhận giá trị nguyên trong phạm vi
từ 10 đến 25532 thì biến được khai báo
bằng các kiểu dữ liệu nào?
Đáp án: Kiểu word hoặc integer.
Bài 4 (sgk - 35)
Biến P có thể nhận các giá trị 5; 10; 15;20;
30; 60; 90 và biến X nhận các giá trị 0,1;
0,2; 0,3; 0,4; 0,5. khai báo nào trong các
khai báo sau là đúng.
GV: Em hãy nhắc lại các phép toán trong
pascal, biểu thức số học trong pascal.
HS: trả lời
GV: Hướng dẫn làm bài tập 6 và 7
(sgk – 35 +36)
HS: lên bảng.
GV: Hướng dẫn làm bài tập 10
(sgk -36)
HS: Nghe giảng và làm bài tập.
Bài 5: (sgk - 35)
Đáp án:
- Vì cạnh A chỉ nhận giá trị nguyên trong
phạm vi từ 100 đến 200 nên các khai báo
b, c, d đều đúng.
- Cách khai báo c là tốt nhất vì tiết kiệm
được bộ nhớ cần lưu trữ.
Bài 6 (sgk - 35) Hãy viết biểu thức toán
học dưới đâ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>
Giải:
(1+z)*(x+y/z)/(a-1/(1+x*x*x)))
Bài 7(sgk-36)
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);
Giải:
;
,
;
2
,
;
,
;
2
,
2 <i><sub>b</sub></i>
<i>a</i>
<i>b</i>
<i>d</i>
<i>abc</i>
<i>b</i>
<i>ac</i>
<i>b</i>
<i>c</i>
<i>b</i>
<i>a</i>
<i>a</i>
clrscr;
write(‘nhap do cao của vật h =’); readln(h);
v:= sqrt(2*g*h);
writeln(‘vận tốc khi chạm đất là v=’,
v:10:2, ‘m/s’);
readln
end.
4. Củng cố và dặn dò.
- Các em luyện tập được thêm các biểu diễn các biểu thức số học trong pascal biết lập trình một
số bài tốn đơn giản.
- Về nhà các em làm thêm các bài tập trong sách bài tập.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
Tiết 11 9 CẤU TRÚC RẼ NHÁNH
Ngày soạn: 25/09/2010
Giảng tại các lớp:
11A
11E
I. MỤC TIÊU CẦN ĐẠT
1. Kiến thức:
- Học sinh nắm được khái niệm rẽ nhánh, hiểu cú pháp của câu lệnh If – Then, hiểu câu lệnh
ghép cách viết câu lệnh ghép.
2. Kỹ năng:
- Áp dụng cấu trúc rẽ nhánh để giải một số bài toán đơn giản.
3. Tư tưởng:
- Rèn luyện cho học sinh hiểu và làm bài toán hiệu quả và hứng thú với môn học tin học.
II. PHƯƠNG PHÁP
- Thuyết trình giảng giải, đặt vấn đề và giải quyết vấn đề...
III. PHƯƠNG TIỆN DẠY HỌC:
- Giáo án, sgk, phấn, bảng...
IV. NỘI DUNG BÀI MỚI:
1. Ổn định lớp:
2. Kiểm tra bài cũ:
1, Em hãy nêu các phép toán trong Pascal?
2, Em hãy nêuu biểu thức lơgíc, quan hệ là gì? Cú pháp? ví dụ?
3. Bài mới:
(t) Hoạt động của giáo viên và học sinh Nội dung bài mới
GV: Đặt vấn đề: Ở chương trước
chúng ta đã được tìm hiểu cấu trúc của
1 chương trình pascal, nắm được các
thành phần đầu tiên là khai báo, phần 2
phần thân vậy thì trong phần thân có
dãy các câu lệnh vậy để bổ sung vào
phần thân dãy các câu lệnh hôm nay
chúng ta sang 1 chương mới về cú
pháp các câu lệnh trong pascal
GV: Đầu tiên sẽ đi tìm hiểu khái niệm
rẽ nhánh.
GV: Thường ngày chúng ta thấy có
những việc được thực hiện với 1 điều
kiện nào đó. ví dụ có 2 bạn Ngọc và
Châu hẹn nhau đến nhà Ngọc học
- Châu hẹn Ngọc nếu chiều mai
khơng mưa thì Châu sẽ đến nhà Ngọc
học
- Một lần khác Châu hẹn Ngọc nếu mai
trời khơng mưa thì Châu sẽ đến nhà
CHƯƠNG III CẤU TRÚC RẼ NHÁNH VÀ
LẶP
Ngọc học cịn nếu trời mưa thì Châu ở
nhà.
HS: Nghe giảng
GV: Trong khi giải bài tốn phương
trình bậc 2: ax2<sub>+bx+c thì sẽ xảy ra bao</sub>
nhiêu trường hợp.
HS: trả lời.
GV: Vậy thì qua 2 ví dụ trên ta thấy
các mệnh đề có dạng nếu .... thì hoặc
nếu ... thì ... ngược lại thì... ta gọi là rẽ
nhánh.
GV: để diễn tả một bài tốn pt bậc 2
ax2<sub>+bx+c ta có sơ đồ sau:</sub>
(sgk - 39)
Vậy thì câu lệnh nhập a, b, c trong
pascal ta dùng câu lệnh readln(a,b,c)
còn p b2<sub>+4ac ta dùng câu lệnh gán </sub>
p:= b*b-4*a*c vậy thì để kiểm tra
điều kiện rẽ nhánh thì trong pascal sẽ
cung cấp 1 câu lệnh mới đó là câu lệnh
GV: Câu lệnh if – then có câu lệnh rẽ
nhánh dạng thiếu có nghĩa là với điều
kiện đó thì kết quả tương ứng cịn dạng
đủ vẫn ĐK đó thì có kết quả tương ứng
nhưng ngược lại với đk đó thì kết quả
lại khác, vậy cú pháp như sau:
HS: Nghe giảng và ghi chép.
GV: Tương ứng với cú pháp 2 dạng ta
có sơ đồ cấu trúc tương ứng sau:
GV: Qua 2 sơ đồ chúng ta có thể nói
được ý nghĩa của 2 cấu trúc như sau.
HS: Nghe giảng và ghi chép.
Ví dụ:
+ If D<0 then write(‘PTVN’);
+ If (n mod 2 = 0) then write(‘nlà
chẵn’) else write(n là lẻ);
GV: Ngồi ra cịn có VD2; VD3;
(sgk -40)
HS: Nghe giảng và ghi chép.
GV: Nếu trong câu lệnh if – then thì
VD: Giải pt bậc 2 ax2<sub>+bx+c = 0 trước hết </sub>
tính:
= b2<sub> – 4ac</sub>
sau đó tuỳ thuộc vào ta có kết luận sau:
+ Nếu = 0 thì PT có nghiệm kép
+ Nếu < 0 thì PTVN
+ Nếu > 0 thì PT có 2 nghiệm.
* Khái niệm rẽ nhánh: Các mệnh đề có dạng
Nếu ... thì ...
Nếu ....thì ... ngược lại thì....
2. Câu lệnh rẽ nhánh
a. Dạng thiếu:
Cú pháp: If<ĐK> then <câu lệnh>;
b. Dạng đầy đủ:
Cú pháp: If<ĐK> then <câu lệnh 1>
else <câu lệnh 2>;
Trong đó:
- Điều kiện là biểu thức lơgíc.
- Câu lệnh 1, câu lệnh 2 là 1 câu lệnh trong
pascal;
c. Sơ đồ khối:
+ Dạng thiếu
sau then với đk đó ta muốn thực hiện
nhiều hơn 1 câu lệnh thì làm thế
GV: Theo cú pháp sau từ khoá then
(else) chỉ thực hiện được 1 câu lệnh
muốn thực hiện được nhiều câu lệnh ta
phải gộp các câu lệnh thành 1 câu lệnh
và gộp các câu lệnh đó bằng cách đặt
trong cặp từ khoá Begin – end;
VD: If D<0 then write(‘PTVN’)
else
begin
x1:= (-b-sqrt())/(2a);
x2:= (-b+sqrt())/(2a);
end;
GV: Để hiểu hơn cấu trúc rẽ nhánh ta
tìm hiểu vd;
GV: Gọi học sinh lên bảng viết phần
HS: lên bảng
GV: Nhận xét, viết giải thích phần thân
chương trình.
+ Dạng đầy đủ:
* Ý nghĩa:
- Ở dạng thiếu: ĐK được tính, kiểm tra nếu
đk đúng thì thực hiện câu lệnh cịn sai thì
thốt khỏi câu lệnh rẽ nhánh.
- Dạng đầy đủ: ĐK được tính và kiểm tra
nếu đúng thì thực hiện câu lệnh 1 nếu sai thì
thực hiện câu lệnh 2.
3. Câu lệnh ghép
- Để gộp các câu lệnh thành 1 câu lệnh ta đặt
các câu lệnh đó trong cặp từ khố
begin – end;
Cú pháp: Begin
<Dãy các câu lệnh>;
end.
4. Ví dụ:
VD1: Tìm nghiệm thực của pt bậc 2:
ax2<sub>+bx+c = 0 ; với a 0</sub>
Input: nhập a, b, c;
Output: Đưa ra nghiệm thực hoặc thông báo
ptvn.
Giải:
program vd;
uses crt;
var a,b,c:real;
D,x1,x2:real;
begin
clrscr;
write(‘nhap a,b,c:’); read(a,b,c);
D:= b*b-4*a*c;
if (D<0) then write(‘PTVN’);
else
begin
x1:= (-b – sqrt(D))/(2*a);
readln
end.
4. Củng cố:
- Qua bài này HS nắm được cấu trúc rẽ nhánh, áp dụng để làm một số bài tập
Bài tập củng cố: em hãy lập trình kiểm tra tính chẵn lẻ của n.
5. Dặn dị và hướng dẫn học sinh học và làm bài tập:
- Về nhà các em học lại cấu trúc rẽ nhánh.
- Trả lời các câu hỏi 1, 2 làm bài tập 4 (sgk – 51)
- Chuẩn bị bài 10 cấu trúc lặp.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
...
...
...
Tiết 12, 13 10 CẤU TRÚC LẶP
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11E
I.MỤC TIÊU CẦN ĐẠT:
1. Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán, khái niệm lặp
- Hiểu cấu trúc lặp kiểm tra điều kiện trước, lặp với số lần biết trước
- Biết vận dụng đúng đắn cấu trúc lặp vào tình huống cụ thể.
2. Kỹ năng:
- Mơ tả được thuật tốn của một số bài tốn đơn giản có sử dụng lệnh lặp
- Viết đúng các lệnh lặp kiểm tra đk trước, lệnh lặp với số lần biết trước.
- Viết được thuật toán của một số thuật toán đơn giản.
3. Tư tưởng:
II. PHƯƠNG PHÁP:
- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề và giải quyết vấn đề.
III. ĐỒ DÙNG DẠY HỌC:
- Giáo án, sgk, phấn bảng...
IV.NỘI DUNG BÀI MỚI:
2. Kiểm tra bài cũ:
1, Nêu cú pháp của câu lệnh rẽ nhánh (2 dạng)? Hãy cho biết sự giống và khác nhau của 2
dạng câu lệnh if – then?
2, Câu lệnh ghép là gì? Tại sao phải có câu lệnh ghép ? Làm bài tập sau
1
1
1
Neu x
1
<i>x</i>
<i>Neu</i>
<i>x</i>
<i>x</i>
<i>z</i> <sub>; </sub>
3. Nội dung bài mới:
(tg) Hoạt động của giáo viên và học sinh Nội dung bài mới
* Đặt vấn đềa: Em hãy cho biết kết quả
của chương trình sau:
Program VD;
Uses crt;
Begin
writeln(‘xin chào’);
writeln(‘xin chào’);
writeln(‘xin chào’);
HS: Trả lời:
GV: Nhận xét đúng là kết quả của bài
toán trên là in ra 5 dòng chữ ‘xin chào’
các em thấy 5 dòng lệnh trên được lặp
lại 5 lần, nếu bài toán đưa ra in 100
dịng xin chào thì câu lệnh writeln(‘xin
chào’); sẽ được viết lại 100 lần thì câu
kềnh vậy có câu lệnh nào thay thế cho
việc lặp đi lặp lại các thao tác đó khơng
thì chúng ta sẽ đi vài bài hôm nay.
GV: trước tiên để biết cấu trúc lặp thế
nào chúng ta đi tìm hiểu lặp là gì?
HS: Ghi chép.
GV: Đưa ra bài tốn, u cầu học sinh
tìm cách lập trình giải bài tốn này.
HS: Đưa ra cách của mình.
GV: Nhận xét và đưa ra cách giải bài
toán trên, dựa vào câu lệnh IF đã học
giải theo các lệnh tuần tự.
s2 := 0;
If (1<i><sub>a</sub></i> 0.0001) then s2= s2+1/a;
If ( 0.0001
1
1
<i>a</i> ) then s2=s2+( 1)
1
<i>a</i> ;
If ( 0.0001
2
1
<i>a</i> ) then s2=s2+( 2)
1
<i>a</i>
...
* Giải bài toán 1:
S1:= 1/a;
if(N=1) then S1:= S1+1/(a+1)
if(N=2) then S1:= S1+1/(a+2)
if(N=3) then S1:= S1+1/(a+3)
...
HS: Nhận xét với việc giải bài tốn
theo cách đó.
Với N= 100 thì lặp lại thao tác đó 100
lần như vậy câu lệnh sẽ rất dài dòng
theo cả hai trường hợp trên đều quá
dài.
GV: Ngồi ra trong cuộc sống cịn rất
nhiều ví dụ khác nữa như:
VD1: Bài toán gửi tiền vào ngân hàng
hàng tháng phải tính lãi và cộng thêm
tiền gốc đang gửi hay nói cách khác
gốc của tháng sau = gốc + lãi tháng
trước.
VD2: Tính tổng của 1 đoạn số nguyên
mà không dùng công thức.
VD3: Nhập điểm, họ tên, NTNS của
học sinh của 1 lớp....
- Xét 2 bài toán như sau với a>2 là số
nguyên dương cho trước.
bài tốn 1: Tính tổng
S1 =
100
1
...
2
1
1
1
1
<i>a</i>
<i>a</i>
<i>a</i>
<i>a</i>
S2 = ..
1
Với điều kiện: 1 0.0001
<i>N</i>
<i>a</i>
Cách giải:
Băt đầu s được gán với giá trị 1/a
- tiếp theo mỗi lần cộng thêm vào S là
1/(a+N) với N = 1, 2, 3...
- Với bài toán 1 việc cộng thêm dừng
khi N = 100 số lần lặp biết trước.
- Với bài toán 2 việc cộng thêm dừng
khi điều kiện 1/(a+N)<0.0001 số lần
lặp chưa biết trước số lần lặp.
* Lặp: trong NNLT có những thao tác
lặp đi lặp lại nhiều lần khi đó ta gọi là
cấu trúc lặp.
Lặp thường có 2 loại:
+ Lặp biết trước số lần lặp.
+ Lặp chưa biết số lần lặp.
GV: Đưa ra VD.
So sánh 2 thuật toán sau:
Thuật toán tổng 1a
B1: S:= 1/a; N<- 0;
B2: N:= N+1;
B3: Nếu N>100 thì chuyển sang bước 5
B4: SS+1/(a+N) rồi sang bước 2;
B5: Đưa ra S rồi kết thúc.
Thuật tốn tính tổng1 b:
B1: S:= 1/a; N=101;
B2: N:= N-1;
B3: Nếu N<1 thì chuyển sang bước 5
B4: SS+1/(a+N) rồi sang bước 2;
B5: Đưa ra S rồi kết thúc.
GV: Gọi 1 số học sinh nhận xét về hai
thuật toán trên về 1 số vấn đề sau:
+ Thuật tốn có lặp khơng/
+ Hai thuật tốn có gì giống và khác
nhau?
+ lặp lại bao nhiêu lần.
+ Có gì thay đổi trong hai thuật toán
này.
HS: Trả lời.
GV: Nhận xét và đưa ra kết luận trong
pascal có 2 loại câu lệnh lặp có số lần
biết trước và lặp chưa biết trước số lần
lặp.
pascal.
2, Lặp với số lần biết trước và câu lệnh
for – do:
* Để mô tả cấu trúc lặp với số lần biết
trước pascal dùng câu lệnh for – do với
2 dạng, dạng tiến và dạng lùi.
+) Dạng lặp tiến:
For <biến đếm>:= <GT đầu> to <GT cuối> do
<câu lệnh>;
+) Dạng lặp lùi:
For <biến đếm>:= <GT cuối> downto
<GT đầu> do <câu lệnh>;
Trong đó:
+ Biến đếm thường là biến đơn, là kiểu
số nguyên.
+ GT đầu, cuối là biểu thức cùng kiểu
với biến đếm, GT đầu phải nhỏ hơn
hoặc bằng GT cuối.
* Hoạt động của câu lệnh For – do.
GV: Vậy đó là ý nghĩa của cấu trúc câu
lệnh lặp dựa vào hai thuật toán trên ta
có thể viết chương trình bằng nn pascal
như sau:
GV: Đưa ra thuật tốn hoặc có thể u
cầu học sinh tự xây dựng thuật toán
giải bài toán 2.
HS: Xây dựng.
GV: Qua thuật tốn trên em thấy tính
trị cuối.
- Dạng lùi: câu lệnh sau từ khoá Do sẽ
được thực hiện tuần tự với biến đếm
tự giảm dần từ giá trị cuối về giá trị
đầu
- Tương ứng mỗi giá trị của biến đếm
câu lệnh được thực hiện 1 lần.
* Chú ý: Giá trị của biến đếm được đều
chỉnh tự động vì vậy mỗi câu lệnh viết
sau do không được thay đổi giá trị của
biến đếm.
VD1: Chương trình cài đặt các thuật
tốn tổng 1a và tính tổng 1b.
Đưa ra bảng phụ:
Tổng 1-a và tổng 1 –b:
Program tong1_a;
Uses crt;
Var S:real;
a,N:Integer;
Begin
clrscr;
write(‘nhapa=’); readln(a);
S:= 1/a;
for i:= 1to 100 do
S:= 1+ 1.0/(a+N);
writeln(‘Tong S là:’, S:8:3);
readln
end.
Program tong1_b;
Uses crt;
Var S:real;
a,N:Integer;
Begin
clrscr;
write(‘nhapa=’); readln(a);
S:= 1/a;
for i:= 100 downto 1 do
S:= 1+ 1.0/(a+N);
writeln(‘Tong S là:’, S:8:3);
readln
end.
lặp thể hiện ở bước nào?
HS: trả lời.
GV: Vậy thì từ bước 2 đến bước 4
được lặp đi lặp lại nhiều lần với đk 1/
(a+N)<0.0001 chưa được thoả mãn.
Vậy để lặp lại nhiều lần mà chưa biết
số lần lặp thì trong pascal có cung cấp
cho 1 câu lệnh lặp while – do để tổ
chức lặp chưa biết số lần lặp.
GV: Chạy thử chương trình tổng của
bài tốn 2.
GV~xq: Để dễ hiểu hơn chúng ta đi
tìm AZhiểu VD2(sgk - 47)
Nêu thuật tốn tìm ƯCLN của 2 số
nguyên dương M, N
+ Từ thuật tốn em có thể viết chương
trình bài tốn này?
HS: lên bảng.
GV: Nhận xét và chạy thử.
3. Lặp với số lần chưa biết trước câu
lệnh While – do:
Để giải bài toán 2 ta dùng thuật toán
sau:
B1: S=1/a; N=0;
B2: Nếu 1/(a+n)<0.0001 thì chuyển
sang bước 5;
B3: NN+1;
B4: SS+1/(a+n) rồi quay lại B2;
B5: Đưa S ra màn hình và kết thúc;
* Cú pháp:
While <ĐK> Do <câulệnh>;
Trong đó:
+ ĐK là biểu thức quan hệ hay lơgíc.
+ Câu lệnh là 1 câu lệnh trong pascal.
Ý nghĩa: Khi ĐK còn đúng thì thực
hiện câu lệnh sau do sau đó quay lại
kiểm tra đk.
* Sơ đồ quan hệ:
4. Ví dụ:
VD1: (sgk - 47)
VD2: (sgk – 47)
4.Củng cố:
- Qua bài này các em nắm được khái niệm lặp một số bài toán phổ biến.
- Biết sử dụng câu lệnh lặp For – do; while – do trong những trường hợp nào.
5. Dặn dò và hướng dẫn học sinh học và làm bài tập:
- Về nhà các em học lại kiến thức của bài hôm nay, trả lời và làm bài tập câu 3 câu 5, 6, 7 (sgk -
51)
- Đọc trước bài tập và thực hành 2.
ĐK
V.TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
...
...
...
...
Tiết 14, 15 BÀI TẬP VÀ THỰC HÀNH 2
Ngày soạn: 2/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
I.MỤC TIÊU CẦN ĐẠT:
1. Kiến thức:
- Xây dựng chương trình có cấu trúc rẽ nhánh.
- Làm quen với các cơng cụ hiệu chỉnh chương trình.
2. Kỹ năng:
- Rèn luyện kĩ năng thực hành, hiểu rõ cấu trúc rẽ nhánh chạy được 1 số chương trình bài toán
đơn giản.
3. Tư tưởng:
Rèn luyện cho học sinh thái độ ý thức khi giải bài toán trên máy tính.
II. PHƯƠNG PHÁP:
- Thuyết trình, đàm thoại, giảng giải...
III. ĐỒ DÙNG DẠY HỌC:
- Phòng máy, máy chiếu, sgk, sbt...
IV. NỘI DUNG BÀI MỚI:
1. Ổn định lớp học:
2. Kiểm tra bài cũ:
Câu hỏi: Nêu cú pháp của 2 dạng câu lệnh for – do? có thể dùng câu lệnh while – do để thay thế
cho câu lệnh for – do được khơng? Nếu được hãy thực hiện điều đó với chương trình tính tổng
1-a?
3. Nội dung bài mới
<b>(tg)</b> <b>Hoạt động của giáo viên và học sinh</b> <b>Nội dung bài mới</b>
*GV: củng cố lý thuyết, em hãy nêu cú
pháp, hoạt động của câu lệnh lặp for –
do?
HS: Trả lời.
GV: Nhắc lại.
GV: Nêu cú pháp và hoạt động của câu
lệnh while – do?
GV: Trong giờ thực hành hôm nay để
hiểu rõ hơn, vận dụng các câu lệnh lặp for
– do vào bài tập sau: bài toán bộ số pitago
đọc bài toán (sgk - 49)
HS: Đọc bài.
GV: Qua bài toán em hiểu thế nào là bộ
số pitago của 3 số nguyên a,b,c?
HS: Trả lời.
GV: Nhận xét, qua bài đó em hãy xác
định Input và Output của bài toán?
HS: Trả lời.
GV: Vậy em hiểu thế nào là bộ số pitago?
+ Câu lệnh for – do
Cú pháp:
Dạng lặp tiến:
For <biến đếm>:= <GT đầu> to <GT
cuối> do <câu lệnh>;
+) Dạng lặp lùi:
For <biến đếm>:= <GT cuối> downto
<GT đầu> do <câu lệnh>;
* Cú pháp câu lệnh while – do:
While <ĐK> Do <câulệnh>;
1. Nội dung bài toán Bộ số Pi – ta – go
(sgk - 49)
- Input: Nhập 3 số nguyên a, b, c.
- Output: Kiểm tra 3 số a, b, c có phải là
bộ số pi – ta – go không?
Nêu ý tưởng của bài tốn.
GV: Em nào có thể lên khai báo bài tốn
này?
HS: Lên bảng.
GV: Phân tích thuật tốn trên máy chiếu?
HS: Quan sát gõ chương trình vào máy.
GV: Sau khi gõ chương trình xong các
em thực hiện các yêu cầu của bài toán a,
b, ....(sgk -50)
a2<sub> = b</sub>2<sub> + c</sub>2
b2<sub> = a</sub>2<sub> + c</sub>2
c2<sub> = b</sub>2<sub> + a</sub>2
a, Chương trình:
Program Pi_ta_go;
Uses crt;
Var a,b,c:Integer;
a2,b2,c2:longint;
begin
write(‘nhap a, b, c:’); readln(a,b,c);
a2:= a*a; b2:= b*b; c2:= c*c;
if (a2=b2+c2) or (b2=a2+c2) or
(c2=a2+b2) then write (‘ba số a,b,c là bội
số pitago’);
else
write(‘ba số vừa nhập không là BS
pitago);
end.
b, Lưu chương trình với tên pitago.pas
c, Nhập 3 giá trị a=3; b=4; c=5;
d, Mở vào bảng phụ debug để xem lại kết
quả a2; b2; c2;
4. Củng cố:
- Qua giờ thực hành này các em hiểu ứng dụng của câu lệnh rẽ nhánh
- Thực hành thành thạo với các thao tác hiệu chỉnh chương trình.
5. Dặn dị và hướng dẫn học sinh học và làm bài tập:
- Về nhà các em tự rút ra ý nghĩa của câu lệnh rẽ nhánh trong bài thực hành.
- Làm bài tập 4,5,6 (sgk - 51) để giờ sau làm bài tập chương.
- Học lại nắm được câu lệnh rẽ nhánh if – then ; for – do ; while – do;
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
Tiết 16 BÀI TẬP ÔN TẬP CHƯƠNG II
Ngày soạn: 2/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
I. MỤC TIÊU CẦN ĐẠT
<b>1- Kiến thức:</b>
Củng cố cho học sinh kiến thức về cấu trúc rẽ nhánh và cấu trúc lặp.
<b>2- Kỹ năng</b>:
Rèn luyện kỹ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ
nhánh và cấu trúc lặp để giải quyết bài toán đặt ra.
<b>3- Tư duy, thái độ</b>:<b> </b>
Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiẻu, chủ động
trong giải quyết các bài tập.
Rèn luyện tư duy khoa học, tư duy logic.
II.PHƯƠNG PHÁP:
- Thuyết tình giảng giải, đặt vấn đề và giải quyết vấn đề...
III. ĐỒ DÙNG DẠY HỌC:
<b>GV</b>: - Soạn giáo án.
<b>HS: - </b>Học bài cũ và chuẩn bị bài tập.
V. TIẾN TRÌNH BÀI GIẢNG:
1. Ổn định lớp:
2. Kiểm tra bài cũ:
3. Luyện tập
<b>(tg)</b> <b>Hoạt động của giáo viên và học sinh</b> <b>Nội dung luyện tập</b>
GV: Em hãy trình bày cấu trúc câu lệnh
rẽ nhánh và cấu trúc lặp?
HS: Trả lời.
GV: Nhận xét và đánh giá.
GV: Chúng ta sẽ sử dụng câu lệnh rẽ
nhánh để làm bài tập 4
- Sử dụng câu lệnh rẽ nhánh if này gồm
mấy nhánh?
- Hàm lấy giá trị tuyệt đối của biểu thức
hay biến?
HS: Lên bảng
GV: Đặt câu hỏi ở ý a câu lệnh if này
HS: trả lời.
GV: Nhận xét và hoàn chỉnh.
GV: Mời HS lên bảng làm ý b,
HS: Lên bảng.
GV: Nhận xét và hoàn chỉnh.
-<i>Rẽ nhánh</i>
If <btđk > then <lệnh 1> else <lệnh 2>;
If <btđk > then <lệnh 1>;
- <i>Lặp For</i>
For <biến đếm>:= <giá trị đầu> To <giá
trị cuối> Do <lệnh>;
For <biến đếm>:= <giá trị đầu> Downto
<giá trị cuối> Do <lệnh>;
- <i>Lặp While</i>
While <điều kiện> Do <lệnh>;
Bài 4 (sgk - 51)
a)
If (sqrt(x) + sqrt(y)) <=1 then z:= sqrt(x)
+ sqrt(y)
Else
If y>=x then z:= x+y
Else z:= 0.5;
b)
Giải
GV: Em đọc bài 5 ý a? lên bảng khai triển
biểu thức
50
1 1
<i>n</i> <i>n</i>
<i>n</i>
<i>y</i> <sub> dưới dạng tường </sub>
minh?
HS: trả lời.
GV: Nhìn vào cơng thức khai triển em
hãy cho biết n lấy giá trị từ đoạn nào?
HS: trả lời.
GV: Em nào hãy đưa ra phương pháp tính
Y
HS: trả lời.
GV: Sử dụng cấu trúc điều khiển lặp nào
phù hợp với bài toán này?
HS: Lên bảng.
GV: Gọi 1 số em nhận xét và hoàn chỉnh
bài toán.
z:=abs(x) +abs(y)
Else z:= x+y;
Bài tập 5(sgk - 51) Lập trình tính:
a)
50
1 1
<i>n</i> <i>n</i>
<i>n</i>
<i>y</i>
Dạng triển khai tường minh:
51
50
...
4
3
3
2
2
1
<i>Y</i>
Giải
lập trình:
Program tinhy;
uses crt;
var n:byte;
y:real;
begin
clrscr;
y:=0;
for n:=1 to 50 do
y:=y+n/(n+1);
writeln(y:14:6);
readln
end.
b)<i>e</i>(<i>n</i>)1<sub>1</sub>1
Tiết 17 KIỂM TRA 1 TIẾT
Ngày soạn: 19/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
Củng cố cho học sinh kiến thức về đã học ở chương I và chương II.
2. Kỹ năng :
Rèn luyện kỹ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ
nhánh và cấu trúc lặp để giải quyết bài toán đặt ra.
3. Tư duy, thái độ:
Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiẻu, chủ động
trong giải quyết các bài tập.
Rèn luyện tư duy khoa học, tư duy logic.
II. ĐỀ KIỂM TRA
Tiết 18 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
11 KIỂU MẢNG
Ngày soạn: 22/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
<b>I. MỤC TIÊU CẦN ĐẠT</b>
<b>1. Kiến thức</b>
Biết được một kiểu dữ liệu mới là kiểu mảng một chiều.
Biết được một loại biến có chỉ số;
Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều.
<b>2. Kĩ năng</b>
Biết được các thành phần trong khai báo kiểu mảng một chiều;
Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương
trình;
Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;
Biết cách tham chiếu đến các phần tử của mảng một chiều.
<b> 3. Tư duy và Thái độ: </b>Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức.
- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề và giải quyết vấn đề.
<b>III. ĐỒ DÙNG DẠY HỌC</b>
<b>1. Giáo viên: </b>giáo án, sgk, sơ đồ cấu trúc mảng 1 chiều
<b>2. Học sinh: </b> sgk
<b>IV. HOẠT ĐỘNG DẠY HỌC</b>
1) <b>Ổn định tổ chức</b>: Kiểm tra sĩ số lớp.(1’)
2) <b>Kiểm tra bài cũ: </b>
3) <b>Bai mới</b>
(tg) <b>Hoạt động của GV và HS</b> <b>Nội dung</b>
15’ GV: 1.Nêu bài tốn mở đầu. Y/cầu hs đọc,
tìm hiểu chtrình giải quyết bài tốn đó. Và
trả lời các câu hỏi sau:
- Các biến: <b>t1, …,t7</b> thể hiện các giá trị
nào? Kiểu của các biến đó thế nào?
- Biến <b>dem</b> dùng làm gì?
- 7 câu lệnh <b>IF</b> trong chương trình thực
hiện việc gì?
TL: <b>dem:</b> để đếm số ngày tron tuần có nđộ
TL: - Để kiểm tra lần lượt các ngày, nđộ
ngày nào lớn hơn nđộ trung bình.
<b>2. </b> Mở rộng bài toán từ phạm vi một tuần
sang phạm vi <i>N</i> ngày (chẳng hạn một
tháng hay một năm) thì chương trình trên
có hạn chế như thế nào?
TL: <b>Bản chất thuật tốn khơng có gì</b>
<b>thay đổi nhưng việc viết chương trình</b>
<b>gặp khó khăn do cần dùng rất nhiều</b>
<b>biến và đoạn các câu lệnh tính tốn khá</b>
<b>dài.</b>
<b>3. </b>Để khắc phục hạn chế trên người ta
thường ghép chung 7 biến trên thành một
<b>1.Kiếu mảng một chiều</b>
<b>* K/n mảng một chiều</b>
20’
dãy và đặt cho nó chung 1 tên và đánh cho
mỗi phần tử một chỉ số.
<b>4.</b>Em hiểu như thế nào về mãng một
chiều?
TL: Mảng một chiều là dãy hữu hạn các
phận tử cùng kiểu dữ liệu.
GV: Hỏi: Để mô tả mảng một chiều, ta cần
xác định những yếu tố nào?
HS: Trả lời: + Kiểu của các p/tử.
+ Cách đánh số các p/tử.
GV: <b>1</b>.Chỉ ra phần khai báo mảng trong
phần khi báo của chtrình?
- Ý nghĩa của các khai báo trên là gì?
HS: Trả lời:
<b>Dịng 1</b>: Kbáo kiểu mảng một chiều gồm
Max số thực.
<b>Dòng 2</b> : Kbáo biến mảng <i>Nhietdo</i> qua
kiểu mảng
<b>GV: 2. </b>Giới thiệu cú pháp khai báo kiểu
mảng một chiều.
<b>3. </b>Y/cầu cho ví dụ khai báo mảng?
Gọi hs khác: Ý nghĩa của khai báo bạn vừa
viết?
HS: trả lời
<b>Var</b> Dhs2: <b>array</b> [1..100] <b>of</b> real;
<b>- Kbáo trực tiếp mảng có tên </b>Dhs2<b> gồm</b>
<b>100 p/tử có kiều thực.</b>
* Lưu ý hs tránh nhầm lẫn giữa tên kiểu dữ
liệu mảng và biến kiểu mảng.
GV: Hỏi: <b>(Treo bảng)</b> Trong ba cách khai
báo ở ví dụ 2, thì cách nào tốt hơn?
TL: Cách 2, vì ta dễ dàng điều chỉnh kích
thước của mảng
GV: Hỏi: Dựa vào ví dụ trang 55 SGK,
cho biết:
+ Tên kiểu mảng?
+ Số phần tử của mảng?
+ Mỗi phần tử của mảng thuộc kiểu gì?
<b>Trả lời: </b>
<i>.ArrayReal</i>
.301 phần tử
<b>.Real</b>
<b>GV: </b>Cách tham chiếu đến từng phần tử của
<b>TL: </b>a[2] p/tử ở vị trí thứ 2 của mảng a
Kmang1=<b>array</b> [1..Max] <b>of </b>real<b>;</b>
<b>Var </b>Nhietdo: Kmang1<b>;</b>
<b>a. Khai báo </b>(Có hai cách)
<i><b>Cách 1</b></i>: Khai báo trực tiếp:
<i><b>Var</b></i> <tên biến mảng>: <i><b>array</b></i>[kiểu chỉ số]
<i><b>of</b></i> <kiểu phần tử>;
<i><b>Cách 2:</b></i> Khai báo gián tiếp
<i><b>Type </b></i><tên kiểu mảng>= <i><b>array</b></i>[kiểu chỉ số]
<i><b>of</b></i> <kiểu phần tử>;
<i><b>Var </b></i><tên biến mảng>:<tên kiểu mảng>;
<i><b>Trong đó:</b></i> +Kiểu chỉ số thường là một
đoạn số nguyên liên tục có dạng
n1..n2(n1<n2)(n1,n2 là các hằng hoặc biểu
thức)
+ Kiểu phần tử là kiểu dl của các phần tử
của mảng.
Ví dụ 1:
<b>Var</b> Nhietdo: <b>array</b> [1..Max] <b>Of </b>real;
Ta có các cách sau:
Cách 1:
<b>Var</b> a<b>: Array</b>[1..100] <b>Of</b> Integer;
Cách 2:
<b>Const</b> Nmax = 100;
a[i] p/tử ở vị trí i của mảng a.
4. Củng cố: (7’)
Bài tập củng cố:
Arrayr = array[1..200] Of integer;
Arrayr = array[byte] of real;
Arrayb = array[-100..100] of boolean;
<b>Var</b> a : arrayr;
B : arrayb;
Arrayr=array[1..200] of integer;
Arrayb = array[-100..100]of boolean;
...
...
...
...
...
...
...
...
...
...
...
...
...
Tiết 19 11 KIỂU MẢNG (Tiết 2)
<b> BÀI TẬP KIỂU MẢNG MỘT CHIỀU</b>
Ngày soạn: 25/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>1. Kiến thức: </b>Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng.
<b>2. Kĩ năng: </b>Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.
<b>II. PHƯƠNG PHÁP:</b>
- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề và giải quyết vấn đề.
<b>III. ĐỒ DÙNG DẠY HỌC</b>
<b>1. Giáo viên: </b>giáo án, bảng phụ, sgk
<b>2. Học sinh: </b>sgk
<b>III. HOẠT ĐỘNG dẠY VÀ HỌC</b>
1) <b>Ổn định tổ chức</b>: Kiểm tra sĩ số lớp.
2) <b>Kiểm tra bài cũ: </b>Trình bày các cách khai báo kiểu mảng trong NNLT Pascal?
3) <b>Giảng bài mới:</b>
<b>TG</b> <b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>NỌI DUNG</b>
<b>GV:1. </b>Nêu đề bài toán (<b>Nội dung</b>)
Y/cầu hs xác định In/Output của bài
toán.
HS: In: mảng A, số k
Out: Tổng (S) các p/tử trong mảng A
là bội của k.
<b>2.</b> Ở lớp 10 ta đã xây dựng t/toán cho bài
toán này rồi. Y/cầu hs nhắc lại t/toán.
<b>3.</b> Y/cầu hs cho biết các việc chính cần
thực hiện trong chtrình là gì?
Trả lời
+ Cho biết số ptử của mảng A.
+ Nhập giá trị cho các ptử của mảng A
+ Tính tổng.
<b>4.</b> Y/cầu hs cho biết các biến chính cần
sử dụng là gì?
TL: mảng A
biến đơn: N, k, S.
- Y/cầu hs khác lên viết phần khai báo
các biến đó?
HS Lên bảng trình bày
<b>Var </b> S, N, k: integer;
A: <b>array</b>[1..100] of integer;
<b>5.</b> Tiếp tục y/cầu hs lên viết phần chtrình
tạo giá trị cho các ptử của mảng A. (lưu
ý nhập số lượng ptử của mảng trước)
Gọi hs khác nhận xét
* Chỉnh sửa đoạn chtrình hs vừa hồn
thành.
<b>6.</b> Để viết tiếp đoạn chtrình cịn lại (tính
tổng) theo thuật tốn ta phải kiểm tra lần
lượt tất cả các ptử của mảng từ A[1] đến
A[n]. vậy ta sử dụng câu lệnh gì ở đây?
<b>Bài 1:</b> Viết CT tạo mảng A gồm N
(N100) số nguyên. Tính tổng các phần
tử của mảng là bội của một số nguyên
dương <b>k</b> cho trước.
<b>Var </b> S, n, k, i : integer;
A: <b>array</b>[1..100] of integer;
<b>Begin</b>
Write(‘Nhap n = ’); readln(n);
<i>{tao mang}</i>
<b>For </b>i:=1 <b>To</b> n <b>Do </b>
<b> begin</b>
write(‘phan tu thu ’,i,’ =’);
readln(A[i]);
<b> end;</b>
write(‘Nhap k = ’); readln(k);
S := 0; <i>{khoi tao S ban dau}</i>
<i>{tinh tong}</i>
<b>For </b>i:=1 <b>To</b> n <b>Do</b>
<b>If </b>A[i] <b>mod</b> k = 0 <b>Then </b>
S := S + A[i];
TL: Sử dụng cấu trúc lặp For.
- Hỏi: trước khi tính tổng, ngồi mảng A
trong CT cần có thêm gì khơng? <i>(GV bổ</i>
<i>sung)</i>
TL: Giá trị <b>k</b> và Biến <b>S := 0</b>
- Y/cầu hs khác lên viết đoạn chtrình cịn
lại?
- 1 hs Lên bảng trình bày
Chạy thử chtrình
N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k
=3
(Treo bảng) chứa nội dung câu lệnh cần
thêm vào chtrình ở bài 1.
<b>GV: 1.</b> Y/cầu hs n/cứu nội dung các câu
lệnh và hỏi:
- Ý nghĩa của biến am, duong?
- Chức năng của lệnh (3)?
- Lệnh (4) đưa ra thơng tin gì?
<b>HS </b>N/cứu ý nghĩa các câu lệnh và trả lời:
- Dùng để lưu số lượng đếm được.
- Đếm số dương hoặc đếm số âm.
- Số các số dương, số các số âm.
<b>GV: 2.</b> Y/cầu hs tìm vị trí bổ sung các
lệnh vào cho phù hợp để chtrình đếm
được số dương, số âm.
<b>HS </b>Chỉ ra vị trí cần bổ sung và các câu
lệnh cần loại bỏ bớt.
<b>GV: 3.</b> Y/cầu hs lên
hồn chỉnh lại chtrình?
<b>HS </b>Lên bảng , chỉnh sửa lại chtrình.
** Chuẩn hố lại chtrình.
* Chạy thử chtrình với 1 bộ giá trị:
Chạy thử chtrình
<b>g</b> <b>1 2</b> <b>2</b> <b>3</b> <b>4</b> <b>5</b> <b>5</b> <b>5</b>
<b>am</b> <b>0 0</b> <b>1</b> <b>1</b> <b>1</b> <b>1</b> <b>2</b> <b>3</b>
<b>Var </b> n, i : integer;
am, duong : integer;
A : <b>array</b>[1..100] of integer;
<b>Begin</b>
Write(‘Nhap n = ’); readln(n);
<i>{tao mang}</i>
<b>For </b>i:=1 <b>To</b> n <b>Do </b>
<b> begin</b>
write(‘phan tu thu ’,i,’ =’);
<b> end;</b>
am := 0; duong := 0;
<i>{dem}</i>
<b>For </b>i:=1 <b>To</b> n <b>Do</b>
<b>If</b> A[i] >0<b> Then</b>
duong := duong + 1
<b>Elseif </b> A[i]<0 <b>Then</b>
am := am + 1;
Writeln(duong: 4, am:4);
<b>End.</b>
<b>4. Củng cố:</b>
- Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng
C[1..n], trong đó C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i]
+ B[i])
- Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
Tiết 20 11 KIỂU MẢNG (Tiết 3)
<b> KIỂU MẢNG HAI CHIỀU</b>
Ngày soạn: 30/10/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11E
<b>I. MỤC TIÊU</b>
<b>1. Kiến thức</b>
- Hiểu được khái niệm mảng hai chiều.
- Hiểu cách khai báo và tham chiếu đến các phần tử của mảng hai chiều.
<b>2. Kĩ năng</b>
- Thực hiện được khai báo mảng hai chiều, cách tham chiếu đến một phần tử của mảng hai
- Thực hiện được việc tính tốn các phần tử trong mảng hai chiều.
<b>II. PHƯƠNG PHÁP:</b>
- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề và giải quyết vấn đề.
<b>III. ĐỒ DÙNG DẠY HỌC</b>
<b>1. Giáo viên: </b>Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và
in ra màn hình tổng các phần tử trong mảng.
<b>2. Học sinh: </b>SGK, vở soạn.
<b>III. HOẠT ĐỘNG dẠY VÀ HỌC</b>
1) <b>Ổn định tổ chức</b>: Kiểm tra sĩ số lớp.
2) <b>Kiểm tra bài cũ:</b> Viết cấu trúc của tổng quát của mảng một chiều ?
3) <b>Giảng bài mới: </b>
<b>TG</b> <b>HOẠT ĐỘNG CỦA GV VÀ HS</b> <b>NỌI DUNG</b>
<b>7’</b> GV yêu cầu HS xem bảng nhân ở SGK.
- Với kiến thức về mảng một chiều đã
học, em hãy đưa ra cách sử dụng kiểu
mảng đó để lưu trữ bảng nhân?
TL: - Sử dụng 9 mảng một chiều, mỗi
mảng lưu một hàng của bảng.
- Với cách lưu trữ như vậy, ta phải khai
báo bao nhiêu biến mảng?
- TL: Khai báo 9 biến mảng một chiều.
- Khai báo như vậy có những hạn chế
nào?
- TL: Phải khai báo nhiều biến, chương
trình phải viết nhiều lệnh để tạo và in giá
trị của mảng.
- Để khắc phục những hạn chế này, ta có
thể mô tả dữ liệu của bảng nhân bằng
kiểu dữ liệu mảng hai chiều.
- Nêu khái niệm mảng hai chiều.
- Để mô tả kiểu mảng hai chiều, cần xác
định những yếu tố nào?
- HS trả lời.
- Tham khảo SGK và trả lời.
- GV đưa ra hai cách khai báo biến mảng
hai chiều.
<b>§11. KIỂU MẢNG (tt)</b>
<b>2. Kiểu mảng hai chiều: </b>
<i>a. Xét bài toán</i>: Bảng nhân (SGK).
* Khái niệm mảng hai chiều: (SGK).
* Các yếu tố cần xác định để mô tả kiểu
mảng hai chiều. (SGK<b>)</b>
<i>b. Khai báo:</i>
- GV giải thích các thành phần trong khai
báo.
- Gọi HS nêu cách khai báo gián tiếp
biến B để lưu trữ bảng nhân ở SGK.
GV: Đưa ra bài tập.
HS: Trả lời.
- Gọi HS nhắc lại cách tham chiếu đến
một phần tử của mảng một chiều.
- TL: Tênbiến[chỉ số]
<b>Var</b> <<i>tênbiếnmảng</i>><b>:array[</b><i>kiểu chỉ số </i>
<i>hàng, kiểu chỉ số cột</i><b>]of </b><<i>kiểu phần tử</i>><b>;</b>
<i> C2: Gián tiếp:</i>
<b>Type</b> <<i>tên kiểu mảng</i>> <b>=array[</b><i>kiểu chỉ số </i>
<i>hàng, kiểu chỉ số cột</i><b>]of</b> <<i>kiểu ptử</i>><b>;</b>
<b>Var </b><<i>tên biến mảng</i>><b>:</b><<i>tên kiểu mảng</i>><b>;</b>
<b>*Trong đó:</b>
<b>- Type, var, of, array là các từ khoá.</b>
<b>- tến biến mảng, tên kiểu mảng do người </b>
<b>lập trình đặt.</b>
<b>- KCSH, KCSC: [n1..n2,n1’..n2’] là 2 </b>
<b>đoạn nguyên liên tiếp với n1≤n2; </b>
<b>n1’≤n2’; n1, n1’ có thể giống hoặc có giá </b>
<b>trị khác nhau; n1, n2, n1’, n2’ là hằng </b>
<b>hoặc biểu thức có giá trị nguyên.</b>
<b>Ví dụ: Khai báo biến mảng B đểlưu trữ </b>
<b>bảng nhân</b>
<b>+C1: Trực tiếp: </b>
<b>Var B: array[1..9,1..10] of Integer;</b>
<b>+ C2: Gián tiếp:</b>
<b>Type Bangnhan=array[1..9,1..10] of </b>
<b>Integer;</b>
<b>Var B: Bangnhan;</b>
<b>Bài tập: Chỉ ra đúng/sai của các khai báo</b>
<b>sau:</b>
<b>a, Type</b>
<b> mang1=array[-5..50, 1..10]of </b>
<b>Integer;</b>
<b>Var A:mang1;</b>
<b>b. Type mang2 = array[1..10,1..15] of </b>
<b>char;</b>
<b>Var E:Mang;</b>
<b>c, Var C: array[0..3*2n, 0..n] of Integer;</b>
<b>d, Var D:array[1.5 .. 10, 2..10] of real;</b>
<b>Đáp án: Đúng ý a, c</b>
<b> Sai ý b, d</b>
<i>c.Tham chiếu đến một phần tử của mảng </i>
<i>hai chiều:</i>
Tênbiến[chỉ số hàng,chỉ số cột]
Ví dụ: B[2, 5]
Có nghĩa là tham chiếu đến phần tử ở hàng
thứ 2 cột 5của bảng nhân.
<i>d. Các ví dụ:</i>
<i>Ví dụ 1:</i> Viết chương trình tạo và in mảng
- GV hướng dẫn HS cách tạo mảng hai
chiều có m hàng, n cột.
- GV hướng dẫn HS cách in mảng hai
chiều vừa tạo.
- Gọi HS lên bảng sửa lại phần khai báo
và các câu lệnh nhập cho phù hợp với bài
này.
- HS lên bảng làm.
+ Không khai báo m,n.
+ Khai báo thêm biến T.
+ Viết hai vòng <b>for</b> của lệnh tạo và in
mảng là:
<b>for </b>i := 1 <b>to </b>5 <b>do</b>
<b> for</b> j := 1 <b>to</b> 7 <b>do</b>
- GV hướng dẫn HS cách tính tổng.
- GV treo bảng phụ viết sẵn chương trình
cho HS tham khảo.
- HS Theo dõi chương trình trên bảng
phụ.
<b>program</b> Tao_in_mang;
<b>var</b> i, j, m, n: integer;
A: array [1..100,1..100] of integer;
<b>begin</b>
write ('Nhap so hang m = '); readln (m);
write ('Nhap so cot n = ');
readln (n);
<i>{Tạo mảng}</i>
<b>for</b> i := 1 <b>to</b> m <b>do</b>
<b> for </b>j := 1<b> to </b>n<b> do</b>
<b> begin</b>
write('Nhap A[',i, ',' ,j,']=');
readln (A[i , j]);
<b> end;</b>
<i>{In mảng}</i>
<b>for</b> i:= 1 <b>to</b> m <b>do</b>
<b> begin</b>
<b> for </b>j := 1<b> to </b>n<b> do </b>
<b> </b>write (A[i , j]:4);
writeln;
<b> end;</b>
readln
<b>end.</b>
<b>4. Củng cố (3’)</b>
- Cách khai báo biến mảng hai chiều.
- Cách tạo mảng hai chiều.
- Cách tính tốn các phần tử trong mảng hai chiều.
<b>5.Dặndò</b>
<b> Câu hỏi, bài tập về nhà : </b>Xem các ví dụ cịn lại trong SGK.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
<b>Tiết 21: </b>
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11E
<b>I. MỤC TIÊU CẦN ĐẠT</b>
- Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng.
- Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10.
<b>2. Kĩ năng: </b>Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<b>1. Giáo viên: </b>giáo án, bảng phụ, sgk
<b>2. Học sinh:</b> sgk
<b>III. PHƯƠNG PHÁP </b>
<b>IV. HOẠT ĐỘNG DẠY HỌC</b>
<b>1. Hoạt động 1:</b> (10 phút) Kiểm tra bài cũ:
Gọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước.
<b>2. Hoạt động 2:</b>(15 phút) Phân tích bài tốn trước khi viết chương trình
<i>a. Nội dung: </i>Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
<b>Tg</b> <b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội Dung</b>
<b>1.</b> Nêu bài toán, y/cầu hs xác định
In/Output của bài toán.
<b>TL</b> :
In: N (N250), dãy A (A[i]<500).
Out: dãy A không giảm
<b>2. </b>Y/cầu hs trình bày lại thuật tốn sắp
xếp tráo đổi. (Đã học ở lớp 10)
<b>3. </b>Y/cầu cả lớp n/cứu lại t/toán và trả lời
các câu hỏi:
- Biến <b>j </b>sẽ nhận các giá trị trong phạm vi
nào? Tương tự với biến <b>i</b>?
- Có nhận xét gì về 2 biến i,j?
Trả lời:
+ 2 <b>j</b> N, 1 <b>i</b> j-1
+ i phụ thuộc theo j
(với mỗi giá trị <b>j, i</b> lần lượt nhận các giá
trị từ 1 đến j-1)
<i>Số nguyên dương N (N</i><i>250) và dãy A</i>
<i>gồm N số nguyên dương, mỗi số đều</i>
<i>không vượt quá 500. Hãy sắp xếp dãy A</i>
<i>thành dãy không giảm.: </i>
In: N (N250), dãy (A[i]<500).
<b>2.</b>Thuật tốn
B1: Nhập N, dãy A ;
B2: j!N;
B3: nếu j<2 thì đưa ra dãy đã được sắp
xếp, KT;
B4: j!j-1; i!1;
B5: Nếu i>j thì Qlại B3;
B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và
A[i+1];
B7: Quay lại B5.
<b>3. Hoạt động 3:</b>(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mơ tả
<b>Hđ của GV</b> <b>Nd ghi bảng</b>
HD: +Khai báo biến
+Tạo mảng A
+Sắp xếp mảng A tăng dần
+Đưa mảng A đã sắp xếp ra màn hình
- Khai báo những biến gì?
-TL: mảng A, biến đơn N, i, j
- Tạo mảng là làm những gì?
-TL: Nhập sl p/tử của mảng và nhập giá trị
cho các p/tử trong mảng
- Sắp xếp mảng
Hỏi: Làm thế nào để tráo đổi giá trị 2 biến
cho nhau (a[i] và a[i+1])?
Tl: sử dụng thêm biến trung gian <b>t</b>:
<b>t:=a[i];</b>
<b>a[i]:=a[i+1];</b>
<b>a[i+1] :=t</b>
- Đưa mảng ra màn hình
<b>Var</b> A: <b>array</b>[1..300] <b>of</b> integer;
N, i, j :integer;
<b>Begin</b>
<i>{tao mang}</i>
Write(‘Nhap n = ’); readln(n);
<b>For </b>i:=1 <b>To</b> n <b>Do </b>
<b> begin</b>
write(‘phan tu thu ’,i,’ =’);
readln(A[i]);
<b> end;</b>
<i>{sap xep mang}</i>
<b>For </b>j := N <b>Downto</b> 1 <b>Do</b>
<b>for</b> i:=1 <b>to</b> j - 1 <b>do</b>
<b> If</b> a[i] > a[i+1] <b>then</b>
<b>begin</b>
t:=a[i]; a[i]:=a[i+1];
a[i+1] :=t
<b>end;</b>
<i>{dua ra mang da sap xep}</i>
Writeln (‘Mang da duoc sap xep ’);
<b>For</b> i :=1 <b>To </b>N <b>Do </b>write (a[i]:4);
Readln
<b>End. </b>
Cách phân tích và viết chương trình cho một bài tốn.
<b>5. Dặn dị:</b>
<b> Câu hỏi, bài tập về nhà</b>
Xem lại các bài tập về mảng đã giải ở tiết 20
Xem trước bài: Bài thực hành số 3
Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N
phần tử, trong đó B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ ..
+A[i])
V.TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG
...
...
...
<b>Tiết 22+23 </b>
Ngày soạn: 5/11/2010
Giảng tại các lớp:
11A
11E
<b>I. MỤC TIÊU:</b>
- Về <i><b>Kiến thức: </b></i>Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.
- Về <i><b>Kỹ năng:</b></i> Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn hình chỉ số
và giá trị của các phần tử mảng.
+ Duyệt qua phần tử của mảng để xử lý từng phần tử.
- Về tư duy và <i><b>Thái độ:</b></i> rèn luyện tư duy lập trình, tác phong của người lập trình.
<b>II. CHUẨN BỊ:</b>
- GV: Phịng máy tính, máy chiếu Projector.
- HS: SGK, bài tập.
<b>III. HOẠT ĐỘNG DẠY VÀ HỌC</b>
1) <b>Ổn định tổ chức</b>: Kiểm tra sĩ số lớp.
2) <b>Kiểm tra bài cũ:</b> Khi nào ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa
kiểu?
3) <b>Giảng bài mới: </b>
<b>HOẠT ĐỘNG CỦA GV</b> <b>HOẠT ĐỘNG CỦA HS</b>
GV: Cài đặt và trình chiếu CT mẫu bài 1a. HS: Xem bài mẫu được trình
chiếu.
?1: <b>MyArray</b> là tên kiểu dữ liệu hay tên biến?
GV: Nhận xét.
HS1: Trả lời
?2: Vai trò của nmax và n khác nhau như thế nào? HS2: Trả lời
?3: Dòng lệnh nào dùng để tạo biến mảng A?
GV: Nhận xét.
HS3: Trả lời.
GV: Cho chạy thử CT bài 1a HS: Xem
?4: Lệnh gán <b>A[i]:= random(300) – random(300)</b> có ý
nghĩa gì?
GV: Nhận xét.
HS4: Trả lời.
?5: Lệnh <b>For i:=1 to n do Write(A[i]:5);</b> có ý nghĩa gì?
GV: Nhận xét. HS5: Trả lời.
?6: Lệnh <b>For i:=1 to n do If A[i] mod k = 0 then s:=s </b>
<b>+ A[i];</b> thực hiện nhiệm vụ gì?
GV: Nhận xét.
HS6: Trả lời.
?7: Lệnh <b>s:=s+A[i];</b> được thực hiện bao nhiêu lần?
GV: Nhận xét.
HS7: Trả lời.
GV: Cho HS chạy thử chương trình để thấy kết quả. HS: Chạy thử chương trình trên
máy của mình.
GV: Nhắc nhở HS lưu chương trình đã chạy tốt ở câu a. HS: Lưu chương trình.
GV: Trình chiếu các câu lệnh của câu 1b. HS: Xem.
?8: Đưa biến <b>Posi </b>và <b>Neg</b> vào vị trí nào trong câu 1a?
GV: Nhận xét. HS8: Trả lời
?9: Nhiệm vụ của câu lệnh:
<b>If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then </b>
<b>Neg:=Neg+1;</b> ?
GV: Nhận xét.
GV: Yêu cầu HS đưa câu lệnh vào chương trình ở câu
1a.
HS: Thực hiện.
GV: Yêu cầu HS chạy chương trình và báo cáo kết quả. HS: Lưu và chạy chương trình, báo
cáo KQ.
<i>4)</i> <i><b> Củng cố: </b></i>
Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn
phím.
<i>5)</i> <i><b> Dặn dị:</b></i>
- HS về nhà làm bài tập 4.15 trong sách bài tập.
- Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK.
<b>IV. RÚT KINH NGHIỆM, BỔ SUNG: </b>
...
...
...
...
...
...
...
...
...
...
...
...
<b>Tiết 24+25 </b>
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11E
<b>I. Mục tiêu</b>
<b>1. Kiến thức </b>
- Củng cố kiến thức về dữ liệu kiểu mảng.
- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi.
<b>2. Kĩ năng</b>
- Biết chỉnh sữa lỗi trong chương trình.
- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.
<b>3. Thái độ</b>
- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.
<b>II.Chuẩn bị</b>
<b>- Gv:</b>Bảng phụ viết sẵn chương trình, phịng máy, project.
<b>- Hs: </b>Sgk, CT đã được viết sẵn.
<b>III. Tiến hành dạy học</b>
1) <b>Ổn định tổ chức</b>: Kiểm tra sĩ số lớp.
2) <b>Kiểm tra bài cũ:</b> Thông qua ?
3) <b>Giảng bài mới: </b>
<b>Hoạt động 1: </b>
<b>sinh</b> <b>Nội dung thực hành </b>
<b>Hỏi 1:</b> Nêu cách khai báo kiểu mảng
1 chiều.
<b>Hỏi 2: </b>Nhập từ bàn phím xây dựng
mảng một chiều A có 6 phần tử.
<b>Tl: </b>có 2 cách
+ gián tiếp:
+ trực tiếp:
<b>TL:</b> For i:= 1 to 6 do
Begin
Writeln(‘Nhap phan tu thu ’,i,’=’);
Readln(A[i]);
End;
<b>2. Hoạt động 2</b>
<b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội dung</b>
<b>1.</b> Chiếu đề bài lên bảng.
<b>2.</b> Xác định bài toán
Y/cầu hs xác định dữ liệu vào/ra của bài toán?
Trả lời :
- Vào: mảng A
- Ra: mảng A đã sắp xếp
- Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp
10)?
- HS Nhắc lại thuật toán.
- Chiếu thuật tốn đã được liệt kê các bước.
<b>4.</b> Tìm hiểu chương trình
- Vai trị của biến i, j trong CT?
-<b> TL:</b> Dùng làm biến chỉ số.
<b>Đề:</b> Sắp xếp dãy số nguyên bằng
thuật toán tráo đổi với các giá trị
khác nhau của n số.
- Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần
tử liền kề của mảng?
- <b>TL:</b>3 lệnh: tg := a[i];
a[i]:= a[i+1];
a[i+1]:= tg;
- Treo bảng CT chuẩn bị sẵn.
Giải thích một số lệnh của CT.
<b>3. Hoạt động 3: </b>
<b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội dung</b>
- Yêu cầu hs tự nhập dữ liệu với CT có sẵn.
- Giúp hs phát hiện và sữa lỗi.
- Thuật toán trên tiến hành đưa số lớn thứ j về
đến vị trí j sau mỗi vịng lặp: For i:= 1 to j-1 do
- Chạy CT, nhập dữ liệu, xm kết
quả.
- Chỉnh sữa CT thông qua các thông
báo lỗi.
- Chú ý hiểu rõ thêm về CT.
<b>4. Hoạt động 4:</b>
<b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội dung</b>
<b>1.</b> Xác định bài toán.
- Y/cầu hs xác I/O bài toán?
- Biến Dem được tăng lên khi nào?
<b>TL:</b> Khi A[i] > A[i+1]
(tức là biểu thức đk trong CL If đúng)
- Cần đưa câu lệnh tăng Dem vào chỗ nào
trong CT trên?
<b>TL: </b>Trong thân CL If: trước hoặc sau 3 lệnh
tráo đổi.
- Câu lệnh khởi tạo Dem:= 0 được đặt vào
vị trí nào trong CT?
<b>TL: </b>Chọn một trong hai phương án 3, 4.
+ Trước CL đầu tiên:
For j:= N down to 2 do
+ Trước CL duyệt:
For i:= 1 to j-1 do
+ Trước 3 CL tráo đổi
+ Sau 3 CL tráo đổi
- Sau CL cuối CT nên đưa CL nào vào để
hiển thị giá trị biến Dem ra màn hình.
<b>Đề:</b> Khai báo biến đếm nguyên Dem và
bổ sung vào chương trình những câu
lệnh cần thiết để biến Dem tính số lần
tráo đổi trong chương trình.
Xác định bài toán:
+ I: mảng a;
+O: mảng a đã sắp xếp, số lần tráo đổi
(Dem);
<b>4. Hoạt động 5:</b>
<b>Hoạt động của Giáo viên và Học sinh</b> <b>Nội dung</b>
- Yêu cầu hs sữa lại CT theo gợi ý đã nêu.
- Hướng dẫn hs chỉnh sửa và chạy CT.
- Đánh giá kết quả của hs.
CT(Phụ lục)
- Thêm các CL như đã hướng dẫn vào CT.
- Chạy CT.
4) Củng cố : Thuật toán sắp xếp bằng tráo đổi. Đếm số lần tráo đổi.
5) Bài tập về nhà
- Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần
tử mảng A theo mảng B.
<b>IV. RÚT KINH NGHIỆM, BỔ SUNG: </b>
...
...
...
...
...
...
...
...
Tiết 26
<b>I. MỤC TIÊU</b>
<i><b>1. Kiến thức</b></i>
- Học sinh nắm được toàn bộ kiến thức đã học từ đầu năm học đến nay.
<i><b>2. Kĩ năng</b></i>
- Rèn luyên kĩ năng nhận xét, phân tích một bài tốn.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<i><b>1. Chuẩn bị của giáo viên</b></i>
- Máy chiếu qua đầu, bìa trong, sách giáo khoa.
<i><b>2. Chuẩn bị của học sinh</b></i>
- Sách giáo khoa, một số chương trình bài tập.
<b>III. </b>
GV: Đặt câu hỏi gợi ý để học sinh tự
nhắc lại kiến thức đã học.
GV: - Em hiểu như thế nào về lập trình
và ngơn ngữ lập trình?
- Các loại chương trình dịch?
GV: - Các thành phần cơ bản của ngơn
ngữ lập trình?
- Các khái niệm trong ngơn ngữ
lập trình?
- Cấu trúc chung của chương trình
TP?
HS: trả lời
GV: - Nêu tên các kiểu dữ liệu chuẩn?
- Nêu các nhóm phép toán đã học?
- Các loại biểu thức?
- Chức năng và sự thực hiện của
lệnh gán?
- Nêu tên và chức năng của một
số hàm số học?
- Tổ chức vào/ra.
- Tổ chức rẽ nhánh.
- Tổ chức lặp.
- Kiểu mảng.
1. Xác định bài toán.
- Chiếu nội dung đề bài lên bảng.
- Chia lớp làm hai nhóm.
Nhóm 1: Nêu câu hỏi phân tích.
Nhóm 2: Trả lời câu hỏi phân tích của
nhóm 1.
- Giáo viên góp ý bổ sung cho cả hai
nhóm.
Trả lời các câu hỏi.
- Lập trình là quá trình diễn đạt thuật
tốn bằng một ngơn ngữ lập trình.
- Biên dịch và thông dịch.
- Bảng chữ cái, cú pháp và ngữ nghĩa.
- Khái niệm tên, hằng và biến, chú
thích.
- Gồm 2 phần: Phần khai báo và phần
thân.
- Số nguyên, số thực, ký tự, logic.
- Phép toán số học, phép toán quan hệ,
phép toán logic.
- Biểu thức số học, biểu thức quan hệ
và biểu thức logic.
- Dùng để tính toán một biểu thức và
gán giá trị cho một biến.
- Hàm bình phương, hàm căn bậc hai,
hàm giá trị tuyệt đối, hàm sin, hàm cos.
- Lệnh Read()/readln();
- Lệnh write()/writeln();
- If <BTĐK> then <lệnh 1> else <lệnh
2>;
For tiến.
For lùi.
While <> do.
- Array ...
1. Quan sát, theo dõi đề bài và định
hướng của giáo viên để xác định bài
tốn
- Nhóm 1:
+ Dữ liệu vào.
+ Dữ liệu ra.
+ Các nhiệm vụ chính phải thực
hiện. toán.
2 . Rèn luyện kỹ năng lập trình
- Chia lớp thành 2 nhóm.
- u cầu: Viết chương trình hồn
thiện lên bìa trong.
- Thu phiếu học tập, chiếu kết quả lên
bảng. Gọi học sinh của nhóm khác
nhận xét đánh giá và bổ sung.
3. Chuẩn hóa kiến thức bằng chương
trình mẫu của giáo viên. Thực hiện
chương trình, nhập dữ liệu để học sinh
thấy kết quả của chương trình.
+ Số N và N số nguyên.
+ Số lượng số chẵn C và số lẽ L.
+ 1- Nhập dữ liệu.
2- Đếm số lượng số chẵn, số lẽ.
3- Đưa kết quả ra màn hình.
2. Làm việc theo nhóm.
- Thảo luận theo nhóm để viết chương
trình.
- Báo cáo kết quả.
- Nhận xét, đánh giá và bổ sung những
thiếu sót của nhóm khác.
3. Theo dõi và ghi nhớ.
<i><b>4. Củng cố và dặn dò:</b></i>
- Giáo viên yêu cầu học sinh nhắc lại một số nội dung chính đã được ơn tập trong tiết học.
- Chuẩn bị kiến thức cho tiết sau kiểm tra học kỳ 1: Xem lại toàn bộ các kiến thức đã được ôn
tập, đặc biệt chú trọng cấu trúc lặp và rẽ nhánh, kiểu mảng.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I.Mục tiêu</b>
<i>1. Về kiến thức</i>
- Biết được một kiểu dự liệu mới, biết được khái niệm kiểu xâu.
- Phân biệt được sự giống và khác giữa kiểu mảng với kiểu xâu.
- Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu.
- Biết các phép toán liên quan đến xâu.
<i>2. Về kĩ năng</i>
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal.
- Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản.
<b>II. Chuẩn bị của GV và HS</b>
<i>2. HS</i>SGK.
<b>III. Phương pháp</b>
Thuyết trình, vấn đáp
<b>IV. Tiến trình bài học</b>
1. Ổn định lớp:
Định nghĩa mảng một chiều và cách
khai báo.
'Viet Nam' có phải là dữ liệu kiểu
mảng một chiều khơng, Vì sao?
HS: Trả lời
GV: Nhận xét
Chính xác hóa nội dung
'Viet Nam' là dữ liệu kiểu mảng. Tuy
nhiên nó là một kiểu dữ liệu mà tiết
này ta sẽ học: KIỂU XÂU
Ghi nhớ kiến thức
1. Tìm hiểu ý nghĩa của xâu ký tự.
- Chiếu đề bài của bài tốn đặt vấn đề:
Viết chương trình nhập họ tên của 30 học
sinh trong lớp.
- Hỏi: Ta sẽ chọn kiểu dữ liệu như thế
nào? Khai báo biến như thế nào?
- Yêu cầu học sinh: Viết đoạn lệnh để
nhập và xuất dữ liệu cho từng phần tử.
- Hỏi: Có những khó khăn gì gặp phải?
- Dẫn dắt: Cần có một kiểu dữ liệu mới
cho phép ta nhập/xuất dữ liệu cho xâu
bằng một lệnh.
2. Tìm hiểu về kiểu xâu.
- Chiếu lên bảng cách khai báo biến xâu
trong ngôn ngữ lập trình Pascal.
- Hỏi: Ý nghĩa của từ String, [n]
<b>Bài 12 Kiểu xâu</b>
1. Quan sát, suy nghĩ và trả lời.
- Kiểu mảng một chiều gồm 30 ký tự.
- Khai báo một biến mảng A để lưu họ tên
của một học sinh.
Readln(A[1]);Readln(A[2]);
Readln(A[3]);Readln(A[4]);
...
- Chương trình được viết dài dòng. Khi
nhập dữ liệu, phải thực hiện gõ nhiều
phím.
2. Quan sát cấu trúc khai báo và tham
khảo sách giáo khoa.
- String là tên kiểu xâu.
- [n] là giá trị quy định số lượng ký tự tối
đa mà biến xâu có thể chứa.
- Hỏi: Khi khai báo khơng có [n] thì số
lượng ký tự tối đa là bao nhiêu?
- Yêu cầu học sinh cho ví dụ một xâu ký
tự
- Hỏi: Xâu có bao nhiêu ký tự?
- Diễn giải: Mỗi ký tự được gọi là một
phần tử của xâu. Số lượng ký tự trong xâu
được gọi là độ dài của xâu.
- Hỏi: Xâu chỉ gồm một ký tự trống được
viết như thế nào? số lượng ký tự bao
nhiêu?
- Hỏi: Xâu rỗng được viết như thế nào? số
lượng ký tự bao nhiêu?
3. Nhập/xuất dữ liệu cho biến xâu trong
ngôn ngữ Pascal.
- Giới thiệu cấu trúc chung của thủ tục
nhập/xuất dữ liêu.
- u cầu học sinh tìm ví dụ cụ thể.
- Hỏi: Khi viết lệnh nhập/xuất dữ liệu cho
biến xâu, có gì khác so với biến mảng các
ký tự.
- Dẫn dắt: Ta có thể sử dụng lệnh gán để
nhập giá trị cho biến xâu. Cấu trúc chung:
tên_biến_xâu:=hằng_xâu;
- Yêu cầu học sinh tìm một ví dụ cụ thể.
4. Tham chiếu đến từng ký tự của xâu.
- Giới thiệu cấu trúc chung.
- Hỏi: Có gì giống và khác nhau so với
cách tham chiếu đến từng phần tử của
mảng.
- u cầu học sinh tìm một ví dụ.
5. Kiểm tra kiến thức.
- Chiếu nội dung bài tập kiểm tra kiến
thức:
Var st:string[1]; c:char;
Begin
c:=st[1]; {1}
c:=st; {2}
End.
- Hỏi: Trong hai lệnh {1} và {2}, lệnh nào
đúng?
- Xâu có 6 ký tự, dấu cách là một ký tự.
- Ký hiệu của xâu gồm một ký tự trống là
‘ ’. Xâu này có độ dài là 1.
- Ký hiệu của xâu rỗng là ‘ ’. Xâu này có
độ dài là 0.
3. Quan sát bảng để trả lời.
- Ví dụ: Readln(hoten);
- Ví dụ: Write(‘Ho ten ’,hoten);
- Viết một lệnh nhập nguyên cho cả xâu.
Viết lệnh gọn hơn, chương trình gọn.
- Ví dụ: St:= ‘HA NOI’;
4. Quan sát và suy nghĩ để trả lời.
- Giống cấu trúc chung khi tham chiếu
tên biến[chỉ số]
- Ví dụ: st[2].
5. Quan sát chương trình trên bảng và độc
- Lệnh {1} đúng.
- Thực hiện chương trình để học sinh tự
kiểm nghiệm suy luận.
. Gợi nhớ các phép toán đã học.
- Hỏi: Hãy nhắc lại các phép tốn đã học
trên kiểu dữ liệu chuẩn.
2. Tìm hiểu chức năng của một số phép
toán trong kiểu xâu qua một số ví dụ.
- Chiếu chương trình ví dụ:
Var st:string;
Begin
st:= ‘Ha’+‘Noi’;
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Yêu cầu học sinh tìm một số ví dụ khác.
- Hỏi: Chức năng của phép cộng ?
- Giới thiệu thêm một số ví dụ khác và yêu
cầu học sinh cho biết kết quả.
st:= ‘Ha’ +‘Noi’;
st:= ‘Ha ’+‘Noi’;
st:= ‘ ’ + ‘Ha Noi’;
st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’;
- Chiếu chương trình ví dụ về phép so
sánh xâu.
Var bo:boolean;
Begin
bo:= ‘AB’ < ‘AC’;
Write(bo);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
- Hỏi: Còn các phép so sánh nào nữa?
2. Quan sát ví dụ, suy nghĩ và trả lời.
- Quan sát chương trình.
- Kết quả cho ta: st = ‘HA NOI’
- Quan sát kết quả chương trình.
- Ví dụ: st:= ‘HA NOI’ + ‘Co ho
GUOM’. Kết quả:
st = ‘HA NOICo ho GUOM’
- Là phép toán nối xâu thứ hai vào cuối
xâu thứ nhất.
st:= ‘HaNoi’;
st:= ‘Ha Noi’;
st:= ‘ Ha Noi’;
st:= ‘Ha NoiViệtNam’;
- Quan sát chương trình để dự tính kết
quả.
- Kết quả là: TRUE
- Chiếu các ví dụ về các phép so sánh và
yêu cầu học sinh cho biết kết quả của các
phép so sánh đó.
‘AB’ < ‘ABC’
‘AC’ < ‘ABC’
- Lưu ý cho học sinh: Một xâu có độ dài
nhỏ hơn có thể lớn hơn (>) xâu có độ dài
lớn.
chứng suy luận.
- Có các phép <, <=, >=, <>, =
- Kết quả: True.
- Kết quả: False.
<i><b>4: Củng cố(5'):</b></i>
Nhắc lại những nội dung đã học:
- Khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu];
- Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln();
- Tham chiếu đến từng ký tự trong xâu: tên_biến[chỉ_số].
- Phép ghép xâu: ký hiệu là +, được sử dụng để ghép nhiều xâu thành một xâu
- Các phép so sánh: =, <>, >, <, <=, >=: thực hiện việc so sánh hai xâu.
<i>5: Dặn dò (1')</i>
- Về nhà xem phần kiến thức lý thuết còn lại trong bài, bao gồm các thủ tục và hàm liên quan
đến xâu, sách giáo khoa trang 70 - 72.
V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:
...
...
...
...
...
<b>Tiết KIỂU DỮ LIỆU XÂU (TIẾT 2/2)</b>
Ngày soạn: 28/11/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC TIÊU</b>
<i><b>1. Kiến thức</b></i>
- Biết được sự lợi ích của các hàm và thủ tục liên quan xâu trong ngơn ngữ lập trình
Pascal.
- Nắm được cấu trúc chung và chức năng của một số hàm và thủ tục liên quan đến xâu
của ngơn ngữ lập trình Pascal.
- Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài
tập đơn giản liên quan.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<i><b>1. Chuẩn bị của giáo viên</b></i>
- Máy vi tính, máy chiếu projector để giới thiệu ví dụ, sách giáo viên.
<i><b>2. Chuẩn bị của học sinh</b></i>
- Sách giáo khoa.
<b>III. HOẠT ĐỘNG DẠY-HỌC</b>
1. Ổn định lớp:
2. Kiểm tra bài cũ:
Câu hỏi: Xâu là gì? Nêu cách khai báo biến xâu? Cho ví dụ?
3. Nội dung bài mới
<b>Tg</b> <b>Hoạt động của giáo viên </b> <b>Hoạt động của học sinh</b>
<b>ĐVĐ: </b>Chúng ta đã biết xâu là gì? Và
một số các phép toán trên xâu. Bây
giờ chung ta sẽ học về một số thủ tục
chuẩn dùng để xử lí xâu.
Chú ý quan sát trên bảng.
Giới thiệu cấu trúc chung của hàm
length(st) lên bảng.
- Hỏi: Ý nghĩa của Length và của st?
- Chiếu chương trình ví dụ:
Var st:string;
Begin
st:= ‘Ha Noi’;
Write(length(st));
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của hàm length() là gì?
- Chiếu đề bài tập ứng dụng: Viết chương
trình nhập một xâu, in ra màn hình số ký
tự ‘a’ có trong xâu.
2. Giới thiệu cấu trúc chung của hàm
Upcase(ch).
- Chiếu chương trình ví dụ:
Var ch:char;
Begin
<b>2. Các thao tác sử lí xâu:</b>
1. Quan sát cấu trúc chung.
- Length: là tên hàm, có nghĩa là độ dài,
st: là một biểu thức xâu ký tự.
- Quan sát chương trình để dự tính kết
quả.
- Kết quả là: 6
- Quan sát kết quả của chương trình.
- Hàm cho số lượng ký tự của xâu st.
2. Quan sát cấu trúc chung của hàm
Upcase.
ch:= ‘h’;
Write(upcase(ch));
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của hàm upcase()?
- Chiếu bài tập ứng dụng: Viết chương
trình nhập một xâu, in ra màn hình xâu đó
dạng in hoa.
3. Giới thiệu cấu trúc chung của hàm
Pos(s1,s2).
- Chiếu chương trình ví dụ:
Var vt:byte;
Begin
vt:=Pos(‘cd’, ‘abcdefcd’);
Write(vt);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của hàm pos?
- Thay tham số của hàm Pos trong
chương trình bằng Pos(‘k’, ‘abc’). Hỏi
kết quả của hàm bằng bao nhiêu?
- Chiếu bài tập ứng dụng: Viết chương
trình nhập vào một xâu st. Xét xem trong
xâu có dấu cách hay khơng?
- Hỏi: Có cách giải nào khác?
- Kết quả là: H
- Quan sát kết quả của chương trình.
- Cho giá trị là chữ cái in hoa của ch.
Var st:string;
Begin
readln(st);
For i:=1 to length(st) do
write(upcase(st[i]));
End.
3. Quan sát cấu trúc chung của hàm Pos
và các ví dụ để biết chức năng.
- Quan sát chương trình để dự tính kết
quả.
- Kết quả là: 3
- Quan sát kết quả của chương trình.
- Hàm cho giá tri là một số nguyên là vị
trí của xâu st2 trong xâu st2.
- Bằng không 0.
Var st:string;
Begin
readln(st);
if pos(‘ ’, st)<>0 then write(‘Co’)
else write(‘Khong’);
End.
- Có thể sử dụng For để tìm dấu cách
trong xâu.
4. Giới thiệu cấu trúc chung của hàm
copy(st,vt,n).
- Chiếu chương trình ví dụ:
Var st:string;
Begin
st:=copy(‘bai tap’,3,4);
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của hàm copy?
- Thay các tham số của hàm copy trong
chương trình ví dụ trên như sau và hỏi kết
quả in ra màn hình:
Copy(‘abc’,1,5)
Copy(‘abc’,5,2)
Copy(‘abc’,1,0)
- Thực hiện chương trình để học sinh thấy
kết quả.
5. Giới thiệu cấu trúc chung của thủ tục
delete(st,vt,n);
- Chiếu chương trình ví dụ:
Var st:string;
Begin
st:= ‘HaNoi’;
delete(st,3,2);
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi chức năng của thủ tục delete();
- Thay lệnh gán st:= ‘HaNoi’; và thủ tục
- Quan sát chương trình để dự tính kết
quả.
- Kết quả là: ‘i ta’
- Quan sát kết quả của chương trình.
- Hàm cho giá trị là một xâu ký tự được
lấy trong xâu st, gồm n ký tự bắt đầu tại
vị trí vt.
Cho giá trị là: ‘abc’
Cho giá trị là xâu rỗng
Cho giá trị là xâu rỗng
- Quan sát kết quả của chương trình để
kiểm nghiệm suy luận.
5. Quan sát cấu trúc chung của thủ tục
Insert và các ví dụ.
- Quan sát chương trình để dự tính kết
quả.
st=’Hai’
- Quan sát kết quả của chương trình.
- Thủ tục thực hiện việc xóa đi trong biến
xâu st gồm n ký tự, bắt đầu từ vị trí vt.
xóa bởi các lệnh sau và hỏi kết quả in ra
màn hình.
st:=’abc’; Delete(st,1,5);
st:=’abc’; Delete(st,5,2);
st:=’abc’; Delete(st,1,0);
- Chiếu bài tập ứng dụng: Viết chương
trình nhập một xâu và xoá đi các dấu cách
thừa ở đầu xâu.
6. Giới thiệu cấu trúc chung của thủ tục
Insert(st1,st2,vt);
- Chiếu chương trình ví dụ:
Var st1,st2:string;
Begin
st2:=‘HaNoi’;
st1:= ‘ ’;
insert(st1,st2,3);
Write(st);
readln;
End.
- Hỏi: Kết quả của chương trình in ra màn
hình?
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi chức năng của thủ tục insert();
- Thay lệnh gán st2:=‘HaNoi’; và thủ tục
chèn bởi các lệnh như sau và hỏi kết quả:
st2:=‘ef’; Insert(‘abc’,st2, 5);
st2:=‘ef’; Insert(‘abc’,st2, 0);
* Hoạt động rèn luyện kĩ năng:
1. Xác định bài toán.
- Chiếu nội dung đề bài lên bảng.
- Hỏi: Các nhiệm vụ chính khi giải quyết
bài toán này?
- Hỏi: Trong bài này, ta cần sử dụng
những hàm và thủ tục nào?
2. Chia lớp làm 3 nhóm. Yêu cầu viết
st:= ‘abc’;
Var st:string;
begin
readln(st);
while st[1]= ‘ ’ do delete(st,1,1);
writeln(st);
readln;
end.
6. Quan sát cấu trúc chung của thủ tục
Insert.
- Quan sát chương trình để dự tính kết
quả.
- Kết quả st2=’Ha Noi’
- Quan sát kết quả của chương trình.
- Thủ tục thực hiện việc chèn xâu st1 vào
trong biến xâu st2 bắt đầu tại vị trí vt.
st2= ‘efabc’;
st2= ‘abcef’;
HS: Quan sát trả lời:
1. Quan sát, suy nghĩ để trả lời.
- Vào: Một xâu ký tự bất kỳ.
- Ra: Một xâu chỉ có 1 ký trắng giữa hai
từ.
- Xố mọi dấu cách thừa đầu xâu và cuối
xâu.
chương trình lên bìa trong.
- Thu phiếu trả lời. Chiếu kết quả lên
bảng. Gọi học sinh nhóm khác nhận xét,
đánh giá và bổ sung.
3. Chiếu chương trình mẫu giáo viên đã
viết để chính xác hóa lại cho học sinh.
2. Thảo luận theo nhóm để viết chương
trình.
- Thông báo kếtquả.
- Nhận xét và bổ sung những thiếu sót của
nhóm khác.
3. Quan sát và ghi nhớ.
<b>4. Củng cố và dặn dò:</b>
- Củng cố:
Nhắc lại một số hàm và thủ tục liên quan đến xâu.
Nhắc lại cấu trúc câu lệnh.
<b>- Bài tập về nhà</b>: Giải bài tạp số 10 trang 80.
V. TỰ RÚT KINH NGHIỆM
...
...
...
...
...
...
...
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
- Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên
quan.
-Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một ký tự,...
<i><b>2.Kỹ năng:</b></i>
<b>II. PHƯƠNG PHÁP: </b> Thực hành + Vấn đáp tái hiện
<b>III. CHUẨN BỊ:</b>
1. Giáo viên: Giáo án, SGK, máy chiếu.
2. Học sinh: Chuẩn bị bài ở nhà.
<b>IV. TIẾN TRÌNH LÊN LỚP:</b>
1.<b>ỔN ĐỊNH LỚP</b>(1’):
2.<b>KIỂM TRA BÀI CŨ</b>(3’): Đưa bài toán lên máy chiếu như sau
Hãy cho biết quả của một số hàm và thủ tục chuẩn sau đây:
S=’THUC HANH TIN HOC’
S1=’BAI TAP’);
Length(s)->?
Insert(S1,S,0)->?
a.<i>Đặt vấn đề(1’):</i> Hôm nay chúng ta học bài “bài tập và thực hành5(t1)” để kiểm tra một số
thuật toán, một số thủ tục và hàm xử lý xâu.
b.Triển khai bài mới:
<i><b>HOẠT ĐỘNG CỦA THẦY VÀ TRỊ</b></i> <i><b>NỘI DUNG KIẾN THỨC</b></i>
<b>Hoạt động 1(20’)</b>
<b>(Tìm hiểu cách khai báo biến, sử dụng</b>
<b>hàm và thủ tục trong chương trình)</b>
Gv:Đưa tuèng chương trình lên máy chiếu
để Hs quan sát và tìm hiểu.
-Giáo viên yêu cầu Hs gõ một số
chương trình sau vào NNLT Pascal, rồi
chạy chương trình để kiểm tra tính đúng
đắn của thuật tốn.
-Với mỗi ví dụ, Gv đi sâu vào giải
thích từng câu lệnh trực tiếp đáp ứng yêu
cầu của ví dụ, như vậy các em tiếp thu
nhanh hơn.
Hs: Soạn thảo từng ví dụ vào máy và tìm
hiểu cách sử dụng biến, hàm và thủ tục...
I.Tìm hiểu khai báo biến, các hàm và thủ
tục thông qua một số chương trình có sẳn:
VD 1 :
Var s1,s2 : String ;
x : Byte ;
Begin
Write('Nhap xau thu 1 : ');
Readln(s1) ;
Write('Nhap xau thu 2 : ');
Readln(s2) ;
x := length(s2) ;
If s1[1] = s2[x] then
Write('Trung nha')
else
Ví dụ 2 : Nhập 1 xâu, viết ra màn hình xâu đó theo
thứ tự ngược lại của các ký tự trong xâu .
Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó
nhưng đã được bỏ tất cả các ký tự là dấu cách .
Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu gồm
các ký tự số của xâu đó .
Gv:Yêu cầu hs kiểm tra với một số bộ dữ
liệu được nhập vào từ bàn phím và giải
thích từng câu lệnh ở trong 4 ví dụ.
<b>Hoạt động 2(17’)</b>
<b>(Rèn luyện kỷ năng lập trình)</b>
Gv:Đưa câu hỏi lên máy chiếu
Hãy cho biết hàm đổi ký tự thường thành
chữ in hoa?
End .
VD 2 :
Var i,k : Byte ;
a : String ;
Begin
Write('Nhap xau : ') ;
Readln(a) ;
k := length(a) ;
For i := k downto 1 do
Write(a[i]) ;
Readln ;
End .
VD 3 :
Var i,k : Byte ;
a,b : String ;
Begin
Write('Nhap xau : ') ;
Readln(a) ;
k := length(a) ;
b :='' ;
For i := 1 to k do
if a[i] <> '' then
b := b+a[i] ;
Write(b) ;
Readln ;
End .
VD 4 :
Var s1,s2 : String ;
i : Byte ;
Begin
Write('Nhap xau s1 : ') ;
Readln(s1) ;
s2 := '' ;
For i := 1 to length(s1) do
If ('0'<s1[i]) and (s1[i]<='9') then
s2 := s2 + s1[i] ;
Write(s2);
Readln ;
End .
<b>II.Vận dụng các câu lệnh, các hàm và</b>
<b>thủ tục để viết chương trình:</b>
Hs:Hàm Upcase(ch)
Gv:
Hãy viết đoạn chương trình đổi chữ
thường thành chữ in hoa?
Hs:Thực hành trên máy rồi trả lời câu hỏi
For i:=1 To Length(S) Do
Write(Upcase(S[i]);
Gv:Đưa câu hỏi bài 2 lên máy chiếu
Hãy nêu ý tưởng thuật toán đếm trong xâu
S có bao nhiêu ký tự là số?
Hs:Thực hành trên máy->Trả lời câu hỏi
Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then
Dem:=Dem+1;
Gv:Quan sát thực hành của hs và đưa ra
câu hỏi tiếp theo
Ngoài cách viết thuật tốn như trê ta cịn
có cách viết nào khác nửa?
Hs:
- Tách dãy từ xâu S thành một xâu con
chỉ có số (Ví dụ 4).
- Sử dụng hàm Length(S1)
Gv:Yêu cầu Hs thử sử dụng cách 2 để
kiểm chứng
xâu S bất kỳ và đưa ra màn hình xâu in
hoa.
Var S : String ;
i : Byte ;
Write('Nhap xau S : ') ;
Readln(S) ;
For i:=1 To Length(S) Do
Write(Upcase(S[i]);
Readln;
End.
Bài2:Hãy viết chương trình nhập vào một
xâu bất kỳ (có cả ký tự và ký tự số) và đưa
ra màn hình có bao nhiêu ký tự là số?
Ví dụ:
S=’08bC156546CD’ =>Dem=8
Var S:String;
i, Dem:Byte;
Begin
Write(‘Nhap xau S=’);Readln(S);
Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then
Dem:=Dem+1;
Write(‘Tong so ky tu la so’,Dem);
Readln;
End.
4.CỦNG CỐ(2’):
- Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.
- Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,...
5.DẶN DỊ(1’): Đưa lên màn hình máy chiếu như sau:
-Tiết sau học tiết: Tiết 32: Bài tập và Thực hành 5(t2)
-Bài tập về nhà: 10,11/79(SGK)
- Xem và đọc trả lời các câu hỏi sau:
1.Hãy viết chương trình nhập vào từ bàn phím xâu S và đếm xâu S có bao nhiêu dấu
cách?
2.Hãy viết chương trình nhập từ bàn phím xâu S và tách một xâu con từ xâu S bắt đầu từ
vị trí 5 và lấy 7 ký tự?
V. TỰ RÚT KINH NGHIỆM
...
...
...
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
- Hs tự xây dựng một số thật toán về xâu và soạn thảo trong NNLT Pascal.
- Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên
quan.
2.<i><b>Kỹ năng:</b></i>
-Khai báo biến kiểu xâu.
- Nhập, xuất giá trị cho biến xâu.
- Duyệt qua tất cả các ký tự của xâu.
- Sử dụng được các hàm và thủ tục chuẩn.
3.<i><b>Thái độ:</b></i>
II.<b>PHƯƠNG PHÁP: </b> Thực hành + Vấn đáp tái hiện
III.<b>CHUẨN BỊ:</b>
1. Giáo viên: Giáo án, SGK, máy chiếu.
2. Học sinh: Chuẩn bị bài ở nhà.
IV. <b>TIẾN TRÌNH LÊN LỚP:</b>
1. Ổ<b>N ĐỊNH LỚP</b>(1’):
2. <b>KIỂM TRA BÀI CŨ</b>(3’): Gọi một Hs lên bảng viết
Hãy nêu cú pháp và ý nghĩa các hàm và thủ tục cơ bản xử lý xâu? Mỗi thủ tục hoặc hàm lấy
một ví dụ?
a.<b>Đặt vấn đề(1’):</b> Hôm nay chúng ta học bài “Bài tập và Thực hành5(t2)” để kiểm tra một
số thuật toán, một số thủ tục và hàm xử lý xâu.
b.<b>Triển khai bài mới:</b>
<b>HOẠT ĐỘNG CỦA THẦY VÀ TRỊ</b> <b>NỘI DUNG KIẾN THỨC</b>
<b>Hoạt động 1(15’)</b>
<b>(Tìm hiểu cách khai báo biến, sử dụng</b>
<b>hàm và thủ tục trong chương trình)</b>
Gv:Đưa nội dung bài tập lên máy chiếu
Hãy gõ chương tình và chạy thử với các bộ
test như sau:
A=’abccba’
A=’fgđhfs’
Hs:Quan sát trên màn hình máy chiếu và
SGK để gõ chương trình vào NNLT Pascal.
Với hai bộ test trên thì kết quả xuất ra màn
hình như thế nào?
Hs: Thực hành rồi trả lời kết qua.í
Gv: Hãy sửa lại chương trình trên mà
khơng sử dụng biến P?
Hs:Thảo luận theo nhóm (2Hs/máy)
-Dùng biến kt
-Soạn thảo chương trình
-Chạy thử chương trnhf với bộ Test
trên.
Gv:
I.Soạn thảo chương trình và tìm hiểu cách
khai báo biến và một số câu lệnh:
Nhập vào từ bàn phím một xâu. Kiểm tra
xâu đó có phải là xâu đối xứng hay khơng.
Xâu đối xứng có tính chất: đọc nó từ phải
sang trái cũng thu được kết quả giống như
đọc từ trái sang phải (Còn gọi xâu là
palindrome).
a.Hãy chạy thử chương trình sau:
Var
i,x:Byte;
a,p:String;
Begin
Write(‘Nhap xau a=’); Readln(a);
P:=’’;
For i:=length(a) Downto 1 Do
p:=p+a[i];
If a=p Then Write(‘Xau là
palindrome)
Else Write(‘Xau khong phai la
palindrome);
Readln;
End.
b.Hãy viết lại chương trình trên, trong đó
khơng dùng biến xâu p?
Var
-Quan sát rồi đưa chương trình hồn chỉnh
lên máy chiếu để Hs so sánh
-Ngồi ra cịn có cách thứ 2:
While i<=(x div2) And (a[i]=a[x-i+1] Do
i:=i+1
If i>(x div 2) Then Write(‘Xau là
palindrome) Else Write(‘Xau khong phai la
palindrome);
<b>Hoạt động 2(22’)</b>
<b>(Rèn luyện kỷ năng lập trình)</b>
Gv:Đưa câu hỏi lên máy chiếu
S=’AbaCDacd’
Hãy cho biết số lần xuất hiện của mỗi chữ cái
tiếng Anh trong S ( không phân biệt chữ hoa
hay chữ thường)?
Hs:Đếm rồi trả lời.
Gv: Hãy nêu Input và Output của bài toán?
Hs:
Input:Nhập xâu S
Output: Đếm số lần xuất hiền chữ cái
tiếng anh
Gv:
Trong bảng chữ cái tiếng anh có bao nhiêu
chữ cái?
Hs:Gồm có 26 chữ cái
Gv:Hướng dẫn
Dem[A]:=0;
Dem[B:=0; …
Dem[Z=0;
Hãy viết câu lệnh khởi tạo các biến trên
như thế nào?
Hs:Sử dụng câu lệnh For
Gv: Hãy viết đoạn chương trình đếm số lần
xuất hiện chữ cái trong tiếng Anh?
Hs: Suy nghĩ trả lời
If S[i] in ['A'..'Z'] Then
Begin
S[i]:=upcase(S[i]);
Dem[S[i]]:=Dem[s[i]]+1;
End;
Gv:Yêu cầu hoạt động theo nhóm
Var
Dem:array['A'..'Z'] Of Byte;
Write(‘Nhap xau a=’); Readln(a);
Kt:=True;
X:=length(a);
For i:=1 To x div 2 Do
If a[i]<> a[x-i+1] Then kt:=False;
If Kt Then Write(‘Xau là palindrome)
Else Write(‘Xau khong phai la
palindrome);
Readln;
End.
II.Vận dụng kiểu dữ liệu xâu để lập trình:
Bài 2: Viết chương trình nhập từ bàn phím một
xâu S và thơng báo số lần xuất hiện của mỗi
chữ cái tiếng Anh trong S ( không phân biệt
chữ hoa hay chữ thường).
Input:Nhập xâu S
S:...;
Write('Nhap xau S='); Readln(S);
For ch:='A' To 'Z' Do Dem[ch]:=...;
For i:=1 to Length(S) Do
If S[i] in ['A'..'Z'] Then
Begin
...
End;
For ch:='A' to 'Z' Do
If Dem[S[i]]<> 0 Then
Writeln(...);
Readln;
End.
Hãy viết chương trình đầy đủ và chạy thử
chương trình để để tra xem kết quả đúng?
Hs:Thảo luận theo nhóm để điền và chạy
chương trình rồi báo cáo kết quả.
Gv:Quan sát và đưa tồn bộ chương trình
lên máy chiếu và chạy thử để Hs quan sát.
Var
Dem:array['A'..'Z'] Of Byte;
S:string;
i:Byte;
ch:char;
Begin
Write('Nhap xau S='); Readln(S);
For ch:='A' To 'Z' Do Dem[ch]:=0;
For i:=1 to Length(S) Do
If S[i] in ['A'..'Z'] Then
Begin
S[i]:=upcase(S[i]);
Dem[S[i]]:=Dem[s[i]]+1;
End;
For ch:='A' to 'Z' Do
If Dem[S[i]]<> 0 Then
Writeln('so lan xuat hien ',ch,'
la',Dem[ch]);
Readln;
End.
<b>4.CỦNG CỐ(2’): </b>
- Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.
- Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,...
- Cần nắm thuật toán đếm số lần xuất hiện chữ cái tiếng anh, kểu tra xâu đối xứng.
<b>5. DẶN DỊ(1’):</b> Đưa lên màn hình máy chiếu như sau:
-Tiết sau học tiết: Tiết 33: Bài tập
-Bài tập về nhà:
1.Nhập từ bàn phím một xâu. Thay thế tất cả các cụm kí tự 'anh' bằng cụm kí tự 'em'.
V. TỰ RÚT KINH NGHIỆM
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
- Làm thế nào để quản lý tồn bộ thơng tin trên của học sinh ?
- Mỗi thơng tin trên có kiểu dữ liệu là gì ?
HS : Có thể quản lý mỗi dữ kiện trên là một mảng một chiều
=>Ngơn ngữ lập trình bậc cao có cách tốt hơn để quản lý dữ liệu trên -> Bản ghi .
<b>(Giới thiệu một số khái niệm)</b>
Gv:Đưa một bảng điểm trong SGK lên máy chiếu,
rồi chỉ rõ :
-Mỗi hàng được gọi là một bảng ghi
-Mỗi cột là một trường
Hs:Lắng nghe và quan sát bảng trên máy chiếu để
Hs biết rõ hơn.
<b>I.Một số khái niệm:</b>
Gv:
Bảng dữ liệu thường được xác định những giá trị
nào?
Hs:Dựa vào bảng và SGK để trả lời câu hỏi.
Gv:
Đưa lên máy chiếu các thuộc tính về bảng ghi.
Hoạt động 2(15’)
(Khai báo biến bảng ghi)
Gv: -Mỗi NN có một cách khai báo bảng ghi khác
nhau
-Ngôn ngữ Pascal không cho bạn khai báo biến
bản ghi trực tiếp mà phải khai báo biến bản ghi
thông qua khai báo kiểu bản ghi .
-Trước hết phải khai báo kiểu bản ghi sau đó
biến bản ghi được khai báo thông qua kiểu bản
ghi này .
GV : Làm thế nào để có thể khai báo được nhiều
biến bản ghi có cùng một kiểu ?
HS : GV sẽ gợi ý để học sinh đưa ra đó là sử dụng
kiểu mảng trong đó phần tử mảng sẽ có kiểu
bản ghi.
Gv:Ví dụ về khai báo bản ghi .
+Khai báo một kiểu bản ghi để xử lý bảng kết
quả thi của các học sinh .
Mỗi bản ghi sẽ bao gồm : Họ và tên của học
sinh (Hoten), ngày tháng năm sinh(Ngaysinh),
Hãy xác định kiểu dữ liệu cho các trường trên
(Mỗi nội dung trên là một trường của bản ghi)?
Hs:Vận dụng để viết cách khai báo
GV : Khi có nhu cầu thay đổi thông tin trong từng
trường, làm thế nào để truy cập thông tin vào
từng trường của bản ghi ?
Hs:Mỗi ngơn ngữ có một cách truy cập khác nhau
nhưng thường được viết là :
<Tên biến bản ghi>.<tên trường>
GV: Đưa ra một số ví dụ .
<b>Hoạt động 2(8’)</b>
<b>(Giới thiệu cách gán giá trị)</b>
Gv: Dựa vào cách khai báo biến bản ghi ở trên hãy
- Bản ghi thường được gọi là
Record, mỗi Record sẽ lưu trữ dữ
liệu về một đối tượng cần quản lí .
- Mỗi thuộc tính của đối tượng
tương ứng với một trường của bản
- Các ngơn ngữ lập trình thường
cho cách để xác định :
+ Tên kiểu bản ghi .
+ Tên các trường .
+ Kiểu dữ liệu của trường .
+ Cách khai báo biến .
+Cách tham chiếu đến trường
<Tên biến bản ghi> . <Tên trường>
<b>II.Khai báo biến bảng ghi:</b>
1.Cách khai báo kiểu :
Type <Tên kiểu bản ghi>=Record
<Tên trường 1> : <Kiểu trường 1>;
……… ………
<Tên trường n> : <Kiểu trường n>;
End ;
Var <Tên biến> : <Tên kiểu bản
ghi>;
Var
<Tên mảng> : Array[1..n] Of <Tên
kiểu bản ghi> ;
2.Ví dụ:
Type Hocsinh = Record
Hoten : String[30] ;
Ngaysinh : String[10] ;
NamNu :Boolean ;
Toan,Ly, Hoa, Van, Su, Dia :
Real ;
End ;
Var A, B : Hocsinh ;
Lop : Array[1..100] Of Hocsinh ;
Ví dụ :
cho biết cách gán A:=B hoặc B:=A đúng hay
sai?
Hs:A, B cùng kiểu nên gán cho nhau đúng
Gv:Giới thiệu và đưa lên máy chiếu về nội dung
gán.
Lop[i].Toan
Lop[i].Ly
……… với i là chỉ số nào đó của
Để truy cập vào từng trường của bản
ghi, ta viết:
<Tên biến bản ghi> . <Tên trường>
<b>III.Gián giá trị:</b>
Có 2 cách để gán giá trị cho bản
ghi .
- Dùng lệnh gán trực tiếp : Nếu A,
B là hai bản ghi cùng kiểu ta có
thể gán giá trị của A cho B bằng
câu lệnh gán:
Vd : B := A ; hoặc A := B ;
- Gán giá trị cho từng trường .
Dùng câu lệnh gán gán giá trị cho
các trường hoặc nhập từ bàn phím
.
A.Hoten := ‘Nguyen Van Tuan’ ;
Readln(a.Ngaysinh);
Chương trình xử lý bảng kết quả thi.
<b>V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:</b>
<b>TIẾT 32 KIỂU BẢN GHI ( Tiết 2/2 ) </b>
Ngày soạn: 10/01/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
I. <b>MỤC ĐÍCH</b>:
1.<i><b>Kiến thức: </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.
2.<i><b>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.
3.<i><b>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à
II.<b>PHƯƠNG PHÁP: </b> Vấn đáp tái hiện + Thảo luận nhóm
III. <b>CHUẨN BỊ:</b>
1. Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 và bút.
2. Học sinh: Chuẩn bị bài ở nhà.
IV. <b>TIẾN TRÌNH LÊN LỚP:</b>
1. <b>ỔN ĐỊNH LỚP</b>(1’):
2. <b>KIỂM TRA BÀI CŨ</b>(5'):
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:
TT Họ tên năm sinh Toán Lý Hoá Văn TB Xếp loại
1
...
n
3. BÀI MỚI:
* Đặt vấn đề(1’):
Kiểu dữ liệu bản ghi được dùng để mơ tả các đối tượng có cùng một số thuộc tính mà
các thuộc tính có thể có các kiểu dữ liệu khác nhau, chúng ta đã nghiên cứu lý thuyết về
kiểu bản ghi ở tiết trước. Hôm nay chúng ta vận dụng kiểu bản ghi để làm một số bài
tập.
*.Triển khai bài mới:
<b>HOẠT ĐỘNG CỦA THẦY VÀ TRÒ</b> <b>NỘI DUNG KIẾN THỨC</b>
Hoạt động 1(10’)
(Giới thiệu cách truy xuất đến trường)
Gv:
Bài tập 11/80(SGK):
Lưu ý vận dụng bài tập tiết 34
-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
đ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?
Hs:Đọc đề bài kết hợp với ví dụ trong SGK
để sửa lại chương trình
Gv:
-Phân tích từng câu lệnh của Hs đưa ra=>Kết
luận chương trình cụ thể
-Đưa tồn bộ chương trình lên máy chiếu và
chạy một vài bộ test để kiểm chứng thuật
tốn.
Hoạt động 2(24’)
(Rèn luyện tư duy lập trình)
Gv:Đưa câu hỏi bài tập 2 lên máy chiếu 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?
Hs:Lên bảng viết cách khai báo biến bản ghi
Gv: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
Hs: Thảo luận theo nhóm đã phân cơng
Gv:
-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.
(ở bài 13) những lệnh cần thiết để chương
trình đưa ra danh sách học sinh xếp loại A.
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
*Chương trình:
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('Nhap Ho ten',i); Readln(Hoten);
Write('NhapTBHK1',i); readln(DHK1);
Write('NhapTBKT2',i); Readln(DHK2);
End;
{Tinh TB Ca nam va Xep loai}
For i:=1 To n Do
Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3;
For i:=1 To n Do
With Hs[i] Do
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;
{Thong bao ket qua nhu sau}
Writeln('...');
Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |');
Writeln('...');
For i:=1 to n do
Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10);
Readln;
<b>4. CỦNG CỐ(3'):</b> Đưa lên máy chiếu ví dụ như sau:
-Cần nắm:
+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.
+Một số câu lệnh cơ bản
-Hai thuật toán: Sắp xếp, tính tốn
5. <b>DẶN DỊ(1’):</b> Đưa lên màn hình máy chiếu như sau:
- Câu hỏi ôn tập:
1. Câu lệnh rẽ nhánh và lặp?
2.Khai báo kiểu mảng một chiều, hai chiều, kiểu xâu? Các đoạn chương trình
nhập và xuất
3.Khai báo kiểu bản ghi? Các đoạn chương trình nhập và xuất bản ghi?
4.Xem lại các bài tập từ 1->11/80(SGK)
V. TỰ RÚT KINH NGHIỆM
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>(Giới thiệu cách truy xuất đến trường)</b>
Bài tập 11/80(SGK):
Gv:
-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
đ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?
Hs:Đọc đề bài kết hợp với ví dụ trong SGK
để sửa lại chương trình
Gv:
-Phân tích từng câu lệnh của Hs đưa
ra=>Kết luận chương trình cụ thể
-Đưa tồn bộ chương trình lên máy chiếu
<b>Hoạt động 2(24’)</b>
<b>(Rèn luyện tư duy lập trình)</b>
Gv:Đưa câu hỏi bài tập 2 lên máy chiếu 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?
Hs:Lên bảng viết cách khai báo biến bản
ghi
Gv: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
Hs: Thảo luận theo nhóm đã phân cơng
Gv:
-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
Hãy bổ sung thêm vào chương trình
Xeploai (ở bài 13) những lệnh cần thiết để
chương trình đưa ra danh sách học sinh xếp
loại A.
Writeln(' TT ',' Ho va Ten ', '
Xloai ');
For i:=1 to n do
If lop[i].xeploai='A' Then
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
thuật tốn.
<i>Type Bdiem=Record</i>
<i> Hoten:String;</i>
<i> DHK1,DHK2,TBCN:Real;</i>
<i> Xeploai:String[5];</i>
<i> End;</i>
<i>Var Hs:Array[1..60] Of Bdiem;</i>
<i> I,j,n:Byte;</i>
<i> Tg:Bdiem;</i>
<i>Begin</i>
<i> Write('Nhap so luong Hs n='); Readln(n);</i>
<i> For i:=1 To n Do</i>
<i> With Hs[i] Do</i>
<i> Begin</i>
<i> Write('Nhap Ho ten',i); Readln(Hoten);</i>
<i> Write('NhapTBHK1',i); readln(DHK1);</i>
<i> Write('NhapTBKT2',i); Readln(DHK2);</i>
<i> End;</i>
<i>{Tinh TB Ca nam va Xep loai}</i>
<i>For i:=1 To n Do</i>
<i> Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3;</i>
<i> With Hs[i] Do</i>
<i> Begin</i>
<i> If TBCN>=8.0 Then Xeploai:='Gioi';</i>
<i> if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha';</i>
<i> If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB';</i>
<i> If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu';</i>
<i> If TBCn<3.5 Then Xeploai:='kem';</i>
<i> End;</i>
<i>For i:=1 to n-1 Do</i>
<i> For j:=i+1 to n Do</i>
<i> If Hs[i].TBCN> Hs[j].TBCN Then</i>
<i> Begin</i>
<i> tg:=Hs[i];</i>
<i> Hs[i]:=Hs[j];</i>
<i> Hs[j]:=tg;</i>
<i> End;</i>
<i>{Thong bao ket qua nhu sau}</i>
<i>Writeln('...');</i>
<i>Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |');</i>
<i> For i:=1 to n do</i>
<i> With Hs[i] Do</i>
<i> Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10);</i>
<i>Readln;</i>
<i>End.</i>
<b>4. CỦNG CỐ(3'):</b> Đưa lên máy chiếu ví dụ như sau:
-Cần nắm:
+Cách khai báo biến bản ghi
+Cách nhập và xuất các trường trong bản ghi.
+Một số câu lệnh cơ bản
-Hai thuật tốn: Sắp xếp, tính tốn
<b>5. DẶN DỊ(1’</b><i>): </i>Đưa lên màn hình máy chiếu như sau:
- Câu hỏi ôn tập:
1. Câu lệnh rẽ nhánh và lặp?
2.Khai báo kiểu mảng một chiều, hai chiều, kiểu xâu? Các đoạn chương trình
nhập và xuất
3.Khai báo kiểu bản ghi? Các đoạn chương trình nhập và xuất bản ghi?
4.Xem lại các bài tập từ 1->11/80(SGK)
<b>V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:</b>
Ngày soạn: 25/01/2010
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. Mục tiêu bài học</b>
<i><b>1. Kiến thức</b></i>
- Ôn lại những kiến thức cơ bản của chương IV.
- Kiểu mảng: khai báo, truy xuất đến các phần tử của biến mảng.
- Kiểu xâu: khai báo, các thao tác xử lý trên xâu. Hàm và thủ tục sử dụng trên xâu.
- Kiểu bản ghi: khai báo, truy xuất đến các trường của kiểu bản ghi.
<i><b>2. kĩ năng:</b></i>vận dụng các kiểu dữ liệu có cấu trúc vào làm bài tập. Rèn luyện kĩ năng tư
duy thuật tốn trong lập trình.
<i><b>3. Thái độ :</b></i>nghiêm túc, hứng thú với môn học.
<b>II. Phương pháp, phương tiện dạy học</b>
Phương pháp: thuyết trình, câu hỏi gợi mở, hướng dẫn làm bài tập.
<b>III. Chuẩn bị của giáo viên và học sinh</b>
Giáo viên: giáo án, phấn, sổ điểm.
Học sinh: sgk, bút vở.
<b>IV. Tiến trình lên lớp</b>
1. Ổn định lớp học
2. Kiểm tra bài cũ
Câu hỏi: em hãy nêu các kiểu dữ liệu có cấu trúc đã học trong Pascal?
Trả lời: Kiểu mảng, kiểu xâu, kiểu bản ghi.
3. Nội dung bài học
<i>Đề mục</i> <i>Biết</i> <i>Hiểu</i> <i>Áp dụng</i>
<i>Kiểu mảng</i> <i>1.Mảng một chiều</i>
<i>- khái niệm: dãy hữu hạn các</i>
<i>phần tử cùng kiểu.</i>
<i>- Các quy tắc xác định kiểu</i>
<i>mảng 1 chiều</i>
<i>- Khai báo mảng 1 chiều</i>
<i>- tham chiếu đến phần tử thứ</i>
<i>i của mảng 1 chiều.</i>
<i>2. Mảng 2 chiều</i>
<i>- khái niệm</i>
<i>- cách xác định kiểu dữ liệu</i>
<i>là kiểu mảng 2 chiều</i>
<i>- cách khai báo </i>
<i>- Truy xuất đến phần tử i,j</i>
<i>của mảng 2 chiều.</i>
<i>Nắm được kiểu dữ liệu mảng</i>
<i>một chiều.</i>
<i>biết cách khai báo kiểu dữ liệu</i>
<i>mảng một chiều.</i>
<i>Nhập, in và truy xuất các phần</i>
<i>tử mảng 1 chiều</i>
<i>Khái niệm mảng 2 chiều, cách</i>
<i>khai báo mảng 2 chiều.</i>
<i>sử dụng kiểu mảng 2 chiều khi</i>
<i>nào.</i>
<i>Khai báo kiểu mảng 1</i>
<i>chiều và mảng 2 chiều để</i>
<i>giải quyết một số bài tập.</i>
<i>Kiểu Xâu </i> <i>Khái niệm xâu là dãy kí tự</i>
<i>trong bảng mã ASCII. Mỗi kí</i>
<i>tự là một phần tử của xâu. </i>
<i>Nắm được kiểu dữ liệu là kiểu</i>
<i>xâu.</i>
<i>Cách khai báo biến kiểu xâu.</i>
<i>- Cách xác định kiểu dữ liệu</i>
<i>là kiểu xâu</i>
<i>- Khai báo biến kiểu xâu</i>
<i>- Các thao tác xử lý trên xâu</i>
<i>- Các hàm và thủ tục trên</i>
<i>xâu</i>
<i>Phép gán xâu và so sánh xâu.</i>
<i>Hiểu được ý nghĩa của các</i>
<i>hàm được sử dụng trên kiểu</i>
<i>xâu.</i>
<i>Sử dụng đúng mục đích</i>
<i>của các hàm và thủ tục</i>
<i>trên xâu trong việc giải</i>
<i>Kiểu bản</i>
<i>ghi</i> <i>Khái niệm bản ghi dùng đểmô tả các đối tượng có nhiều</i>
<i>thuộc tính. Nhưng các thuộc</i>
<i>tính có thể có kiểu dữ liệu</i>
<i>khác nhau.</i>
<i>- mỗi thuộc tính gọi là 1</i>
<i>trường</i>
<i>- Cách xác định kiểu dữ liệu</i>
<i>bản ghi.</i>
<i>- Tham chiếu đến các trường</i>
<i>của bản ghi.</i>
<i>- Khai báo biến kiểu bản ghi.</i>
<i>- Phép gán giá trị của kiểu</i>
<i>bản ghi.</i>
<i>Khái niệm kiểu bản ghi.</i>
<i>Khai báo được kiểu dữ liệu là</i>
<i>kiểu bản ghi.</i>
<i>Cách truy xuất đến các trường</i>
<i>của biến kiểu bản ghi.</i>
<i>Phân biệt được hai cách gán</i>
<i>giá trị của kiểu dữ liệu là kiểu</i>
<i>bản ghi.</i>
<i>Khai báo kiểu dữ liệu</i>
<i>kiểu bản ghi cho từng bài</i>
<i>toán cụ thể.</i>
<i>Sử dụng kiểu dữ liệu kiểu</i>
<i>bản ghi để giải quyết bài</i>
<i>tập liên quan đến nó.</i>
<i>b) Bài tập</i>
Bài tập: nhập xâu st từ bàn phím. Hãy thực hiện các cơng việc sau:
- Xố hết các kí tự trắng trong xâu
- Kiểm tra xem xâu đó có phải là xâu đối xứng hay không.
Hướng dẫn: sử dụng hàm length(st) và thủ tục delete(st, n, m) để làm câu a.
Tạo 1 xâu mới bằng cách đảo ngược xâu cũ. Sau đó kiểm tra nếu xâu mới bằng xâu
cũ thì xâu đó là xâu đối xứng khơng thì ngược lại
<i>V. Củng cố và dặn dò</i>
- Các em về nhà xem lại những kiến thức đã học ở chương vừa qua và làm hết các bài tập
có trong sách giáo khoa và sách bài tập để tiết sau kiểm tra 1 tiết.
V. TỰ RÚT KINH NGHIỆM
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>Hoạt động của GV và HS</b> <b>Nội dung</b>
HĐTP1:
H1: Sử dụng kiểu dữ liệu nào và cách khai báo?
- Trả lời:
Kiểu mảng một chiều:
Var A:array [1..100] of integer;
H2: Khai báo biến như thế nào?
- Yêu cầu HS viết chương trình nhập mảng A.
- Chỉnh sửa bài làm của HS.
H3: Số chẵn là số như thế nào?
- Nếu có số lượng số chẵn trong dãy thì tìm số
lượng số lẻ được hay khơng? - Nếu được thì tìm
bằng cách nào?
H4: Sử dụng câu lệnh nào để viết?
<b>Hoạt động của GV và HS</b> <b>Nội dung</b>
- u cầu HS hồn thành chương trình của câu a.
- Nhận xét, chỉnh sửa bài làm của HS.
- Nếu có số lượng số chẵn trong dãy thì tìm số
lượng lẻ bằng cách: n - số lượng số chẵn.
TL: If ... then...
HĐTP 2:
H1: Nêu thuật toán kiểm tra 1 số có phải là số
ngun tố hay khơng?
- Yêu cầu HS viết chương trình dựa theo thuật
Hd: Sử dụng câu lệnh nào?
- u cầu HS hồn thành đoạn chương trình câu b.
- Nhận xét, đánh giá:
- Gợi ý để HS kết hợp hai đoạn chương trình thành
một chương trình hồn chỉnh cho cả bài.
<i><b>+ </b></i>
<b>Hoạt động của GV và HS</b> <b>Ghi bảng</b>
- Yêu cầu HS liệt kê 6 số hạng đầu của dãy
Fiponaci.
- Liệt kê: 0, 1, 1, 2, 3, 5.
H1: Đoạn chương trình nhập từ bàn phím số
nguyện dương như thế nào?
H2: Số hạng tổng quát thứ n như thế nào?
TL: Fn = Fn-1 + Fn-2
- Gợi ý: Để viết chương trình này ta cần bao
nhiêu biến phụ?
H3: sử dụng câu lệnh nào trong bài này?
TL: Dùng 2 biến phụ (F1, F2)
- Yêu cầu HS viết chương trình tìm số hạng
thứ n.
- Gọi 1 HS hồn chỉnh lại chương trình.
- Nhận xét, chỉnh sửa, đánh giá bài làm.
Chính xác hố bài 6/trang79.
+ Hoạt động 3: Củng cố (2ph)
Cấu trúc lệnh: While ... do ... và For ... do ...
4. Dặn dò: - Về nhà làm các bài tập tiếp theo.
<b>V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:</b>
<i>TIẾT 36: </i>
Ngày soạn: 5/02/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I.Mục tiêu bài học</b>
1. Kiến thức
- Kiểm tra lại những kiến thức cơ bản đã học của chương III.
3. Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra.
<b>II. Chuẩn bị của giáo viên và học sinh</b>
Giáo viên: đề kiểm tra
Học sinh: bút, sgk, vở ghi.
<b>III. Nội dung bài học</b>
1. Ổn định lớp học
<b>2. Đề kiểm tra</b>
<b>Phần 1: trắc nghiệm</b>
Câu 1: Chỉ số của mảng có thể là kiểu gì ?
a)Kiểu số thực, kiểu logic . b) Kiểu miền con, kiểu kí tự
c) Kiểu miền con, kiểu kí tự d) Kiểu số nguyên, ki ểu số thực
e) a và c
Câu 2: S1= ‘chao bạn’; S2 = ‘Xin ’. Kết quả của thủ tục Insert (S2,S1,1) là:
a. ‘hao ban’ b. ‘ Xin chao ban’ c. ‘ chao ban xin’ d. kết quả khác
Câu 3: Giới hạn số chiều của mảng là bao nhiêu ?
a. 255 chiều b. 256 chiều c. Vô hạn d. 2 chiều
Câu 4 : Chức năng của thủ tục Delete(st,vt,n) ?
a.Xoá xâu b. Xoá n phần tử trong xâu c. Chèn xâu d. Tạo xâu mới
Câu 5: Chương trình sau cho kết quả là gì ?
Var a, b : String;
Begin
Write(‘nhap xau ho ten thu nhat: ’); readln(a);
Write(‘nhap xau ho ten thu hai : ’); readln(b);
If length(a)> length(b) then write(a)
Else write(b);
Readln
End.
a)Xâu có độ dài lớn nhất b) Độ dài lớn nhất của hai xâu
c)Kí tự cuối cùng của xâu dài hơn d) Kết quả khác
Câu 6: Trong ngơn ngữ lập trình Pascal, để tìm vi trí xuất hiện đầu tiên của xâu ‘hoa’
trong xâu S ta có thể viết bằng cách nào trong các cách sau đây?
A. S1:=’hoa’; i:=Pos(S1,’hoa’); B. i:=Pos(‘hoa’,S);
C. i:=Pos(S,’hoa’); D. i:=Pos(‘hoa’,’hoa’);
Câu 7: Trong ngơn ngữ lập trình Pascal, với xâu kí tự có các phép tốn là?
A. Phép cơng, trừ, nhân, chia B. Chỉ có phép cộng
A. Mảng các kí tự; B. Dãy các kí tự trong bảng mã ASCII;
C. Tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
D. Tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh.
Câu 9: Trong ngôn ngữ lập trình Pascal, với khai báo mảng A: Array[1..100,
A. A[i],[j] B. A[i][j] C.A[i;j] D. A[i,j]
Câu 10: Trong ngơn ngữ lập trình Pasca,l đoạn chương trình sau đưa ra màn hình kết
quả gì?
For i:=10 to 1 do Write(i,’ ‘);
A. 1 2 3 4 5 6 7 8 9 10 B. Đưa ra 10 dấu cách
C. 10 9 8 7 6 5 4 3 2 1 D. Không đưa ra kết quả gì
<b>Phần 2: Tự luận</b>
Để quản lý việc bán hàng trong một cửa hàng với các thông tin về các mặt hàng: tên mặt
hàng, giá trị mặt hàng, ngày sản xuất, ngày hết hạn sử dụng. Hãy viết chương trình quản lý
việc bán hàng với các thơng tin của n mặt hàng có trong cửa hàng trên với các yêu cầu sau:
- Hãy khai báo kiểu dữ liệu để quản lý n mặt hàng trên
Ngày soạn: 9/02/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>V. TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG</b>:
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
V. TỰ RÚT KINH NGHIỆM
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
V. TỰ RÚT KINH NGHIỆM
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
Ngày soạn: 10/05/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
V. TỰ RÚT KINH NGHIỆM
Ngày soạn: 15/03/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
Ngày soạn: 30/03/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
- Củng cố lại các kiến thức về xâu ký tự, 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
- Nâng cao kĩ năng viết và sử dụng chương trình con.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<i><b>1. Chuẩn bị của giáo viên</b></i>
- Máy vi tính, tổ chức tại phịng máy để học sinh có được các kĩ năng cơ bản trong việc tổ
chức và sử dụng chương trình con trong lập trình.
<i><b>2. Chuẩn bị của học sinh</b></i>
- Sách giáo khoa.
<i><b>1. Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1,s2) và cangiua(s)</b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Tìm hiểu hai thủ tục catdan(s1,s2) và
cangiua(s).
- Chiếu nội dung thủ tục catdan(s1,s2);
- Hỏi: Đầu vào và đầu ra của thủ tục này?
- Hỏi: Chức năng của thủ tục là gì?
- Yêu cầu học sinh cho một ví dụ minh họa.
- Chiếu nội dung thủ tục: cangiua(s);
- Hỏi: Đầu vào của thủ tục?
- Hỏi: Thủ tục thực hiện cơng việc gì?
- Giáo viên chú ý: Có thể nhắc học sinh 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
1. Quan sát thủ tục catdan() và trả lời câu hỏi
của giáo viên.
- Vào: xâu ký tự s1.
- Ra: biến xâu ký tự s2.
- Thực hiện việc tạo xâ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.
- S1= ‘abcd’ thì S2= ‘bcda’
- Quan sát, suy nghĩ và trả lời.
- Đầu vào là một xâu ký tự S không quá 79 ký
tự.
khơng nằm trong thủ tục này.
2. Tìm hiểu chương trình của câu b, sách giáo
khoa, trang 103, 104.
- Chiếu chương trình lên bảng.
- Hỏi: Chức năng của chương trình.
- Giới thiệu cho học sinh các thủ tục chuẩn:
gotoxy(x,y); delay(n); và keypressed;
- Thực hiện chương trình để giúp học sinh thấy
kết quả của chương trình.
2. Quan sát chương trình trên bảng và theo dõi
dẫn dắt của giáo viên.
- Yêu cầu người sử dụng nhập một xâu ký tự.
Đưa xâu đó ra màn hình có dạng dịng chữ
chạy giữa màn hình văn bản 25*80.
- Quan sát trên màn hình để đối chiếu với kết
quả mà học sinh tự suy luận tính được.
<i><b>2. Hoạt động 2:</b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Tìm hiểu yêu cầu đề bài.
- Chiếu nội dung yêu cầu lên bảng.
- Yêu cầu học sinh tìm ra vấn đề mới trong bài
tập này.
- Yêu cầu học sinh lập trình trên máy.
- Yêu câu học sinh thực hiện chương trình và
nhập dữ liệu test.
- Đánh giá kết quat lập trình của học sinh.
1. Quan sát yêu cầu trên bảng.
- Về cơ bản, giống như nhiệm vụ mà câu b đã
làm. Chỉ khác là chương trình câu b ln cho
xâu ký tự chạy ở dòng 12, còn trong bài này
xâu ký tự phải chạy ở dịng bất kỳ. Vì vậy phải
truyền tham số quy định dòng chạy cho thủ
tục.
- Độc lập viết chương trình vào máy và báo
cáo kết quả thử nghiệm.
- Nhập dữ liệu theo test của giáo viên và báo
cáo kết quả
<b> ĐÁNH GIÁ CUỐI BÀI</b>
<i><b>Câu hỏi và bài tập về nhà</b></i>
- Viết thủ tục chaychu(s,dong) nhận tham số là xâu S gồm không quá 79 ký tự và một biến
ngun Dong. In ra màn hình dịng chữ xác định bởi S chạy ở dòng Dong. Viết chương trình và
thực hiện có sử dụng thủ tục này.
- Chuẩn bị bài cho bài thực hành số 7: Xem trước nội dụng của bài thực hành số 7, sách giáo
khoa, trang 105.
V. TỰ RÚT KINH NGHIỆM
<b>BÀI THỰC HÀNH SỐ 7</b>
Ngày soạn: 25/03/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC TIÊU</b>
<i><b>1. Kiến thức:</b></i>
- Củng cố lại các kiến thức về chương trình con: Thủ tục, hàm, tham số biến và tham
số giá trị, biến toàn bộ và biến cục bộ.
<i><b>2. Kĩ năng:</b></i>
- Sử dụng được chương trình con để giải quyết trọn vẹn một bài tốn trên máy tính.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<i><b>1. Chuẩn bị của giáo viên</b></i>
- Máy vi tính, tổ chức tại phịng máy để học sinh có được các kĩ năng cơ bản trong
việc tổ chức và sử dụng các chương trình con trong lập trình.
<i><b>2. Chuẩn bị của học sinh</b></i>
- Sách giáo khoa.
<b>III. HOẠT ĐỘNG DẠY-HỌC</b>
<i><b>1. Hoạt động 1: Tìm hiểu việc xây dựng các hàm, thủ tục và chương trình thực hiện các</b></i>
<i><b>việc liên quan đến tam giác. </b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
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à
tamgiac. Chiếu các hàm và thủ tục lên
bảng.
- Hỏi: Chức năng của mỗi chương trình
con?
- Có các tham số nào? Tham số nào ở dạng
1. Quan sát các chương trình con, các lệnh
và các khai báo tham số.
- Chức năng của mỗi chương trình con:
daicanh(); tính độ dài ba cạnh a, b, c của
tam giác r.
chuvi():real; Cho giá trị là chu vi của tam
giác r.
dientich():real; Cho giá trị là diện tích của
tam giác r.
tinhchat(); khẳng định tính chất của tam
giác: đều, cân hoặc vuông.
hienthi(); hiển thị tọa độ ba đỉnh của một
Kh_cách():real; cho giá trị là khoảng cách
giữa hai điểm.
tham số biến và tham số nào ở dạng tham
số giá trị.
2. Tìm hiểu chương trình câu b, sách giáo
khoa trang 106.
- Chiếu chương trình câu b.
- Hỏi: Chương trình thực hiện cơng việc
gì?
- Thực hiện chương trình để giúp học sinh
thấy được kết quả.
- Thay tham biến thành tham trị để học
sinh thấy được sự sai khác.
- Tham số giá trị p,q.
2. Quan sát chương trình, dự tính chức
năng của chương trình.
- Nhập vào tọa độ ba đỉnh của tam giác và
khảo sát tính chất của tam giác: cân,
vuông, đều. In ra chu vi và diện tích của
- Quan sát kết quả trên màn hình để đối
chiếu với kết quả tự tính được.
- Quan sát và ghi nhớ kết quả để thấy được
hiệu ứng thay đổi của tham trị và tham
biến.
<i><b>2. Hoạt động 2: Rèn luyện kĩ năng lập trình.</b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Phân tích yêu cầu của đề bài.
- Chiếu nội dung yêu cầu lên bảng.
- Chia lớp thành 2 nhóm.
+ Nhóm 1: Nêu câu hỏi phân tích để
giải quyết bài tốn
+ Nhóm 2: Trả lời câu hỏi phân tích
của nhóm 1 để tìm ra cách giải quyết
bài tốn.
- Giáo viên góp ý bổ sung cho câu hỏi
phân tích và trả lời phân tích.
1. Quan sát u cầu.
- Nhóm 1: Đặt câu hỏi.
+ Dữ liệu vào.
+ Dữ liệu ra.
+ Cần sửa những chỗ nào trong
chương trình câu b.
+ Thuật tốn để đếm số lượng các
loại hình tam giác
- Nhóm 2: Trả lời câu hỏi phân tích.
+ Cho trong tệp, phải viết lệnh đọc
dữ liệu trong tệp
+ Ba số nguyên dương là số lượng
của ba loại hình tam giác. Ba số
được ghi trên ba dịng của một tệp.
+ Cần thay đoạn chương trình nhập
dữ liệu bằng một chương trình con
để đọc dữ liệu từ tệp
TAMGIAC.INP. Thay đoạn chương
trình in kết quả ra màn hình bằng
một chương trình con để in ba số
nguyên dương là số lượng ba loại
hình ra tệp TAMGIAC.OUT
+ Thuật tốn:
Nếu deu thì d:=d+1
2. Lập trình.
- Yêu cầu học sinh lập trình trên máy.
Giáo viên tiếp cận từng học sinh để sửa
lỗi cần thiết.
- Yêu cầu học sinh nhập dữ liệu vào
của giáo viên và báo cáo kết quả của
chương trình.
- Đánh giá kết quả của học sinh.
ngược lại thì v:=v+1;
2. Độc lập viết chương trình, thực
hiện chương trình đối với test tự
tạo.
- Thông báo kết quả cho giáo viên
- Nhập dữ liệu của giáo viên và báo
cáo kết quả.
<b>IV. ĐÁNH GIÁ CUỐI BÀI</b>
<i><b>1. Những nội dung đã học</b></i>
- Cách xây dựng hàm và thủ tục, cách khai báo tham số dạng tham biến và tham trị.
- Tìm hiểu một số chương trình con liên quan đến tam giác
<i><b>2. Câu hỏi và bài tập về nhà</b></i>
- Cho file dữ liệu như ở bài tập trong hoạt động 2.
- Đọc bài đọc thêm: Ai là lập trình viên đầu tiên? Sách giáo khoa, trang 109.
- Chuẩn bị bài cho tiết học lý thuyết: Xem trước nội dụng bài <i>Thư viện chương trình</i>
<i>con chuẩn</i>, sách giáo khoa, trang 110.
V. TỰ RÚT KINH NGHIỆM
...
...
...
...
...
...
...
<b>THƯ VIỆN CHƯƠNGTRÌNH CON CHUẨN</b>
Ngày soạn: 05/04/2011
Giảng tại các lớp:
Lớp Ngày giảng Học sinh vắng mặt Ghi chú
11A
11E
<b>I. MỤC TIÊU</b>
<i><b>1. Kiến thức:</b></i>
- Biết được một số thư viện chương trình con.
<i><b>2. Kĩ năng:</b></i>
- Bước đầu sử dụng được các thư viện đó trong lập trình.
- Khởi động được chế độ đồ hoạ.
- Sử dụng được các thủ tục vẽ điểm, đường, hình trịn, hình ellipse, hình chữ nhật.
<b>II. ĐỒ DÙNG DẠY HỌC</b>
<i><b>1. Chuẩn bị của giáo viên</b></i>
- Máy chiếu projector để giới thiệu ví dụ.
<i><b>2. Chuẩn bị của học sinh</b></i>
<i><b>1. Hoạt động 1: </b></i>Tìm hiểu thư viện CRT.
<i>a. Mục tiêu:</i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Tìm hiểu thủ tục Clrscr.
- Yêu cầu học sinh nghiên cứu sách giáo
khoa, kể tên các chương trình con trong
thư viện CRT.
- Chiếu chương trình sau:
Begin
clrscr;
Readln;
End.
- Biên dịch chương trình. Hỏi: Tại sao xuất
hiện lỗi? Khắc phục như thế nào?
- Thêm Uses CRT; vào đầu chương trình
và thực hiện chương trình để học sinh thấy
kết quả. Chú ý cho học sinh ghi nhớ màn
hình trước lúc thực hiện chương trình này.
1 Tham khảo sách giáo khoa:
- Clrscr, textcolor, textbackground, gotoxy.
- Quan sát chương trình.
- Vì sử dụng thủ tục nhưng chưa sử dụng
thư viện CRT.
- Thêm lệnh USES CRT;
- Quan sát giáo viên thực hiện chương
trình.
- Hỏi: Chức năng của thủ tục Clrscr;
2. Tìm hiểu thủ tục textcolor.
- Chiếu chương trình ví dụ:
Begin
Write(‘Chua dat mau chu’);
textcolor(4);
Write(‘Da dat mau chu la do’);
Readln;
End.
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của lệnh textcolor(4);
3. Tìm hiểu thủ tục Textbackground.
- Chiếu chương trình ví dụ:
Uses CRT;
Begin
Textbackground(1);
Writeln(‘Da dat lai mau nen’);
Readln;
End.
- Thực hiện chương trình để học sinh thấy
- Hỏi: Chức năng của lệnh
textbackground(1);
4. Tìm hiểu thủ tục gotoxy.
- Chiếu chương trình ví dụ:
Uses CRT;
Begin
Writeln(‘Con tro dang dung o cot 10 dong
20’);
Gotoxy(10,20);
Readln;
End.
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của lệnh gotoxy(10,20);
- Quan sát chương trình
- Quan sát kết quả chương trình
- Đặt màu chữ thành màu đỏ.
- Quan sát chương trình
- Quan sát kết quả chương trình
- Đặt màu chữ nền thành màu xanh trời.
- Quan sát chương trình
- Quan sát kết quả chương trình
- Đưa con trỏ về vị trí cột 10 dịng 20.
<i><b>2. Hoạt động 2: </b></i>Tìm hiểu thư viện Graph của ngơn ngữ lập trình Pascal.
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Yêu cầu học sinh nghiên cứu sách giáo
khoa để trả lời các câu hỏi:
- Hỏi: Các dạng dữ liệu nào có thể được
hiển thị trên màn hình?
- Hỏi: Nhiệm vụ chính của Card màn hình?
- Hỏi: Khi nói màn hình có độ phân giải
640 x 480 là nói đến điều gì?
2. Đưa ra cấu trúc chung của thủ tục khởi
động đồ họa.
Initgraph(dr,md:integer;pth:string);
- Giải thích các thơng số trong thủ tục cho
học sinh.
- Cho học sinh thấy một ví dụ khởi động
đồ họa.
3. Giới thiệu thủ tục trở về chế độ văn bản
Closegraph;
- Yêu cầu học sinh khởi động chế độ đồ
họa và chuyển về chế độ văn bản.
- Văn bản và hình ảnh.
- Làm cầu nối giữa CPU và màn hình khi
thể hiện thơng tin.
- Là nói đến màn hình có 640 dịng và 480
cột.
2. Quan sát và theo dõi dẫn dắt của giáo
viên.
- Quan sát gáo viên thực hiện.
3. Quan sát và so sánh giữa hai chế độ văn
bản và đồ họa.
- Thay phiên nhau thực hiện việc chuyển
đổi giữa hai chế độ văn bản và đồ họa.
<i><b>3. Hoạt động 3: Tìm hiểu các thủ tục vẽ điểm, đường và các hình cơ bản.</b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Tìm hiểu thủ tục Putpixel
- Chiếu cấu trúc chung của thủ tục:
Putpixel(x,y:integer;color:word);
- Chiếu chương trình ví dụ.
Use graph
Begin
drive:=0;
initgraph(drive, mode, ‘c:\Tp\BGI’);
Putpixel(12,40,15);
readln;
End.
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của thủ tục Putpixel
2. Tìm hiểu thủ tục Line
- Chiếu cấu trúc chung của thủ tục:
Line(x1,y1,x2,y2:integer);
- Chiếu chương trình ví dụ trên nhưng thay
lệnh Putpixel(12,40,15); bằng lệnh
line(1,1,20,20);
- Thực hiện chương trình để học sinh thấy
1. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Quan sát chương trình.
- Quan sát kết quả của chương trình
- Vẽ một điểm có màu Color trên màn hình
tại tọa độ (x,y).
2. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Quan sát chương trình.
kết quả.
- Hỏi: Chức năng của thủ tục Line
3. Tìm hiểu thủ tục Lineto
- Chiếu cấu trúc chung của thủ tục:
Lineto(x,y:integer);
- Chiếu chương trình ví dụ trên nhưng thay
lệnh Putpixel(12,40,15); bằng lệnh
lineto(20,20);
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của thủ tục Lineto
4. Tìm hiểu thủ tục Lineto
- Chiếu cấu trúc chung của thủ tục:
Linerel(dx,dy:integer);
- Hỏi: Chức năng của thủ tục Linerel
5. Tìm hiểu thủ tục Circle, Ellipse,
Rectangle.
- Chiếu cấu trúc chung của các thủ tục:
Circle(x,y:integer; r:word);
Ellipse(x,y:integer;stangle,endangle,xr,yr:
word);
Rectangle(x1,y1,x2,y2:integer);
- Chiếu chương trình ví dụ
Use graph
Begin
drive:=0;
initgraph(drive, mode, ‘c:\Tp\BGI’);
Circle(12,40,30);
Ellipse(50,50,30,120,50,100:word);
readln;
End.
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của các thủ tục Circle,
Ellipse, Rectangle.
- Vẽ một đoạn thẳng từ điểm có tọa độ
(x1,y1) đến điểm có tọa độ (x2,y2).
3. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Quan sát chương trình.
- Quan sát kết quả của chương trình
- Vẽ một đoạn thẳng từ điểm hiện tại đến
điểm có tọa độ (x,y).
3. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Vẽ đọan thẳng nối điểm hiện tại với điểm
có toạ độ bằng tọa độ điểm hiện tại cộng
với dx, dy
5. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Quan sát chương trình.
- Quan sát kết quả của chương trình
+ Circle: Vẽ một đường trịn có tâm tại
(x,y) và bán kính r.
6. Tìm hiểu thủ tục Setcolor
- Chiếu cấu trúc chung của các thủ tục:
Setcolor(m:word);
- Chiếu chương trình ví dụ
Use graph
Begin
drive:=0;
initgraph(drive, mode, ‘c:\Tp\BGI’);
Circle(12,40,100);
Setcolor(4);
Circle(12,40,200);
readln;
End.
- Thực hiện chương trình để học sinh thấy
kết quả.
- Hỏi: Chức năng của thủ tục Lineto
endangle.
6. Quan sát cấu trúc chung và suy nghĩ để
trả lời câu hỏi.
- Quan sát chương trình.
- Quan sát kết quả của chương trình
- Setcolor(m: word): Đặt màu cho nét vẽ
với màu có số hiệu m.
<i><b>4. Hoạt động 4:</b></i> Tìm hiểu một số thư viện khác
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Yêu cầu học sinh nghiên cứu sách
giáo khoa, nêu tên các thư viện.
2. Yêu cầu học sinh nêu chức năng của
mỗi thư viện.
1. Các thư viện: System, Dos,
2. Chức năng mỗi thư viện:
- System: chứa các hàm và thủ tục
vào/ra sơ cấp.
- Dos: chứa các thủ tục như tạo thư
mục, đóng mở file...
- Printer: chứa các thủ tục liên quan
máy in.
<i><b>5. Hoạt động 5:</b></i>
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
1. Giới thiệu nội dung yêu cầu lên
bảng.
Định hướng cách giải quyết vấn đề cho
học sinh.
- Thủ tục để vẽ được một hình trịn có
tâm là điểm chính giữa màn hình
- Cần bao nhiêu lệnh như vậy, dùng cấu
trúc nào để điều khiển.
2. Chia lớp làm 3 nhóm. 01 nhóm viết
1. Quan sát yêu cầu của giáo viên.
Circle(x,y:integer;r:word);
- Cần 20 lệnh, nên dùng cấu trúc
For để chương trình ngắn gọn
lên bìa trong.
- Thu phiếu trả lời. Chiếu lên bảng, gọi
học sinh nhóm khác nhận xét đánh giá.
Sửa chương trình hoàn chỉnh cho học
sinh viết trên máy.
3. Thực hiện chương trình trên máy để
học sinh thấy kết quả.
- Nhận xét, đánh giá và bổ sung
thiếu sót của các nhóm khác.
3. Quan sát kết quả trên màn hình.
<b>IV. ĐÁNH GIÁ CUỐI BÀI</b>
<i><b>1. Những nội dung đã học</b></i>
- Thư viện chương trình con cung cấp những chương trình con chuẩn nhằm mở rộng
khả năng ứng dụng
- Khởi động chế độ đồ hoạ. Chuyển từ chế độ màn hình đồ hoạ sang chế độ màn hình
văn bản.