logo

Kiểu xâu lưu ở bộ nhớ nào?

Câu hỏi: Kiểu xâu lưu ở bộ nhớ nào?

Lời giải:

Xâu là dãy các kí tự được lưu trong bộ mã ASCII, mỗi kí tự là một phần tử trong xâu.

Cùng Top lời giải tìm hiểu về một số kiểu dữ liệu chuẩn nhé!


1. Kiểu dữ liệu chuẩn là gì?

Kiểu xâu lưu ở bộ nhớ nào?

Kiểu dữ liệu chuẩn là một tập hữu hạn các giá trị. Mỗi kiểu dữ liệu cần một dung lượng bộ nhớ cần thiết để lưu trữ và xác định các phép toán có thể tác động lên dữ liệu. Một số kiểu dữ liệu thường dùng cho biến đơn như sau:

a. Kiểu số nguyên: dùng để khai báo các đại lượng nhận giá trị là các số nguyên.

 Tên kiểu

 Phạm vi

  Dung lượng

 Shortint

 -128 → 127

  1 byte

 Byte

  0 → 255

  1 byte

 Integer

  -32768 → 32767

 2 byte

 Word

 0 → 65535

 2 byte

 LongInt

   -2147483648 → 2147483647

 4 byte

b. Kiểu số thực: dùng để khai báo các đại lượng nhận giá trị là các số thực.

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Real

6 byte

0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-38 đến 1038

Extended

10 byte

0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-4932 đến 104932

c. Kiểu kí tự: Biểu thức gồm các toán hạng là biến xâu, biến kí tự hoặc hằng xâu được gọi là biểu thức xâu. Dữ liệu kiểu xâu là dãy các kí tự. Số lượng kí tự trong xâu được gọi là độ dài của xâu .

* Khai báo

Để khai báo dữ liệu kiểu xâu ta sử dụng tên dành riêng string, tiếp theo là dộ dài lớn nhất của xâu (không vượt quá 255 kí tự đặt trong dấu ngoặc [ và ] )

Các thao tác xử lí xâu

  - Phép ghép xâu được dùng để ghép nhiều xâu thành một (kể cả đối với các hằng và biến xâu) trong bộ mã ASCII. Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:

+ Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A', '0'.

+ Dùng hàm CHR(n) (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ CHR(65) biễu diễn ký tự 'A'.

+ Dùng ký hiệu #n (trong đó n là mã ASCII của ký tự cần biểu diễn). Ví dụ #65.

  - Các phép toán: =, >, >=, <, <=,<>.

  - Các phép so sánh: (=), (o), (<), (>),(<=), (>=) có thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu và thực hiện việc so sánh hai xâu theo quy tắc sau:

+ Xâu A là lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn.

+ Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A nhỏ hơn.

d. Kiểu lôgic (kiểu thứ tự đếm được): được dùng khi kiểm tra một điều kiện hoặc tìm giá trị của một biểu thức lôgic.

 - Từ khóa: BOOLE

+ Miền giá trị: (TRUE, FALSE).

+ Các phép toán: phép so sánh (=, <, >) và các phép toán logic: AND, OR, XOR, NOT.

 Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE.

Kiểu

Bộ nhớ lưu trữ một giá trị

Phạm vi giá trị

Boolean

1 byte

True hoặc False


2. Bài tập minh họa

Bài tập 1:

Chương trình dịch Pascal sẽ cấp phát bao nhiêu Byte bộ nhớ cho khai báo sau:

Var  x : Integer;

       y, z : Real;

       c : Char;

Gợi ý làm bài:

- Biến x thuộc kiểu Integer => sẽ cấp phát 2 byte bộ nhớ.

- Biến y, z thuộc kiểu Real => sẽ cấp phát 6 byte + 6 byte = 12 byte bộ nhớ.

- Biến c  thuộc kiểu Char => sẽ cấp phát 1 byte bộ nhớ.

Vậy cần cấp phát 15 byte bộ nhớ cho khai báo trên.

Bài tập 2:

Nhập xâu S1, tạo xâu S2 gồm tất cả các chữ số của xâu S1

Giải :

Program Xau_chu_so;

Uses crt;

Var i: integer;

S1,S2: string;

Begin

Clrscr;

            Write(‘Nhap xau ki tu S1: ‘); Readln(S1);

            S2:=#32;

            For i:=1 to length(S1) to

            If S1[i] in [‘0’..’9’] then

            S2:=S2+S1[i];

            Writeln(‘Xau S2: ‘,S2);

Bài tập 3: {Tính diện tích và chu vi tam giác theo 3 cạnh}

Var

a, b, c, P, S : Real;

Tgiac: Boolean;

Begin

Write(‘ Nhap 3 canh cua tam giac : ‘);

Readln(a, b, c);

Tgiac:= (a>0) and (b>0) and (c>0) and

(a+b>c) and (a+c>b) and (b+c>a);

If Tgiac= FALSE then

Writeln(‘ Khong phai ba canh cua tam giac !’)

else

begin

P:=(a+b+c)/2;

S:= Sqrt( P*(P-a)*(P-b)*(P-c) );

Writeln(‘ chu vi = ‘ , 2*P:10:2);

Writeln(‘ dien tich S= ‘ , S:10:2);

end;

Readln;

End.

icon-date
Xuất bản : 15/01/2022 - Cập nhật : 17/01/2022