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 (101.37 KB, 4 trang )
<span class='text_page_counter'>(1)</span>Ngày soạn:1/11/2010 Ngày giảng:5/11/2010. TIẾT 22 - Bài 11: KIỂU MẢNG(3/3) I. MỤC ĐÍCH, YÊU CẦU 1. 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 từng phần tử của mảng 2. Kỹ năng - Tạo được kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể 3. Tư duy và thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức. II. CHUẨN BỊ 1. Giáo viên: giáo án, bảng phụ, sgk, projector, phiếu học tập. 2. Học sinh: sgk III. PHƯƠNG PHÁP Thuyết trình, vấn đáp, gợi mở, hoạt động project IV. HOẠT ĐỘNG DẠY HỌC 1. Ổn định lớp : - Chào thầy cô . - Cán bộ lớp báo cáo sĩ số . - Chỉnh đốn trang phục . 2. Kiểm tra bài cũ Lập trình nhập vào từ bàn phím một dãy số nguyên bất kỳ sau đó đưa ra giá trị lớn nhất và nhỏ nhất của dãy số đó 3. Bài mới Hoạt động của Gv & Hs Nội dung Hoạt động 1: Khái niệm và khai báo mảng hai chiều GV : Quay lại ví dụ về lưu trữ dữ liệu dạng bảng để các em nhận ra nhu cầu phải sử dụng 2. Kiểu mảng 2 chiều : mảng 2 chiều trong lập trình . - Mảng hai chiều là một bảng các phần tử cùng kiểu . Với mảng hai chiều ta quan tâm đến : - Tên kiểu mảng hai chiều . - Số lượng phần tử của mỗi chiều trong mảng . - Kiểu dữ liệu của phần tử . - Cách khai báo biến mảng hai chiều . - Cách truy cập vào từng phần tử của.
<span class='text_page_counter'>(2)</span> mảng . a> Khai báo mảng hai chiều GV : Khai báo cách nào tiện lợi hơn (tương - Trong ngôn ngữ Pascal, mảnh hai chiều tự mảng 1 chiều) ? được khai báo như sau : Cách 1 : Khai báo trực tiếp HS : Thường thì học sinh vẫn chọn cách 1 . Var : <Tên mảng> : Array[kiểu chỉ số dòng, GV : Tùy theo trường hợp cụ thể nhưng kiểu chỉ số cột] of < kiểu phần tử> ; thường thì cách 1 hay được dùng hơn . Cách 2 : Khai báo gián tiếp thông qua khai báo kiểu mảng Type <Tên kiểu mảng> = Array[kiểu chỉ số dòng, kiểu chỉ số cột] of <kiểu phần tử> ; Var <Tên mảng> : <Tên kiểu mảng> ;. Ví dụ : Khai báo biến mảng thông qua kiểu mảng : Type GV : Khi khai báo mảng 2 chiều cần chú ý ArrayInteger = Array[1..10,1..15] of Integer ; điều gì ? ArrayReal=Array[1..50,1..100] of Real ; HS : Tìm câu trả lời, GV gợi ý để các em chỉ Var A : ArrayInteger ; ra được chỉ số của mảng, số dòng, số cột và B : ArrayReal ; kiểu của mỗi phần tử trong mảng . Khai báo mảng trực tiếp : Var A : Array[1..10,1..15] og Integer ; B : Aarray[1..50,1..100] og Real ; Cách truy cập vào phần tử của mảng hai GV : Gọi một số học sinh lên khai báo một chiều : số biến mảng một chiều theo yêu cầu của giáo viên . <Tên mảng>[chỉ số dòng, chỉ số cột] Ví dụ : A[1,3], B[23,66],…… Minh họa bằng hình ảnh mảng 2 chiều và chỉ số các phần tử mảng hai chiều cũng như cách viết truy cập phần tử mảng ..
<span class='text_page_counter'>(3)</span> Hoạt động 2: Một số ví dụ về mảng hai chiều GV cho học sinh quan sát chương trình và > Một số ví dụ : giải thích các lệnh trong chương trình, chú ý đi sâu vào các lệnh lặp để các em nhận ra Ví dụ 1 : thường thì ta sử dụng vòng lặp for - do để Chương trình sau đưa ra màn hình bảng cửu duyệt qua các phần tử mảng . chương . Program cuuchuong; GV nên soạn sẵn chương trình và cho các em Uses crt ; quan sát chương trình, và chạy thử chương var A : Array[1..9,1..9] of Integer ; trình trên máy để các em tiện theo dõi . i, j : Byte ; Program Timkiem; Uses crt; var A : Array[1..100,1..100] of Integer; i,j,n,m : Byte ; k,d : integer ; Begin Clrscr ; Write(' Nhap so dong, so cot cua mang : ') ; Readln(m,n); For i := 1 to m do For j := 1 to n do Begin Write(' A[',i,',',j,'] = '); Readln(A[i,j]); End ; Writeln(' Mang vua nhap vao la : '); Writeln; For i := 1 to m do Begin For j := 1 to n do Write(a[i,j]:4) ; Writeln; Writeln; End; Write(' Nhap gia tri k : '); Readln(k) ; d := 0 ; For i := 1 to m do For j := 1 to n do If a[i,j] < k then. Begin Clrscr ; Writeln('Bang cuu chuong 1 -> 9 : '); Writeln ; For i := 1 to 9 do For j := 1 to 9 do A[i,j] := i*j ; For i := 1 to 9 do Begin For j := 1 to 9 do Write(a[i,j]:4); Writeln ; Writeln ; End ; Readln ; End . Ví dụ 2 : Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng ..
<span class='text_page_counter'>(4)</span> Begin write('So nho hon ',k,' la '); write(a[i,j]:8); d := d+1 ; End ; If d = 0 then Write('Khong co ptu nao nho hon ',k); readln; End . 4. Cũng cố, dăn dò - Ôn cấu trúc mảng - ôn lại cấu trúc lặp để nhập giá trị và truy xuất phần tử của mảng - Về nhà xem lại các bài tập đã giải và làm bài tập còn lại trong sgk.
<span class='text_page_counter'>(5)</span>