- Hs: Nghiên cứu SGK và trả lời câu hỏi: có thể lưu trữ để sử dụng lại khi + Thông dịch: cần thiết 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 [r]
(1)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 KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH - Tiết: 01 I MỤC TIÊU: Kiến thức: - Hiểu khả ngôn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy và hợp ngữ - Hiểu ý nghĩa và nhiệm vụ chương trình dịch Phân biệt 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 PHƯƠNG PHÁP: Diễn giải, đàm thoại, giải tình có vấn đề III Chuẩn bị giáo viên và học sinh Chuẩn bị Giáo viên: Giáo án, SGK, Máy chiếu,… Chuẩn bị Học sinh: Đọc trước SGK, xem lại số kiến thức Tin học lớp 10 IV TIẾN TRÌNH LÊN LỚP: Ổ định lớp: Hoạt động dạy - học: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG 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 ngôn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy và hợp ngữ -Cho bài toán sau: Kết luận nghiện phương trình ax + b=0 Khái niệm lập trình và ngôn - Gv: Hãy xác định Input, Output bài toán trên ngữ lập trình - Hs: Quan sát bài toán và trả lời câu hỏi * Cho bài toán sau: Kết luận nghiện +Input: a, b phương trình ax + b=0 +Output: x=-b/a, vô nghiệm, vô số nghiệm - Xác định bài toán: - Gv hỏi: Hãy xác định các bước để giải bài toán trên + Input: a, b - Hs: Chú ý lắng nghe và trả lời: + Output: x=-b/a, vô nghiệm, vô số + B1: Nhập a, b + B2: Nếu a<> kết luận có nghiệm x=-b/a nghiệm + B3: Nếu a=0 và b<>0, kết luận vô nghiệm - Thuật toán: +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 + B1: Nhập a, b nào để máy tính điện tử có thể hiểu thuật toán này? + B2: Nếu a<> kết luận có nghiệm - Hs trả lời: Dùng ngôn ngữ lập trình -Gv: Diễn giải: Hoạt động để diễn đạt thuật toán thông x=-b/a qua ngôn ngữ lập trình gọi là lập trình + B3: Nếu a=0 và b<>0, kết luận vô - Hỏi: Các em hãy cho biết khái niệm lập trình ? - Hs trả lời: Lập trình là việc sử dụng cấu trúc liệu và các nghiệm lệnh ngôn ngữ lập trình cụ thể để mô tả liệu và diễn đạt + B4: Nếu a=0 và b=0, kết luận vô các thao tác thuật toán - Gv hỏi: Kết hoạt động lập trình? số nghiệm - Hs trả lời: Được chương trình - Lập trình là việc sử dụng cấu trúc - Gv hỏi: Ngôn ngữ lập trình gồm loại nào? liệu và các lệnh ngôn ngữ - 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 viết ngôn ngữ bậc cao lập trình cụ thể để mô tả liệu và và chương trình viết ngôn ngữ máy khác diễn đạt các thao tác thuật toán trang GVGD: Lop11.com (2) nào? - Ngôn ngữ lập trình gồm: Ngôn - Hs suy nghỉ và trả lời: ngữ máy, hợp ngữ và ngôn ngữ bâc + Chương trình viết ngôn ngữ máy có thể nạp trực tiếp cao Trong đó: + Chương trình viết ngôn ngữ vào nhớ và thực +CT viết ngôn ngữ lập trình bậc cao phải chuyển máy có thể nạp trực tiếp vào nhớ và thực đổi thành CT trên ngôn ngữ lập máy thì thực - Gv hỏi: Làm nào để chuyển chương trình viết + CT viết ngôn ngữ lập trình ngôn ngữ bậc cao sang ngôn ngữ máy? bậc cao phải chuyển đổi thành CT trên ngôn ngữ lập máy thì - Hs: Phải sử dụng chương trình dịch để chuyển đổi - Gv hỏi: Vì không lập trình trên ngôn ngữ máy để khỏi thực công chuyển đổi 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 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ụ chương trình dịch Phân biệt biên dịch và thông dịch -Theo các em chương trình dịch: chương trình nào là Thông dịch và biên dịch 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 dịch gồm thông + Chương trình nguồn là chương trình viết ngôn ngữ lập dịch và biên dịch trình bậc cao + Chương trình đích là chương trình thực chuyển đổi sang a Thông dịch B1: Kiểm tra tính đúng đắn ngôn ngữ máy - Gv: Nêu vấn đề: Em muốn giới thiệu trường mình cho câu lệnh chương người khách du lịch quốc tế biết tiếng Anh, có hai cách thực trình nguồn; hiện: B2: Chuyển lệnh đó thành ngôn C1: Cần người biết tiếng Anh dịch câu nói em ngữ máy B3: Thực các câu lệnh vừa 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 giấy và người phiên dịch chuyển đổi dịch toàn nội dung đó sang tiếng Anh đọc cho khách b Biên dịch: nghe Cách này gọi là biên dịch - Hs: Chú ý lắng nghe giảng B1: Duyệt, phát lỗi, kiểm tra Tương tự chương trình dịch có hai loại là thông dịch và biên tính đúng đắn các câu lệnh chương trình nguồn dịch - Hs: Chú ý lắng nghe B2: Dịch toàn chương trình - Gv hỏi: Các em hãy cho biết tiến trình thông dịch và biên nguồn thành chương trình đích có thể thực trên máy và dịch - Hs: Nghiên cứu SGK và trả lời câu hỏi: có thể lưu trữ để sử dụng lại + Thông dịch: cần thiết B1: Kiểm tra tính đúng đắn câu lệnh chương trình nguồn; B2: Chuyển lệnh đó thành ngôn ngữ máy B3: Thực các câu lệnh vừa chuyển đổi + Biên dịch: B1: Duyệt, phát lỗi, kiểm tra tính đúng đắn các câu lệnh chương trình nguồn trang GVGD: Lop11.com (3) B2: Dịch toàn chương trình nguồn thành chương trình đích có thể thực trên máy và có thể lưu trữ để sử dụng lại cần thiết Gv: Nhận xét và phân biệt khác và giống thông dịch và biên dịch - Hs: Chú ý lắng nghe và ghi nhớ 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 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 ngôn ngữ lập trình” Tìm hiểu các thành phần ngôn ngữ lập trình Các khai niệm tên, biến và V RÚT KINH NGHIỆM SAU BÀI DẠY: trang GVGD: Lop11.com (4) 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 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 là: Bảng chữ cái, cú pháp và ngữ nghĩa hiểu ba thành phần này - Biết số khái niệm: Tên, tên chuẩn, tên dành riêng(từ khoá), và biến Kỹ năng: - Phân biệt ba thành phần:bảng chữ cái ,cú pháp và ngữ nghĩa - Phân biệt tên, và biến biết đặt tên đúng Thái độ: - Tư 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Ị Chuẩn bị Giáo viên: Bảng phụ, phấn, thước Chuẩn bị Học sinh: Đọc trước bài nhà IV TIẾN TRÌNH LÊN LỚP: Ổn định lớp: Kiểm tra bài cũ: Hoạt động dạy - học: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG Hoạt động 1: Các thành phần *Mục tiêu: Biết ba thành phần :chữ cái, cú pháp và ngữ nghĩa hiểu ba thành phần này * Dẫn dắt: Để diễn tả ngôn ngữ tự nhiên ta cần phải biết Các thành phần gì? - Mỗi ngôn ngữ lập trình thường có - Hs Chú ý lắng nghe và trả lời: Chữ cái, cú pháp, ý nghĩa ba thành phần là: bảng chữ cái, cú pháp và ngữ nghĩa điều cần diễn tả - Gv: Mỗi ngôn ngữ lập trình bậc cao thường có thành a Bảng chữ cái: Là tập các kí phần: Bảng chữ cái, cú phá và ngữ nghĩa hiệu dùng để viết chương trình - Hs chú ý lắng nghe và ghi nhớ Bao gồm: - Gv: Giới thiệu bảng chữ cái: Giáo viên treo bảng phụ - Các chữ cái bao gồm: A→Z và (SGK Trang 9) và cho học sinh nêu đặc điểm bảng chữ a→z cái - Các chữ số:0→9 - Hs: Chú ý lắng nghe và trả lời: Bảng chữ cái bao gồm: Chữ - Các kí tự: *, ', {, }, (, ), b Cú pháp cái, chữ số và các kí tự - Gv : Bảng chữ cái ngôn ngữ lập trình khác có - Là quy tắc để viết chương khác Ví dụ bảng chữ cái ngôn ngữ lập trình C++ trình Dựa vào đó, người lập trình khác pascal là sử dụng thêm các kí tự dấu nháy và chương trình dịch biết tổ kép(“), dấu sổ ngược(\), dấu chấm than(!) hợp nào các kí tự bảng chữ cái là hợp lệ và không hợp lệ - Hs chú ý lắng nghe và chép bài - Gv giới thiệu cú pháp: c Ngữ nghĩa trang GVGD: Lop11.com (5) - Hs chú ý lắng nghe và chép bài Xác định ý nghĩa thao tác cần phải - Gv hỏi: Cú pháp chương trình là gì? thực hiện, ứng với tổ hợp kí tự dựa - Hs chú ý lắng nghe và trả lời: Là quy tắc để viết chương vào ngữ cảnh nó * Tóm lại: trình - Gv: Cú pháp ngôn ngữ lập trình khác khác - Cú pháp cho biết cách viết ngôn ngữ pascal dùng cặp từ Begin- End để gộp nhiều lệnh chương trình hợp lệ, còn ngữ nghĩa thành lệnh C++ dùng cặp kí hiệu {} xác định ý nghĩa các tổ hợp kí - Hs: chú ý lắng nghe và ghi nhớ tự chương trình - Gv: Xét biểu thức A+B (1) A,B là các số thực - Các lỗi cú pháp chương I+J (2) với I,J là các số nguyên trình dịch phát và thông báo cho người lập trình biết chương - Hỏi: Về ngữ nghĩa biểu thức trên có khác không? - Hs: Lắng nghe và trả lời: Khác nhau: Dấu cộng (1) là trình không còn lỗi cú pháp thì cộng số thực cong (2) là cộng số nguyên có thể dịch sang ngôn ngữ máy - Nhận xét và kết luận: Mỗi ngôn ngữ khác có ngữ - Lỗi ngữ nghĩa phát nghĩa khác chạy chương trình - 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 cú pháp lỗi ngữ nghĩa - Hỏi: Hãy phân biệt khác 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 còn lỗi ngữ nghĩa chương trình thực đúng kết quá không ý muốn Nhận xét và tổng kết - Hs: Chú ý ghi nhớ và chép bài 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 người lập trình đặt - Phân biệt khác 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ử Một số khái niệm dụng chương trình phải đặt tên để tiện cho việc sử a Tên: dụng - Mọi đối tượng chương trình - Hs: Lắng nghe và ghi chép phải đặt tên theo quy tắc ngôn ngữ lập trình - Gv hỏi: Vậy đặ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: - Trong ngôn ngữ turbo pascal tên chữ số, chữ cái dấu gạch dướivà bắt đầu chữ cái là dãy liên tiếp không quá 127 gạch kí tự bao gồm: chữ số, chữ cái - Gv: Nhận xét và cho ví dụ dấu gạch dướivà bắt đầu chữ - Hs chú ý lắng nghe và ghi nhớ cái gạch - Gv: Việc đặt tên các ngôn ngữ khác là khác - Ví dụ : Trong ngôn ngữ pascal nhau,có ngôn ngữ phân biệt chữ hoa, chữ thường, có ngôn + Các tên đúng: A, Bre1, -ten, + Các tên sai: a bc, 6hgf, x# y, 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ữ - Ngôn ngữ lập trình có loại tên: thường số ngôn ngữ lập trình khác(như C++) lại tên dành riêng, tên chuẩn, tên phân biệt chữ hoa, chữ thường người lập trình đặt - Hs chú ý lắng nghe và ghi nhớ * Tên dành riêng: - Gv: Mỗi ngôn ngữ lập trình thường có loại tên: Tên dành - Là tên ngôn ngữ riêng, tên chuẩn, tên người lập trình đặt lập trình quy định với ý nghĩa riêng trang GVGD: Lop11.com (6) - Hỏi: Hãy cho biết tên dành riêng là gì? xác định mà người lập trình không - Hs trả lời: tên ngôn ngữ lập trình quy định với dùng với ý nghĩa khác Tên dành riêng gọi là từ khoá ý nghĩa riêng xác định - Gv: Nhận xét: Tên dành riêng không dùng với ý nghĩa -Ví dụ: số tên dành riêng: khác ngoài ý nghĩa đã đã xác định + Trong pascal : program, uses, var, const, - Hs chú ý lắng nghe và ghi nhớ - Gv hỏi: Hãy kể số tên dành riêng? + Trong c++: main, include, if, - Hs trả lời: Trong pascal : program, uses, var, const, * Tên chuẩn: là nhữnh tên ngôn ngữ lập trình dùng với ý - Gv hỏi: Hãy cho biết tên chuẩn là gì? - Hs trả lời: nhữnh tên ngôn ngữ lập trình dùng với ý nghĩa định nào đó Trong các thư viện ngôn ngữ lập trình nghĩa định nào đó - Nhận xét: Tên chuẩn dùng với ý nghĩa khác ngoài ý - Ví dụ : Một số tên chuẩn: nghĩa đã đã xác định người lập trình cần khai +Trong pascal: real, integer, char, báo trước dùng - Gv hỏi: Hãy kể số tên chuẩn? + Trong c++: cin, count, - Hs trả lời: pascal: real, integer, char, * Tên người lập trình đặt: Được xác định cách trước - Hỏi: Sự khác tên dành riêng và tên chuẩn? - Hs trả lời: Tên dành riêng không dùng với ý nghĩa sử dụng, không trùng với tên khác còn tên chuẩn có thể khai bóa và dùng với ý nghĩa khác dành riêng - Nhận xét và tổng kết - Hỏi: Hãy cho biết tên người lập trình đặt là gì?Hãy đặt số tên chuẩn? - Hs trả lời: Được xác định cách trước sử dụng, không 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 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 - Biết khái niệm biến và mục đích biến * Đặt vấn đề: Trong toán học chúng ta đã gặp khái b Hằng và biến niệm hằng, vâuyj lập trình chúng ta gặp * Hằng: Là đại lượng có giá trị đối tượng là không đổi quá trình thực - Hs chú ý lắng nghe chương trình - Gv hỏi: Hãy cho biết là gì? - Các ngôn ngữ lập trình thường có: - Hs trả lời: Hằng là đối tượng có giá trị không đổi + Hằng số học: số nguyên số quá trình thực chương trình thực - Gv hỏi: Hãy kể các loại có – Hs trả lời: Hằng có + Hăng logic: Là cácgiá trị đúng loại: Hằng số học, logic và xâu sai - Gv: Nhận xét và nhấn mạnh các loại - Ví dụ (bảng phụ 2:vd sgk trang 12) - Chú ý lắng nghe và ghi nhớ * Đặt vấn đề: Để viết chương trình giải phương trình * Biến: Là đại lượng đặt tên, bậc hai ta cần khai báo tên sau: dùng để lưu trữ gí trị và giá trị có thể thay đổi quá trình thực + a,b,c là ba tên dùng để lưu ba hệ số phương trình + x1,x2 là hai tên dùng để lưu nghiệm ( có) chương trình + Delta là tên dùng để lưu giá trị delta - Biến phải khai báo trước sử dụng - Hs: Chú ý lắng nghe và chép bài - Gv hỏi: Biến là gì? C Chú thích: trang GVGD: Lop11.com (7) - Hs trả lời: Biến là đại lượng đặt tên, dùng để chứa - Trong viết chương trình có thể giá trị và giá trị đó có thể thay đổi quá trình thực viết các chú thích cho chương trình chương trình Chú thích không làm ảnh hưởng đến Giáo viên nhận xét và tổng kết: Biến là đối tượng sử chương trình dụng nhiều viết chương trình Biến là đại - Trong pascal chú thích đặt lượng có thể thay đổi nên thường dùng để lưu trữ kết {} (* *) - Trong C++ chú thích đặt trong: /* - Hs: Chú ý lắng nghe và chép bài */ Củng cố: * Giáo viên mở chương trình pascal đơn giản có chứa các thành phần là các khái niệm bài học: - Biết ngôn ngữ lập trình có ba thành phần là: Bảng chữ cái, cú pháp và ngữ nghĩa hiểu ba thành phần này - Biết số khái niệm: Tên, tên chuẩn, tên dành riêng(từ khoá), và biến 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: trang GVGD: Lop11.com (8)