Tải bản đầy đủ (.ppt) (13 trang)

Dữ liệu kiểu mảng, xâu ký tự

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (115.5 KB, 13 trang )

Dữ liệu kiểu mảng, xâu ký tự...







Khái niệm về cấu trúc dữ liệu.
Kiểu dữ liệu mảng (array).
Một số bài toán sử dụng mảng.
Mảng hai chiều.
Kiểu dữ liệu xâu ký tự.
Kiểu dữ liệu tập hợp.

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

1


Khái niệm chung về cấu trúc dữ liệu


Dữ liệu không có cấu trúc (đơn giản):
 Integer,

char, Boolean, real…
 Mỗi đối tượng dữ liệu là một phần tử đơn lẻ.



Dữ liệu có cấu trúc:
 Được

cấu thành bởi các phần tử dữ liệu đơn giản.
 Bao gồm: mảng, tập hợp, bản ghi, tệp.

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

2


Kiểu dữ liệu mảng



Mảng (array) là kiểu dữ liệu bao gồm một số lượng hữu
hạn các phần tử có cùng kiểu dữ liệu.
Khai báo mảng:
TYPE
Kiểu_Mảng = ARRAY [KCD] OF KPT;
VAR
Biến_Mảng : Kiểu_Mảng;
Khai báo trực tiếp:
VAR
Biến_Mảng: ARRAY[KCD] OF KPT;

December 3, 2015


Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

KCD - Quy định số
lượng và cách thức
truy cập tới các phần
tử
KPT - Kiểu phần tử
của mảng

3


Khai báo mảng
TYPE
DaySo = array[1..100] of Real;
DemKyTu = array[A..Z] of Integer;
VAR
A: DaySo;
Dem1: DemKyTu;
M: array[1..10] of Integer;
M1: array[-3..5] of Real;
December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

4


Truy nhập mảng



Để truy nhập tới từng phần tử, sử dụng chỉ số:
Tên_Biến_Mảng[chỉ_số]
 A[3]

 phần tử thứ ba trong mảng A (xem VD).

 Dem1[‘M’]

 phần tử thứ ‘M’ trong mảng Dem1.



Mỗi phần tử của mảng có thể coi như một biến độc
lập có kiểu dữ liệu là KPT  Một mảng tưng ứng
với nhiều biến có cùng kiểu.



Mọi thao tác (đọc, viết, gán,…) đối với kiểu dữ
liệu KPT đều áp dụng được với phần tử của mảng.

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

5



Gán giá trị cho các phần tử của mảng
VAR
Day1: Array[1..10] of Integer; 3;10
3;13
BEGIN
_
Day1[1]:=3;
Day1[2]:=10;
Writeln(Day1[1],’;’,Day1[2]);
Day1[2]:=Day1[1]+Day1[2];
Readln;
Writeln(Day1[1],’;’,Day1[2]);
END.
December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

6


Một số bài toán


Tìm kiếm vị trí xuất hiện của phần tử có giá trị cho
trước trong mảng.
 Giải

thuật: Lần lượt so sánh các phần tử của mảng với
giá trị cho trước, nếu phát hiện phần tử có giá trị bằng
giá trị đã cho thì in vị trí của phần tử ra.




Sắp xếp mảng tăng dần.
 Tìm

phần tử nhỏ nhất, đổi chỗ với phần tử đầu tiên của
mảng.
 Lặp lại công việc với phần còn lại của mảng (kể từ phần
tử thứ hai) cho tới khi đổi chỗ hai phần tử cuối cùng.
December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

7


Mảng hai chiều


Tình huống sử dụng:
 Các



bài toán với ma trận

Khai báo:
Biến_mảng: ARRAY[n1..n2,m1.m2] of KPT;
Ví dụ:

A, B, C : Array [1..10, 1..20] of real;
 A, B, C là ba ma trận kích thước 10x20



Truy xuất:
A[i,j]: phần tử hàng i cột j

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

8


Một số bài toán










Tính tổng các phần tử của ma trận.
Tính tổng các phần tử dương/âm của ma trận.
Tính tổng các phần tử trên đường chéo chính của ma trận.
Cộng hai ma trận cùng kích thước.

Nhân hai ma trận vuông, 2 ma trận bất kỳ.
Ma trận chuyển vị
Ma trận đơn vị
Nghịch đảo ma trận
Ma trận tam giác

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

9


Kiểu dữ liệu xâu ký tự
Khái niệm xâu ký tự: Xâu ký tự trong Pascal là
một chuỗi các ký tự liên tiếp nhau.
 Khai báo:


Tên_biến_xâu: STRING[độ_dài_cực_đại]; hoặc:
Tên_biến_xâu: STRING;


Ví dụ
s: string [30]; { xâu có độ dài tối đa là 30 ký tự}
s1: string; { xâu có độ dài tối đa là 255 ký tự}

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự


10


Thao tác với xâu...


Truy nhập từng ký tự của xâu:
Tên_biến_xâu [STT_ký_tự]
Vd: s[3] là ký tự thứ 3 trong xâu (coi như biến char)



Phép cộng xâu:
s := ‘ABC’ + ‘123’; {s = ‘ABC123’}
s := s + ‘XYZ’; {s = ‘ABC123XYZ’}



Phép so sánh: xâu nào đứng trước theo thứ tự từ
điển thì nhỏ hơn
‘abc’ < ‘abcd’; ‘Ha Noi’ < ‘Ha Tay’; ...

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

11



Thao tác với xâu


Nhập/xuất xâu ký tự:
 write

/ writeln: xuất.
 read / readln: nhập (nếu không nhập xâu mà gõ Enter
luôn thì xâu sẽ là rỗng)

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

12


Một số hàm/thủ tục xử lý xâu










Hàm length(st): độ dài xâu.
Thủ tục delete(st, pos, num): xóa num ký tự kể từ vị trí pos trong

xâu st.
Thủ tục insert(obj, st, pos): chèn xâu obj vào vị trí pos trong xâu st.
Thủ tục str(value, st): biến đổi giá trị value thành xâu lưu vào st.
Thủ tục val(st, var1, code): biến xâu st thành số chứa trong var1
(nguyên hoặc thực). Nếu thành công, code=0, nếu không, code=vị trí
gặp lỗi trong xâu st khi biến đổi.
Hàm copy(st, pos, size): trả về size ký tự của xâu st kể từ vị trí pos.
Hàm concat(st1, st2,...): nối các xâu với nhau
Hàm pos(obj, target): trả về vị trí đầu tiên của xâu obj tìm thấy trong
xâu target.

December 3, 2015

Ch2.7. Dữ liệu kiểu mảng và xâu ký tự

13



×