ngôn ngữ lập trình pascal

Download Report

Transcript ngôn ngữ lập trình pascal

HỌC VIỆN QUÂN Y
Bộ môn Toán – Tin học
NGÔN NGỮ LẬP TRÌNH
PASCAL
Người trình bày: Hoàng Anh
Nội dung
I.
Các bước giải bài toán trên MTĐT
II.
Ngôn ngữ mô phỏng, sơ đồ khối
III.
Môi trường tích hợp Turbo Pascal
IV.
Ngôn ngữ lập trình Pascal
V.
Một số ví dụ
VI.
Các kiểu dữ liệu trong Pascal
I. Các bước giải bài toán trên MTĐT
1. Thiết kế bài toán
Tìm hiểu vấn đề cần giải quyết: Dữ liệu đầu vào, đầu ra; Các tham số,
điều kiện liên quan; Phương tiện cho phép sử dụng để giải quyết
vấn đề;
Khái quát, tổng hợp thông tin thu nhận được và xây dựng bài toán một
cách khoa học, chính xác
2. Tìm phương pháp giải quyết vấn đề (thuật toán
Thuật toán là những mô tả chi tiết về phương pháp và cách thức giải
quyết một vấn đề. Những mô tả này chi tiết đến mức mà người
thực hiện không cần hiểu gì về nội dung và bản chất của vấn đề,
chỉ cần theo đúng những bước đã mô tả thì sau một số hữu hạn
bước là có thể giải quyết được vấn đề một cách chính xác và hoàn
thiện.
Yêu cầu cơ bản của thuật toán: (1) Phải đúng; (2) Sau một số hữu hạn
bước phải dừng
I. Các bước giải bài toán trên MTĐT
3.
4.
Lập trình
a. Diễn giải thuật toán sang dạng ngôn ngữ mô phỏng hoặc sơ đồ
khối
b. Lập chương trình
c. Biên dịch chương trình
d. Kiểm tra, Sửa lỗi (cú pháp, thuật toán)
Thực hiện chương trình
II. Ngôn ngữ mô phỏng & sơ đồ khối

Ngôn ngữ mô phỏng:
 Là ngôn ngữ mà người lập trình quy định để mô tả thuật giải của mình
 Có nhiều dạng khác nhau: Sử dụng tiếng việt; Ngôn ngữ phỏng Pascal
vv...
 Đặc điểm: Chủ yếu tập trung diễn đạt thuật toán mà không chú ý đến
những quy định về cú pháp của một ngôn ngữ cụ thể
 Ví dụ về ngôn ngữ mô phỏng Pascal
Read(x)
Write(x)
If b then <Viec_1>
else <Viec_2>
For i = 1 To n Do <Viec_1>
While b do <Viec_1>
Đọc biến x
Viết ra giá trị của x
Nếu b đúng thì làm việc 1, nếu không thì
làm việc 2
Làm việc 1 n lần
Làm việc 1 cho đến khi nào b nhận giá trị
sai
II. Ngôn ngữ mô phỏng & sơ đồ khối
• Các phần tử cơ bản của sơ đồ khối
A
Thực hiện việc A
A
Gọi chương trình con A
Vào, ra dữ liệu
Luồng chương trình
B
Thực hiện phép thử B
Begin
Bắt đầu
End
Kết thúc
II. Ngôn ngữ mô phỏng & sơ đồ khối

Ví dụ: Sơ đồ khối thuật toán tính tổng của n số tự nhiên đầu tiên
Bài toán có thể giải theo hai cách:
1.
Sử dụng công thức tính tổng S = n(n+1)/2
2.
Dùng phương pháp cộng: S =  i ( 1  i  n)
Begin
Begin
Đọc n
S=n(n+1)/2
Đọc n
S=0; i=1
i

n
In S
In S
S=S+i
End
Thuật toán sử dụng công thức tính tổng
i=i+1
End
Thuật toán cộng dồn
III. Môi trường tích hợp Turbo Pascal

Môi trường tích hợp Turbo Pascal
Module soạn thảo chương trình (Editor): cho phép soạn thảo chương trình nguồn (.pas) với nhiều công cụ hỗ
trợ soạn thảo (sao chép, cắt dán, di chuyển con trỏ, lưu trữ ra đĩa, mở tệp từ đĩa vv...).




Module chương trình dịch (Compiler):

Soát lỗi cú pháp và hiển thị lỗi trong cửa sổ soạn thảo

Biên dịch chương trình nguồn (.pas) thành chương trình dưới dạng mã máy (.exe).
Các công cụ hỗ trợ khác
Một số thao tác cơ bản

Khởi động: Turbo
hoặc [Path] Turbo

Thoát: Alt + X

Lưu chương trình vào đĩa: File -> Save

Mở file chương trình trên đĩa: File -> Open

Di chuyển giữa các cửa sổ: F6
F6
Program TinhTong;
Program
TinhTong;
Uses
crtProgram
TinhTong;
Uses
crt
Var
Uses
crt
Var x, y: Integer
Var x, y: Integer
Begin
x, y: Integer
Begin
Read(x);
Begin
Read(x);
Read(y)
Read(x);
.... Read(y)
.... Read(y)
End.
End.....
End.
Các phím soạn thảo: Các phím mũi tên; Insert;, Delete; Home; End; Page Up; Page Down; Back Space;
Enter


Đánh dấu chọn khối: Shift + Phím mũi tên

Sao chép, cắt dán khối: Ctrl + K + C; Ctrl + K + V; Ctrl + K + Y

Huỷ chọn khối: Ctrl + K + H

Dịch chương trình: F9

Thực hiện chương trình: Ctrl + F9
IV. Ngôn ngữ lập trình Pascal
1.
Xuất xứ: Do Nikolaus (Đại học kỹ thuật Zurich, Thuỵ sĩ) sáng tạo ra vào công bố vào đầu
những năm 70. Ngôn ngữ được đặt tên bằng tên của nhà toán học người Pháp Blaise Pascal.
2.
Định nghĩa:
Cấu trúc dữ liệu + Thuật toán = Chương trình
3.
4.
Bảng chữ cái

Chữ cái: A - Z; a - z

Chữ số: 0 – 9

Dấu gạch nối _

Các ký hiệu toán học thông dụng: + - * / Div Mod

Các phép toán quan hệ, logic: <> = > < >= <= AND OR NOT
Tên

Là một dãy các ký tự (chữ cái, chữ số) bắt đầu bằng chữ cái, không chứa dấu cách.

Ví dụ: Delta, X1, X2, Epxilon
Các đối tượng của chương trình: biến, hằng, hàm, kiểu, chương trình con đều được đặt
tên để truy cập

IV. Ngôn ngữ lập trình Pascal
Tên chuẩn
5.


Là những tên được ngôn ngữ định nghĩa sẵn, người lập trình không được phép đặt trùng
Ví dụ: Boolean, Char, Integer, Real, Bytes, Text, False, True, MaxInt, ABS, Arctan,
Chr, Cos, Sin, Ord, Pred, Succ
6.
Dấu chấm phẩy ;: Dùng để ngăn cách câu lệnh
7.
Từ khoá


Là những từ mang ý nghĩa nhất định đã được ngôn ngữ định nghĩa sẵn, người lập trình
không được phép đặt trùng
Ví dụ: Begin; End; Progam
Hằng, biến
8.

Là những ô nhớ trong RAM được truy cập bằng tên. Hằng có giá trị không đổi còn giá trị
của biến có thể thay đổi được.
Dữ liệu
9.

Số

Ký tự

Các loại dữ liệu khác
IV. Ngôn ngữ lập trình Pascal
10.
Cấu trúc một chương trình Pascal
Phần tên chương trình
Program <Tên chương trình>;
Phần khai báo, mô tả
Khai báo các nhãn (Label)
Khai báo các hằng (Constant)
Khai báo các kiểu (Type)
Khai báo các biến (Var)
Khai báo các chương trình con (Procedure, Function)
Phần thân chương trình
Begin
Câu lệnh 1;
Câu lệnh 2;
...............
Câu lệnh n;
End.
IV. Ngôn ngữ lập trình Pascal
11.
Khai báo biến, hằng, kiểu

Khai báo hằng:
Const
Ví dụ:


Tên hằng 1 = <Giá trị hằng 1>;
Tên hằng 2 = <Giá trị hằng 2>;
Pi = 3.14;
Ten = ‘Anh’;
Khai báo biến:
Var
Tên biến 1, Tên biến 1, ... Tên biến n : <Kiểu dữ liệu>;
Ví dụ:
X1, X2, Delta: Real;
n: Integer;
Khai báo kiểu dữ liệu do người dùng định nghĩa:
Type
Tên kiểu : (Danh sách các giá trị);
Ví dụ:
Type
Color = (Red, Green, Blue);
Var
C: Color;
IV. Ngôn ngữ lập trình Pascal
12.
Biểu thức

Biểu thức phải được viết dưới dạng dòng ký tự

Ví dụ:
ax2 + bx + c
( a*x*x+b*x+c)/(d*x+f)
dx + f
13. Phép gán
– Cú pháp: <Tên biến> := <Biểu thức> ;
– Điều kiện: Biến và Biểu thức phải cùng kiểu dữ liệu
– Hoạt động: Tính giá trị của biểu thức vế phải và gán giá trị cho biến có tên ở vế trái. Nếu
vế trái không phải là biến thì máy sẽ báo lỗi.
– Ví dụ
a := 4;
a:= a + 1;
IV. Ngôn ngữ lập trình Pascal
13.
Các toán tử vào và ra
•
Toán tử
Write
Writeln
Read
Readln
Cú pháp:
•Ví dụ: Với
•
Viết ra một hoặc nhiều giá trị
Viết ra một hoặc nhiều giá trị và đưa con trỏ xuống dòng kế tiếp
Đọc vào một hoặc nhiều giá trị
Đọc vào một hoặc nhiều giá trị và đưa con trỏ xuống dòng kế tiếp
T( b1, b2, .... bn) ; (T là một trong 4 toán tử nói trên, b là các biến hoặc giá trị).
a=2, b=4
Dùng lệnh: Write(‘Nghiem kep = ’, -b/(a+a));
Trên màn hình xuất hiện dòng chữ: Nghiem kep = -1
•
Chú ý:
Trong lệnh Read, nếu đọc vào nhiều biến cùng lúc, người thực hiện chương trình phải gõ vào đủ các giá trị
(phân cách bởi dấu Enter) thì lệnh mới kết thúc
•
Cách viết có quy cách đối với số nguyên và số thực
Số thực: Writeln( ‘x = ‘, x : m : n ) trong đó m là số vị trí dùng để viết x, n là số vị trí phần thập phân
Số nguyên: Writeln( ‘x = ‘, x : m ) trong đó m là số vị trí dùng để viết x

•
Kết hợp giữa Write và Readln để đọc dữ liệu
Wrtie ( ‘x = ‘); Readln(x);
V. Một số ví dụ chương trình Pascal
1.
Tính tổng của 3 số a, b, c cho trước
Program Tinh_Gia_Tri;
Uses crt;
Const
A = 1;
B = 2;
C = 3;
Var
X: Integer;
Begin
Clrscr;
X := a + b + c;
End.
2. Tính tổng của n số tự nhiên đầu tiên
Program Tinh_tong;
Uses crt;
Var
n: Integer;
Begin
Write(‘n = ‘); Readln(n);
S := n*(n+1)/2;
Write(‘S = ‘, S);
Readln;
End.
V. Các kiểu dữ liệu trong Pascal
Mô hình dữ liệu
Nguyên (Integer)
Thực (Real)
Chuẩn
Vô hướng
Ký tự (Char)
Người
dùng
định
nghĩa
Dữ liệu
Logic (Boolean)
Dạng liệt kê
Khoảng con
Mảng (array)
Có cấu
trúc
Tập hợp (Set)
Bản ghi (Record)
Xâu ký tự (String)
Con trỏ (pointer)
Tệp (File)
V. Các kiểu dữ liệu trong Pascal
1. Kiểu số nguyên - Integer
• Pascal chuẩn dùng 2 byte để lưu trữ một số nguyên
• Các phép tính số học: + - * / DIV MOD
• Các phép toán quan hệ dùng để so sánh với nhau và với số thực: <> = > < >= <=
• Hàm ODD(n) trả về True nếu n là lẻ và False nếu n chẵn
• Các kiểu số nguyên chuẩn và khoảng giá trị của nó
Integer:
-32 768

32 767
Byte:
0

255
ShortInt:
-128

127
Word:
0

65 355
LongInt:
-2 147 483 648

2 147 483 647
V. Các kiểu dữ liệu trong Pascal
Kiểu số thực - Real
2.
•
Các phép tính số học tương tự như kiểu số nguyên. Không tồn tại phép DIV MOD
với các số thực
•
Có hai dạng biểu diễn là dấu phảy tĩnh và dấu phảy động
•
Các hàm số học chuẩn dùng cho cả số nguyên và số thực:
ABS(x), SQR(x), Sin(x), Cos(x), Arctan(x), Ln(x), Exp(x), SQRT(x).
Frac(x): cho phần phân số của x. Frac(2.05) = 0.05
RanDom(n): Cho một số nguyên ngẫu nhiên nằm trong khoảng 0  n.
Trunc(x): Cho phần nguyên của x. Trunc(3.95) = 3.
Round(x): Làm tròn x. Round(3.67) = 4; Round(3.25) = 3
•
Các kiểu số thực mở rộng
Kiểu
nghĩa
Sóo byte dùng để lưu trữ
Số chữ số có
Single
4
7–8
Real
6
11 - 12
Double
8
15 - 16
Extended
10
19 - 20
V. Các kiểu dữ liệu trong Pascal
Kiểu logic – Boolean
3.
•
•
•
Kiểu ký tự - Char
4.
•
•
•
•
5.
Chỉ nhận hai giá trị là True và False
Các phép toán AND OR NOT
Các phép toán quan hệ cho kết quả kiểu logic: : <> = > < >= <=
Là các chữ cái, chữ số A – Z; a – z; 0 – 9
Hằng ký tự được viết trong dấu nháy đơn ‘a’ ‘9’
Bộ mã ASCII dùng để mã hoá toàn bộ các ký tự
A = 65
B = 66 ... Z = 90
a = 97
b = 98 ... z = 122
0 = 48
9 = 57
7 là Bell
13 là Enter
27 là Escape.
Các hàm ký tự:
ORD(ch): Cho số thứ tự của ch trong bộ mã ASCII
CHR(n)
Cho ký tự có số thứ tự là n trong bộ mã ASCII
PRED(ch)
Cho ký tự liền trước của ch
SUCC(ch)
Cho ký tự đứng liền sau của ch
Kiểu đếm được, không đếm được Trong các kiểu chuẩn, Real là không đếm được