sung hướng dẫn cho học - Chương trình viết bằng sinh trả lời câu hỏi số 1: 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[r]
Trang 1Ngày soạn: 01/09/09
Chương I : MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Tiết ….Bài 1 : KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
I Mục tiêu
+ Kiến thức:
Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ
Hiểu ý nghĩa và nhiệm vụ của chương trình dịch Phân biệt được biên dịch và thông dịch
+ 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 bài 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
TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
3’
4’
3’
-Quan sát bài toán và trả lời câu
hỏi
+Input: a, b
+Output: x=-b/a, vô nghiệm, vô
số nghiệm
+B1: Nhập a, b
B2: Nếu a<> 0 kết luận có
nghiệm x=-b/a
B3: Nếu a=0 và b<>0, kết luận
vô nghiệm
B4: Nếu a=0 và b=0, kết luận vô
số nghiệm
-Dùng ngôn ngữ lập trình
-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 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
Bài 1
KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
Trang 24’
3’
3’
-Nghiên cứu nội dung trong SGK
và trả lời câu hỏi
+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
+ Được một chương trình
+Ngôn ngữ máy, hợp ngữ và
ngôn ngữ bâc cao
-Nghiên cứu 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
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
Trang 3TG Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
5’
4’
3’
3’
-Nghiên cứu SGK và trả lời câu
hỏi:
+ Chương trình nguồn là chương
trình viết bằng ngôn ngữ lập trình
bậc cao
+ Chương trình đích là chương
trình thực hiện chuyển đổi sang
ngôn ngữ máy
-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
+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
-Theo các em đối với chương trình dịch: chương trình nào là chương trình nguồn và chương trình đích
-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 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ị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
+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ể
Trang 4B2: 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
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
Ngày soạn :06/09/09
Tiết … - Bài 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I Mục tiêu:
1 Kiến thức:
- Biết ngôn ngữ lập trình có ba thành phần cơ bản là: Bảng chữ cái, cú pháp và ngữ nghĩa hiểu được
ba thành phần này
- Biết một số khái niệm: Tên, tên chuẩn, tên dành riêng(từ khoá), hằng và biến
2 Kỹ năng:
- 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
- Thái độ cẩn thận, chính xác
II Chuẩn bị của giáo viên và học sinh;
1 GV: Bảng phụ, phấn, thước
2 HS: Đọc trước bài ở nhà
III Phương pháp
- Thuyết trình, vấn đáp, hoạt động nhóm
IV Tiến trình bài học
HĐ1: Các thành phần cơ bản (15’)
3’
-Chữ cái
-Cú pháp
-Ý nghĩa của điều cần diễn
tả
Lắng nghe
HĐTP1:Dẫn dắt vào baì
- Để diễn tả một ngôn ngữ tự nhiên
ta cần phải biết những gì?
- Các ngôn ngữ lập trình nói chung thường có chung một số thành phần như:Dùng những kí hiệu nào để viết chương trình, viết theo quy tắc nào? viết như vậy có ý nghĩa là gì?
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
Trang 512’
8’
8’
HS chú ý
HS lắng nghe
Khác nhau: Dấu cộng
trong (1) là cộng 2 số
thực cong trong (2) là
cộng trong 2 số nguyên
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 kí tự như dấu nháy kép(“), dấu sổ ngược(\), dấu chấm than(!)
- HĐTP3: Giớ thiệu cú pháp
- Cú pháp ngôn ngữ lập trình khác nhau cũng khác nhau ngôn ngữ pascal dùng cặp từ Begin- End
để gộp nhiều lệnh thành một lệnh nhưng trong C++ dùng cặp kí hiệu {}
Ví 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ên Hỏ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
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 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
Trang 6HS lắng nghe và ghi chép
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 phát hiện khi chạy chương trình
HĐ2: Giới thiệu Tên(15’)
5’
Lắng nghe và ghi chép
- Trong các ngôn ngữ lập trình nói chung,các đối tượng sử dụng trong chương trình đều phải đặt tên để tiện cho việc sử dụng
Việc 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
a Tên:
- 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
Tên dành riêng: Là
những tên được ngôn ngữ lập trình quy định
Trang 75’
5’
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 nào đó Trong các thư viện của ngôn ngữ lập trình
- Ví dụ : Một số tên chuẩn
- Trong pascal: real, integer, char,
- Trong c++: cin, count,
* Tên do người lập trình đặt: Được xác định bằng
cách trước khi sử dụng, không được trùng với tên dành riêng
HĐ3: Hằng và biến (10’)
5’
5’
Lắng nghe
Lắng nghe
VG đưa ra ví dụ:Đẻ viết một chương trình giải phương trình bậc hai ta cần khai báo những tên sau:
- a,b,c là ba tên dùng để lưu ba hệ
số của phương trình
- - x1,x2 là hai tên dùng để lưu nghiệm ( nếu có)
- - Delta là tên dùng để lưu giá trị của delta
- 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í
Trang 8Biế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ả
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’)
Giá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 9Ngày soạn: 12/09/09
Tíêt thứ:…… BÀI TẬP CHƯƠNG 1
I Mục tiêu:
1 Về kiến thức:
- 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ữ máy, hợp ngữ và
ngôn ngữ bậc cao
- 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
chương
2 Học sinh:Ôn lại kiến thức của chương, chuẩn bị bài tập cuối chương.
III Phương pháp:
- Thuyết trình, vấn đáp
IV Tiến trình bài học:
1 Ổn định lớp và kiểm tra sĩ số.
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?
- Nhận xét, đánh giá và bổ
sung hướng dẫn cho học sinh trả lời câu hỏi số 1:
Bài: BÀI TẬP CHƯƠNG 1
1 Câu 1:
- Ngôn ngữ bậc cao gần
với ngôn ngữ tự nhiên hơn, thuận tiện cho đông đảo người lập trình
- 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
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
- Chương trình viết bằng
ngôn ngữ bậc cao dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp
- Ngôn ngữ bậc cao cho
phép làm việc với nhiều kiêu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuộ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ể
Chương trình nguồn ->
Chương trình dịch ->
Chương trình đích
3 Câu 3:
- Trình biên dịch: duyệt,
kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không? dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại
để 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 ý