Hoạt động 2: Tìm hiểu cách các thành phần và cách viết trong phần khai báo 1 Mục tiêu: học sinh biết cách khai báo và sử dụng các thành phần của phần khai báo 2Phương Pháp: rèn tư duy ph[r]
Trang 1- 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 một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cúpháp của chương trình nguồn
2 Về kĩ năng
- Nắm được khái niệm lập trình và ngôn ngữ lập trình
- Nắm được vai trò của chương trình dịch, phân biệt được biên dịch và thông dịch
- Năng lực giao tiếp, sử dụng ngôn ngữ
II CHUẨN BỊ BÀI HỌC
1 Giáo viên
- Bài giảng, máy chiếu, máy chiếu vật thể
- Yêu cầu học sinh tập hợp kiến thức đã học ở lớp 10 Cụ thể là bài 4, bài 5 và bài 6 củaSGK lớp 10
- Chuẩn bị các bài toán đơn giản, ngôn ngữ lập trình cụ thể VD như ngôn ngữ lập trìnhPascal
- Để giải bài toán trên máy tính cần phải có ngôn ngữ lập trình
- Phân biệt được các loại ngôn ngữ lập trình
- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch
b Phương pháp, phương tiện dạy học: Cá nhân, thảo luận nhóm.
Trang 2c Phương tiện: Máy chiếu, máy tính.
d Sản phẩm: Học sinh liên hệ được kiến thức đã học ở lớp 10; phân biệt được các ngôn
ngữ lập trình; Tại sao cần phải xây dựng ngôn ngữ lập trình; Để chuyển từ chương trìnhnguồn sang chương trình đích cần phải có chương trình dịch
Nội dung hoạt động
Hoat động của giáo viên Hoạt động của học sinh
Chiếu bài toán: Kết luận nghiệm của
+ Các bước giải bài toán trên máy tính?
+ Làm sao để máy tính có thể hiểu và
thực hiện các thuật toán đã lựa chọn để
giải bài toán?
- Như vậy hoạt động để diễn đạt một
thuật toán trên máy tính thông qua một
ngôn ngữ lập trình được gọi là lập trình.
Và để máy tính hiểu và thực hiện được
câu lệnh đó thì NNLTBC cần phải được
chuyển đổi về NN của máy để máy tính
hiểu và thực hiện được.
+ Dự kiến tình huống: Có thể HS không
xác định được chương trình trung gian
+ Dự kiến thời gian 8-12 phút)
- Xác định bài toán:
+Input: a, b+Output: x=-b/a, VN, VSN
Các bước để giải bài toán:
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
+ Các bước giải bài toán trên máy tính:
Bước 1: Xác định bài toán
Bước 2: Lựa chọn hoặc thiết kế thuật toán.Bước 3: Viết Chương Trình
Bước 4: Hiệu Chỉnh
Bước 5: Viết tài liệu+ Dùng ngôn ngữ lập trình
B Hình thành kiến thức
Trang 3HTKT1: Khái niệm lập trình – các ngôn ngữ lập trình
a Mục tiêu: Giúp HS hiểu được khái niệm lập trình, phân biệt được các ngôn ngữ lập trình.
b Phương pháp/Kĩ thuật: Đàm thoại, phát hiện Khai thác mối quan hệ giữa giải bài toán trêngiấy và giải bài toán trên máy tính
c Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm
d Phương tiện dạy học: SGK, máy tính, máy chiếu
e Kết quả: học sinh hiểu được khái niệm lập trình, phân biệt được các loại NNLT
Nội dung hoạt động
Hoat động của giáo viên Hoạt động của học sinh
1 Khái niệm lập trình
+ Nghiên cứu SGK và nêu khái niệm lập
trình
Giải thích:
Chiếu một chương trình đơn giản để giải
thích kĩ hơn về khái niệm (Câu lệnh diễn
tả các thao tác trong các bước của thuật
toán; câu lệnh đơn thực hiện bước có một
thao tác; câu lệnh cấu trúc thực hiện bước
+ Kết quả của hoạt động lập trình là gi?
Lưu ý: - Thuật toán và cấu trúc dữ liệu
luôn đi liền với nhau
- Lập trình là giai đoạn tìm tòi,
phát minh thuật toán hoặc tìm cách tổ
chức cấu trúc dữ liệu mớ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
+ Có nhiều loại ngôn ngữ lập trình, được chialàm ba loại chính: NN máy, hợp ngữ và NNLTbậc cao
2 Các loại ngôn ngữ lập trình
HS ghi chép nội dung để thực hiện các côngviệc được giao
Trang 4- Là ngôn ngữ duy nhất máy tính có thể
trực tiếp hiểu và thực hiện
- Mỗi loại máy tính có một ngôn ngữ riêng
của mình
b Hợp ngữ:
- Phát triển từ ngôn ngữ máy
- Ít phụ thuộc vào máy và dễ viết chương
trình hơn ngôn ngữ máy Rất gần với ngôn
ngữ máy
c Ngôn ngữ bậc cao:
- Khá gần với ngôn ngữ tự nhiên
- Không phụ thuộc vào loại máy Có thể
thực hiện trên nhiều loại máy tính khác
nhau
? Phân biệt ngôn ngữ lập trình bậc cao với
các ngôn ngữ khác ở những nội dung nào?
? Tại sao người ta phải xây dựng ngôn
Một số NNLTBC: pascal, C++, Java,…
+ Dự kiến tình huống: Có thể HS không
nhớ kiến thức của lớp về NNLT
+ Trong quá trình HS trải nghiệm, GV
theo dõi quá trình và hỗ trợ kịp thời
+ Dự kiến thời gian hoàn thành sản phẩm:
10-15 phút
HTKT2: Chương trình dịch
a Mục tiêu: Biết vai trò của chương trình dịch, hiểu được các giai đoạn của chương trình dịch;
Phâm biệt được chương trình thông dịch và chương trình biên dịch
b Phương pháp/Kĩ thuật: Đàm thoại, phát hiện
c Hình thức tổ chức hoạt động: Làm việc cá nhân hoặc thảo luận nhóm
d Phương tiện dạy học: SGK, máy tính, máy chiếu
e Kết quả: HS hiểu được vai trò của chương trình dịch, phân biệt được các loại chương trìnhdịch
Nội dung hoạt động
Hoat động của giáo viên Hoạt động của học sinh
? 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 ?
+ 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ệnngay
+ Chương trình viết bằng ngôn ngữ lập trìnhbậc cao phải được chuyển đổi thành chươngtrình trên ngôn ngữ lập máy thì mới thựchiện được
Trang 5? Khi chương trình được đưa vào máy tính
thì máy tính đã hiểu và thực hiện được chưa?
? 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 ?
? Nghiên cứu SGK cho biết khái niệm về
chương trình dịch
Nhận xét chuẩn hóa kiến thức
Chiếu sơ đồ của CTD SGK-trang 4
? 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
? 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
Chiếu hai ví dụ SGK – trang 4
? Cho nhận xét về tiến trình của hai ví dụ
trên
? Vậy với mỗi cách dịch như vậy người ta
gọi là gi?
? Hai cách dịch này có gì khác nhau
Kết luận: Như vậy chương trình dịch có hai
loại: Thông dịch và biên dịch
? Nghiên cứu SGK và nêu tiến trình của
thông dịch và biên dịch
Nhận xét chuẩn hóa kiến thức
+ Chưa
-Phải sử dụng một chương trình dịch đểchuyển đổi
Chương trình dịch
CTD là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập tŕnh bậc cao thành chương trình có thể thực hiện được trên máy tính.
+ Ngôn ngữ bậc cao dễ viết, dễ hiểu Ngônngữ máy khó viết
Có thể xem sách hoặc nhìn lên máy chiếu
- Quan sát kết hợp SGK để trả lời câu hỏi+ Chương trình nguồn là chương trình viếtbằng ngôn ngữ lập trình bậc cao
+ Chương trình đích là chương trình thựchiện chuyển đổi sang ngôn ngữ máy
Tiến trình của hai ví dụ:
+ VD1: Bạn nói bằng tiếng việt -> ngườiphiên dịch nghe sau đó dịch từ mỗi câu hoặcmột vài câu giới thiệu trọn một ý, ngườiphiên dịch dịch sang tiếng ánh, việc giớithiệu và phiên dịch là luân phiên cho đến khikết thúc nội dung
+ VD2: Bạn soạn nội dung ra giấy -> ngườiphiên dich dịch toàn bộ nội dung đó sangtiếng anh Việc dịch được thực hiện khi nộidung giới thiệu đã hoàn tất Hai công việcđược hoàn thiện trong hai khoảng thời gianđộc lập
Hai cách dịch:
+ VD1: Thông dịch+ VD2: Biên dịch.Khác nhau:
+ VD1: Không có văn bản nào lưu lại+ VD2: Có văn bản để lưu lại
Tiến trình của thông dịch và biên dịch:
+Thông dịch:
B1: Kiểm tra tính đúng đắn của câu lệnhtiếp theo trong chương trình nguồn;
Trang 6B2: Chuyển lệnh đó thành ngôn ngữ máyB3: Thực hiện các câu lệnh vừa đượcchuyể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ìnhnguồn
B2: Dịch toàn bộ chương trình nguồn thànhmột chương trình đích có thể thực hiện trênmáy và có thể lưu trữ để sử dụng lại khi cầnthiết
+ Dự kiến tình huống: Có thể HS trình bày
rõ được tiến trình của hai loại chương trình
dịch (thông qua ví dụ và SGK) tuy nhiên có
b Phương pháp/kĩ thuật: Rèn luyện tư duy phân tích tổng hợp.
c Hình thức tổ chức hoạt động: cá nhân hoặc thảo luận nhóm
d Phương tiện dạy học: máy tính, máy chiếu, SGK.
e Sản phẩm: HS trả lời được phiếu câu hỏi về vận dụng NNLT, lập trình và chương trình
dịch để giải quyết vấn đề (vận dụng thấp và cao)
Nội dung hoạt động
PHIẾU CÂU HỎI
A Phần cơ bản
1.1 Lập trình là:
A Sử dụng giải thuật để giải các bài toán
B Dùng máy tính để giải các bài toán
C Sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để giải các bàitoán trên máy tính
Trang 71.2 Chương trình viết bằng hợp ngữ có đặc điểm:
A Máy tính có thể hiểu được trực tiếp chương trình này
B Kiểu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho việc nhập mô tả thuật toán
C Diễn đạt gần với ngôn ngữ tự nhiên
D Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng NNBC
D Tìm tòi mở rộng
a Mục tiêu: HS tìm tòi được mối liên hệ giữa lập thuật toán và cấu trúc dữ liệu Các khía
cạnh khác của lập trình Tìm hiểu được các giai đoạn của chương trình dịch
b Phương pháp/kĩ thuật: Rèn luyện tư duy phân tích tổng hợp.
c Hình thức tổ chức hoạt động: cá nhân hoặc thảo luận nhóm
d Phương tiện dạy học: máy tính, máy chiếu, SGK.
e Sản phẩm: HS trả lời được phiếu câu hỏi về vận dụng NNLT, lập trình và chương trình
dịch để giải quyết vấn đề (vận dụng thấp và cao)
Nội dung hoạt động
1.1 Mối liên hệ giữa thuật toán và cấu trúc dữ liệu? Ví dụ minh họa (có thể sử dụng ví dụ có sẵn)
1.2 Việc tìm tòi, phát minh thuật toán thuộc giai đoạn nào?
1.3 Hãy cho biết đặc điểm của ngôn ngữ lập trình bậc cao
* Rút kinh nghiệm bài học:
………
………
………
NGƯỜI DUYỆT Nguyễn Thành Chung Tam Điệp, ngày tháng năm 2018 NGƯỜI SOẠN Lê Khánh Vân
Trang 8- 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
4 Năng lực định hướng hình thành và phát triển cho học sinh
- Năng lực giải quyết vấn đề thông qua trao đổi, thảo luận
- Bài giảng, máy chiếu, máy chiếu vật thể
- Yêu cầu học sinh tập hợp kiến thức đã học ở lớp 10 Cụ thể là bài 4, bài 5 và bài 6 củaSGK lớp 10
- Chuẩn bị các bài toán đơn giản, ngôn ngữ lập trình cụ thể VD như ngôn ngữ lập trìnhPascal
Hoạt động 1: Kiểm tra bài cũ
* Mục tiêu: Kiểm tra kiến thức của bài học trước về lập trình và NNLT.
* Phương thức:
- GV giao nhiệm vụ cho học sinh:
(?) Hãy nêu khái niệm lập trình? Có mấy loại NN lập trình?
(?) Chương trình dịch là gì? Có mấy loại chương trình dịch?
- Học sinh suy nghĩ, trao đổi thực hiện theo yêu cầu
- Trong quá trình HS làm việc, GV chú ý đến hoạt động của HS
-Giáo viên nhận xét cho điểm.
Hoạt động 2:
* Mục tiêu: HS hiểu được NNLT có những thành phần nào.
Trang 9* Phương thức:
- GV giao nhiệm vụ cho học sinh:
(?) Để diễn tả một ngôn ngữ tự nhiên ta cần phải biết những gì? lấy ví dụ
(?) Quan sát chương trình viết bằng ngôn ngữ lập trình bậc cao so sánh với ngôn ngữ tựnhiên
- Học sinh suy nghĩ, trao đổi thực hiện theo yêu cầu
- Trong quá trình HS làm việc, GV chú ý để nhận xét phần thực hiện của HS
* Gợi ý sản phẩm:
- Ngôn ngữ tự nhiên gồm các thành phần: bảng chữ cái, cú pháp và ý nghĩa của câu (từ)mình cần diễn tả
- 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 trong bảng chữ cái để viết chương trình? viết theo quy tắc nào? viết như vậy có
ý nghĩa là gì? Bài học hôm nay sẽ trả lời câu hỏi đó
B HOẠT ĐỘNG KIẾN THỨC HÌNH THÀNH
1 Hoạt động 1: Tìm hiểu các thành phần cơ bản của NNLT
* Mục tiêu: Hiểu được các thành phần của NNLT: bảng chữ cái, cú pháp và ngữ nghĩa.
* Phương thức:
- GV giao nhiệm vụ cho học sinh: Quan sát hai chương trình viết bằng ngôn ngữ lập trìnhbậc cao: pascal, C++ và kết hợp nội dung SGK trang 9 phần 1, cho nhận xét về hai chươngtrình:
(?) So sánh quy cách viết của hai ngôn ngữ này
(?) Ngôn ngữ lập trình gồm mấy thành phần
(?) Quan sát chương trình viết bằng NNLT pascal cho biết thành phần của bảng chữ cái?(?) Khái niệm về bảng chữ cái
(?) Khái niệm về cú pháp, tác dụng của cú pháp
(?) cho hai số a và b có hai trường hợp sau: Nếu a và b là hai số nguyên thì biểu thức a+b
có nghĩa là gì? Nếu a và b là hai số thực thi a+b có nghĩa là gì?
(?) Khái niệm ngữ nghĩa
- Trong hoạt động này GV có thể tổ chức cho HS hoạt động nhóm để tìm hiểu
- Học sinh suy nghĩ, nghiên cứu, trao đổi thực hiện theo yêu cầu
- Trong quá trình HS làm việc, GV chú ý đến các các HS để có thể gợi ý hoặc trợ giúp HSkhi các em gặp khó khăn
* Gợi ý sản phẩm:
- Ngôn ngữ LT thường có ba thành phần: bảng chữ cái, cú pháp và ngữ nghĩa
- Bảng chữ cái: là tập các kí tự dùng để viết chương trình:
Trang 10+ Chữ cái thường và các chữ cái in hoa của bảng chữ cái tiếng anh.
+ 10 chữ số thập phân Ả Rập
+ Các kí tự đặc biệt
- Cú pháp: Là bộ quy tắc để viết chương trình
- Tác dụng: Mô tả chính xác thuật toán
- 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àongữ cảnh của nó
VD:- Nếu cho a và b là 2 số nguyên thì dấu + trong biểu thức a+b là phép cộng hai số nguyên
- Nếu cho a và b là 2 số thực thì dấu + trong biểu thức a+b là phép cộng hai số thực
Vậy trong ngữ cảnh khác nhau thì ý nghĩa của các tổ hợp kí tự cũng khác nhau
2 Hoạt động 2: Tìm hiểu một số khái niệm
* Mục tiêu: học sinh hiểu một số khái niệm về tên, hằng và biến khi viết một chương trình
nhận biết được tổ hợp kí tự dùng để viết chú thích
(?) Khi đặt tên cho các đối tượngcủa chương trình có cần theo quy tắc nào không
(?) Em thấy cách đặt tên chương trình của hai ngôn ngữ này thế nào
(?) Đọc SGK – T10 cho biết quy tắc đặt tên trong ngôn ngữ lập trình pascal
(?) Hãy chỉ ra các tên sai trong cách đặt tên sau đây: A, R23, _65, A GH, P34_c, 8Jh, F#j,
GJ, F@j ?
(?) NNLT pascal phân biệt thành mấy loại tên để dùng trong trương trình và kể tên các loạitên đó
(?) Nêu khái niệm về ba loại tên này
(?) Trong toán học em hiểu thê nào là hằng, lấy VD
(?) NNLT thường có loại hằng nào
(?) Em hiểu thế nào là biến, cho VD
(?) Quan sát đoạn chương trình này em thấy phần nôi dung đặt trong cặp dấu {và} hoặc(*và*) có ý nghĩa gì?
- Trong hoạt động này GV có thể tổ chức cho HS hoạt động cá nhân sau đó trao đổi đàm thoại
ở các cặp đôi hoặc nhóm để tìm hiểu
- Học sinh suy nghĩ, trao đổi thực hiện theo yêu cầu
- Trong quá trình HS làm việc, GV chú ý đến các các HS để có thể gợi ý hoặc trợ giúp HS khicác em gặp khó khăn
* Gợi ý sản phẩm:
Khái niệm: 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ưới và bắt đầu bằng chữ cái hoặc gạch dưới
Ví dụ :
A
Bre1
Trang 11_Tong
- 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 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òn được gọi là từ khoá.
Ví dụ:
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ụ :
Trong pascal: real, integer, char,
Trong c++: cin, count,
* Tên do người lập trìnhđặt: Được dùng với ý nghĩa riêng, xác định bằng cách khai báo
+ Hằng xâu: Là chuỗi kí tự trong bộ mã ASCII, được đặt trong cặp dấu nháy
Ví dụ : ‘ Day la hang xau ‘, ‘tour’.
* 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
Ví dụ : Tong, Tam, x, y,
c Chú thích
- Chú thích giúp cho người đọc và người lập trình nhận biết ý nghĩa của chương trình đó dễhơn
Trong Pascal, chú thích được đặt giữa cặp dấu {} hay (* *)
Ví dụ : Var x,y: integer ; (* khai báo biến x, y thuộc kiểu số nguyên *)
Const Min = 10; { Khai báo hằng }
C HOẠT ĐỘNG LUYỆN TẬP
* Mục tiêu:Nhằm củng cố, hệ thống hóa, hoàn thiện kiến thức mới mà HS đã được lĩnh hội ở
hoạt động hình thành kiến thức: Các thành phần cơ bản và các khái niệm của NNLT
* Phương thức:
- GV giao nhiệm vụ cho HS:GV giao nhiệm vụ cho HS và chủ yếu cho làm việc cá nhân,trong quá trình làm việc HS có thể trao đổi với bạn hoặc thầy, cô giáo