Bµi 14 Gi¸o ¸n ®iÖn tö tin häc líp 11 GV Đinh Nguyên Thanh Tú Sưu tầm và giới thiệu tại CENTEA Data Là mảng một chiều mà mỗi phần tử của nó lại là mảng một chiều. A Trong đó: Khi tham chiếu đến phần tử ở dòng i cột j ta viết: A[i,j]. Ví dụ: A[2,3]= 8. Tên mảng: A; Mảng gồm: 3 dòng 4 cột; Ví dụ: Kiểu dữ liệu của các phần tử: Kiểu nguyên; 7935 3829 6741 1 2 3 4 1 2 3 1. Khái niệm 2. Khai b¸o m¶ng hai chiÒu * C¸ch 1: Khai b¸o gi¸n tiÕp TYPE < tªn kiÓu m¶ng> = array[kiÓuchØ sè dßng,kiÓu chØ sè cét] of <kiÓuphÇn tö>; Var <ds biÕn m¶ng> : <tªn kiÓu m¶ng >; VÝ dô: TYPE Bang = array[1 9,1 9] of integer; Var A: Bang; * C¸ch 2: Khai b¸o trùc tiÕp Var < Ds biÕnm¶ng> : array[KiÓu chØ sè dßng,kiÓu chØ sè cét] of <kiÓuphÇn tö>; Var A,B: array[1 20,1 30] of real; VÝ dô: Var Bang: array[1 9,1 9] of integer; 3. Các thao tác xử lí trong mảnghaichiều 1. Nhập số dòng (n) và số cột (m). Write( Nhap vao so dong, cot:); Readln(n,m); 2. Nhập vào giá trị của các phần tử trong mảng ( A [i,j]). For i:= 1 to n do For j:=1 to m do Begin write(A[,i,j, ] = ); readln(A[i,j]); end; Các bước: Thể hiện bằng pascal a. Nhập mảnghaichiều A 1 2 3 4 1 2 3 7935 3829 6741 b. In mảnghaichiều Writeln( Mang vua nhap : ); For i:=1 to n do Begin For j:=1 to m do Write(A[i,j], ); Writeln; end; Mang vua nhap: 1 4 7 6 9 2 8 3 5 3 9 7 1. Thông báo 2. In giá trị của các phần tử Kết quả in ra màn hình: Các thao tác xử lí mảnghaichiều thường dùng hai câu lệnh FOR .do lồng nhau. For i :=1 to 9 do For j:=1 to 9 do A[i,j] := i*j; c. Các thao tác xử lí khác Ví dụ: Tính và in ra màn hình bảng cửu chương. For i :=1 to 9 do Begin For j:=1 to 9 do write(A[i,j]:5); writeln; writeln; End; Bây giờ các em hãy viết chương trình hoàn chỉnh cho bài toán ví dụ nhé ? 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 12 24 32 40 48 56 68 72 9 18 27 36 45 54 63 72 81 * Tính * IN ra màn hình Quan sát bảng cửu chương ta thấy: A[2,5]=2 x 5 = 10 A[5,8]=5 x 8 = 40 A[i,j]=i*j Hãy nhớ ! Mảnghaichiều là mảng một chiều mà mỗi phần tử của nó lại là mảng một chiều. Khai báo: tên mảng, kiểu chỉ số dòng, kiểu chỉ số cột, kiểu phần tử. Tham chiếu phần tử mảng: Tên biến mảng[cs dòng,cs cột] Thao tác xử lí thường dùng cấu trúc hai câu lệnh FOR DO lồng nhau. 15 20 19 16 25 18 17 12 16 Var A:ARRAY[1 10,1 10] OF integer; A[1,3] = 19 . 8 = 40 A[i,j]=i*j Hãy nhớ ! Mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là mảng một chiều. Khai báo: tên mảng, kiểu chỉ số dòng, kiểu. end; Các bước: Thể hiện bằng pascal a. Nhập mảng hai chiều A 1 2 3 4 1 2 3 7935 3829 6741 b. In mảng hai chiều Writeln( Mang vua nhap : ); For i:=1 to