Tiến trình dạy- học: Hoạt động 1: Tìm hiểu khái niệm lâp trình và ngôn ngữ lập trình Hoạt động của học sinh Hoạt động của giáo viên Nội dung ghi bảng Suy nghĩ và trả lời câu hỏi: Có 5 bư
Trang 1 Hiểu ý nghĩa và nhiệm vụ của chương trình dịch Phân biệt được biên dịch và thông dịch.
+ Thái độ: Ham muốn tìm hiểu các ngôn ngữ lập trình.
II Chuẩn bị của giáo viên và học sinh
+ Giáo viên:
+ Học sinh: Đọc trước SGK, xem lại một số kiến thức Tin học lớp 10.
III Phương pháp: Diễn giải, đàm thoại, giải quyết tình huống có vấn đề.
IV Tiến trình dạy- học:
Hoạt động 1: Tìm hiểu khái niệm lâp trình và ngôn ngữ lập trình
Hoạt động của học sinh Hoạt động của giáo viên Nội dung ghi bảng
Suy nghĩ và trả lời câu hỏi:
Có 5 bước giải bài toán trên máy
NNLT diễn tả thuật toán)
B4: Hiệu chỉnh (Chạy thử, sửa
-Cho bài toán sau: Kết luận nghiện của phương trình ax + b=0
+ Hãy xác định Input, Output của bài toán trên
+ Hãy xác định các bước để giải bài toán trên
-Hệ thống các bước này chúng ta gọi là thuật toán Làm thế nào để máy tính điện tử có thể hiểu được thuật toán này ?
-Diễn giải: Hoạt động để diễn đạt
Bài 1
KHÁI NIỆM LẬP TRÌNH
VÀ NGÔN NGỮ LẬP
TRÌNH
Trang 2-Nghiên cứu nội dung trong SGK
và trả lời câu hỏi
+ 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ớ và thực hiện ngay
+ Chương trình viết bằng ngôn
ngữ lập trình bậc cao phải được
chuyển đổi thành chương trình
trên ngôn ngữ lập máy thì mới
thực hiện được
-Phải sử dụng một chương trình
dịch để chuyển đổi
Ngôn ngữ bậc cao dễ viết, dễ hiểu
Ngôn ngữ máy khó viết
một thuật toán thông qua một ngôn ngữ lập trình được gọi là lập trình
-Các em hãy cho biết khái niệm về lập trình ?
- Kết quả của hoạt động lập trình ?-Ngôn ngữ lập trình gồm những loại nào ?
-Theo các em chương trình được viết bằng ngôn ngữ bậc cao và chương trình được viết bằng ngôn ngữ máy khác nhau như thế nào ?
-Làm thế nào để chuyển một chương trình viết bằng ngôn ngữ bậc cao sang ngôn ngữ máy ?-Vì sao không lập trình trên ngôn ngữ máy để khỏi mất công chuyển đổi khi lập trình với ngôn ngữ bậc cao
Lập trình là việc sử dụng cấu
trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để
mô tả dữ liệu và diễn đạt các thao tác của thuật toán
Hoạt động 2: Tìm hiểu hai loại chương trình dịch: thông dịch và biên dịch
Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
-Nghiên cứu SGK và trả lời câu
-Nêu vấn đề: Em muốn giới thiệu
về trường mình cho một người khách du lịch quốc tế biết tiếng Anh, có hai cách thực hiện:
C1: Cần một người biết tiếng Anh dịch từng câu nói của em sang
Trang 3-Nghiên cứu SGK và trả lời câu
hỏi:
+Thông dịch:
B1: Kiểm tra tính đúng đắn của
câu lệnh tiếp theo trong chương
trình nguồn;
B2: Chuyển lệnh đó thành ngôn
ngữ máy
B3: Thực hiện các câu lệnh vừa
được chuyển đổi
đí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
tiếng Anh cho người khách Cách mày gọi lag thông dịch
C2: Em soạn nội dung giới thiệu
ra giấy và người phiên dịch dịch toàn bộ nội dung đó sang tiếng Anh rồi đọc cho khách nghe Cách này gọi là biên dịch
Tương tự chương trình dịch có hai loại là thông dịch và biên dịch
-Các em hãy cho biết tiến trình của thông dịch và biên dịch
-Chương trình dịch gồm thông dịch và biên dịch
a) Thông dịchB1: Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn;
B2: Chuyển lệnh đó thành ngôn ngữ máy
B3: Thực hiện các câu lệnh vừa được chuyển đổi
+Biên dịch:
B1: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn
B2: Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy
và có thể lưu trữ để sử dụng lại khi cần thiết
Hoạt động 3(3’): Củng cố kiến thức
-Khái niệm lập trình và ngôn ngữ lập trình
-Các ngôn ngữ lập trình: ngôn ngữ máy, ngôn ngữ bậc cao, hợp ngữ
-Khái niệm chương trình dịch
-Thông dịch và biên dịch
Trang 4- Phân biệt được ba thành phần:bảng chữ cái ,cú pháp và ngữ nghĩa
- Phân biệt được tên, hằng và biến biết đặt tên đúng
3 Tư duy và thái độ :
- Tư duy logic
Mỗi ngôn ngữ lập trình có một quy định riêng về những thành phần này
H ĐTP2: Giới thiệu bảng chữ cái
GV treo bảng phụ 1 (SGK Trang 9)
- Bảng chữ cái trong ngôn ngữ lập trình khác nhau có sự khác nhau Ví dụ bảng chữ cái trong ngôn ngữ lập trình C++ chỉ khác pascal là sử dụng thêm các
1 Các thành phần
cơ bản
- Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản là: bảng chữ cái ,cú pháp và ngữ nghĩa
a.Bảng chữ cái:Là tập
các kí hiệu dùng để viết
Trang 5Ví dụ : Xét 2 biểu thức A+B (1)
A,B là các số thực
I+J (2) với I,J là các số nguyênHỏi HS: Về ngữ nghĩa 2 biểu thức trên có khác nhau không?
- Mỗi nôn ngữ khác nhau cũng có ngữ nghĩa khác nhau
chương trình
b Cú pháp
- Là bộ quy tắc để viết chương trình
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ó
Tóm lại:
- cú pháp cho biết cách viết 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
- Các lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình biết chương trình không còn lỗi cú pháp thì mới
có thể dịch sang ngôn ngữ máy
- Lỗi ngữ nghĩa được
Trang 6phát hiện khi chạy chương trình
HĐ2: Giới thiệu Tên(15’)
Việc dặt tên trong các ngôn ngữ khác nhau là khác nhau,có ngôn ngữ phân biệt chữ hoa,chữ thường, có ngôn ngữ không phân biệt chữ hoa, chữ thường
- Ngôn ngữ lập trình pascal không phân biệt chữ hoa chữ thường nhưng một số ngôn ngữ lập trình khác(như C++) lại phân biệt chữ hoa, chữ thường
2 Một số khái niệm
- Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình
- Trong ngôn ngữ turbo pascal tên là một dãy liên tiếp không quá 127 kí tự bao gồm: chữ số, chữ cái hoặc dấu gạch dướivà bắt đầu bằng chữ cái hoặc gạch dưới
- Ví dụ : Trong ngôn ngữ
pascal+ Các tên đúng: A, Bre1, -ten,
+ Các tên sai: a bc, 6hgf, x# y,
- Ngôn ngữ lập trình có 3 loại tên: tên dành riêng, tên chuẩn, tên do người lập trình đặt
dành riêng: Là những
tên được ngôn ngữ lập trình quy định với ý nghĩa riêng xác định mà người lập trình không được dùng với ý nghĩa khác
- Tên dành riêng được gọi là
từ khoá
- Ví dụ: một số tên dành riêng:
- Trong pascal : program, uses, var, const,
- Trong c++: main, include, if,
- * Tên chuẩn: là nhữnh tên
được ngôn ngữ lập trình dùng với ý nghĩa nhất định
Trang 7cách trước khi sử dụng, không được trùng với tên dành riêng
- a,b,c là ba tên dùng để lưu ba hệ
- b Hằng và biến
- * Hằng: Là đại lượng có
giá trị không đổi trong quá trình thực hiện chương trình
- - Các ngôn ngữ lập trình thường có:
- + Hằng số học: số nguyên hoặc số thực
- + Hăng logic: Là cácgiá trị đúng hoặc sai
- Ví dụ ( bảng phụ 2:vd về hằng sgk trang 12)
- * Biến:Là đại lượng được
đặt tên, dùng để lưu trữ gí trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình
- Biến phải khai báo trước khi sử dụng
- C Chú thích:
- - Trong khi viết chương trình có thể viết các chú thích cho chương trình Chú thích không làm ảnh hưởng đến chương trình
- Trong pascal chú thích được đặt trong {} hoặc (*
*)
- Trong C++ chú thích đặt trong: /* */
HĐ4: Củng cố toàn bài:(4’)
Trang 8Giáo viên mở một chương trình pascal đơn giản có chứa các thành phần là các khái niệm của bài học, nếu không có máy thì sử dụng bảng phụ đẻ chỉ cho HS từng khái niệm trong chương trình.
Trang 9- Biết vai trò của chương trình dịch.
- Biết khái niệm biên dịch và thông dịch.
- Biết các thành phần cơ bản của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa.
- Biết các thành phần cơ sở của Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và
biến.
2 Về kỹ năng:
- Biết viết hằng và tên đúng trong một ngôn ngữ lập trình cụ thể
3 Về tư duy và thái độ:
- Nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin
học nhằm giải các bài toán thực tiễn ngày càng phức tạp
- Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy tính điện
tử
II Chuẩn bị của giáo viên và học sinh:
1 Giáo viên: chuẩn bị nội dung để giải bài tập cuối chương và một số câu hỏi trắc nghiệm của
2 Kiểm tra bài cũ.
3 Tiến trình tiết dạy:
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
5 ‘ - Đọc yêu cầu của câu hỏi
và bài tập cuối chương
trang 13 SGK
- Suy nghĩ để đưa ra
phương án trả lời
- Suy nghĩ, trả lời câu hỏi.
- ĐVĐ: Trước khi giải bài tập
trong SGK, các em tự ôn lại một số kiến thức mà chúng
ta đã học ở các bài trước dựa trên yêu cầu của câu hỏi trang 13 SGK
- Đặt câu hỏi số 1: Tại sao
người ta phải xây dựng các ngôn ngữ lập trình bậc cao?
- Chương trình viết bằng
ngôn ngữ bậc cao nói chung không phụ thuộc vào phần cứng máy tính
và một chương trình có thể thực hiện trên nhiều máy tính khác nhau
- Chương trình viết bằng
ngôn ngữ bậc cao dễ
Trang 1010 ‘
10’
- Suy nghĩ, trả lời câu hỏi.
- Suy nghĩ, trả lời câu hỏi,
cho ví dụ
- Suy nghĩ, trả lời, giải thích
từng câu hỏi,
- Đặt câu hỏi 2: Chương trình
dịch là gì? Tại sao cần phải
có chương trình dịch?
- Đặt câu hỏi 3: Biên dịch và
thông dịch khác nhau như thế nào?
- Phân tích câu trả lời của học
sinh
- Đặt câu hỏi 4: Hãy cho biết
các điểm khác nhau giữa tên dành riêng và tên chuẩn?
- Gọi hs trả lời và cho ví dụ
- Phân tích câu trả lời của học
sinh
- Đặt câu hỏi 5: Hãy tự viết ra
ba tên đúng theo quy tắc của Pascal
- Gọi 3 học sinh lên bảng cho
ví dụ về tên do người lập
trình đặt
- Nhận xét, sửa chữa, góp ý.
hiểu, dễ hiệu chỉnh và dễ nâng cấp
- Ngôn ngữ bậc cao cho
phép làm việc với nhiều kiêu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuộc toán
2 Câu 2:
- Chương trình dịch là
chương trình đặc biệt, có chức năng chuyển đổi chương trình được viết trên ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính cụ thể
để sử dụng về sau khi cần thiết
- Trình thông dịch lần lượt
dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc báo lỗi nếu không dịch được
4 Câu 4:
- Tên dành riêng không
được dùng khác với ý
nghĩa đã xác định, tên chuẩn có thể dùng với ý
nghĩa khác
VD:
Tên dành riêng trong
Pascal: program, uses, const,
Trang 1112’ - Đặt câu hỏi 6: Hãy cho biết những biểu diễn nào dưới
đây không phải là biểu diễn hằng trong Pascal và chỉ rõ trong từng trường hợp:
a) 150.0b) –22c) 6,23d) ‘43’
e) A20f) 1.06E-15g) 4+6h) ‘Ci) ‘TRUE’
- Nhận xét, giải thích
type, var, begin, end
Tên chuẩn: trong Pascal abs,
integer
5 Câu 5: Gợi ý: Trong
Pascal tên (do người lập
trình đặt) được đặt tuân theo các quy tắc sau:
255 kí tự)
- Tuy nhiên, không nên đặt
tên quá dài hay quá ngắn
mà nên đặt sao cho gợi ý nghĩa đối tượng mang tên đó
-Những biểu diễn sau đây không phải là hằng trong Pascal:
6,23 dấu phẩy phải thay bằng dấu chấm;
A20 là tên chưa rõ giá trị;
4+6 là biểu thức hằng trong Pascal chuẩn cũng được coi
là hằng trong Turbo Pascal;
‘TRUE’ là hằng xâu nhưng không là hằng lôgic
IV: Hoạt động củng cố 3’
-Ôn lại các khái niệm, các tên
-Chuẩn bị bài Cấu trúc chương trình.
Trang 123 Tư duy – thái độ:
Tư duy logic
Hoạt động 1: Kiểm tra bài cũ.( 10 ‘)
Câu 1: Có mấy loại tên trong ngôn ngữ Pascal ?
Câu 2: Khái niệm hằng và biến ?
Hoạt động 2: Cấu trúc chung.
10’ Cho học sinh đọc phần “ cấu trúc
chung “
Hỏi: “ Cáu trúc chung gồm máy
phần “
Yêu cầu học sinh đọc SGK phần
khai báo Sau đó trả lời câu hỏi
+ Trong phần khai báo có những
phần khai báo
Tập hợp số tự nhiên,nguyên, hữu tỉ, thực
Đọc sách
Bài: CẤU TRÚC CHƯƠNG TRÌNH
Hoạt động 3 Một số kiển dữ liệu chuẩn.
7’ Yêu cầu học sinh nghiên cứu sách
Trả lời các câu hỏi sau:
- Có bao nhiêu dữ liệu chuẩn
trong ngôn ngữ Pascal ?
- Trong ngôn ngữ Pascal, có
những kiểu nguyên nào thương dùng, phạm vi biểu diễn của mỗi loại
- Trong ngôn ngữ Pascal, có
những kiểu thực nào thương dùng, phạm vi biểu diễn của mỗi loại
- Có 4 kiểu : kiểu nguyên, thực, kí tự, lôgic
- Có 4 loại : Byte, word, integer, logint
- Có 2 loại: Real, extended
1.khai báo tên chương
trình
-program <tên chương trình>;
+ Tên chương trình: dongườI lập trình tự đặt.
+ví dụ: program vi_du;
2 Khai báo thư viện
uses <tên các thư viện>
+ ví dụ: trong pascal uses crt;
3 khai báo hằng
const <tên hằng=gía trị>;
+ ví dụ: N=100;
Trang 138’ Cho học sinh đọc ví dụ đơn giản
trong SGK
Giải thích từng dòng lệnh
4.khai báo biến
var <danh sách biến>;
Hoạt động 4 Khai báo biến.
10’ Yêu cầu học sinh nghiên cứu sách
GK và cho biết vì sao phải khai báo
biến ?
ĐỌC sách
Mọi biến dùng trong chương trình đều phải được khai báo tên biến và kiểu dữ liệu của biến Tên biến dùng để xác lập quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu giữ giá trị của biến
Khai báo biến
Var <danh sách biến>:<kiểu dữ liệu>;
• Danh sách biến: SGK
• Kiểu dữ liệu : SGK
Ví dụ: trong chương trình ta cần dùng biến a kiểu số nguyên, b kiểu
số thựcVar a : integer;
Khai báo x,y,z đúng, H sai
Hoạt động 4 Phần thân chương trình - ví dụ chương trình đơn giản
Dãy lệnh trong phạm vi được xác định bởi cặp dấu hiệu mở đầu và kết thúc
Trong pascal: Thân chương trình có dạng:
BEGIN [< Dãy lệnh>]
Cho học sinh quan sát
Ví dụ chương trình đơn giản
- Trong ngôn ngữ pascal: Program vd1;
Begin Write(‘chao cac ban’);
End.
- Trong ngôn
Trang 14Hai chương trình cùng thực
hiệnmột công việcnhưng viết bằng 2
ngôn ngữ khác nhau nên hệ thống
các câu lệnh trong chương trình
cũng khác nhau
nhận xét 2 chương trình trong 2 ngôn ngữ khác nhau
ngữ C++:
#include
<stdio.h>
main() { pri ntf(“ chao các ban”); }
V – Cũng cố
Xem có mấy loại kiểu dữ liệu chuẩn ?
Cấu trúc khai báo biến ?
VI – BTVN
Mỗi em cho ví dụ về Khai báo biến ( hôm sau trả lời)
V – Cũng cố.
Xem có mấy loại kiểu dữ liệu chuẩn ?
Cấu trúc khai báo biến ?
3 Tư duy – thái độ:
Tư duy logic.
Hoạt động 1: Kiểm tra bài cũ.( 10 ‘)
Câu 1: Nêu cấu trúc chung của một chương trình.
Câu 2: Nêu cấu trúc của các phần khai báo: tên chương trình, hằng, thư viện
Hoạt động 2: Đặt vấn đề.
10’ Trong toán học để thực hiện
được tính toán cần phải có các
tập số Đó là các tập số nào ?
Trong lập trình Pascal cũng Tập hợp số tự nhiên,nguyên, hữu tỉ, thực
Trang 15có các tập hợp, mỗi tập hợp có
1 giới hạn nhất định Đọc sách.
Hoạt động 3 Một số kiển dữ liệu chuẩn.
7’
Yêu cầu học sinh nghiên cứu
sách Trả lời các câu hỏi sau:
- Có bao nhiêu dữ liệu
chuẩn trong ngôn ngữ
Pascal ?
- Trong ngôn ngữ Pascal,
có những kiểu nguyên nào
thương dùng, phạm vi biểu
diễn của mỗi loại.
- Trong ngôn ngữ Pascal,
có những kiểu thực nào
thương dùng, phạm vi biểu
diễn của mỗi loại.
- Có 4 kiểu : kiểu nguyên, thực, kí tự, lôgic.
- Có 4 loại : Byte, word, integer, logint
- Có 2 loại: Real, extended.
Hoạt động 4 Khai báo biến.
10’ Yêu cầu học sinh nghiên
cứu sách GK và cho biết
vì sao phải khai báo
biến ?
ĐỌC sách.
Mọi biến dùng trong chương trình đều phải được khai báo tên biến
và kiểu dữ liệu của biến Tên biến dùng để xác lập quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu giữ giá trị của biến.
Khai báo biến
Var <danh sách biến> :<kiểu dữ liệu>;
• Danh sách biến: SGK
• Kiểu dữ liệu : SGK
Ví dụ: trong chương trình ta cần dùng biến a kiểu số nguyên, b kiểu
số thực Var a : integer;
Xem có mấy loại kiểu dữ liệu chuẩn ?
Cấu trúc khai báo biến ?
Trang 16- Biết được các phép toá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
2 Kỹ năng:
- 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
3 Tư duy và thái độ :
- Phát triển tư duy lôgic, linh hoạt, có tính sáng tạo
- Biết thể hiện về tính cẩn thận chính xác trong tính toán cũng như lập luậnII/ Chuẩn bị của GV & HS:
* Giáo viên:
- SGK, các tranh liên quan đến bài học
- Máy vi tính và máy chiếu Projector (nếu có)
+ Phép toán số học: + , - , *, / , DIV, MOD
+ Phép toán quan hệ: <, <=, > , >=, =, < > , giá trị logic (true hoặc false)
+ Phép toán lôgic: NOT , OR , AND
c) Tiến hành:
9’ Khi viết chương trình ta phải sử
* NNLT nào cũng sử dụng đến phép toán, câu lệnh gán và biểu thức, các khái niệm này chỉ được xét trong NNLT Pascal
1 Phép toán:
NNLT Pascal sử dụng một số phép toán như sau:
+ Số nguyên: + , - , *, / , DIV, MOD
Trang 17- Phép DIV, MOD được sử
dụng cho kiểu dữ liệu nào?
- Kết quả của phép toán quan hệ
thuộc kiểu dữ liệu nào?
Phép cộng, trừ, nhân, chia
Nghiên cứu SGK và cho biết các nhóm phép toán
- Chỉ được sử dụng cho kiểu số nguyên
- Kiểu logic
+ Số thực: + , - , *, / , + Phép toán quan hệ: <, <=, > , >=, =, < >
+ Phép toán logic: AND, OR, NOT
2/ Hoạt động 2: Tìm hiểu biểu thức:
a) Mục tiêu: HS cần biết về khái niệm biểu thức số học, biểu thức quan hệ, biểu thức logic và một số
hàm số học
b) Nội dung:
- Biểu thức số học nhận được từ hằng số, biến số và hàm số liên kết
- Nắm bắt được tuần tự các bước khi thực hiện biểu thức số học
- Biểu thức logic được cấu thành từ các biểu thức quan hệ
c) Tiến hành :
22’ - Trong toán học biểu thức là
trong toán học hay không ?
- Treo tranh có chứa các biểu
thức toán học lên bảng
Yêu cầu: HS sử dụng các phép
toán số học hãy biểu diễn các
biểu thức toán học thành biểu
4*x-2*y
2 Biểu thức số học:
- Là một dãy các phép toán + , - , *, / , DIV, MOD từ hằng biến kiểu số và các hàm
- Dùng dấu ( ) để qui định trình tự tính toán
VD: ( SGK - 25)
* Chú ý :Thứ tự thực hiện các phép toán:
+ Trong ngoặc trước, ngoài ngoặc sau
+ Nhân, chia, chia nguyên, chia lấy dư trước, cộng, trừ sau
Trang 18c b
a
c b
trong các thư viện chương trình
giúp người lập trình tính toán
nhanh hơn
- Treo tranh chứa bảng một số
hàm chuẩn
Yêu cầu: Học sinh điền thêm
một số thông tin với các chức
năng của hàm
- Cho biểu thức
x - 2x+1
x2 - 1
Hãy biểu diễn biểu thức toán
trong biểu thức trong NNLT
-Trong lập trình ta phải so sánh
2 giá trị nào đó trước khi thực
hiện lệnh bằng cách sử dụng
biểu thức quan hệ Biểu thức
quan hệ còn gọi là biểu thức so
sánh được dùng để so sánh 2 giá
trị đúng hoặc sai
- Cho một ví dụ về biểu thức
quan hệ
- Kết quả mà phép toán quan hệ
thuộc kiểu dữ liệu nào đã học?
x+1/(x-y)
((a+b+c)/((2*a /b)+c)) - (b*b-c)/a*c
- Hàm trị tuyệt đối, hàm căn bậc 2, hàm sin
- HS trả lời: 2*x*x+1
- HS chưa trả lời được
Nghiên cứu SGK - 26 và quan sát tranh vẽ, lên bảng điền tranh
- Suy nghĩ và trả lời:
(abs(x)-sqrt(2*x+1)/(x* 1)
x-3 Hàm số học chuẩn:
Cách viết cho một số hàm số học chuẩn :
Tên hàm (đối số)+ Đối số là một hay nhiều biểu thức số học đặt trong dấu ngoặc ( ) sau tên hàm
+ Kết quả của biểu thức quan
hệ là TRUE hoặc FALSE
VD: - 5 > 2
Trang 19-Biểu thức logic là biểu thức
quan hệ được liên kết với nhau
bởi phép toán logic
- Hãy quan sát ví dụ về biểu
3 Hoạt động 3: Tìm hiểu lệnh gán.
a) Mục tiêu: HS biết đọc chức năng cấu trúc chung của lệnh gán trong NN Pascal, viết lệnh đúng khi
lập trình
b) Nội dung:
- Lệnh gán dùng để tính giá trị một biểu thức và chuyển nó vào một biến
- Cấu trúc: Tên biến:= biểu thức
- Giải thích: Lấy 8 cộng với 1,
đem kết quả đặt vào i , ta được
y = 9
- Quan sát ví dụ và suy nghĩ để trả lời 6 Câu lệnh gán.
- Lệnh gán là cấu trúc cơ bản của mọi NNLT, thường dùng
để gán gái trị cho biến
Trang 20- Cần chú ý điều gì khi viết lệnh
gán?
- Phân tích câu trả lời của học
sinh sau đó tổng hợp lại
- Lệnh gán là gì ?
- Minh họa một vài ví dụ khác
khi sử dụng lệnh gán trên bảng
Treo tranh lên bảng và giới
thiệu một ví dụ về Pascal cho
- Vậy chương trên in ra màn
hình giá trị của i và j bằng bao
- Nhắc lại một số khái niệm mới về:
+ Các phép toán : Số học, quan hệ, logic
Trang 21+ Cấu trúc lệnh trong Pascal: tên_biến := biểu_thức;
- Làm các bài tập 5, 6, 7, 8 SGK trang 35 - 36
- Xem trước bài: Các thủ tục chuẩn vào/ ra đơn giản
Ngày soạn: 06/10/2007
Tiết thứ:……BÀI 7-8 THỦ TỤC CHUẨN VÀO/ RA ĐƠN GIẢN - SOẠN THẢO, DỊCH,
THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH
I Mục tiêu
1 Kiến thức:
+ Biết cá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.
2 Thái độ: Ham muốn tìm hiểu các biên soạn và thực hiện chương trình.
II Chuẩn bị của giáo viên và học sinh
+ Giáo viên: một số ví dụ.
+ Học sinh: Đọc trước SGK.
III Phương pháp:
+ Diễn giải, đàm thoại, giải quyết tình huống có vấn đề.
IV Tiến trình bài học:
Hoạt động 1: tìm hiểu thủ tục nhập dữ liệu từ bàn phím.
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
- Làm thế nào nhập giá trị cho bàn phím?
- Thủ tục READ sau khi dọc xong giá trị con trỏ không xuống dòng còn READLN là xuống dòng
- Thủ tục READLN không
có tham số có chức năng lamg gì? dừng chương trình
- Thủ tục READLN không
có tham số dừng chương trình
1 Nhập dữ liệu vào từ bàn phím
- Trong pascal ta dùng thủ tục chuẩn sau:
Read(danh sách biến vào);hoặc Readln(danh sách biến vào);
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
+ Khi nhập giá trị cho các biến thủ tục, những giá trị này được gõ cách nhau một dấu cách hoặc phím Enter
Trang 22Hoạt động 2: tìm hiểu thủ tụcđưa dữ liệu ra màn hình.
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
số thì thì thủ tục có tác dụng để làm gì?
- Trường hợp thủ tục WRITELN; không có tham
số thì thì thủ tục có tác dụng đưa con trỏ xuống dòng tiếp theo.
- Độ rộng, số chữ số thập phân là các hằng nguyên dương.
trong đó <Danh sách kết quả
ra>có thể tên biến đơn, biểu
thức, hằng.
Ví dụ: write(‘Nap so N:’); Readln(N);
- writeln sau khi đưa kết quả
ra con trỏ xuống dòng mới
- Ngoài ra trong TPcó quy cách đưa thông tin ra nàm hình sau:
+ Kết quả thực:
:<Độ rộng>:<số chữ số thập phân>
+ Kết quả khác:
:<Độ rộng>
ví dụ: Write(N:3);
Writeln(‘X=’,x:8:2);
Hoạt động3 : Tìm hiểu cách soạn thảo, dịch, thực hiện, hiệu chỉnh chương trình
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
- Nghe giảng
-Nghe giảng
Để thực hành trong TP ta khởi động bằng cách: Nháy dúp vào biểu tượng turbo pascal trên màn hình
-Trên máy cần có tệp:
Turbo.exe(file chạy) Turbo.tpl(file thư viện) Turbo.tph(file hướng dẫn)
• Một số tao tác thường dùng trong pascal:
- Khi soạn thảo muốn xuống dòng nhấn Enter.
- Ghi file vào đĩa: F 2
- Mở file đã có: F 3
- Biêng dịch chương trình: Alt +F 9
- Chạy chương trình: Ctrl +
F 9
- Đóng cửa sổ chương trình: Alt + F 3
- Thoát khỏi phần mền: Alt + X
Hoạt động :củng cố:
- Nhắt lại sự hoạt động của Write/Writeln, read/Readln
Trang 23- Cách soạn thảo,chạy chương trình, ghi vào đĩa, thoát khỏi TP
- Về nhà làm bài tập trong sách trang 35,36.
Ngày soạn :10/10/07
I/ Mục tiêu:
1 Về kiến thức:
- Biết được một chương trình Pascal hoà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
2 Về kỹ năng:
- 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 toán, hiệu chỉnh
- Bước đầu biết phân tích và hoàn thành một chương trình đơn giản trên Pascal hoặc Free Pascal
3 Về tư duy và thá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 hoàn thành,
II/ Chuẩn bị của giáo viên và học sinh:
+ 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
III/ Phương pháp: Gởi mở thông qua hoạt động tư duy.
IV/ Tiến trình bài dạy:
Hoạt động 1: Kiểm tra nội dung thực hành và khởi động máy.
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
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 dung thực hành của học sinh
- GV hướng dẫn học sinh khởi động máy, và khởi động chương trình Turbo Pascal hoặc Free Pascal
Hoạt động 2: Tìm hiểu một chương trình Pascal hoàn chỉnh.
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
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:
Trang 24- 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 F2 với tên PTB2.PAS.
+ Dịch và sửa lỗi cú pháp với tổ
HỎI: 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ả
+ Thực hiện chương trình với bộ
dữ liệu 1 ; 1 ; 1 Thông báo kết quả
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
end
readln(a, b, c);
x1:= (-b - sqrt(b*b - 4a*b*c))/(2*a);
x2:= (-b + sqrt(b*b - 4a*b*c))/(2*a);
Trang 25TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
- 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à chạy chương trình lên đĩa
- 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;
Hoạt động 4: Củng cố buổi thực hành và bài tập về nhà.
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
+ Phân tích bài toán để xác định
dữ liệu vào/ ra
+ Xác định thuật toán
+ Soạn 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
Ngày soạn :16/10/07
I Mục tiêu bài dạy:
1 Kiến thức:
- Hiểu nhu cầu của cáu trúc rẽ nhánh trong biểu diễn thuật toán
Trang 26- Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử dụng câu lệnh ghép.
2 Kĩ năng:
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản
- Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số bài toán đơn giản
Giảng giải + hoạt động của học sinh
IV Tiến trình bài dạy:
1 Ổn định lớp:
2 Kiểm tra bài cũ:
Bài toán: cho 2 số nguyên a, b; tìm Max(a,b)
Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập a, b
Nêu thuật toán tìm Max(a,b)
Hoạt động 1:
TG Hoạt động của giáo viên Hoạt động của học sinh Ghi bảng
GV: Giao nhiệm vụ cho HS
TG Hoạt động của giáo viên Hoạt động của học sinh Ghi bảng
H: Cho ví dụ về 1 câu điều
Trang 27GV: Chọn hai câu làm ví dụ
Từ đó phân tích cho học sinh
thấy cấu trúc rẽ nhánh thể
hiện trong ví dụ này
+ Nếu tối nay trời mưa thì
em nghỉ học ngược lại thì
em đi học…
(Có thể có nhiều câu khác nhau)
kiện:
+ Dạng thiếu: Nếu…thì…+ Dạng đủ: Nếu … thì … nếu không thì …
* Cấu trúc dùng để mô tả các mệnh đề như trên được gọi là cấu trúc rẽ nhánh thiếu và đủ
* Mọi ngôn ngữ lập trình đều
có các câu lệnh để mô tả cấu trúc rẽ nhánh
khoá Else không có dấu ; và
sau then, sau else chỉ có 1 lệnh
chương trình
GV: Với 2 dạng này, dạng nào
thuận tiện hơn?
- Điều kiện là biểu thức lôgic
- Câu lệnh, câu lệnh 1, câu lệnh
2 là 1 câu lệnh của Pascal
Hoạt động 4:
TG Hoạt động của giáo viên Hoạt động của học sinh Ghi bảng
GV: Muốn thực hiện nhiều
lệnh sau if hoặc sau then thì
làm thế nào?
→ Dẫn đến khái niệm và cách
dùng câu lệnh ghép: nếu trong
cấu trúc rẽ nhánh, sau THEN
có từ 2 lệnh trở lên thì gộp
thành câu lệnh ghép, đặt các
lệnh đó trong cặp từ khoá
Begin…end; với Pascal
H: Gọi học sinh nêu thuật
HS: Phát biểu ý kiến của
End;
Trang 28toán giải PT bậc hai?
GV: Nhận xét, bổ sung.
GV: Phân nhóm và yêu cầu
học sinh thảo luận nhóm để
viết chương trình thể hiện
thuật toán trên Ghi lời giải
vào bảng phụ
GV: Yêu cầu đại diện nhóm
lên treo bảng lời giải và trình
bày
Cho các nhóm khác nhận xét
GV: chính xác hoá lời giải
của HS và cho điểm
Đ: B1: Nhập a, b, c.
B2: Tính d = b2 – 4ac;
B3: + Nếu d < 0 thì pt vô nghiệm
+ Ngược lại thì pt có
2 nghiệm x1,2 =
a
d b
2
±
−
HS: Thảo luận theo nhóm
và trình bày lời giải vào bảng phụ:
HS: Đại diện nhóm lên treo
bảng lời giải và trình bày
Write(‘ Nhap a, b, c:’);
Readln(a,b,c);
d := b*b – 4*a*c;
If d < 0 then Write(‘ PT vo nghiem’) else
BeginWrite(‘ PT co nghiem :’);
VI Củng cố: GV tóm tắt các vấn đề cần nắm trong bài:
- Cú pháp, ý nghĩa của câu lệnh rẽ nhánh dạng đủ và dạng khuyết
- Cách sử dụng câu lệnh ghép
VII Bài tập về nhà:
- Học bài, trả lời câu 1, 2 trang 50 và làm bài 4 trang 51 sgk
- Viết chương trình tìm Max(a, b, c)
- Viết chương trình giải phương trình bậc nhất
- Chuẩn bị bài mới: Cấu trúc lặp
Ngày soạn :20/10/07
I Mục đích yêu cầu:
- Về kiến thức:
+ Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
+ Biết được cấu trúc chung của lệnh lặp FOR trong ngôn ngữ lập trình
+ Hiểu được cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO
- Về kỹ năng:Bước đầu sử dụng được lệnh lặp FOR để lập trình giải quyết được một số bài toán đơn giản
Trang 293 Nội dung dạy học:
* HĐ1: Tìm hiểu ý nghĩa của cấu trúc lặp
- Nếu giải bài toán trên với việc
in khoảng 10 dòng có từ
PASCAL?
- Có nhận xét gì về các dòng
lệnh trong chương trình trên?
- Đối với những thuật toán có
những thao tác phải thực hiện
lặp đi lặp lại một số lần thì máy
tính có thể thực hiện hiệu quả
thuật toán giải 2 bài toán trên
- Từ VD trên và nghiên cứu
thêm ở SGK hãy cho biết có
mấy loại cấu trúc lặp?
- Chương trình dài dòng
- Lặp lại nhiều lần với câu lệnh: Writeln
- HS làm việc theo nhómThuật toán 1:
B1: S=0; n=0B2: n → n +1B3: Nếu n > 20 thì chuyển đến B5
B4: S= S + n rồi quay lai b2
B5: Đưa S ra màn hình và kết thúc
Thuật toán 2:
B1: S=0; n=20B2: n → n -1B3: Nếu n < 1 thì chuyển đến B5
B4: S= S + n rồi quay lai b2
B5: Đưa S ra màn hình và kết thúc
+ Lặp với số lần chưa biết trước
* HĐ 2: Tìm hiểu cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO
- Số lần lặp của cả 2 thuật toán
trên là biết trước và như nhau
(20 lần)
- Giải thích từng thuật toán
2.Lặp với số lần biết trước và câu lệnh FOR - DO
- Cấu trúc lặp:
+ Dạng lặp tiến:
Trang 30- Giới thiệu câu lệnh FOR -
DO với 2 dạng tiến, lùi trong
Pascal
- Giải thích các thông số trong
câu lệnh
- Yêu cầu HS nghiên cứu SGK
và nêu hoạt động của lệnh FOR
- DO?
- GV treo bảng phụ 1 về sơ đồ
thuật toán lặp
- Gv treo bảng phụ 2 về cài đặt
các thuật toán ở VD trên
- Qua 2 chương trình trên có
- Trong đó:
+ Biến đếm là biến đơn, thường có kiểu nguyên.+ Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
- Hoạt động của lệnh DO
FOR-+ Dạng lặp tiến: câu lệnh viết sau từ khóa DO được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối,
+ Dạng lặp lùi: câu lệnh viết sau từ khóa DO được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
- Chú ý: Câu lệnh viết sau
DO không được thay đổi giá trị của biến đếm
* HĐ 3: Củng cố- Dặn dò
- Nắm lại các cấu trúc lặp
- Nhớ được 2 dạng tiến lùi của câu lệnh FOR - DO trong Pascal
Trang 31- Xem trước bài mới
Var i,S: integer;
BeginWrite (‘ Tong cac so nguyen tu 1 den 20 la:’);
Biến <= Giá tri cuối
Câu lệnh
Biến:= succ(biến)
Trang 32Thuật toán 1Program tong;
Var i,S: integer;
BeginWrite (‘ Tong cac so nguyen tu 1 den 20 la:’);
3 Tư duy ,thái độ:
-Rèn luyện phẩm chất cho người lặp trình
II Chuẩn bị của giáo viên và học sinh:
GV: Tổ chức cho học sinh tiếp thu kiến thức
HS:Chuẩn bị bài mới
III Phương pháp:
Thuyết trình,diễn giải,vấn đáp
+ H1: -Có thể xây dựng thuật toán Tổng _2 như sau để giải bài toán 2 GV trình bày
+H2:Theo thuật toán việc lặp lại số lần chưa biết trước có được kết thúc không?
Nhu vậy, việc lặp lại số lần
Trang 33HS lắng nghe(Hoạt động nhóm)
Nhóm trình bày kết quả
Bước 1:Nếu M=N thì UCLN:=M;rồi kết thúc
Bước 2:Nếu M>N thì M:=M-N rồi quay lai bước 1,Ngược lại
Để mô tả cấu trúc lặp như vậy,Pascal dùng câu lệnh while-do có dạng:
-Hsinh xem sơ đồ (hình 7)+H3:-VD1:Cho HS viết chương trình của bài toán -VD2:(SGK/47)Hãy xây dựng thuật toán tìm UCLN(đã học lớp 10)
GV nhận xét và hoàn chỉnh.HS trình bày chương trình
chưa biết trước sẽ được kết thúc khi điều kiện cho trước được thoả mãn
While <điều kiện> do <câu lệnh>;
Tronh đó:-Điều kiện là biểu thức logic;
-Câu lệnh là 1 câu đơn hoặc ghép
Hđ3:Cũng cố,dặn dò
Nhắc lại 1 số khái niệm mới
Nhắc lại cấu trúc câu lệnhBài tập về nhà
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
GV: - Soạn giáo án.
HS: - Học bài cũ và chuẩn bị bài tập.
III- Phương pháp dạy học:
Gợi mở và thuyết trình
IV- Tiến trình bài dạy:
Hoạt động 1: Kiểm tra bài cũ
Trang 34Câu hỏi 1: Trình bày cấu trúc câu lệnh rẽ nhánh và cấu trúc lặp ?
Hoạt động 2: Giải bài tập 4
Câu hỏi 1: Sử dụng lệnh If này gồm mấy nhánh ?
Câu hỏi 2: Hàm lấy giá trị tuyệt đối của biểu thức hay biến ?
If y>=x then z:= x+y Else z:= 0.5;
Câu 4b)
If (sqr(x-a) + sqr(y-b)) <= sqr(r) then z:=abs(x) +abs(y) Else z:= x+y;
Hoạt động 3: Giải bài tập 5
Trang 35Câu hỏi 1: Hãy khai triển biểu thức Y =∑
dưới dạng tường minh ?
Câu hỏi 2: Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị trong đoạn nào ?
Câu hỏi 3: Em hãy thử đưa ra phương pháp tính Y ?
Câu hỏi 4: Sử sụng cấu trúc điều khiển lặp nào là phù hợp ?
- 1 HS lên bảng giải bài 5a
- Các HS còn lại theo dõi
Y =
51
504
33
22
1 + + ++
Câu 5a) Uses crt;
Var y: real;
n: byte;
Begin Clrscr;
y:=0;
for n:=1 to 50 do y:= y + n/(n+1); writeln(y:14:6); readln;
Trang 36Ngày soạn: 10/11/07
Tiết thứ:…….Bài 11 : KIỂU DỮ LIỆU CÓ CẤU TRÚC.
I/ Mục tiêu:
- Về kiến thức:
+ Nắm được khái niệm mảng 1 chiều
+ Nắm được quy tắc mà NNLT xây dựng và sử dụng mảng một chiều
- Về kỹ năng:
+ Nhận biết được các thành phần trong khai báo kiểu mảng một chiều
+ Nhận biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình
+ Biết cách khai báo mảng đơn giản và chỉ số kiểu miền con của kiểu nguyên
- Về tư duy, thái độ:
+ Có tư duy đúng đắn trong việc áp dụng mảng 1 chiều để giải các bài toán đơn giản
II/ Chuẩn bị của gv, hs:
+ Giáo viên: Sgk, sbt, sgv, tranh sơ đồ
+ Học sinh: Sgk, sbt
III/Phương pháp:
Trực quan, thuyết trình kết hợp với hỏi - đáp
IV/ Tiến trình bài học:
Hoạt động 1: Tìm hiểu về sự cần thiết của chương IV(Kiểu dữ liệu có cấu trúc) và định nghĩa
- GV nêu lên sự cần thiết phải có kiểu dl có cấu trúc
- Tìm hiểu về mảng 1 chiều
- Hãy trình bày ý tưởng để giải bài toán trên
- Ta có thể viết ct bằng NN Pascal như sau:
Trang 37TG H/động của hs H/động của gv N ội dung ghi bảng
-Nếu ta viết bằng mảng 1 chi ều:
-So s ánh 2 ch/tr trên-Thế nào là mảng 1 chiều?
If cn>tb then d:=d+1;
Writeln('Nhiet do tr/binh tuan: ',tb:5:2);Writeln('So ngay nh/do cao hon nh/do t/binh la: ',d);
Type a = array[1 max] of real;
Var ndo:a; d,i,n: byte; t,tb: real;
BeginWriteln('Nhap so ngay: ');
Readln(n);
T:=0; d:=0;
For i:=1 to n do Begin
Writeln('Nhap vao nhiet do cua
Readln;
End
A/ Định nghĩa:sgk
Hoạt động 2: Tìm hiểu cách khai báo mảng 1 chiều
TG H/động của hs H/động của gv Nội dung ghi bảng
mảng 1 chiều? B/Khai báo: Cách 1: Khai báo trực tiếp:
Var <tên biến mảng>: array[kiểu chỉ số] of
+ Kiểu phần tử là kiểu dl của các phần tử
Trang 38- Lên bảng - Hãy khai báo mảng trong vd trên bằng cách khai báo
trực tiếp
- Để tham chiếu đến nh/độ của thứ 2 ta viết ndo[2]
1)Về kiến thức: Thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp: sắp xếp dãy số nguyên
bằng phương pháp trao đổi và tìm kiếm nhị phân
2)Về kỹ năng : Biết cách sử dụng mảng 1 chiều trong chương trình thể hiện các thuật toán ở
trên
3)Về tư duy thái độ :
+ Ý thức rèn luyện kỹ năng các thao tác trên mỗi kiểu dữ liệu có cấu trúc
+ Hứng thú tìm hiểu các thuật toán thường gặp trên các mô hình dữ liệu
II Chuẩn bị của giáo viên và học sinh:
1)Về giáo viên: Chuẩn bị 1 số bài tập liên quan đến tìm kiếm và sắp xếp trong mảng 1 chiều 2) Về học sinh: Xem lại 3 thuật toán đã học ở lớp 10 (Tìm GTLN của 1 dãy số nguyên, sắp xếp
bằng trao đổi và tìm kiếm nhị phân)
III Phương pháp : gợi mở
IV Tiến trình bài học :
1) Kiểm tra bài cũ (10ph) Trình bày thao tác nhập, xuất mảng 1 chiều
2) Nội dung bài mới :
• Input:dãy số đã cho (chưa sắp xếp )
Output: đưa ra dãy số đã sắp xếp
• Theo dõi Sgk/57
Vidụ 1: Sắp xếp dãy số nguyên bằng phương pháp trao đổi
Sgk/57
Trang 39lệnh trong thuật toán ở
khoá A=21 Hãy xác
hiểu những đoạn câu
lệnh trong thuật toán
tìm kiếm nhị phân ở ví
dụ 3 SGK trang 58
• Chia đôi 1 mảng đã sắp xếp rồi so sánh phần tử giữa lớn hơn hay nhỏ hơn giá trị A cần tìm ở bên phải hay bên trái của mảng
• Trả lời câu hỏi của giáo viên
1 Input :
2 Output:
• Xem Sgk trang 58
Ví dụ 2 : Tìm kiếm nhị phân Sgk trang 58
III.Củng cố : (5 ‘)
Nhắc lại kiểu mảng, những bài toán tìm kiếm, sắp xếp
IV.Bài tập về nhà : Yêu cầu học sinh chạy thử chương trình sắp xếp bằng phương pháp tráo đổi trong bài tập 1 Sgk trang 58
Trang 40Ngày soạn : 22/11/07
I/ Mục tiêu:
1/ Về kiến thức:
- Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều
- Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng
2/ Về kĩ năng:
- Nhận biết được các thành phần trong khai báo kiểu mảng hai chiều
- Nhận biết được định danh của một phần tử mảng hai chiều xuất hiện trong một chương trình Cách tham chiếu đến một phần tử của mảng hai chiều
- Viết được khai báo mảng hai chiều với các chỉ số thuộc kiểu nguyên
3/ Về tư duy và thái độ:
- Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính
- Rèn luyện được các phẩm chất cần thiết của người lập trình như: ý thức chọn và xây dựng kiểu dữ liệu khi thể hiện những đối tượng trong thực tế, ý thức rèn luyện kĩ năng sử dụng các thao tác trên mỗi kiểu dữ liệu
có cấu trúc, hứng thú tìm hiểu các thuật toán trên mỗi kiểu dữ liệu có cấu trúc Luôn muốn cải tiến chương trình nhằm nâng cao hiệu quả chương trình
II/ Chuẩn bị của giáo viên và học sinh:
1/ Giáo viên: Sách giáo khoa, bảng phụ.
2/ Học sinh: Sách giáo khoa.
III/ Phương pháp: Trực quan, suy luận, kiểm tra, giải quyết vấn đề.
IV/ Tiến trình bài học:
* Hoạt động 1: Kiểm tra bài cũ và khởi động bài mới.
2’
5’
5’
1 Ổn định lớp.
2 Kiểm tra bài cũ:
HS1: Tại sao mảng là kiểu dữ liệu
- Gọi HS lên bảng ghi lại cách khai
báo biến mảng một chiều?
- GV treo bảng phụ có hình minh
họa bảng cửu chương và đưa ra câu
hỏi: Làm thế nào để in ra một bảng
cửu chương có dạng như thế này?
- Để giải quyết vấn đề này, trước hết
chúng ta sẽ đi tìm hiểu thế nào là
* Hoạt động 2: Tìm hiểu về kiểu mảng hai chiều.
15’
- Sử dụng kiến thức về mảng một - Sử dụng 9 mảng một 2/ Kiểu mảng hai chiều: