Tương tự như với kiểu mảng một chiều ta cần xác định các yếu tố chiÒu, víi kiÓu m¶ng hai chiÒu, c¸c ng«n chÝnh nµo?. ngữ lập trình cũng có quy tắc, cách thức HS: Các yếu tố để xây dựng c[r]
(1)Gi¸o ¸n lý thuyÕt Bµi 11: KiÓu m¶ng (TiÕt 4) I Môc tiªu: KiÕn thøc: - BiÕt ®îc mét kiÓu d÷ liÖu míi lµ kiÓu m¶ng hai chiÒu - BiÕt ®îc c¸ch t¹o kiÓu m¶ng hai chiÒu, c¸ch khai b¸o biÕn, tham chiếu đến phần tử mảng Kü n¨ng: - T¹o ®îc kiÓu m¶ng hai chiÒu vµ khai b¸o biÕn m¶ng hai chiÒu ngôn ngữ lập trình Pascal Sử dụng đúng biến mảng để giải sè bµi to¸n cô thÓ II Hoạt động dạy học: ổn định tổ chức lớp: KiÓm tra sÜ sè: Tæng sè: V¾ng: Cã phÐp: Kh«ng phÐp: KiÓm tra bµi cò: C©u hái: - a) C¸ch khai b¸o m¶ng mét chiÒu vµ c¸ch tham chiÕu tíi phÇn tö cña m¶ng? (7®) - b) VËn dông: Cho d·y sè A = (a1, a2, …, an), (ai – nguyªn, i = 1, …, n và < n <= 100) Viết đoạn chương trình khai báo biến cÇn sö dông? (2®) Tr¶ lêi: a) C¸ch khai b¸o m¶ng mét chiÒu: C¸ch 1: Khai b¸o trùc tiÕp biÕn m¶ng mét chiÒu: Var <tªn biÕn m¶ng> : array [kiÓu chØ sè] of <kiÓu phÇn tö>; C¸ch 2: Khai b¸o gi¸n tiÕp biÕn m¶ng qua kiÓu m¶ng mét chiÒu: Type <tªn kiÓu m¶ng> = array [kiÓu chØ sè] of <kiÓu phÇn tö>; Var <tªn biÕn m¶ng> : <tªn kiÓu m¶ng>; Lop11.com (2) b) Var n : byte; A : array[1 n] of integer; Bµi míi: Đặt vấn đề: Trong bài trước chúng ta đã biết kiểu liệu có cấu trúc và đã di tìm hiểu mảng chiều Hôm chúng ta tiếp tục tìm hiÓu vÒ cÊu tróc d÷ liÖu kiÓu m¶ng vµ t×m hiÓu vÒ m¶ng hai chiÒu Ta vµo bµi h«m nay: KiÓu m¶ng hai chiÒu Néi dung Hoạt động thầy và trò Bµi to¸n: GV: Sö dông kiÕn thøc vÒ m¶ng Tính và đưa màn hình bảng cửu chương mét chiÒu, h·y ®a c¸ch sö 10 dụng kiểu mảng đó để lưu trữ 10 12 14 16 18 20 12 15 18 21 24 27 30 HS: Sö dông m¶ng mét chiÒu, 12 16 20 24 28 32 36 40 mçi m¶ng lu mét hµng cña b¶ng 10 15 20 25 30 35 40 45 50 GV: Víi c¸ch lu tr÷ nh vËy ta 12 18 24 30 36 42 48 54 60 ph¶i khai b¸o bao nhiªu biÕn? 14 21 28 35 42 49 56 63 70 HS: Khai b¸o biÕn m¶ng mét chiÒu 16 24 32 40 48 56 64 72 80 GV: Víi c¸ch khai b¸o nh vËy 18 27 36 45 54 63 72 81 90 thì chương trình nhập xuất bảng cửu chương? liÖu dµi vµ ph¶i khai b¸o nhiÒu biÕn §Ó kh¾c phôc khã kh¨n nµy, ta xem mét m¶ng mét chiÒu lµ mét phÇn tö, ta ghÐp m¶ng mét chiÒu trªn thµnh m¶ng hai chiÒu Lop11.com t (3) GV: VËy cã nhËn xÐt g× vÒ m¶ng hai chiÒu? HS: NÕu xem mçi hµng cña m¶ng hai chiÒu lµ phÇn tö th× ta cã thÓ nãi m¶ng hai chiÒu lµ m¶ng mét chiÒu mµ mçi phÇn tö lµ m¶ng mét chiÒu Các yếu tố để xác định mảng hai chiều: GV: §Ó m« t¶ kiÓu m¶ng hai Tương tự với kiểu mảng chiều ta cần xác định các yếu tố chiÒu, víi kiÓu m¶ng hai chiÒu, c¸c ng«n chÝnh nµo? ngữ lập trình có quy tắc, cách thức HS: Các yếu tố để xây dựng cho phép xác định: m¶ng hai chiÒu: - Tªn kiÓu m¶ng hai chiÒu - Tªn kiÓu m¶ng hai chiÒu - Số lượng phần tử chiều - Số lượng phần tử chiều - KiÓu d÷ liÖu cña phÇn tö - KiÓu d÷ liÖu cña phÇn tö - C¸ch khai b¸o biÕn - Cách tham chiếu đến phần tử T×m hiÓu vÒ kiÓu m¶ng hai chiÒu: GV: Víi bµi to¸n tÝnh vµ ®a a Khai b¸o: màn hình bảng cửu chương ta sử Tổng quát, khai báo biến mảng hai chiều dụng biến mảng hai chiều B để lu tr÷, biÕn m¶ng hai chiÒu B Pascal nh sau: C¸ch 1: Khai b¸o trùc tiÕp biÕn m¶ng hai chiÒu: lu tr÷ b¶ng nh©n ®îc khai b¸o Var <tªn biÕn m¶ng> : array [kiÓu chØ sè Pascal nh sau: hµng, kiÓu chØ sè cét] of <kiÓu phÇn tö>; Var B : array [1 9] of array C¸ch 2: Khai b¸o gi¸n tiÕp biÕn m¶ng qua [1 10] of integer; kiÓu m¶ng hai chiÒu: HoÆc cã thÓ khai b¸o ng¾n gän: Type <tªn kiÓu m¶ng> = array [kiÓu chØ sè Var B : array[1 9, 10] of integer; Lop11.com (4) hµng, kiÓu chØ sè cét] of <kiÓu phÇn tö>; GV: Qua c¸ch khai b¸o nh trªn Var <tªn biÕn m¶ng> : <tªn kiÓu m¶ng>; em h·y cho biÕt c¸ch t¹o kiÓu d÷ Chú ý: Các biến mảng thường gồm liệu mảng hai chiều (cách khai số lượng lớn các phần tử nên cần lưu ý báo mảng hai chiều)? phạm vi sử dụng chúng để khai báo kích HS: Trả lời câu hỏi GV thước và kiểu liệu cho tiết kiệm nhí VÝ dô: C¸c khai b¸o sau ®©y lµ hîp lÖ: GV: H·y cho biÕt ®©u lµ tªn biÕn Type m¶ng, kiÓu chØ sè hµng, kiÓu chØ arrayReal = array[-100 200, 100 200] of real; sè cét, kiÓu phÇn tö cña c¸c khai arrayBoolean = array[-n+1 n+1, n 2*n] of b¸o trªn? boolean; HS: Tr¶ lêi c©u hái cña GV Var GV: ý nghÜa cña c©u lÖnh “Type arrayInt : array[1 10, 15] of integer; arrayReal = array [-100 200, arrayLong : array[0 3*(n+1), n] of Longint; 100 200] of real;”? đó n là số HS: Lệnh trên dùng để tạo kiÓu m¶ng hai chiÒu cã tªn lµ arrayReal gåm 300 dßng vµ 100 cét, c¸c phÇn tö cã kiÓu d÷ liÖu lµ real b C¸ch tham chiÕu tíi tõng phÇn tö cña GV: Yªu cÇu häc sinh quan s¸t m¶ng: cÊu tróc chung vµ suy nghÜ t×m Tham chiÕu tíi phÇn tö cña m¶ng hai vÝ dô chiều xác định tên mảng cùng với GV: Ví dụ a[i, j] là phần tử hai chØ sè ®îc ph©n c¸ch bëi dÊu phÈy vµ dßng i, cét j cña m¶ng a viÕt cÆp ngoÆc [ vµ ] HS: VÝ dô: a[2, 9] lµ phÇn tö ë <tªn biÕn m¶ng>[chØ sè hµng, chØ sè cét] Lop11.com dßng sè 2, cét sè cña m¶ng a (5) RÌn luyÖn kü n¨ng sö dông m¶ng hai GV: Yªu cÇu häc sinh theo dâi chương trình SGK – Tr61, 62 chiÒu: Ví dụ 1: Chương trình tính và đưa màn GV: Khai báo Uses crt; có ý nghÜa g×? h×nh b¶ng nh©n HS: Khai báo thư viện chương trình Crt để sử dụng §Ó nhËp d÷ liÖu ta dïng hai vßng For: thñ tôc Clrscr; For i:=1 to GV: Giải thích chương trình For j:=1 to 10 Để thực chương trình B[i, j] := i*j; tÝnh vµ ®a mµn h×nh b¶ng nhân ta phải sử dụng biến, đó lµ: biÕn kiÓu m¶ng hai chiÒu cã In m¶ng: tªn lµ B gåm dßng vµ 10 cét, For i:=1 to c¸c phÇn tö cã kiÓu d÷ liÖu lµ Begin integer Và biến số i và j để For j:=1 to 10 Write(B[i, j]:4); lu tr÷ chØ sè hµng vµ chØ sè cét Writeln; cña m¶ng hai chiÒu B End; Hai vßng for víi i, j lång để gán giá trị bảng cửu chương cho các phần tử B Sau đó in bảng đó màn hình GV: ý nghÜa cña lÖnh Writeln; chương trình này? HS: Để xuống dòng in đủ 10 cột VÝ dô 2: NhËp vµo tõ bµn phÝm c¸c phÇn tö GV: Nªu vÝ dô vµ yªu cÇu häc mảng hai chiều B gồm hàng, cột với sinh nhà chạy thử chương c¸c phÇn tö lµ c¸c sè nguyªn vµ mét sè tr×nh nguyên k Sau đó đưa màn hình các phần tö cña m¶ng cã gi¸ trÞ nhá h¬n k Lop11.com (6) Cñng cè: - Những nội dung đã học: + C¸ch khai b¸o m¶ng hai chiÒu + Cách tham chiếu đến phần tử mảng + NhËp vµ in d÷ liÖu cña m¶ng - Bµi tËp vÒ nhµ: + Viết chương trình nhập vào từ bàn phím mảng hai chiều A[1 10, 10] víi c¸c phÇn tö lµ c¸c sè nguyªn vµ mét sè nguyên x Đếm số lượng số A có giá trị x + Xem néi dung cña bµi thùc hµnh sè (SGK – Tr65) Lop11.com (7) Nhận xét giáo viên hướng dẫn Lop11.com (8)