Chương trình viết bằng ngôn ngữ nào có thể nạp trực tiếp vào bộ nhớ máy và thực hiện ngay

Bạn đang xem 20 trang mẫu của tài liệu "Giáo án giảng dạy môn Tin học 11 - Bài 1 đến bài 11 - Trường THPT Huỳnh Thúc Kháng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Ngày soạn: 22/08/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: 1	 Bài 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
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. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số:
2. 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
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Cho bài toán sau: Kết luận nghiệm 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 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 ntn?
- 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
- 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à b0, 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.
- Nghiên cứu Nội dung trong SGK và trả lời câu hỏi
+ Được một chương trình.
-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ữ 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.
1. Khái niệm lâp trình và ngôn ngữ lập trình
a. Khái niệm lập trình
- 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.
b. Ngôn ngữ lập trình:
Ngôn ngữ máy, hợp ngữ và ngôn ngữ bâc cao.
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
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- 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 này gọi là 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.
-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:
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
Hoạt động 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: 25/08/09
Tiết: 2	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. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số:
2. Kiểm tra bài cũ:
CH: Phân biệt quá trình thông dịch và biên dịch
3. Nội dung:
Hoạt động1: Tìm hiểu các thành phần cơ bản
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Để diễn tả một ngôn ngữ tự nhiên ta cần phải biết những gì? 
- 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 [!].
- 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: Về ngữ nghĩa 2 biểu thức trên có khác nhau không?
- Mỗi ngôn ngữ khác nhau cũng có ngữ nghĩa khác nhau
- Chữ cái
- Cú pháp
- Ý nghĩa của điều cần diễn tả.
HS chú ý
HS lắng nghe
Khác nhau: Dấu cộng trong [1] là cộng 2 số thực cộng trong [2] là cộng 2 số nguyên 
HS lắng nghe và ghi chép.
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 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
Hoạt động2: Tìm hiểu một số khái niệm
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- 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 đặ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
Lắng nghe và ghi chép
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ưới và 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, ....
* 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
GV đư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.
- 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ả
Lắng nghe
Lắng nghe
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ác giá 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: /* */
Hoạt động 3: Củng cố toàn bài
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.
Ngày soạn: 04/09/09
Tiết: 3 BÀI TẬP CHƯƠNG 1
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. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số
2. Kiểm tra bài cũ.
	Câu 1: Có mấy loại tên trong ngôn ngữ Pascal ?.
	Câu 2: Khái niệm hằng và biến ?
2. Nội dung:
Hoạt động 1: Tìm hiểu và trả lời các câu hỏi trong SGK
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Đ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:
- Đặ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?
-  ... g một chiều xuất hiện trong một chương trình.
	+ Biết cách khai báo mảng đơn giản và chỉ số kiểu miền con của kiểu nguyên.
- Về tư duy, thái độ:
	+ Có tư duy đúng đắn trong việc áp dụng mảng 1 chiều để giải các bài toán đơn giản.
II/ Chuẩn bị của gv, hs:
	+ Giáo viên: Sgk, sbt, sgv, tranh sơ đồ.
	+ Học sinh: Sgk, sbt.
III/Phương pháp:
	Trực quan, thuyết trình kết hợp với hỏi - đáp.
IV/ Tiến trình tiết dạy::
Hoạt động 1: Tìm hiểu về sự cần thiết của chương IV[Kiểu dữ liệu có cấu trúc] và định nghĩa mảng 1 chiều.
TG
H/động của hs
H/động của gv
N ội dung Nội dung
25’
- Trả lời
- Trả lời
- Nhắc lại những kiểu dl đã học?
- GV nêu lên sự cần thiết phải có kiểu dl có cấu trúc
- Tìm hiểu về mảng 1 chiều.
- Hãy trình bày ý tưởng để giải bài toán trên
- Ta có thể viết ct bằng NN Pascal như sau:
-Nếu ta viết bằng mảng 1 chi ều: 
-So s ánh 2 ch/tr trên
-Thế nào là mảng 1 chiều?
Bài11 KIỂU MẢNG 
1. Kiểu mảng 1 chiều:
- Xét ví dụ:
Nhập vào nhiệt độ trung bình của mỗi ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nh/độ cao hơn nh/độ t/bình của tuần.
- Giải:
Program nhdo;
Var t2,t3,t4,t5,t6,t7,cn,tb: real;
d: integer;
Begin
Writeln['Nhap vao nhiet do cua cac thu trong tuan']; Readln[t1,t2,t3,t4,t5,t6,t7,cn];
Tb:=[t2+t3+t4+t5+t6+t7+cn]/7;
 D:=0;
If t2>tb then d:=d+1;
If t3>tb then d:=d+1;
If t4>tb then d:=d+1;
If t5>tb then d:=d+1;
If t6>tb then d:=d+1;
If t7>tb then d:=d+1;
If cn>tb then d:=d+1;
Writeln['Nhiet do tr/binh tuan: ',tb:5:2];
Writeln['So ngay nh/do cao hon nh/do t/binh la: ',d];
Readln;
End.
Dùng mảng 1 chiều:
Program nhdo;
Const max = 20;
Type a = array[1..max] of real;
Var ndo:a; d,i,n: byte; t,tb: real;
Begin
Writeln['Nhap so ngay: '];
Readln[n];
T:=0; d:=0;
For i:=1 to n do
 Begin
 Writeln['Nhap vao nhiet do cua ngay thu ',i,':']; Readln[ndo[i]];
 T:=t+ndo[i];
 End;
 Tb:=t/n;
For i:=1 to n do
 If ndo[i]>tb then d:=d+1;
Writeln['Nhiet do tr/binh tuan: ',tb:5:2];
Writeln['So ngay nh/do cao hon nh/do t/binh la: ',d];
Readln;
End.
A/ Định nghĩa:sgk
	Hoạt động 2: Tìm hiểu cách khai báo mảng 1 chiều
TG
H/động của hs
H/động của gv
Nội dung Nội dung
15’
Trả lời
- Lên bảng
Có mấy cách để khai báo mảng 1 chiều?
- Hãy khai báo mảng trong vd trên bằng cách khai báo trực tiếp.
- Để tham chiếu đến nh/độ của thứ 2 ta viết ndo[2]
B/Khai báo:
Cách 1: Khai báo trực tiếp:
Var : array[kiểu chỉ số] of ;
Cách 2: Khai báo gián tiếp
Type = array[kiểu chỉ số] of ;
Var :;
Trong đó: +Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1...n2[n1

Chủ Đề