1. Trang chủ
  2. » Công Nghệ Thông Tin

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

13 517 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 199 KB

Nội dung

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

Trang 1

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.

Trang 2

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

Trang 3

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;

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

Trang 4

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;

Trang 5

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.

Trang 6

Gán giá trị cho các phần tử của mảng

VAR

Day1: Array[1 10] of Integer;

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.

3;10 3;13 _

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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ự}

Trang 11

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’;

Trang 12

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)

Trang 13

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.

Ngày đăng: 03/12/2015, 15:38

TỪ KHÓA LIÊN QUAN

w