Bài giảng lập trình pascal

Chia sẻ bởi Đặng Anh Tuấn | Ngày 29/04/2019 | 60

Chia sẻ tài liệu: bài giảng lập trình pascal thuộc Tin học 9

Nội dung tài liệu:

1
Biên soạn: Quách Tuấn Ngọc
Giảng bài:
Ngôn ngữ lập trình
2
Vì sao học PASCAL ?
PASCAL là ngôn ngữ lập trình cao cấp do GS Niklaus Wirth sáng tác đầu 70.
PASCAL giúp sinh viên viết chương trình có cấu trúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc.
PASCAL là ngôn ngữ có cấu trúc mạnh mẽ cả về dữ liệu lẫn chương trình và lệnh.
3

Algorithms+Data Structures=Programs

Thuật giải+Cấu trúc dữ liệu=Chương trình
4
Chương 1
Các phần tử cơ bản của PASCAL
Bộ chữ viết của PASCAL
Các chữ cái ‘a’..’z’, ‘A’..’Z’
Không phân biệt chữ thường và hoa.
Các chữ số ‘0’..’9’
Dấu gạch nối _ rất tiện dụng
Các kí hiệu +, -, *, /, . , ; % ...
Dấu cách được dùng để ngăn cách các từ.
5
Từ khoá
là các từ của riêng PASCAL
Thí dụ:
Program, Var, For, To, IF....
Tên hay Định danh (Indentifier)
là dãy kí tự bắt đầu bằng một chữ cái, dùng để chỉ tên hằng số, tên một biến, tên kiểu, tên chương trình con...
Thí dụ:
ta phải dùng tên Delta thay cho dấu là kí hiệu không nằm trong bộ chữ viết PASCAL
6
Các tên đặt sai
1ABC, #DELTA, ARRAY, DEL TA

Dùng dấu gạch nối khi đặt tên
GIAI_PHUONG_TRINH_BAC_HAI
thay vì tên đúng song khó hình dung
GIAIPHUONGTRINHBACHAI
tên sai GIAI-PHUONG-TRINH-BAC-HAI

Tên bằng tiếng Việt ?
7
Dấu chấm phẩy ; dùng để ngăn cách câu lệnh (xem sau)

Lời giải thích (comment) cho rõ ràng hơn
(* Lời giải thích có thể dùng tiếng Việt*)
{ Lời giải thích }
Sai nếu mở - đóng khác kiểu (* Sai }
Có thể viết nhiều dòng giải thích cho đến khi khoá lại
(* Dòng 1
dòng 2 *)
8
Lưu đồ cú pháp
Du?c dựng d? d?nh nghia cỏc c?u trỳc trong PASCAL. Chớnh xỏc song r?t r?t ớt dựng d?n.
Thớ d?: d?nh nghia tờn
9
Cấu trúc chung
của một chương trình PASCAL
Ph?n tiờu d? c?a chuong trỡnh
Ph?n khai bỏo d? li?u
- h?ng, bi?n (Const, Var),
- mụ t? ki?u d? li?u m?i (Type)
- khai bỏo chuong trỡnh con
(Procedure, Function)
Ph?n thõn chuong trỡnh
ch?a cỏc l?nh d? mỏy tớnh th?c hi?n
10
Thớ d? 1.1
PROGRAM THI_DU1; (* Dũng tiờu d? *)
VAR
R, A, Dien_Tich: Real; (* Khai bỏo ba bi?n th?c *)
BEGIN
Write(` Bỏn kớnh R = `);
READLN(R); (* D?c giỏ tr? c?a R *)
Dien_Tich := PI*R*R; (* Tớnh di?n tớch hỡnh trũn *)
(* Vi?t ra m�n hỡnh k?t qu? tớnh *)
Writeln(` Di?n tớch hỡnh trũn = `, Dien_Tich);
Write(` C?nh hỡnh vuụng A = `); READLN(A);
Dien_Tich := A*A;
Writeln(` Di?n tớch hỡnh vuụng =`, Dien_Tich);
Readln;
END.
11
Kết quả chạy chương trình

Bán kính R = 2.56 
Diện tích hình tròn = 2.0588741615E+01
Cạnh hình vuông A = 2.56 
Diện tích hình vuông = 6.5536000000E+00
_
12
PROGRAM TEN_CHUONG_TRINH; (* Dòng tiêu đề *)

USES CRT, PRINTER;(*Lời gọi Sử dụng các đơn vị chương trình *)
(* Phần khai báo dữ liệu và chương trình con *)
LABEL...
CONST ...
TYPE ...
VAR ...
{ Có thể có nhiều Procedure và nhiều Function }
PROCEDURE ...
FUNCTION ...
(* Thân chương trình chính *)
BEGIN
(* Các lệnh được viết ở đây *)
......
END.
13
Các bước cơ bản khi viết chương trình
Bước 1: Soạn thảo chương trình.
Bước 2: Dịch và kết nối chương trình.
Biên dịch (compiler)
Thông dịch (Interpreter) (ít dùng)
Bước 3: Chạy thử và sửa lỗi chương trình

Turbo PASCAL của hãng Borland có môi trường khép kín, đảm bảo hoạt động của cả 3 bước trên trong một chương trình.
14
Bước 1: Thảo chương trình
Dùng chương trình soạn thảo văn bản (Text Editor) để viết chương trình với nhiều thao tác tiện dụng như xen, sửa, xoá, copy ...
Máy tính cổ phải viết chương trình bằng cách đục lỗ giấy.
Kết quả nhận được: các chương trình nguồn (source code) PASCAL: *.PAS
15
Bước 2: Dịch và kết nối chương trình
Biên dịch (compiler)
Khái niệm về Thông dịch (Interpreter)
Kết quả của bước dịch là các tệp *.OBJ và *.TPU
Tiếp theo phải liên kết các tệp *.OBJ và *.TPU lại để thành chương trình chạy được, đó là tệp *.EXE.
Nếu có lỗi về mặt cú pháp (syntax error), máy sẽ báo rõ lỗi loại nào, vị trí lỗi ... Thí dụ Begin viết thành Began
16
Bước 3: Chạy thử và sửa lỗi chương trình
Lỗi về thuật giải

X2 viết nhầm thành X*2
Máy không thể phát hiện được

Lỗi về cách trình bầy, chưa đẹp ...
Nếu có lỗi, quay về bước 1 để sửa.
17
Lưu đồ lập trình
18
Dữ liệu là nguồn vật liệu cho máy tính xử lí.
Máy tính chỉ hiểu các dữ liệu được biểu diễn dưới dạng mã nhị phân.
Trong ngôn ngữ bậc cao, dữ liệu được khái quát hoá thành các kiểu dữ liệu khác nhau.
Chương 2
Các kiểu dữ liệu.
Các kiểu dữ liệu cơ sở.
19
ki?u logic Bun (Boolean)
Ki?u co s? ki?u s? nguyờn (Integer)
ki?u s? th?c (Real)
Ki?u vụ hu?ng ki?u kớ t? (Char)
(ki?u don gi?n)
(Scalar Type hay ki?u kho?ng con
Ki?u Simple Type ) ki?u vụ hu?ng (sub-range)
d? t? d?nh nghia
li?u
ki?u li?t kờ
(enumerated)
DATA
TYPE Ki?u m?ng (ARRAY)
Ki?u d? li?u cú c?u trỳc Ki?u t?p (SET)
(Structured Type) Ki?u b?n ghi (RECORD)
Ki?u t?p (FILE)

Ki?u xõu kớ t? (STRING)

Ki?u con tr?. (POINTER Type)
20
Định nghĩa một kiểu dữ liệu
Một kiểu dữ liệu được xác định bởi 2 yếu tố:

Một tập hợp các giá trị mà một biến thuộc kiểu đó có thể nhận được
Định nghĩa các phép toán trên tập giá trị đó.
21
Kiểu logic Boolean
Có hai giá trị FALSE và TRUE
Các phép toán AND, OR, XOR, NOT
22
Các phép toán quan hệ
K?t qu? luụn luụn l� giỏ tr? ki?u Boolean
Kớ hi?u phộp toỏn ý nghia
<> so sỏnh khỏc nhau
= so sỏnh b?ng nhau
>= so sỏnh l?n hon ho?c b?ng
<= so sỏnh nh? hon ho?c b?ng
> so sỏnh l?n hon
< so sỏnh nh? hon
Thớ d?: 3 < 5 cho giỏ tr? TRUE
23
Kiểu số nguyên Integer
Kiểu số nguyên khai báo với từ khoá Integer
Dùng 2 bytes (số nguyên 16 bít) để biểu diễn nên miền giá trị: -32768 đến +32767
Thí dụ: -327, -32000, 1, 123
Các phép tính: + - * / DIV MOD
quan hệ (>, <, <>...), logic (AND, OR...)
Phép chia số nguyên 3 / 2 = 1.5
Phép chia lấy phần nguyên 11 DIV 3 = ?
Phép chia lấy số dư nguyên 11 MOD 3 = ?
Cẩn thận tràn số: 32000+800-2000=29200
24
Một số phép toán cho số nguyên
Phép toán logic AND, OR, XOR, NOT
Thí dụ: 3 AND 5 = 1 vì
0000 0000 0000 0011 3
AND 0000 0000 0000 0101 5
--------------------------------------------
Kết quả: 0000 0000 0000 0001 1
Phép dịch trái SHL (Shift Left), dịch phải SHR (Shift Right) để tính nhanh hơn
3*24= 3 SHL 4, 3 / 24 = 3 SHR 4
25
Kiểu số nguyên Byte
Kiểu số nguyên khai báo với từ khoá Byte
Dùng 1 byte để biểu diễn số nguyên dương nên miền giá trị: 0 đến 255 .
Tiết kiệm ô nhớ.
Các phép tính: giống như Integer.

26
Kiểu số thực khai báo với từ khoá Real
Dùng 6 bytes để biểu diễn, dải giá trị: -1.7E-38 đến +1.7E+38
Dải giá trị lớn và độ chính xác cao.
Các phép tính +, -, *, /, quan hệ
Không tồn tại DIV, MOD, logic
Có 2 cách viết:
- Bình thường: - 3.14, -24.123445
- Dạng viết có phần mũ: -2.4123445E-1
Cách viết sai: 5. .5
Kiểu số thực Real
27
Các hàm số học chuẩn
Cỏc h�m s? h?c sau dó du?c d?nh s?n v� dựng cho s? nguyờn v� s? th?c
ABS(x)
SQR(x) cho x2, SQRT(x) can b?c hai c?a x
SIN(x), COS(x), arctan(x) v?i x: radian
Ln(x), Exp(x)
Succ(n), Pred(n): n nguyờn
Odd(n) l� TRUE n?u n l?.
Round(x) v� Trunc(x) l�m trũn ho?c c?t
S? h?c ỏp d?ng sau.
28
Kiểu kí tự khai báo với từ khoá Char
Gồm
- chữ cái ‘a’..’z’, ‘A’..’Z’
- chữ số ‘0’..’9’
- kí hiệu khác: . , ; : ! @ # $ % ^ & * ( )
Bảng mã ASCII (Americain Standard Code for Information Interchange). ý nghĩa.
Các hàm ord(‘c’) và chr(n)
Thứ tự c1 < c2 nếu ord(‘c1’) < ord(‘c2’)
Hàm Succ và Pred
Kiểu kí tự Char
29
Kiểu đếm được và không đếm được
Ki?u d?m du?c:
Integer, Byte, Boolean, Char, do?n con, li?t kờ
Ki?u vụ hu?ng

Ki?u khụng d?m du?c:
Real
30
Khai báo hằng với mẫu
Const
Tên_hằng = Giá_trị_của_hằng;
Thí dụ:
Const
Dung=TRUE; (* Hằng Boolean *)
A=5; { Hằng số nguyên }
PI = 3.14; { Hằng số thực }
Ch=‘Z’; (* Hằng kí tự *)
Chương 3
Khai báo hằng, biến, kiểu.
Biểu thức. Câu lệnh.
31
Khai báo biến
Tên biến là tên của ô nhớ cất dữ liệu. Giá trị của nó có thể thay đổi được.
Var
Tên_biến : Kiểu_dữ_liệu_của_biến;

Thí dụ:
Var
M23, A25, AAA: Real;
MY_NAME: String[25];
Y: Boolean;
X: Integer;
32
Biểu thức bao gồm toán tử và toán hạng.
Biểu thức số học cho ta giá trị số.
Biểu thức logic cho ta giá trị logic Bun.

Trình tự ưu tiên tính toán biểu thức
33
Thí dụ 3.3
7 + 3*5 = 7 + (3*5) = 22
5/2*3 = (5/2) * 3 = 7.5
18 DIV 4*4 = (18 DIV 4)*4 = 16
2*(3 + 5) = 16

Thí dụ 3.4: biểu thức Boolean
(100 > 76) AND (`B` < `A`)
TRUE AND FALSE
FALSE
34
Phép gán
Biến := biểu thức;

Vế trái chỉ có thể và chỉ là một tên biến.

X:=6;
X:=X+3; X= ?
X := 4*X+X*X; X= ?
M23 := 18/X*4.0+SQRT(X); M23 = ?

X+2 := 3; ?
35
Tính tương thích của các kiểu dữ liệu
Về nguyên tắc, 2 vế phải cùng kiểu dữ liệu.
Biến nguyên I không thể gán := ‘A’;

Ngoại lệ: biến thực nhận giá trị nguyên.
X:= 6;
Ngược lại một biến nguyên không thể nhận một giá trị thực. Muốn nhận phải dùng các hàm Round hoặc Trunc.
I := Round( SQRT(X));
36
Lệnh hợp thành Begin
Begin
BEGIN Begin
Câu lệnh 1; End;
Câu lệnh 2; Begin
........ End;
Câu lệnh N; End;
END; Begin

End;
End;
Và cấu trúc khối lệnh
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Đặng Anh Tuấn
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)