Bài giảng Ngôn ngữ lập trình Pascal: Chương 10 - Kiểu dữ liệu có cấu trúc
lượt xem 7
download
Bài giảng Ngôn ngữ lập trình Pascal: Chương 10 - Kiểu dữ liệu có cấu trúc bao gồm những nội dung về kiểu dữ liệu có cấu trúc như kiểu mảng, sắp xếp mảng, mảng nhiều chiều, xâu ký tự String. Với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ngôn ngữ lập trình Pascal: Chương 10 - Kiểu dữ liệu có cấu trúc
- Chương 10 Cấu trúc dữ liệu: kiểu mảng Kiểu dữ liệu có cấu trúc: Được xây dựng từ các kiểu cơ sở Cách thức truy nhập vào từng phần tử Có 4 kiểu dữ liệu có cấu trúc: ARRAY, SET, RECORD, FILE 10.1
- Kiểu dữ liệu có cấu trúc: kiểu mảng TYPE Kiểu_mảng T = ARRAY [Kiểu_Chỉ_dẫn KCD] OF kiểu_phần_tử KPT; T = ARRAY [KCD] OF KPT; VAR A: Kiểu_Mảng_T; 10.2
- Thí dụ 10.1 TYPE AI = ARRAY[1..10] OF INTEGER; AC = ARRAY[1..5] OF CHAR; Color = (Red, Blue, Green, White, Black); VAR A, B, C: AI; X, Y: AC; M1, M2: ARRAY [-3 .. 5] OF REAL; MC: ARRAY ['A' .. 'Z'] OF INTEGER; MM: ARRAY [COLOR] OF BOOLEAN; 10.3
- Thí dụ 10.2 Writeln(' Vao so lieu cho mang B : '); FOR I:=1 TO 5 DO Begin Write(' B[', I, '] = '); READLN( B[I] ); End; Vao so lieu cho mang B: B[1] =2 B[2] =12 B[3] =612 B[4] =2 B[5] =34 Bài tập: Cộng hai ma trận C=A+B 10.4
- VAR I: Integer; CH : CHAR; MC : ARRAY ['A'..'Z'] OF INTEGER; BEGIN (* Xóa mảng đếm MC về không *) FOR CH := 'A' TO 'Z' DO MC[Ch] := 0; (* Đọc 100 kí tự từ bàn phím và đếm *) FOR I:=1 TO 100 DO Begin Readln(CH); CH:=UpCase(CH); Hãy cải tiến MC[Ch] := MC[Ch] + 1; (* Đếm *) End; (* Chỉ in ra kết quả đã xuất hiện *) FOR CH := 'A' TO 'Z' DO IF MC[CH]> 0 then Writeln('So chu ',Ch,' = ', MC[Ch]:4); 10.5 END.
- Sắp xếp mảng PROGRAM SAP_XEP; CONST N = 5; VAR MI: ARRAY[1..N] OF INTEGER; T: Integer; { T: biến Trung gian } I, J: INTEGER; BEGIN (* Đọc các số cần xếp vào mảng MI *) FOR I:=1 TO N DO BEGIN Write(' M[',I,'] = '); Readln(MI[i]); 10.6 END;
- (* Sắp xếp *) M[1] = -1 FOR I:=1 TO N-1 DO M[2] = 456 FOR J:=I+1 TO N DO M[3] = 34 BEGIN M[4] = -312 IF MI[I >MI[J] THEN M[5] = -56 BEGIN T := MI[I]; SAU KHI SAP XEP : MI[I]:= MI[J]; -312 -56 -1 34 456 MI[J]:= T; END; END; (* In ra kết quả *) Writeln; Writeln(' SAU KHI SAP XEP :'); FOR I:=1 TO N DO Write(MI[I]:6); END. 10.7
- Mảng nhiều chiều Thí dụ 10.6 TYPE PT: ARRAY [1..5] OF REAL; Color = (Red, Blue, Green, White, Black); VAR MPT: ARRAY [1..3] OF PT; Z: ARRAY [1..3, 'A'..'C'] OF COLOR; 10.8
- TYPE Color = (Red, Blue, Green, White, Black); VAR Z: ARRAY [1..3, 'A'..'D'] OF COLOR; Cột 'A' 'B' 'C' 'D' 1 Hàng 2 3 Truy nhập vào một phần tử mảng A[i, Ch] 10.9 A[2, 'D'] := Red;
- VAR MPT: ARRAY[1..3, 1..5] OF REAL; Cột 1 2 3 4 5 1 2.12 3.23 4.23 5.23 6.78 Hàng 2 3.23 1.22 23.5 65.3 99.2 3 34.2 56.5 12.0 2.22 5.01 Xem thí dụ nhân 2 ma trận C=A*B; N Cij Aik * Bkj k 1 10.10
- CONST N = 3; Phay = ','; (* Hằng kí tự: Dấu phẩy *) VAR A, B, C: ARRAY[1..N, 1..N] OF INTEGER; I, J, K : Integer; BEGIN (* Đọc vào giá trị của ma trận A *) FOR I:=1 TO N DO (* Chỉ số hàng *) FOR J:=1 TO N DO (* Chỉ số cột *) BEGIN Write(' A[',I, Phay ,J,'] = '); Readln(A[I,J]); END; (* Đọc vào giá trị của ma trận B: tương tự *) 10.11
- (* Nhân hai ma trận vuông cấp N:C=A*B *) FOR I:=1 TO N DO FOR J:=1 TO N DO BEGIN C[I, J] := 0; FOR K:=1 TO N DO C[I,J] := C[I,J] + A[I,K] * B[K,J]; END; (*In kết quả, theo kiểu viết ma trận *) Writeln(' Tich cua hai ma tran = '); FOR I:=1 TO N DO Begin FOR J:=1 TO N DO Write(C[I,J]:5); Writeln; End; END. 10.12
- Bài tập Hãy cải tiến chương trình nhân ma trận: a. Đọc cả một hàng số liệu. b. Tạo số ngẫu nhiên để nạp vào ma trận thử, khỏi phải đọc số liệu. 1. Viết chương trình giải hệ phương trình tuyến tính 2 ẩn dùng ma trận để chứa các hệ số: a11.x + a12.y = c1 a21.x + a22.y = c2 Hãy chuyển sang hệ 3 phương trình. 10.13
- 3. Tạo ma trận X[10, 10]. a. Hãy lập chương trình tạo ra 100 giá trị ngẫu nhiên nằm trong khoảng giá trị từ 1..10. b. Tính tổng của tất cả các phần tử nằm trên đường chéo chính. c. Tính tổng bình phưng các số trên hàng chẵn. d. Tính tổng căn bậc hai các số ở cột lẻ. e. Có bao nhiêu phần tử của ma trận có giá trị nằm trong dải 4..6. 10.14
- Xâu kí tự: String STRING [Độ_dài_cực_đại]; Thí dụ 11.1 VAR FileName: String[20]; Line: String[80]; 10.15
- Thí dụ 11.2 FileName := 'VIDU.PAS'; 0 1 2 3 4 5 6 7 8 9 10 ... 20 V I D U . P A S * * * * Độ dài hiện tại của xâu kí tự, CHR(8) Hàm độ dài xâu FileName là Length(FileName) Truy nhập vào từng phần tử: If 3 < Length(FileName) then Writeln('Kí tự thứ 3 là ', FileName[3]); 10.16
- Cộng các kí tự FileName := 'A:\' + FileName; cho kết quả FileName= 'A:\VIDU.PAS' So sánh hai xâu kí tự 'Vidu' < 'ViDu' là TRUE 'ABC' < 'BBC' là TRUE Ghi, đọc xâu kí tự Writeln(St); Readln(St) 10.17
- Mảng xâu kí tự Danh sách lớp học VAR SV: ARRAY[1..240] OF String[25]; Hãy viết CT đọc vào danh sách lớp và in ra máy in danh sách đó. 10.18
- Khai báo String là tham số của CTC TYPE St20: String[20]; St30: String[30]; VAR Ten20 : St20; Ten30 : St30; FUNCTION VIDU: St20; PROCEDURE VIDU2(St: St30); Cách viết sai: FUNCTION VIDUSAI: String[20]; PROCEDURE VIDUSAI(St: String[30]);10.19
- Các thủ tục và hàm xử lí xâu kí tự Length(St) FUNCTION LENGTH(St: String): byte; Begin Length := Ord (St[0]); End; Delete(St, Pos, Num); Với St := 'FILENAME'; Sau khi gọi Delete(St, 2, 3); St sẽ còn 'FNAME' 10.20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 351 | 104
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C# - Nguyễn Hồng Phương
409 p | 214 | 41
-
Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
45 p | 112 | 13
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình bậc cao - Th.S Đoàn Thị Thu Huyền
44 p | 150 | 10
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - TS. Nguyễn Thị Hiền
12 p | 62 | 9
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - PhD. Nguyễn Thị Huyền
12 p | 55 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
-
Bài giảng Ngôn ngữ lập trình: Bài 1 - Lý Anh Tuấn
30 p | 82 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn