I. MỤC TIÊU:
1. 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.
2. Thái độ:
- Ham muốn tìm hiểu các ngôn ngữ lập trình.
II. PHƯƠNG PHÁP: Diễn giải, đàm thoại, giải quyết tình huống có vấn đề.
III. Chuẩn bị của giáo viên và học sinh
1. Chuẩn bị của Giáo viên: Giáo án, SGK, Máy chiếu,
2. Chuẩn bị của Học sinh: Đọc trước SGK, xem lại một số kiến thức Tin học lớp 10.
IV. TIẾN TRÌNH LÊN LỚP:
1. Ổ định lớp:
2. Hoạt động dạy - học:
Chương I :MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Bài 1. KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH - Tiết: 01 - I. MỤC TIÊU: 1. 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. 2. Thái độ: - Ham muốn tìm hiểu các ngôn ngữ lập trình. II. PHƯƠNG PHÁP: Diễn giải, đàm thoại, giải quyết tình huống có vấn đề. III. Chuẩn bị của giáo viên và học sinh 1. Chuẩn bị của Giáo viên: Giáo án, SGK, Máy chiếu, 2. Chuẩn bị của Học sinh: Đọc trước SGK, xem lại một số kiến thức Tin học lớp 10. IV. TIẾN TRÌNH LÊN LỚP: 1. Ổ định lớp: 2. Hoạt động dạy - học: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG 1. Hoạt động 1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình. * Mục tiêu: Hiểu 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ữ. -Cho bài toán sau: Kết luận nghiện của phương trình ax + b=0. - Gv: Hãy xác định Input, Output của bài toán trên. - Hs: 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. - Gv hỏi: Hãy xác định các bước để giải bài toán trên - Hs: Chú ý lắng nghe và trả lời: + 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à b0, kết luận vô nghiệm. +B4: Nếu a=0 và b=0, kết luận vô số nghiệm. -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? - Hs trả lời: Dùng ngôn ngữ lập trình. -Gv: 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. - Hỏi: Các em hãy cho biết khái niệm về lập trình ? - Hs trả lờ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. - Gv hỏi: Kết quả của hoạt động lập trình? - Hs trả lời: Được một chương trình. - Gv hỏi: Ngôn ngữ lập trình gồm những loại nào? - Hs trả lời: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bâc cao. - 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? - Hs suy nghỉ và trả lờ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. +CT viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành CT trên ngôn ngữ lập máy thì mới thực hiện được. - Gv hỏi: 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? - Hs: Phải sử dụng một chương trình dịch để chuyển đổi. - Gv hỏi: 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. - Hs: Nghiên cứu SGK và trả lời câu hỏi:Ngôn ngữ bậc cao dễ viết, dễ hiểu. Ngôn ngữ máy khó viết. à Gv nhận xét và tổng kết. - Hs: Chú ý lắng nghe và chép bài. 1. Khái niệm lập trình và 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. - Xác định bài toán: + Input: a, b + Output: x=-b/a, vô nghiệm, vô số nghiệm. - Thuật 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à b0, kết luận vô nghiệm. + B4: Nếu a=0 và b=0, kết luận vô số nghiệm. - 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. - Ngôn ngữ lập trình gồm: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bâc cao. Trong đó: + 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. + CT viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành CT trên ngôn ngữ lập máy thì mới thực hiện được. 2. 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. * Mục tiêu: 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 -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. - Hs 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. - Gv: 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. - Hs: Chú ý lắng nghe giảng Tương tự chương trình dịch có hai loại là thông dịch và biên dịch. - Hs: Chú ý lắng nghe. - Gv hỏi: Các em hãy cho biết tiến trình của thông dịch và biên dịch. - Hs: 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. 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. àGv: Nhận xét và phân biệt sự khác nhau và giống nhau của thông dịch và biên dịch. - Hs: Chú ý lắng nghe và ghi nhớ. 2. 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. b. 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 3. Củng 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. 4. Hướng dẫn học tập ở nhà: - Học lại các nội dung đã học. - Tìm hiểu trước bài: “Các thành phần của ngôn ngữ lập trình”. Tìm hiểu các thành phần cơ bản của ngôn ngữ lập trình. Các khai niệm về tên, biến và hằng. V. RÚT KINH NGHIỆM SAU BÀI DẠY: Ngày soạn: 28/08/2011 Chương I. MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Bài 2. CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH - Tiết: 02 - I. MỤC TIÊU: 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. 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 Thái độ: - Tư duy logic - Thái độ cẩn thận, chính xác. II. PHƯƠNG PHÁP: - Thuyết trình, vấn đáp, hoạt động nhóm III. CHUẨN BỊ 1. Chuẩn bị của Giáo viên: Bảng phụ, phấn, thước. 2. Chuẩn bị của Học sinh: Đọc trước bài ở nhà IV. TIẾN TRÌNH LÊN LỚP: 1. Ổn định lớp: 2. Kiểm tra bài cũ: 3. Hoạt động dạy - học: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG 1. Hoạt động 1: Các thành phần cơ bản. *Mục tiêu: Biết được ba thành phần cơ bản :chữ cái, cú pháp và ngữ nghĩa. hiểu được ba thành phần này. * Dẫn dắt: Để diễn tả một ngôn ngữ tự nhiên ta cần phải biết những gì? - Hs Chú ý lắng nghe và trả lời: Chữ cái, cú pháp, ý nghĩa của điều cần diễn tả. - Gv: Mỗi ngôn ngữ lập trình bậc cao thường có 3 thành phần: Bảng chữ cái, cú phá và ngữ nghĩa. - Hs chú ý lắng nghe và ghi nhớ. - Gv: Giới thiệu bảng chữ cái: Giáo viên treo bảng phụ 1 (SGK Trang 9) và cho học sinh nêu đặc điểm của bảng chữ cái. - Hs: Chú ý lắng nghe và trả lời: Bảng chữ cái bao gồm: Chữ cái, chữ số và các kí tự. - Gv : 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(!). - Hs chú ý lắng nghe và chép bài. - Gv giới thiệu cú pháp: - Hs chú ý lắng nghe và chép bài. - Gv hỏi: Cú pháp chương trình là gì? - Hs chú ý lắng nghe và trả lời: Là bộ quy tắc để viết chương trình. - Gv: 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 {}. - Hs: chú ý lắng nghe và ghi nhớ. - Gv: 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: Về ngữ nghĩa 2 biểu thức trên có khác nhau không? - Hs: Lắng nghe và trả lời: 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 - Nhận xét và kết luận: Mỗi ngôn ngữ khác nhau cũng có ngữ nghĩa khác nhau. - HS lắng nghe và ghi chép. - Đặt vấn đề: Trong qua trình viết chương trình, nguời lập trình có thể mắc phải lỗi về cú pháp hoặc lỗi về ngữ nghĩa. - Hỏi: Hãy phân biệt sự khác nhau của lỗi cú pháp và lỗi ngữ nghĩa? - Hs: Tìm hiểu SGK và trả lời: Lỗi cú pháp thì chương trình không thực hiện được còn lỗi ngữ nghĩa chương trình vẫn thực hiện đúng nhưng kết quá không như ý muốn. à Nhận xét và tổng kết. - Hs: Chú ý ghi nhớ và chép bài. 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. Bao gồm: - Các chữ cái bao gồm: A→Z và a→z - Các chữ số:0→9 - Các kí tự: *, ', {, }, (, ), .... b. Cú pháp - Là bộ quy tắc để viết chương trình. Dựa vào đó, người lập trình và chương trình dịch biết được tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ và không hợp lệ. 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 phát hiện khi chạy chương trình. 2. Hoạt động 2: Giới thiệu Tên. * Mục tiêu: - Biết khái niệm tên, tên dành riêng, tên chuẩn, tên do người lập trình đặt. - Phân biệt được sự khác nhau của tên dành riêng và tên chuẩn. - 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. - Hs: Lắng nghe và ghi chép - Gv hỏi: Vậy khi đặt tên chúng ta có quy tắc nào? - Hs trả lời: 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 - Gv: Nhận xét và cho ví dụ. - Hs chú ý lắng nghe và ghi nhớ. - Gv: Việc đặ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 - Hs chú ý lắng nghe và ghi nhớ. - Gv: Mỗi ngôn ngữ lập trình thường 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. - Hỏi: Hãy cho biết tên dành riêng là gì? - Hs trả lời: những tên được ngôn ngữ lập trình quy định với ý nghĩa riêng xác định. - Gv: Nhận xét: Tên dành riêng không được dùng với ý nghĩa khác ngoài ý nghĩa đã được đã xác định. - Hs chú ý lắng nghe và ghi nhớ. - Gv hỏi: Hãy kể một số tên dành riêng? - Hs trả lời: Trong pascal : program, uses, var, const, .... - Gv hỏi: Hãy cho biết tên chuẩn là gì? - Hs trả lời: nhữnh tên được ngôn ngữ lập trình dùng với ý nghĩa nhất định nào đó. - Nhận xét: Tên chuẩn được dùng với ý nghĩa khác ngoài ý nghĩa đã được đã xác định nhưng người lập trình cần khai báo trước khi dùng. - Gv hỏi: Hãy kể một số tên chuẩn? - Hs trả lời: pascal: real, integer, char, ... - Hỏi: Sự khác nhau giữa tên dành riêng và tên chuẩn? - Hs trả lời: Tên dành riêng không được dùng với ý nghĩa khác còn tên chuẩn có thể khai bóa và dùng với ý nghĩa khác. - Nhận xét và tổng kết. - Hỏi: Hãy cho biết tên do người lập trình đặt là gì?Hãy đặt một số tên chuẩn? - Hs trả lời: Đượ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 à Nhận xét và kết luận. - Hs chú ý lắng nghe và chép bài. 2 Một số khái niệm 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 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 3. Hoạt động 3: Hằng và biến. * Mục tiêu: - Biết khái niệm hằng, các loại hằng. - Biết khái niệm biến và mục đích của biến. * Đặt vấn đề: Trong toán học chúng ta cũng đã gặp khái niệm hằng, vâuyj trong lập trình chúng ta cũng gặp những đối tượng là hằng. - Hs chú ý lắng nghe - Gv hỏi: Hãy cho biết hằng là gì? - Hs trả lời: Hằng là đối tượng có giá trị không đổi trong quá trình thực hiện chương trình. - Gv hỏi: Hãy kể các loại hằng có – Hs trả lời: Hằng có 3 loại: Hằng số học, hằng logic và hằng xâu. - Gv: Nhận xét và nhấn mạnh về các loại hằng. - Chú ý lắng nghe và ghi nhớ. * Đặt vấn đề: Để 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. - Hs: Chú ý lắng nghe và chép bài. - Gv hỏi: Biến là gì? - Hs trả lời: Biến là đại lượng được đặt tên, dùng để chứa giá trị và giá trị đó có thể thay đổi trong quá trình thực hiện chương trình. àGiáo viên nhận xét và tổng kết: 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ả. - Hs: Chú ý lắng nghe và chép bài. 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: /* */ 4. Củng cố: * 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: - 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. 5. Hướng dẫn học tập ở nhà: - Học lại các nội dung đã học. - Tìm hiểu trước và tìm: “Câu hỏi và bài tập” SGK trang 13. V. RÚT KINH NGHIỆM SAU BÀI DẠY:
Tài liệu đính kèm: