BÀI 2 CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH Ngày soạn: Ngày dạy: I/ Mục tiêu: Giúp học sinh nắm được 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 và phân biệt được ba thành phần này. 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 dành riêng (từ khóa), hằng và biến. Phân biệt được tên, hằng và biến. Biết đặt tên đúng * Thái độ: Ham thích môn học, có tính kỉ luật cao và tinh thần làm việc theo nhóm. II/ Chuẩn bị: Giáo viên: Giáo án – Sách GK - Đồ dùng dạy học Học sinh: Vở soạn, sách GK, vở học. III/ Phương pháp truyền thụ: Dựa vào câu hỏi và một số hiểu biết về ngôn ngữ lập trình đã học ở khối 10 của học sinh để dẫn dắt vào vấn đề. IV/ Tiến trình lên lớp: 1. Ổn định lớp:Kiểm tra sĩ số - Làm quen với học sinh 2. Kiểm tra bài cũ: Gọi hai học sinh lên bảng Câu 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? Câu 2: Nêu khái niệm lập trình và một số ngôn ngữ lập trình ? Câu 3: Chương trình dịch là gì? Tại sao cần phải có chương trình dịch? Câu 4: Biên dịch và thông dịch khác nhau như thế nào? V/ Nội dung bài học: Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản: bảng chữ cái, cú pháp và ngữ nghĩa. Hoạt động của GV và HS Nội dung GV: Các NN lập trình 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 qui tắc nào, viết như vậy có nghĩa là gì? Mỗi NN lập trình có một qui định riêng về những thành phần này. GV: Bảng chữ cái là gì? Trong Pascal , bảng chữ cái gồm những kí tự nào? HS: Trả lời GV: Cú pháp các NN lập trình khác nhau cũng khác nhau, NN Pascal dùng cặp từ Begin .. End để gộp nhiều câu lệnh thành một, nhưng C lại dùng cặp kí hiệu {} GV: Gọi HS nêu lại VD trong SGK HS: Xét 2 biểu thức: A+B (1) A,B là số thực I+J (2) I,J là các số nguyên Khi đó dấu + ở (1) là cộng hai số thực, còn trong (2) là cộng hai số nguyên. GV: Chương trình phát hiện lỗi gì? và được chuyển sang NN gì? HS: Phát hiện lỗi cú pháp và chuyển sang NN máy GV: Lỗi ngữ nghĩa được phát hiện khi nào? HS: Khi chạy chương trình GV: Trong các NN lập trình nói chung, các đối tượng được sử dụng trong chương trình đều phải đặt tên cho tiện việc sử dụng. Việc đặt tên trong các NN khác nhau là khác nhau, có NN phân biệt chữ hoa, chữ thường, có NN thì không phân biệt chữ hoa hay chữ thường. GV: Mục đích của việc đặt tên trong chương trình? HS: Để quản lí và phân biệt các đối tượng trong chương trình và để gợi nhớ nội dung của đối tượng. GV: Nêu các ví dụ trong SGK và giải thích cho từng trường hợp. GV: Trong lập trình có mấy loại tên? HS: Tên dành riêng, tên chuẩn, tên do người lập trình đặt. GV: Trong khi soạn thảo chương trình, các NN lập trình thường hiển thị các tên dành riêng với màu chữ khác hẳn với các tên còn lại giúp người lập trình biết được tên nào là tên dành riêng (từ khóa). Trong Pascal , từ khóa thường hiển thị màu trắng. GV: Hãy nêu sự giống nhau và khác nhau của tên dành riêng và tên chuẩn. HS: Trả lời GV: Viết chương trình bằng NNLT Pascal đơn giản để học sinh quan sát đâu là tên chuẩn và tên dành riêng. Program Vidu; Uess crt; Var a,b,S: Integer; Begin Writeln(‘nhap a,b= ‘); readln(a,b); S:=a+b; Write(‘Tong la:’,S); Readln; End. GV: Gọi HS nêu ví dụ GV: Để viết chương trình để giải phương trình bậc 2 ta cần khai báo các tên sau: + a,b,c là ba tên để lưu ba hệ số của pt + x1,x2 là 2 tên dùng để lưu nghiệm nếu có + Delta là tên dùng để lưu giữ giá trị của delta GV: Hằng thường có hai loại: hằng được đặt tên và hằng không được đặt tên. Hằng không được đặt tên là những giá trị viết trực tiếp khi viết chương trình. Mỗi NNLT có một qui định về cách viết hằng riêng. GV: Trong các NNLT thường có các hằng nào? HS: Hằng số học, hằng logic, hằng xâu. GV: Cho các hằng, học sinh phân biệt hằng đúng hoặc sai: a) 1.03E-15 b)’XAU’ c) 9,58 d) 8+4 GV: Biến là đối tượng được sử dụng nhiều nhất trong khi viết chương trình. Biến là đại lượng có thể được thay đổi được nên thường được dùng để lưu trữ kết quả, làm trung gian cho các tính toán..Mỗi loại NN có những biến khác nhau và cách khai báo cũng khác nhau. GV: Biến là tên gì? (tên dành riêng, tên chuẩn hay tên do người lập trình tự đặt) HS: Tên do người sử dụng tự đặt. GV: Khi viết chương trình, người lập trình thường có nhu cầu giải thích cho các câu lệnh mình viết, để khi đọc lại thuận tiện hoặc người khác đọc lại có thể dễ hiểu được chương trình mình viết, do vậy các NNLT thường cung cấp cho ta cách để đưa các chú thích vào trong chương trình. GV: NN khác nhau thì cách viết chú thích cũng khác nhau. 1. Các thành phần cơ bản: a. Bảng chữ cái: Là tập các kí tự để viết chương trình. + Chữ cái thường và hoa: Từ a..z (65..90); A.. Z (97..122) + 10 chữ số thập phân Ả Rập: 0..9 (48..57) (trong mã ASCII) +Các kí tự đặc biệt: + - * / = < > [ ] . , ; # ^ $ @ & ( ) { } : ‘ Dấu cách (mã ASCII) - b. Cú pháp:Là bộ qui tắc để viết chương trình. c. Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực hiện ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. - 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. 2. Một số khái niệm: a. Tên: - Trong Turbo Pascal là một dãy liên tiếp không quá 127 kí tự gồm: Chữ cái, chữ số, dấu gạch dưới nhưng phải bắt đầu bằng chữ cái hoặc dấu gạch dưới. - VD: + Tên đúng: a,b,c x1, x2 _ten.... + Tên sai: a b c, 2x, a&b ... * Tên dành riêng: Do thư viện NN lập trình đặt ra được dùng với ý nghĩa riêng, không được dùng với ý nghĩa khác. (hay còn gọi là từ khóa Ví dụ: + Trong Pascal: program, var, begin, end... + Trong C++: Main, if, while, void... * Tên chuẩn: Là những tên được NNLT dùng với ý nghĩa nào đó trong các thư viện của NNLT, tuy nhiên người lập trình có thể sử dụng với NN khác. Ví dụ: + Trong Pascal: Real, Integer, sin, cos, Char.. + Trong C++: cin, cout, getchar * Tên do người lập trình đặt: Được xác định bằng cách khai báo trước khi sử dụng và không được trùng nhau. Ghi chú: Các tên trong chương trình không được trùng nhau. b. Hằng và biên: R Hằng: Hằng là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình. X Hằng số học: Là các số nguyên hay thực (dấu phẩy tĩnh hay dấu phẩy động) Ví dụ: SGK X Hằng logic: là giá trị đúng hoặc sai tương ứng true hoặc false. Ví dụ: SGK X Hằng xâu: là chuỗi kí tự trong bộ mã ASCII và được đặt trong cặp dấu nháy. Ví dụ: SGK R Biến: là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình. - Các NNLT có nhiều loại biến khác nhau - Biến phải được khai báo trước khi sử dụng. R 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 chương trình. - Trong Pascal chú thích đặt trong cặp dấu {} hoặc (* và *) VI/ Củng cố: Giáo viên nhắc lại các thành phần của chứ cái, các khái niệm tên dành riêng, tên chuẩn, tên do người lập trình tự đặt, hằng, biến. VII/ Dặn dò: Làm các bài 4,5,6 vào vở bài tập. VIII/ Rút kinh nghiệm:
Tài liệu đính kèm: