Nêu khai niệm về biến nêu cú pháp khai báo biến và các thành phần có bản cho ví dụ về khai báo biến

Hằng, biến, kiểu, biểu thức, câu lệnh, lệnh gán

1. Hằng.

1.1. Khái niệm về hằng (constant) : Hằng là đại lượng có giá trị không thay đổi trong suốt quá trình thực hiện chương trình.

1.2. Cách khai báo hằng :

Const

            Tên_hằng = giá_trị;

trong đó Tên_hằng là tự đặt, theo đúng quy tắc của một tên, còn giá_trị có thể là một hằng hoặc một biểu thức mà các toán hạng đều là hằng.

Ví dụ 1 :

Const

            max = 150;                            {hằng nguyên}

            L = False;                               {hằng logic}

            A = (5*7)/4;                          {hằng thực}

            ch =’Y’;                                  {hằng ký tự}

            Ho = ’Le Van’;                       {hằng chuỗi}

Lưu ý : Turbo Pascal có sẵn một số hằng chuẩn cho phép sử dụng mà không phải khai báo như : Pi (có giá trị bằng số p), MaxInt (có giá trị bằng 32767, là số Integer lớn nhất). Chẳng hạn, có thể dùng lệnh sau :

            Writeln(‘Diện tích hình tròn bán kính r = 5 là : ’,pi*5*5:8:3);

            Chúng ta dùng các tên hằng để chương trình được rõ ràng và dễ sửa đổi.

2. Biến.

2.1. Khái niệm về biến (variable) : Biến là đại lượng có giá trị thay đổi được trong chương trình. Mỗi biến phải thuộc về một kiểu dữ liệu nhất định và phải được khai báo trước. Việc khai báo có tác dụng báo cho máy dành sẵn các ô nhớ thích hợp trong bộ nhớ để sẵn sàng chứa dữ liệu.

2.2. Cách khai báo biến :

Var

            danh_sách_tên_biến : tên_kiểu_dữ_liệu;

trong đó Danh_sách_tên_biến là một dãy tên biến được đặt cách nhau bởi dấu phẩy.

Ví dụ 2 :

Var

            x, y, z : Real;   {khai báo 3 biến kiểu Real, mỗi biến được cấp 6 bytes bộ nhớ}

            chon : Char;

            thoat : Boolean;

            i, j : Integer;

            ten : String[7];

Chú ý :

@     Biến ten ở ví dụ trên chứa một dãy không quá 7 ký tự. Ta nói biến ten có độ dài 7 byte. Biến String khai báo tối đa là String[255].

@     Một biến String được cấp một số byte bằng độ dài của nó cộng thêm 1. Byte đầu tiên dùng để ghi số ký tự đang được lưu trữ, mỗi byte còn lại chứa một ký tự.

@     Có thể vừa khai báo vừa khởi đầu (gán giá trị) cho các biến theo cách sau :

Const

                     x = 25.0;

                     y : Real = -5.23;

                   Ho_ten : String[25] = ‘Le Hung’;

Chú ý phân biệt x và y : x là hằng thực, y là biến thực. Trong chương trình có thể thay đổi giá trị của y nhưng không thể thay đổi giá trị của x.

3. Định nghĩa kiểu dữ liệu.

Ngoài các kiểu dữ liệu đã được định nghĩa sẵn như : Real, Integer, Byte, Char, Boolean, ... Turbo Pascal còn cho phép ta định nghĩa các kiểu dữ liệu khác từ các kiểu căn bản đã có sẵn theo quy tắc xây dựng của Turbo Pascal. Kiểu dữ liệu mới được định nghĩa bởi từ khoá Type như sau :

Type

tên_kiểu = mô_tả_ kiểu;

Sau đó có thể khai báo các biến thuộc kiểu dữ liệu mới này.

Ví dụ 3 :

Type    songuyen = Integer;

                        tuoi_tho = 1..100;  {miền giá trị của tuoi_tho từ 1 đến 100}

                        color = (Red, Blue, Green);

Sau đó ta có quyền sử dụng các kiểu trên để khai báo, chẳng hạn :

Var      i, j : songuyen;

                        tuoi : tuoi_tho;  mau : color;

4. Biểu thức.

4.1. Định nghĩa : Biểu thức (expression) là một công thức gồm có một hay nhiều thành phần được kết nối với nhau bởi các phép toán. Mỗi thành phần (hay toán hạng) có thể là hằng, là biến hay là hàm. Kiểu dữ liệu của biểu thức là kiểu của kết quả sau khi tính biểu thức.

Ví dụ 4 :

·        3*5 div 2 + 7 mod 4  : biểu thức nguyên, có kết qủa là 10

·        ('A' <> 'a') And (5-2=3) : biểu thức logic, có kết quả là True

·        5 + sin(pi/2) :  biểu thức thực, có kết quả là 6.0

Chú ý : Các thành phần trong biểu thức cần phải có kiểu dữ liệu phù hợp để cho các phép toán thực hiện được, nếu không máy sẽ báo lỗi. Chẳng hạn, biểu thức : 2 + chr(67) là sai vì ta không thể cộng một số nguyên với một ký tự.

4.2. Thứ tự ưu tiên : Một biểu thức có thể chứa nhiều phép toán. Thứ tự thực hiện các phép toán được cho trong bảng dưới đây :

Cấp ưu tiên

Phép toán

1

2

3

4

5

6

Biểu thức trong ngoặc đơn

Các hàm

NOT,  - (phép lấy dấu âm)

*,  /,  DIV,  MOD,  AND

+,  - (trừ),  OR,  XOR

=,  <>,  <,  <=,  >,  >=,  IN

            Khi tính một biểu thức có hai quy tắc về thứ tự ưu tiên như sau :

v     Quy tắc 1 : Phép toán có cấp ưu tiên nhỏ thì được tính trước, phép toán có cấp ưu tiên lớn thì tính sau.

v     Quy tắc 2 : Trong các phép toán có cùng cấp ưu tiên, thì phép toán nào đứng trước được tính trước.

Ví dụ 5 :

·        3+5*3 = 18,  (3+5)*3 = 24,      5/2*3 = 7.5

·        (5 + 2 > 4) and not (true or (5 - 3 = 8)) : biểu thức logic, cho kết quả false.

5. Câu lệnh.

          Câu lệnh (statement) là một dãy ký tự cơ bản được xây dựng theo một quy tắc nhất định (gọi là cú pháp) nhằm chỉ thị cho máy thực hiện một công việc xác định. Các câu lệnh được chia ra hai loại : câu lệnh đơn giản và câu lệnh có cấu trúc.

 PHÂN LOẠI CÁC LOẠI CÂU LỆNH TRONG TURBO PASCAL

- Lệnh đơn giản:

+ Lệnh gán (:=)

+ Lệnh nhập dữ liệu (Read, Readln)

+ Lệnh xuất dữ liệu (Write, Writeln)

+ Lời gọi chương trình con

+ Xử lý tập tin (Reset, Rewrite, Assign,...)

- Lệnh có cấu trúc:

+ Lệnh phức (Begin ... End)

+ Lệnh lựa chọn (If ..., Case ...)

+ Lệnh lặp (For ..., Repeat ..., While ...)

Các câu lệnh phải được ngăn cách nhau bởi dấu chấm phẩy (;) và không bắt buộc phải viết mỗi câu lệnh trên một dòng. Vấn đề là chúng ta phải trình bày chương trình sao cho đẹp, rõ ràng, thể hiện được thuật toán.

6. Lệnh gán.

q       Lệnh gán (assignment statement) dùng để gán giá trị của một biểu thức cho một biến đã khai báo.

q       Cú pháp của lệnh gán :

tên_biến := biểu_thức

Ý nghĩa : Đầu tiên máy tính trị của biểu_thức vế phải, sau đó gán giá trị tính được cho tên_biến ở vế trái.

Chú ý :

@     Vế trái của phép gán chỉ và chỉ có thể là một biến mà thôi. Chẳng hạn, viết x + y := 7 là sai vì vế trái là một biểu thức chứ không phải là một biến.

@     Kiểu của biểu thức phải trùng với kiểu của biến, trừ trường hợp một biến thực có thể nhận giá trị nguyên.

Ví dụ 6 : Sau khi đã khai báo :   Var  c1, c2 : Char;  i, j : Integer;  x, y : Real;

thì có thể thực hiện các lệnh gán sau :

            c1 :=’B’;                                             c2 := chr(7);              i := (23+6)*2 mod 3;

            j := round(20/3);                   x := 0.5;                                  y := 1;