0
SỞ GIÁO DỤC VÀ ĐÀO TẠO TPHCM
TRƯỜNG THPT NGUYỄN TẤT THÀNH
VỞ GHI BÀI
TIN HỌC 11
Lớp:
Họ và tên:
Năm học:
1
BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ
NGÔN NGỮ LẬP TRÌNH
I. Lập trình là gì?
Các bạn đã biết mọi bài toán có thuật toán đều có thể giải
bằng máy tính.
Để giải bài toán trên máy tính thì ta phải thực hiện qua 5
bước như sau: Xác định bài toán, thiết kế và lựa chọn thuật
toán, viết chương trình (lập trình), hiệu chỉnh và viết tài liệu.
Lập trình là sử dụng ngôn ngữ lập trình để mô tả dữ
liệu và diễn đạt đúng thuật toán.
II. Ngôn ngữ lập trình:
1. Khái niệm:
Ngôn ngữ lập trình là một chương trình giúp tạo ra các
chương trình khác.
2. Phân loại:
- Ngôn ngữ máy: Sử dụng mã nhị phân để viết các cậu
lệnh.
- Hợp ngữ: Giống ngôn ngữ máy nhưng cho phép dùng
một số từ tiếng Anh để diễn tả câu lệnh.
- Ngôn ngữ bậc cao: Gần với ngôn ngữ tự nhiên nên thích
hợp với đa số người lập trình.
Chương trình Tin học lớp 11 sẽ tìm hiểu ngôn ngữ lập
trình bậc cao có tên là Pascal. Mặc dù Pascal không còn được
dùng nhiều trong thực tế nhưng đây là ngôn ngữ cơ bản nhất
để các bạn có cơ sở học các ngôn ngữ bậc cao khác.
2
III. Phương pháp học và tài liệu tham khảo.
1. Phương pháp học.
- Nắm vững cú pháp và các hoạt động của các câu lệnh.
- Không học thuộc lòng các chương trình mẫu mà phải
hiểu rõ ý nghĩa từng câu lệnh trong chương trình để áp dụng
cho các chương trình khác.
- Làm nhiều bài tập, và tự đưa ra bài tập (là các bài toán
ở chương trình lớp 10).
- Thực hành nhiều để viết đúng cú pháp các lệnh (Pascal
sẽ bắt lỗi cú pháp cho bạn) và kiểm tra tính chính xác của
chương trình.
2. Tài liệu tham khảo
a. Chương trình mẫu: Trên internet rất nhiều, hoặc có thể
download tại địa chỉ:
b. Chương trình cài đặt thực hành: Hiện nay có rất nhiều
chương trình hổ trợ ngôn ngữ Pascal như Turbo Pascal,
Borland Pascal, Free Pascal,… Các bạn nên dùng Free Pascal.
- Link download Free Pascal: dung lượng file 22Mb
/>6.2/fpc-2.6.2.i386-win32.exe/download
- Hiệu chỉnh sau khi cài đặt xong: Click chuột phải vào
biểu tượng Free Pascal trên màn hình và chọn Properties, cửa
sổ Properties hiện lên, chọn vào thẻ Font và chọn Size là 10 x
18, click Ok.
3
BÀI 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ
LẬP TRÌNH PASCAL
I. Các thành phần:
Mỗi ngôn ngữ lập trình thường có 3 thành phần cơ bản:
bảng chữ cái, cú pháp và ngữ nghĩa.
1. Bảng chữ cái:
- Là tập hợp các ký tự dùng để viết chương trình, không
được dùng bất kỳ kí tự nào ngoài các ký tự qui định trong
bảng chữ cái.
+ Bảng chữ cái bao gồm
+ 10 chữ số:
+ Các ký hiệu đặc biệt:
2. Cú pháp:
- Là bộ các qui tắc để viết chương trình, người lập trình
phải
3. Ngữ nghĩa:
- Ngữ nghĩa xác định các thao tác cần thực hiện và phải
thực hiện như thế nào dựa vào ngữ cảnh của nó.
Ví dụ: Có biểu thức (a + b / c), ngữ nghĩa qui định rằng
dấu / là thể hiện phép toán chia và phải thực hiện phép toán /
(chia) trước sau đó mới thực hiện phép tính cộng (dấu + thể
hiện phép tính cộng).
II. Một số khái niệm
1. Tên
- Mọi đối tượng trong chương trình
4
a. Tên dành riêng (……………………….)
Ví dụ:
b. Tên chuẩn:
Ví dụ: Tên các kiểu dữ liệu, các hàm của ngôn ngữ lập
trình….
c. Tên do người lập trình đặt:
- Trong chương trình thường có nhiều đối tượng (như
hằng số, biến số, tên chương trình con, tên hàm…), vì vậy để
phân biệt các đối tượng thì
nhưng phải tuân thủ
và được khai báo
- Qui tắc đặt tên trong Turbo Pascal:
5
2. Hằng số
Pascal có định nghĩa sẳn một số hằng trong thư viện và người
dùng có thể định nghĩa các hằng mới phục vụ cho chương
trình.
3. Biến số
Là một đại lượng được người dùng đặt tên, dùng để
•-•-•
Bài 3: CẤU TRÚC CHƯƠNG TRÌNH PASCAL
I. Cấu trúc chung
Thường được chia thành 02 phần:
+ Phần khai báo
+ Phân thân
II. Các thành phần của chương trình
1. Phần khai báo
- Phải nằm trước phần thân.
- Từ đầu trước từ khoá BEGIN
- Là phần nhưng thường phải có.
- Dùng để khai báo:
+ Tên chương trình:
+ Thư viện:
+ Hằng:
+ Biến số:
6
+ Hàm, chương trình con
2. Phần thân
- Bắt đầu bằng từ khoá ………… và kết thúc bằng ………….
- Là phần bắt buộc phải có.
- Bao gồm các câu lệnh (
)
và lời gọi hàm hoặc gọi chương trình con.
- Các câu lệnh
và từ trên xuống dưới.
- Phần thân thường được chia thành 3 phần:
.
+ thường dùng thụ tục ……………
+ Xử lý dữ liệu thường dùng câu lệnh:
+ thường dùng thủ tục …………
III. Ví dụ chương trình đơn giản
1. Chương trình Pascal hiển thị thông tin cá nhân.
7
2. Chương trình Pascal hiện câu chào “Hello World”
Lưu ý: Pascal cho phép sử dụng cặp dấu { } để chú thích cho
câu lệnh trong chương trình.
Câu hỏi:
1. Hãy chỉ ra phần khai báo và phần thân của 02 chương trình
trên và ý nghĩa từng dòng lệnh.
2. Tên chương trình và tên biến phải tuân theo qui tắc nào?
8
Bài 4: MỘT SỐ KIỂU DỮ LIỆU CHUẨN
Do thông tin có nhiều dạng khác nhau, nên các ngôn ngữ lập
trình thường xây dựng nhiều kiểu dữ liệu để thuận lợi trong
việc lưu trữ, xử lý và tiết kiệm bộ nhớ.
Ngôn ngữ lập trình Pascal có các kiểu dữ liệu cơ bản như
sau: Kiểu số nguyên, kiểu số thực, kiểu logic, kiểu ký tự, kiểu
chuổi….
Tuỳ theo nhu cầu bài toán mà người sử dụng chọn kiểu dữ
liệu thích hợp sao cho đáp ứng được bài toán mà kích thước bộ
nhộ nhớ lưu trữ biến là nhỏ nhất.
I. Kiểu sổ nguyên
Tên kiểu
Kích thước
bộ nhớ
Phạm vi
giá trị
II. Kiểu số thực
Tên kiểu
Kích thước
bộ nhớ
Phạm vi
giá trị
9
III. Kiểu Ký tự
Tên kiểu
Kích thước
bộ nhớ
Phạm vi
giá trị
IV. Kiểu logic
Tên kiểu
Kích thước
bộ nhớ
Phạm vi
giá trị
V. Kiểu xâu.
Tên kiểu
Kích thước bộ nhớ
Yêu cầu bài học:
Cần nắm rõ tên, kích thước bộ nhớ và phạm vi của các
kiểu dữ liệu.
Bài tập:
1. Trong các khai báo biến sau, khai báo nào là sai?
a) Var t : LongInt; b) Var t : Word ;
c) Var t : Real ; d) Var t : Logic ;
2. Bộ nhớ cần cấp phát bao nhiêu byte để lưu trữ các biến sau:
VAR X , Y : Boolean;
D: Integer;
A,B : LongInt;
a) 22 byte bộ nhớ b) 20 byte bộ nhớ
c) 21 byte bộ nhớ d) 12 byte bộ nhớ
10
3. Giả sử biến p mang các giá trị từ 10 đến 256, thì khai báo
nào sau đây là đúng và it tốn bộ nhớ nhất?
a) Byte b) Integer c) Longint d) Word
4. Giả sử biến p mang các giá trị từ -10 đến 256, thì khai báo
nào sau đây là đúng và it tốn bộ nhớ nhất?
a) Byte b) Integer c) Longint d) Word
•-•-•
BÀI 5: KHAI BÁO BIẾN
Thông thường một chương trình luôn có bước yêu cầu
người dùng nhập vào một hay nhiều giá trị, sau đó chúng ta
mới thực hiện việc tính toán và hiển thị kết quả lại cho người
sử dụng. Để lưu trữ các giá trị hoặc kết quả đó thì Pascal cung
cấp cho người lập trình các “biến”.
I. Cú pháp khai báo
II. Ví dụ.
Viết chương trình giải phương trình bậc 2: ax
2
+ bx + c = 0
- Nhận xét: Bài toán này muốn giải được thì cần phải có giá
trị của a, b và c nên ta cần phải tạo ra 3 biến để lưu các giá trị
này. Để giải ta phải tính delta nên ta cần một biến nữa để lưu
11
giá trị delta. Nếu thấy cần thiết ta có thể tạo 2 biến nữa để lưu
giá trị X1 và X2.
- Khai báo biến như sau:
III. Các lưu ý khi khai báo biến.
IV. Bài tập: Hãy khai báo biến cho các bài toán sau. Giải
thích?
1. Viết chương trình tính S = 1 + 2 + 3 + …. + n
2. Viết chương trình tính điểm trung bình HKI của hs lớp 11.
3. Viết chương trình tìm số lớn nhất của 02 số.
12
BÀI 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I. Phép toán.
Máy tính giúp chúng ta tính toán, tuy nhiên qui tắc viết
phép toán trong Pascal có đôi chút khác biệt so với toán học,
nên chúng ta cần lưu ý khi sử dụng.
Bảng mô tả cách chuyển đổi từ toán học sang Pascal
Phép toán
toán học
Pascal
Với số nguyên
+ , - , x , chia lấy phần dư,
chia lấy phần nguyên
Với số thực
+ , - , x , :
Quan hệ
< , ≤ , > , ≥ , = , ≠
Logic
Phủ định, ⋁ (hoặc), ⋀
(và)
II. Biểu thức số học
Trong Pascal, biểu thức số học là sự liên kết của các
biến, giá trị, các hằng thông qua các phép toán.
13
Nguyên tắc thực hiện phép toán trong Pascal.
- Ví dụ:
Toán học
Pascal
2a + b
2
– (a+b)
2
………………………………………………
……………………………………
n*x/a + (n*(n-1) + x*x)/(b-c)
(a ≥ 3) ⋀ (b ≠ a – 2)
………………………………………………
III. Một số hàm cơ bản: Xem SGK trang 26
- Bình phương: ……………………………
- Căn bậc 2: ……………………………
- Giá trị tuyệt đối: ……………………………
IV. Biểu thức quan hệ.
- Cú pháp:
<biểu thức 1> <phép toán quan hệ> <biểu thức 2>;
- Hai biểu thức cùng kiểu dữ liệu liên kết với nhau bằng
phép toán quan hệ sẽ cho ta một biểu thức quan hệ.
- Kết quả của biểu thức quan hệ sẽ có giá trị là ……
……… …………… ………………
- Ví dụ:
14
(5 + 3) >= (6 – 2) kết quả: True
a mod 2 = 0 kết quả chưa xác định vì chưa biết
giá trị của a.
V. Biểu thức logic
- Cú pháp:
…………………………………………………………………………………
- …………………………………. là sự liên kết của hai biểu thức
quan hệ bằng các phép toán logic.
- Kết quả của biểu thức logic sẽ có giá trị là …… ………
…… . …… ……
- Ví dụ:
(x >= 5) and (x <= 11)
Not (mod(x) = 2)
VI. Câu lệnh gán.
- Cú pháp:
………………………………………. ……………………………
- Lệnh gán là một trong những lệnh thường được dùng
nhất của Pascal.
- Chức năng của lệnh gán là ………… ………………
………………… ………… …… ……… …… …………. ……
- Biến phải có kiểu phù hợp (…………………………
………… ………………… ……… ) với giá trị của biểu thức.
- Ví dụ:
X1 := (-b – sqrt(b*b – 4*a*c))/2*a ;
i := i – 1;
15
VII. Bài tập
1. Cho biết kết quả trả về của các biểu thức sau:
a. (20 mod 4) div 2 + (16 div sqr(4))
b. (20 div 4) mod 2 + (15 div 4)
c. abs(sqrt(16) – sqr(3)) + 2
2. Viết các biểu thức sau bằng Pascal
a. Sin(5x) + cos(3x+y)=12
b. 5 ≤ x ≤ 8
c.
16
BÀI 7: CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
Để khởi tạo giá trị ban đầu cho biến ta có thể dùng lệnh
gán, tuy nhiên cách làm này làm cho chương trình chỉ sử dụng
được một bộ dữ liệu vào. Như vậy chương trình mất đi tính
linh hoạt nên chúng ta sẽ tìm hiểu cách nhập dữ liệu từ bàn
phím thông qua hàm Read và Readln.
I. Nhập dữ liệu từ bàn phím.
Việc nhập dữ liệu từ bàn phím được thực hiện bằng thủ
tục chuẩn READ hoặc READLN
- Cú pháp:
Hoặc
- Lưu ý: Các biến trong danh sách được phân cách với
nhau bằng dấu …………………
- Ví dụ:
Read(a);
Readln(a,b,c);
- Những lưu ý:
+ Dữ liệu nhập vào phải
+ Nếu nhập nhiều biến thì giá trị các biến phải …….
…… ………… ……………………… … hoặc bằng phím Enter.
+ Lệnh Read kết thúc khi nhận đủ giá trị các biến.
+ Lệnh Readln kết thúc khi nhận đủ các biến và người
dùng nhấn phím Enter, lệnh Readln thường được dùng hơn
lệnh Read.
17
II. Đưa dữ liệu ra màn hình.
Để đưa dữ liệu ra màn hình, Pascal cung cấp thủ tục
WRITE hoặc WRITELN:
- Cú pháp:
Hoặc
- Những lưu ý:
+ “Kết quả ra” có thể là ………………………., giá trị biểu
thức hoặc hằng xâu.
+ Các kết quả ra được phân cách …… …… ………
………… ……
+ Thủ tục Write sau khi xuất kết quả sẽ không đưa
con trỏ văn bản xuống dòng mới nhưng thủ tục Writeln sẽ đưa
con trỏ xuống dòng mới. Vì vậy để kết quả hiển thị trên màn
hình được rõ ràng ta nên chú ý khi sử dụng.
+ Hằng xâu được đặt trong …… …… … ………
………… …… ……
+ Hằng xâu thường được dùng để chú thích hay tách
các kết quả.
- Ví dụ:
Write(‘Nghiem cua phuong trinh la:’,X1);
Writeln(‘Nghiem X1 = ‘,X1,’ va X2 = ‘ ,X2);
III. Bài tập
1. Viết chương trình giải phương trình bậc 2 với Delta>0.
2. Viết chương trình xuất ra hình chữ nhật bằng các dấu *.
3. Viết chương trình tính tổng, tích của 2 số nguyên nhập vào
từ bàn phím
18
19
20
BÀI 8: SOẠN THẢO – DỊCH – THỰC HIỆN
CHƯƠNG TRÌNH
Các bước thực hiện: 6 bước
B1: Khởi động chương trình Pascal
B2. Tạo một chương trình mới: ………………………
B3: Tiến hành soạn thảo chương trình
B4. Lưu chương trình: ……………………… hoặc nhấn F2
B5: Nhấn ……………………… để tiến hành dịch chương trình
- Nếu không lỗi (Complier Successful) thì qua B6
- Nếu có lỗi cú pháp (Compiler Faile) thì Pascal sẽ hiển thị
thông báo lỗi và ta tiến hành sửa và quay lại B4.
B6: Nhấn ……………………… để chạy chương trình và xem kết quả.
Lưu ý:
+ Nên sử dụng thủ tục Readln hoặc Delay(thoi gian) hoặc
Readkey ở cuối chương trình để chương trình dừng lại cho ta
xem kết quả.
+ Thoát Pascal bằng cách nhấn ……………………… hoặc
………………………
•-•-•
BÀI 9: CẤU TRÚC RẼ NHÁNH
I. Rẽ nhánh
- Do tính linh hoạt của chương trình (dữ liệu đầu vào thay
đổi sau mỗi lần thực hiện chương trình) nên không phải lúc
nào chương trình cũng thực hiện hết tất cả những lệnh mà
chúng ta đã soạn thảo mà phải dựa vào dữ liệu đầu vào để ta
điều khiển chương trình thực hiện những câu lệnh cần thiết.
21
Hoặc khi cần kiểm tra tính chính xác của biến, nếu biến chính
xác thì ta tiến hành xử lý, còn biến không chính xác thì ta yêu
cầu thay đổi và không tiến hành xử lý,….
Để giải quyết vấn đề trên Pascal cung cấp cấu trúc rẽ
nhánh là If – then
II. Câu lệnh If – then
1. Cú pháp.
- Dạng thiếu
- Dạng đủ
22
Lưu ý:
<điều kiện> thường là
Câu lệnh là các câu lệnh của Pascal
Ví dụ:
2. Cách hoạt động của If – Then
Khi gặp câu lệnh này Pascal sẽ tiến hành thực hiện trình
tự các bước như sau:
- Tiến hành tìm giá trị của biển thức logic <điều kiện>
- Nếu biểu thức <điều kiện> có giá trị …… …… ……
… thì <câu lệnh 1> sẽ được thực hiện.
- Nếu biểu thức <điều kiện> có giá trị …………… thì
Pascal sẽ không thực hiện <câu lệnh> và thực hiện câu lệnh
kế tiếp trong chương trình (nếu là dạng thiếu). Nếu là dạng đủ
thì Pascal sẽ không thực hiện ………………………. mà thực
hiện ………………………, sau đó thực hiện câu lệnh kế tiếp
trong chương trình.
III. Câu lệnh ghép
Theo cú pháp thì sau một số từ khoá như “then”, “else”,
“do”,… phải là một câu lệnh, nhưng trong nhiều trường hợp
chúng ta muốn thực hiện nhiều câu lệnh thì Pascal cho phép
chúng ta gộp nhiều câu lệnh thành một câu lệnh ghép bằng
cách sử dụng từ khoá
23
Ví dụ: xét đoạn chương trình sau:
IV. Bài tập.
1. Viết chương trình nhập vào 2 số và xuất ra số lớn nhất.
2. Viết chương trình nhập vào 3 số và xuất ra số lớn nhất.
3. Viết chương trình giải phương trình bậc 2.
4. Viết chương trình để xét tính chẳn lẻ của một số nguyên
được nhập vào từ bàn phím.
5. Viết chương trình tính số ngày của năm với số ngày
nhập vào từ bàn phím
24