- GV: phân tích cho học sinh thấy sự khác nhau giữa thông dịch và biên dịch: Trong - Chơng trình viết bằng ngôn ngữ máy phải nạp trực tiếp vào bộ nhớ và thực hiện ngay, còn chơng trình v
Trang 1Chơ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 (Tiết 1) Khái niệm lập trình và ngôn ngữ lập trình
A Mục tiêu
1 Kiến thức
- Hiểu khả năng của ngông 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
khái niệm lập trình.
- GV: Em hãy nêu các bớc để giải một bài
toán trên máy tính điện tử?
trình bậc cao sang ngôn ngữ máy?
-GV có thể đa ra câu hỏi để gợi ý học sinh
trả lời
- HS: trả lời câu hỏi
- GV: Tóm lại
-GV: lấy ví dụ về thông dịch và biên dịch
cho học sinh có thể hình dung đợc mỗi công
việc
- GV: phân tích cho học sinh thấy sự khác
nhau giữa thông dịch và biên dịch: Trong
- Chơng trình viết bằng ngôn ngữ máy phải nạp trực tiếp vào bộ nhớ và thực hiện ngay, còn 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ìnhtrên ngôn ngữ máy mới có thể thực hiện đợc
- Để chuyển đổi ngôn ngữ lập trình bậc cao sang ngôn ngữ máy dung một chơng trình gọi
là chơng trình dịch
Chơng trình dịch có hai loại: biên dịch và thông dịch.
Biên dịch: Thực hiện các bớc sau:
- Duyệt, kiểm tra, phát hiện lỗi và kiểm tra tính đúng đắn của các câu lệnh trong chơng trình nguồn
- Dịch toàn bộ chơng trình nguồn thành
Trang 2Thông dịch: Dịch lần lợt từng câu lệnh và thực
hiện ngay câu lệnh ấy
- Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chơng trình nguồn
- Chuyển đổi các câu lệnh đó thành một haynhiều câu lệnh trong ngôn ngữ máy
- Thực hiện các lệnh ngôn ngữ máy vừa chuyển đợc
D Củng cố kiến thức
- Nhắc lại một số khái niệm mới
2
Trang 3Bài 2 Các thành phần của ngôn ngữ lập trình
- Kiểm tra bài cũ
+ Câu1: Thế nào gọi là lập trình? Có mấy loại ngôn ngữ lập trình, là những loại nào?
+ Câu 2: Em hiểu thế nào về chơng trình dịch
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 gì? Mỗi ngôn
khác Pascal có sử dụng thêm các dấu nháy kép
(“), dấu sổ ngợc (\), dấu chấm than (!)
Khi đó dấu (+) trong (1) sẽ là cộng hai số thực,
trong (2) là cộng hai số nguyên
- Mỗi ngôn ngữ khác nhau cung có cách xác
b) Cú pháp: là bộ các quy tắc dùng để 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 chơng trình hợp
lệ, ngữ nghĩa xác định ý nghĩa của các tổ hợp
kí tự trong chơng trình
- lỗi cú pháp đợc chơng trình dịch pháp hiện vàthông báo cho ngời lập trình Chơng trình không còn lỗi cú pháp 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
Trang 4- Nhắc lại kiến thức
- Ra câu hỏi học sinh trả lời
- GV: giới thiệu cách đặt tên trong các ngôn
này nhng tuỳ theo ngôn ngữ mà các tên có ý
nghĩa khác nhau trong các ý nghĩa khác nhau
- GV: mở chơng trình viết bằng Pascal để học
sinh quan sát cách hiển thị của một số từ khoá
trong chơng trình
- Các ngôn ngữ lập trình thờng cung cấp một số
đơn vị có sẵn trong th viện chơng trình giúp
ng-ời lập trình có thể thực hiện nhanh một số
thao tác thờng dùng
- GV chỉ cho học sinh một số thao tác tên
chuẩn trong Pascal
- GV: đa ra ví dụ giải phơng trình bậc 2 ta cần
khai báo những tên sau:
a, b, c là ba tên dùng để lu ba hệ số của phơng
trình
- x1, x2 để lu nghiệm nếu có
- delta để lu giá trị của delta
- GV: Lấy ví dụ, gợi ý học sinh trả lời thế nào
- Mọi đối tợng trong chơng trình đều phải đợc
đặt tên Mỗi ngôn ngữ lập trình có một qui tắc
đặt tên riêng
- Trong 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ữ chữ cái hoặc dấu gạch dới.
- Trong chơng trình dịch Free Pascal, tên có
thể có độ dài tới 255 kí tự
- Ngôn ngữ lập trình Pascal không phân biệt chữ hoa, chữ thờng nhng một số ngôn ngữ lập trình khác lại phân biệt chữ hoa, chữ thờng
- Ngôn ngữ lập trình thờng có 3 loại cơ bả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 qui địnhdùng với ý nghĩa riêng xác định, ngời lập trình không đợc sử dụng với ý nghĩa khác
- Tên dành riêng còn đợc gọi là từ khoá
- VD một số tên chuẩn + Trong ngôn ngữ Pascal: real, integer, sin, cos,
byte
+ Trong ngôn ngữ C++: cin, cout, getchar 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 trớc khi sử dụng Các tên này không đợc trùng tên với tên dành riêng
VD: bai1, chu_chay,
b) Hằng và biến 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.
- Trong ngôn ngữ lập trình thờng có các hằng
4
Trang 5riêng Hằng đợc đặt tên cũng có cách đặt tên
cho hằng khác nhau
- 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ể
thay đổi đợc, thờng dùng để lu trữ kết quả, làm
trung gian cho tính toán Mỗi loại ngôn ngữ có
những loại biến khác nhau và cách khai báo
biến khác nhau
- HS: nghe hiểu và ghi bài
GV: Khi viết chơng trình ngời lập trình có thể
giải thích câu lệnh mình viết để ngời đọc hiểu
- GV: mở chơng trình Pascal đơn giản để giải
thích cho học sinh hiểu rõ hơn
số học, hằng logic, hằng xâu
* Hằng số học là số nguyên hay số thực
* Hằng logic là giá trị đúng hoặc sai tơng ứng
với True hoặc False.
* Hằng xâu là chuỗi kí tự trong bộ mã ASCII Khi viết chuỗi kí tự này đợc đặt trong dấu nháy(Pascal dùng dấu nháy đơn, C++ dùng dấunháy kép)
Trang 6chơng II chơng trình đơn giản Bài 3 Cấu trúc chơng trìnhTiết 4
A- Mục Tiêu
1 Kiến thức
- Hiểu chơng trình là sự mô tả của thuật toán bằng ngôn ngữ lập trình
- Biết cấu trúc của một chơng trình Pascal: cấu trúc chung và các thành phần
- Nhận biết đợc các thành phần của chơng trình đơn giản
2 Kiểm tra bài cũ
- Câu 1: Em hiểu thế nào là cú pháp và ngữ nghĩa trong ngôn ngữ lập trình?
- Câu 2: Hãy tự viết ra 3 tên đúng theo ngôn ngữ Pascal
- Câu 3: Cho biết điểm khác nhau giữa tên dành riêng và tên chuẩn
Bài mới
- GV: Thuyết trình đa ra cấu trúc của
ch-ơng trình
- HS: nghe giảng, chép bài
- GV: Phần khai báo sẽ báo cho máy biết chơng
trình sử dụng những tài nguyên nào của máy
- GV: Mỗi ngôn ngữ lập trình có cách khai báo
khác nhau và tuỳ thuộc vào ngôn ngữ mà ta cần
tìm hiểu xem trong chơng trình ta cần khai báo
những gì
GV: Th viện chơng trình thờng chứa
những đoạn chơng trình có lập sẵn giúp
ngòi lập trình thực hiện một số công việc thờng
dùng, các đoạn chơng trình này cực kì hữu ích
- Có thể khai báo tên chơng trình, hằng đợc đặttên, biến, th, viện, chơng trình con
Trang 7th viện.
- GV: Khai báo hằng là việc đặt tên cho hằng
để tiện sử dụng và trách việc phải viết lặp lại
nhiều lần cùng một hằng trong chơng trình
Khai báo hằng còn tiện lợi hơn khi cần thay
đổi giá trị của nó trong chơng trình
- Lập trình của ngôn ngữ nào cần tìm hiểu cách
khai báo hằng của ngôn ngữ đó
- GV: Giải thích để học sinh hiểu vì sao phải
khai báo biến
GV: Mỗi ngôn ngữ lập trình có cách tổ chức
chơng trình khác nhau, thờng thì phần thân
chứa các câu lệnh của chơng trình
- GV: đa ra ví dụ minh hoạ cách viết chơng
trình trong các ngôn ngữ khác nhau là khác
nhau
- HS: quan sát và nhận xét về cách viết của 2
chơng trình này
- GV: Tóm lại: hai chơng trình cùng thực hiện
một công việc nhng viết bằng hai ngôn ngữ
khác nhau nên hệ thống các câu lệnh trong
const float e=2.7
Khai báo biến:
- Mọi biến sử dụng trong chơng trình đềuphải đợc khai báo để chơng trình dịch biết
- Thân chơng trình thờng có cặp dấu hiệu
và bắt đầu kết thúc chơng trình
Ví dụ: Trong ngôn ngữ Pascal
Begin [<Các câu lệnh>]
}
D Củng cố kiến thức
- Nhắc lại một số khái niệm mới.
- Cho một chơng trình mẫu về nhà để yêu cầu học sinh phân biệt và chỉ rõ các thành phần trong chơng trình
Trang 8Bài 4 Một số kiểu dữ liệuTiết 5
A- Mục tiêu
1 Kiến thức
- Biết một số kiểu dữ liệu định sẵn: nguyên, thực, kí tự, logic và miền con
- Biết xác định đợc kiểu cần khai báo của dữ liệu đơn giản
- Hiểu đợc cách khai báo biến
2 Kĩ năng
- Khai báo đúng kiểu dữ liệu
- Nhận biết đợc kiểu dữ liệu khai báo sai
- Kiểm tra bài cũ
+ Câu 1: Hãy cho biết các thành phần của chơng trình?
+ Câu 2: Viết cấu trúc của thân chơng trình?
Bài mới
- GV: Khi cần viết chơng trình quản lý học
sinh ta cần xử lí thông tin ở những dạng
nào?
- HS: Suy nghĩ trả lời câu hỏi
- GV: Phân tích câu trả lời của học sinh đa
ra một vài dạng thông tin nh sau:
+ Họ tên học sinh là những thông tin dạng
văn bản hay là dạng các ký tự
+ Điểm của học sịn là các thông tin dạng số
thực
+ Số thứ tự của học sinh là số nguyên
+ Một số thông tin khác lại chỉ cần biết
đúng sai
- GV: Viết trình đa một số bổ sung
nh sau:
- Ngôn ngữ lập trình nào cũng đa ra
một số kiểu dữ liệu chuẩn đơn giản, từ
những kiểu đơn giản này ta có thể xây
dựng những kiểu phức tạp hơn
- Kiểu dữ liệu nào cũng có miền giới
hạn của nó, máy tính không thể lu trữ tất
cả các số trên trục số nhng nó có thể lu
trữ với độ chính xác cao
- Tuỳ thuộc vào những loại ngôn ngữ
lập trình mà tên của các kiểu dữ liệu
khác nhau và miền của các kiểu dữ liệu
Real 6 0 hoặc có giá trị tuyệt đối
nằm trong phạm vi từ
10-38 đến 1038extended 10 0 hoặc có giá trị tuyệt đối
Trang 9- Với mỗi kiểu dữ liệu ngời lập trình
cần ghi nhớ tên kiểu, miền giá trị và số
l-ợng ô nhớ để lu một giá trị thuộc kiểu
đó
- HS: nghe hiểu, ghi bài
- Trong ngôn ngữ lập trình nói chung
thì kiểu kí tự thờng là tập hợp các kí tự
trong bảng mã kí tự, trong bảng mã hoá
kí tự ngời ta qui định có bao nhiêu loại kí
- HS: nghe hiểu ghi bài
- GV: Lấy ví dụ trờng hợp dùng kiểu
dữ liệu logic Từ đó học sinh nhận xét
miền giá trị
- HS: trả lời, nghe giảng và ghi bài
ASCII gồm 256 ký tự
- Mỗi ký tự có một bảng mã tơng ứng từ 0 đến 255
- Các kí tự có quan hệ so sánh dựa trên bảng mã của từng ký tự
VD: Trong bảng mã ASCII, các ký tự trong bảng chữ cái tiếng Anh xếp liên tiếp nhau, các chữ cái cũng xếp liên tiếp, cụ thể: A mã 65; a mã 97, 0 mã 48
- Khi viết kí tự bằng ngôn ngữ lập trình nào thì cần tìm hiểu đặc trng của các kiểu dữ liệu của ngôn ngữ đó
Trang 10Bài 5: Khai báo biếnBài mới
- GV: Khai báo biến là chơng trình báo
cho máy biết phải dùng những tên nào trong
chơng trình
- HS: Lắng nghe, ghi chép
Ví dụ: Để giải phơng trình bậc 2 ax2 + bx +c =
0 cần khai báo các biến nh sau:
Var a, b, c, x1, x2, delta: real;
Để tính chu vi và diện tích tam giác cần khai
báo các biến sau:
Var a, b, c, p, s, cv:Real;
Trong đó:
a, b, c: Dùng để lu độ dài 3 cạnh tam giác
p: nửa chu vi tam giác
cv, s: chu vi và diện tích tam giác
- GV: Đặt câu hỏi: Khi khai báo biến cần
chú ý những điều gì?
- HS; Suy nghĩ trả lời câu hỏi
- GV: Phân tích câu trả lời của học sinh.
- Trong ngôn ngữ Pascal, biến đơn đợc khai báo nh sau:
var <danh sách biến>:<kiểu dữ liệu>
Trong đó:
Var: là từ khoá để khai báo biến.
Danh sách biến: Tên các biến cách nhau bởi
dấu phẩy
Kiểu dữ liệu: Là một kiểu dữ liệu nào đó của
ngôn ngữ Pascal
Sau Var có thể khai báo nhiều danh sách biến
có những kiểu dữ liệu khác nhau
+ Cần đặt tên biến sao cho gợi nhớ đến ý nghĩa của nó
+ Không nên đặt tên quá ngắn hay quá dài, dễ dẫn đến mắc lỗi hoặc hiểu nhầm
+ Khai báo biến cần quan tâm đến phạm vi giá trị của nó
D- Củng cố kiến thức
- Nhắc lại một số khái niệm
- Ra bài tập về nhà
10
Trang 11Bài 6 Phép toán, biểu thức, câu lệnh gánA- Mục tiêu
1 Kiến thức
- Biết đợc kí hiệu các phép toán, cách viết biểu thức số học, hàm số học chuẩn và biểu thức quan
hệ, biểu thức logic trong Pascal
- Hiểu đợc lệnh gán
2 Kiến thức
- Viết đợc lệnh gán
- Phân biệt sự khác nhau giữa lệnh gán(:=) và phép so sánh bằng
- Viết đợc biểu thức số học và logic với các phép toán thông dụng
phải xây dựng từ các phép toán khác
VD: Luỹ thừa không phải ngôn ngữ nào
cũng viết đợc
- GV: ngôn ngữ lập trình khác nhau lại có
cách kí hiệu khác nhau
- Gv: trong toán học biểu thức là gì?
- HS: đa ra khái niệm
- GV: đa ra khái niệm biểu thức trong lập
- GV: Đa ra cách viết biểu thức và thứ tự
thực hiện phép toán trong lập trình
- Ngôn ngữ lập trình nào cũng sử dụng đến cácphép toán, biểu thức, câu lệnh gán
- Ta xét khái niệm này trong ngôn ngữ Pascal
1 Phép toán
* NNLT Pascal sử dụng một số phép toán sau:
- Với số nguyên: +, -,* (nhân), div (chia lấynguyên), mod (chia lấy phần d)
- Với số thực: +, -, *, /(chia)
- Các phép toán quan hệ: >, <, = , <=, >=, <>
- Các phép toán logic: NOT (phủ định),OR(hoặc), AND(và): thờng dùng để kếp hợpnhiều biểu thức quan hệ với nhau
- Viết lần lợt từ trái sang phải
Trang 12- Gv: cách viết biểu thức phụ thuộc vào
từng cú pháp của ngôn ngữ lập trình
Đa ra một số biểu thức trong toán học để
học sinh chuyển sang ngôn ngữ lập trình
- GV: với các hàm chuẩn cần quan tâm
đến các kiểu của đối số và kiểu của giá trị
trả về
- HS: nghe hiểu, ghi bài
- GV: Trong lập trình thờng ta phải so
sánh hai giá trị nào đó trớc khi thực hiện
lệnh nào đó Biểu thức quan hệ còn gọi là
biểu thức so sánh đợc dùng để so sánh 2
giá trị, cho kết quả đúng hoặc sai (logic)
VD: 6>9 cho kết quả sai
- GV: Muốn so sánh điều kiện đồng
- Kết quả của hàm phụ thuộc vào kiểu của đối số
- Đối số là một hay nhiều biểu thức số học đợc đặttrong dấu ngoặc () sau tên hàm
<Biểu thức1> <Phép toán quan hệ> <Biểu thức 2>
Trong đó: biểu thức 1, biểu thức 2 phải cùng kiểu
- Kết quả của biểu thức quan hệ là TRUEhoặc FALSE
3*A <=5+B
5 Biểu thức logic
- Biểu thức logic đơn giản là hằng hoặc biến logic
- Thờng dùng để liên kết nhiều biểu thức quan hệlại với nhau bởi các phép toán logic
VD: Ba số dơng a, b, c là chiều dài 3 cạnh của tam
giác nếu biẻu thức sau là đúng:
(a+b>c) and (a+c>b) and (b+c>a)
- Biểu thức điều kiện: (x>=0) and (x<=5)
12
Trang 13- GV: phân tích câu trả lời của học
sinh sau đó tổng hợp lại: cần chú ý đến
kiểu của biến và kiểu của biểu thức
-GV: Lấy ví dụ minh hoạ về lệnh gán
- HS: nghe hiểu, ghi bài
- Hoạt động của lệnh gán: Tính giá trị củabiểu thức sau đó ghi giá trị vào tên biến
Trang 14Bài 7: các thủ tục chuẩn vào ra Tiết 7
A-Mục tiêu
1 Kiến thức
- Biết đợc các lệnh vào ra đơn giản để nhập thông tin từ bàn phím và đa thông tin ra màn hình.
- Biết các bớc soạn thảo, dịch và hiệu chỉnh chơng trình
- Biết một số công cụ của môi trờng TP
2 Kỹ năng
- Viết đợc một số lệnh vào ra đơn giản
- Bớc đầu sử dụng đợc chơng trình dịch để phát hiện lỗi
- Bớc đầu chỉnh sửa đợc chơng trình dựa vào thông báo lỗi của chơng trình dịch và tính hợp lí của kết quả thu đợc
- Kiểm tra bài cũ
+ Câu 1: Cho biểu thức:
y
x
4
từ bàn phím
GV: Khi sử dụng các ứng dụng ta thờng phải
nhập thông tin vào, nh vậy bằng cách nào ta
phím và cần phải đa kết quả ra màn hình để
Trong ngôn ngữ Pascal, các thủ tục vào ra đơngiản nh sau:
1 Nhập dữ liệu từ bàn phím
read(<danh sách biến vào>);
hoặc readln(<danh sách biến vào>);
Trong đó danh sách biến vào là một hoặc nhiều tên biến đơn (trừ kiểu Boolean)
- Trờng hợp nhiều biến thì cách nhau bởi dấu phẩy
Ví dụ: read(N);
readln(a,b,c);
Chú ý: Khi nhập dữ liệu từ bàn phím READ hoặc READLN có nghĩa nh nhau, thờng hay dùng READLN hơn, READLN luôn chờ gõ bàn phím.
2, Đa dữ liệu ra màn hình
- Trong Pascal
Write(<danh sách kết quả ra>);
hoặc Writeln(<danh sách kết quả ra>);
14
Trang 15ngời sử dụng quan sát đợc Vậy hiển thị dữ
liệu bằng những cách nào?
- Mỗi ngôn ngữ lập trình có cách đa
thông tin ra màn hình khác nhau
- HS: nghe hiểu, ghi bài
- GV: giải thích sự khác nhau giữa
Write và Writeln Lấy ví dụ minh hoạ
- HS: nhận xét chơng trình chạy
- GV: Giải thích và minh hoạ thông tin ra bằng
chơng trình
GV: Lấy một chơng trình hoàn chỉnh cho học
sinh nhận biết đoạn đa thông tin vào, đoạn đa
dữ liệu và cách hiển thị kết quả
Write(a, b, c);
Writeln(‘giá trị của N là:’,N);
- Thủ tục Writeln sau khi đa ra kết quả
sẽ chuyển con trỏ màn hình xuống đầu dòng tiếp theo
- Ngoài ra trong Pascal còn có quy cách
đa thông tin ra nh sau:
kết quả thực: :<Độ rộng>:<Số chữ số thập phân>
+ Kết quả khác: :<Độ rộng>
Ví dụ: Writeln(x:8);
Writeln( nghiệm của PT là:’,x:8:2);
Xét ví dụ chơng trình đầy đủ sau:
Program VD;
USES crt;
Var N: byte;
Begin Write(‘Lop ban co bao nhieu nguoi? ‘); readln(N);
Writeln(‘Vay lop ban co ‘,N-1,’ nguoi ban trong lop’);
Write(‘ go ENTER de ket thuc chuong trinh’);
readln;
end
- Thủ tục readln cuối cùng dùng để tạm dừng chơng trình cho ngời dùng quan sát kết quả trên màn hình
- Muốn chơng trình chạy tiếp bấm Enter
bài 8 Soạn thảo, dịch, thực hiện và hiệu chỉnh chơng trình
- GV: Giới thiệu một số tập tin cần thiết
để Turbo có thể chạy đợc, hớng dẫn các em
khởi động Pascal trên máy
Màn hình làm việc của ngôn ngữ Pascal có dạng: (xem màn hình qua trình chiếu)
- Một số thao tác thờng dùng trong