[Pascal – TUT] Bài 2: Các thành phần cơ bản trong Pascal
1. Bộ ký tự, từ khóa, tên
a. Bộ ký tự, ký hiệu trong ngôn ngữ Pascal
26 chữ cái la tinh nhỏ: a,…,z
Dấu gạch dưới: _
Bộ chữ số thập phân: 0,…,9
Các ký hiệu toán học: + – * / = < > ( )
Các ký hiệu đặc biệt: . , ‘ : ; [] ? %
@ | ! & # $ {}
Khoảng trắng- ký tự cách.
Một số từ khoá của Pascal gồm:
And External Mod Shr
Array File Nil String
Begin For Not Then
Case Function Object To
Const Goto Of Type
Constructor If Or Unit
Div Implementation Packed Until
Do In Procedure Uses
Downto Inline Program Var
Else Interface Record Virtual
End Label Repeat While
Set Shl With Xor
Tên dùng để đặt cho tên chương trình, hằng, kiểu, biến, chương trình con… tên được chia thành 2 loại.
– Tên chuẩn đã được PASCAL đặt trước, chẳng hạn các hàm số SIN, COS, LN,… hằng số PI, kiểu INTEGER, BYTE, REAL…
– Tên do người dùng tự đặt.
đặt tên
+ Bắt đầu bằng chữ cái hoặc dấu gạch dưới ( _ )
sau đó là chữ cái hoặc chữ số.
+ Không có khoảng trống ở giữa tên
+ Không được trùng với từ khoá.
+ Độ dài tối đa của tên là 127 ký tự, tuy nhiên
cần đặt sao cho tên gọn và có ý nghĩa.
+ Pascal không bắt lỗi việc đặt tên trùng với
tên chuẩn, nhưng khi đó ý nghĩa của tên chuẩn
không còn giá trị nữa => ko nên đặt trùng tên chuẩn
2. Dấu chấm phẩy và lời chú thích
Sau một câu lệnh phải có dấu chấm phẩy.
Ví dụ: Write(‘Nhap so a:’); Readln(a);
Ví dụ: {Day la loi chu thich}
(* Day cung la mot loi chu thich*).
– Hằng chuẩn là hằng do Pascal định sẵn, ví dụ hằng số PI, hằng số chỉ màu RED=4,…
Người sử dụng không cần định nghĩa lại nếu thấy không cần thiết. Các hằng này được Pascal định nghĩa sẵn trong các Unit. Cần tham khảo hướng dẫn (help) đối với mỗi Unit để biết trong Unit có các hằng nào đã được định nghĩa..
– Hằng do người dùng định nghĩa thông qua việc khai báo.
Cú pháp:
…
<ten_hang_n>=<gia_tri_hang_n>;
Ví dụ:
CONST a=5;
ch=’Q’;
…
Một kiểu dữ liệu là một tập hợp các giá trị mà một biến thuộc kiểu đó có thể nhận được và một tập hợp các phép toán có thể áp dụng trên các giá trị đó. Có hai loại kiểu là kiểu chuẩn và kiểu do người dùng định nghĩa.
– Kiểu số nguyên
* Kiểu do người dùng định nghĩa:
TYPE <ten_kieu> = <cac_thanh_phan_cua_kieu>;
Ví dụ:
TYPE Hoaqua=(tao,mit,dua,oi);
che=(buoi,thapcam);
…
– Cú pháp khai báo biến:
Ví dụ:
VAR a:integer;
b,c:real;
qua:Hoaqua;
(* với Hoaqua la kieu du kieu da dinh nghia *)
…
4. Phép toán, Biểu thức, Câu lệnh
*/ Phép toán trên kiểu số
Phép toán Ý nghĩa Ví dụ ------------------------------------------------------ - Lấy đối số Đối số của 2 là -2 + Cộng 10 + 9 -> 19 - Trừ 10 - 9 -> 1 * Nhân 10 * 9 -> 90 / Chia 10 / 4 -> 2.5 Div Chia lấy phần nguyên 10 div 3 -> 3 Mod Chia lấy phần dư 10 mod 3 -> 1 (Div và Mod chỉ áp dụng cho kiểu nguyên).
*/ Một số hàm số, thủ tục
Hàm Ý nghĩa Ví dụ ------------------------------------------------------------ ABS(x) Trị tuyệt đối x Abs(-2) -> 2 SQR(x) Bình phương x Sqr(2) -> 4 SQRT(x) Căn bậc hai x Sqrt(9) -> 3 EXP(x) Hàm e^x Exp(3) -> e^3 LN(x) Hàm ln(x) Ln(2) ->ln2 SIN(x) Hàm lượng giác Sin(PI) -> 0 COS(x) Hàm lượng giác Cos(PI) -> 1 ARCTAN(x) Hàm lượng giác Arctan(0) ->0 INC(x) Tăng x lên 1 đơn vị <=> x:=x+1; DEC(x) Giảm x xuống 1 đơn vị <=> x:=x-1; SUCC(x) Cho giá trị tiếp theo của x succ(5) cho KQ 6 PRED(x) Cho giá trị trước đó của x PRED(5) cho KQ 4 ROUND(x) Làm tròn lên Round(8.6) -> 9 TRUNC(x) Làm tròn xuống Trunc(8.6) -> 8 ORD(x) Lấy mã ASCII ký tự Ord(‘a’) -> 97 CHR(x) Cho ký tự có mã ASCII Chr(65) -> ‘A’ ODD(x) Kiểm chẳn lẽ Odd(5) -> True
*/ Một số phép toán logic
AND, OR, XOR, NOT.
X Y X OR Y X AND Y X XOR Y NOT X --------------------------------------------------------------------- FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
Lưu ý:
– Các phép toán so sánh (<> khác, = bằng, > lớn hơn, < nhỏ hơn >= lớn hơn hoặc bằng, <= nhỏ hơn hoặc bằng) luôn trả về kiểu Booland.
– Các phép toán logic còn áp dụng trên kiểu số nguyên, trên cớ sở biểu diễn số nhị phân của các số nguyên.
b. Biểu thức
– Biểu thức là một phần của câu lệnh bao gồm hằng, biến, hàm liên kết với nhau bằng các phép toán và các dấu ngoặc đơn.
Ví dụ:
(-b+sqrt(delta))/(2*a)
– Thứ tự thực hiện các phép toán trong biểu thức:
1. Biểu thức trong ngoặc đơn
2. Phép gọi hàm
3. Not, –
4. *, /, DIV, MOD AND
5. +, -, OR, XOR
6. =, <>, <=,>=,<,>,IN
– Quy ước thứ tự ưu tiên
+ Qui tắc 1 : Các phép toán nào có ưu tiên cao hơn
sẽ được tính trước.
+ Qui tắc 2 : Trong các phép toán có cùng thứ tự ưu
tiên thì sự tính toán sẽ được thực hiện từ trái
sang phải.
+ Qui tắc 3 : Phần trong ngoặc từ trong ra ngoài
được tính toán để trở thành một giá trị.
c. Câu lệnh
– Câu lệnh xác định một công việc mà chương trình phải thực hiện để xử lý các dữ liệu đã được mô tả và khai báo. Có 2 loại câu lệnh:
+Câu lệnh đơn: Là câu lệnh không chứa các câu lệnh khác.
+Câu lệnh có cấu trúc: gồm các câu lệnh ghép, câu lệnh rẽ nhánh câu lệnh điều khiển lựa chọn, câu lệnh lặp,…
Lưu ý: Câu lệnh ghép là một nhóm các câu lệnh đơn cần thực hiện liên tiếp và được đặt trong cặp từ khóa BEGIN và END; (END kèm theo dấu chấm phẩy).
*/ Một số câu lệnh đơn:
– Lệnh gán:
Cú pháp: <ten_bien>:=<bieu_thuc>;
Ví dụ: a:=5+4/3;
b:=c+d/e;
Lưu ý:
+ Khi một giá trị được gán cho biến, nó sẽ thay thế giá trị trước đó của biến đã lưu.
+ Biểu thức ở bên phải và bên trái lệnh gán phải có cùng kiểu dữ liệu.
– Lệnh đọc dữ liệu
Lệnh đọc dữ liệu là lệnh gán giá trị cho biến khi ta nhập từ bàn phím. Có 3 mẫu viết
• Read(Biến1, Biến2,…, BiếnN);
{có thể dùng dấu cách hoặc phím enter để lần
lượt nhập dữ liệu cho các biến}
• Readln(Biến1, Biến2,…, BiếnN);
{phải dùng phím enter để lần lượt nhập
dữ liệ cho các biến}
• Readln;
{Bắt máy dừng lại chờ nhấp phím enter
thường để làm dừng màn hình cho ta xem kết quả}
Lưu ý: Chúng ta không nên dùng lệnh read để nhập dữ liệu cho các biên mà nên nhập bằng lệnh readln vì khi nhập dữ liệu cho các biến bằng lệnh read có thể sẽ dẫn đến tình trạng trôi lệnh (tức là một số lệnh không được thực hiện).
– Lệnh viết dữ liệu ra màn hình:
Có 3 mẫu viết:
• Write(Value1,Value2,…,ValueN);
{ viết các mục ra, con trỏ nằm ở cuối dòng}
• Writeln(Value1,Value2,…,ValueN);
{ viết các mục ra, con trỏ nằm ở đầu dòng tiếp theo}
• Writeln;
{ chỉ đưa con trỏ xuống dòng tiếp theo}
trong đó: các value là các biến, hằng, giá trị hay chuỗi
ký tự (phải đặt trong cặp nháy đơn).
{riêng dấu ‘ ta xuất bằng cách ghi 2 dấu ”}
Viết có quy cách:
– Đối với kiểu số thực:
:<độ rộng>:<số chữ số thập phân>;
Ví dụ: write(a:4:5);
– Đối với các kiểu dữ liệu khác:
:<độ rộng>;
Ví dụ: write(b:4);{với b là số nguyên}
Lưu ý: Khi số chữ số của biến nhiều hơn với độ rộng thì
số đó sẽ được xuất ra toàn bộ.
Ví dụ: b có giá trị là 12345.
Khi ta viết lệnh write(b:4);
12345
– Một số lệnh khác
• Clrscr; Lệnh xóa màn hình và đưa con trỏ về góc trên bên trái
• Gotoxy(x,y); đặt con trỏ tới tọa độ (x,y)
x: cột từ 1->80; y: hàng từ 1->25
…
Bài viết gốc tại: vietsource.net
Tên không có đc có phép tính nữa, tại có những nguoằi sd dấu ‘-‘ để ngăn cách, rồi chạy k đc
tên kông có phép tính nữa nhá, tại có vài người sd dấu ” – ” rồi nó báo lỗi mà không biết sửa
Căn trong Pascal thì biết như thế nào ạ!??
dùng sqrt(x) nhé.
sqrt(x)
Ví dụ sqrt(4)=2
kí hiệu div nghĩa là gì ạ >?
div có nghĩa là chia lấy phần nguyên nhé. VD 5 div 3 được 1.
em chia muốn lấy dư đến 2 chữ số sau dấu phẩy thì làm thế nào ạ?
như này nhé writeln(s:0:2);
Độ rộng với cả số chữ số phần thập phân được giới hạn như nào ạ? Hay chọn số nào cũng được ạ?
kí hiệu [‘0’..’9′] là sao ạ
Là mảng ký tự từ ký tự ‘0’ tới ký tự ‘9’
bây h e đang viết
sau đó e thấy có lỗi
thì e chèn vào trong chương trình or muốn tạo thêm 1 dòng ở giữa kiểu j ạ(trong free pascal)
bạn dùng các phím di chuyển con trỏ chuột để đến chỗ cần chèn.
Viết chương trình tính trung bình cộng của 3 số nguyên nhập từ bàn phím. Xuất điểm trung bình cộng theo quy cách: dành 6 chỗ và lấy 2 số lẽ thập phân
Dấu ‘, có ý nghĩa j ạ ví dụ như
Writeln (‘ tổng 2 số là ‘, a+b:6:2);
Nó là dấu để xác định 1 chuỗi.
Đối với kiểu số thực:
::
;Ví dụ: write(a:4:5);
a:4:5 là sao ạ
Nghĩa là lấy 4 số phần nguyên, 5 số phần thập phân
+13 nghĩa là gì ạ