Giáo án môn Tin học 11 trọn bộ

1. Kiến thức.

 - Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng.

 - Làm quen với thuật toán sắp xếp đơn giản.

 2. Kĩ năng.

 - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuất toán bằng chương trình sử dụng dữ liệu kiểu mảng.

 - Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn.

 3. Thái độ.

 - Tự giác, chủ động trong khi thực hành.

 

doc165 trang | Chia sẻ: dung89st | Ngày: 09/05/2016 | Lượt xem: 318 | Lượt tải: 3download
Bạn đang xem trước 20 trang mẫu tài liệu Giáo án môn Tin học 11 trọn bộ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
em:=dem+1;
 if t5>tb then dem:=dem+1;
 if t6>tb then dem:=dem+1;
 if t7>tb then dem:=dem+1;
 Write(‘nhiet do trung binh tuan:’,tb);
 Writeln(‘So ngay nhiet do cao hon nhiet do trung binh tuan:’,dem):
 readln;
 End.
 1. Chiếu đề bài và chương trình ví dụ lên bảng.
 - Hỏi: Khi N lớn thì chương trình trên có những hạn chế như thế nào?
 - Dẫn dắt: Để khắc phục những hạn chế trên, người ta thường ghép chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh cho mọt phần tử một chỉ số.
 Tóm lại:
Hầu hết các ngôn ngữ lập trình đều có quy tắc cho phép xác định: tên kiểu mảng, số lượng phần tử, kiểu dữ liệu của từng phần tử, cách khia báo một biến mảng và cách tham chiếu đến từng phần tử của từng mảng.
 2. Hoạt động 2: Tạo kiểu mảng một chiều và khai báo biến mảng.
? Cách tạo kiểu dữ liệu của mảng 1 chiều
 - tạo kiểu dữ liệu mảng một chiều:
 TYPE tên_kiểu_mảng = Array[kiểu_chỉ_số] Of Kiểu_thành_phần;
 + Kiểu_chỉ_số: Thường là một đoạn số nguyên(hoặc là một đoạn kí tự) xác định chỉ số đầu và chỉ số cuối của mảng.
 + Kiểu_thành_phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng
 - Khai báo biến mảng một chiều: VAR tên_biến:tên_kiểu_mảng;
 - Tham chiếu đến từng phần tử: Tên_biến [chỉ số]
1. Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ lập trình Pascal.
 - Tìm một ví dụ để minh họa.
 - Gọi học sinh khác, Hỏi: ý nghĩa của lệnh bạn vừa viết?
 - Chiếu lên bảng một số khia báo kiểu mang một chiều
 Type
 Arrayr=array[1..200] of real;
 Arrayr=array[byte] of real;
 Arrayb=array[-100..0] of boolean;
 - Hỏi: Những khai báo nào đúng?
 3. Giới thiệu cách tham chiếu đến từng phần tử của mảng một chiều. Yêu cầu học sinh lấy một ví dụ.
- Lớp trưởng báo cáo sĩ số lớp.
 2. Nghiên cứu sách giáo khoa để trả lời.
 - Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt nhau bởi chỉ số.
 - Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần tử của nó.
Học sinh quan sát trên máy chiếu VD trên 
- Quan sát các câu lệnh rẽ nhánh áp dụng cho bài tập trên.
Quan sát trên màn hình, suy nghĩ và trả lời.
 - Phải khai báo quá nhiều biến. Chương trình phải viết rất dài.
- Học sinh đọc sgk, trả lời câu hỏi.
1. Tham khảo sách giáo khoa và trả lời.
 - TYPE tên_km= Array[kieeru cs] Of kiểu_thành_phần;
 - Ví dụ: Type mmc=array[1..100] of integer;
 - Tạo mọt kiểu dữ liệu mới có tên mmc, gồm 100 phần tử, có kiểu nguyên.
 - Quan sát bảng và hcọn khai báo đúng.
 Arrayr=array[1..200] of real;
 Arrayb=array[-100..0] of boolean;
 3. Theo dõi hướng dẫn của giáo viên và độc lập suy nghĩ để trả lời.
 a[1] là phần tử ở vị trí 1 của mảng a.
 a[i] là phần tử ở vị trí i của mảng a.
 IV. Đánh giá cuối bài
 1. Những nội dung đã học.
 - Cách tạo kiểu mảng một chiều và cách khia báo biến.
 TYPE tên_kiểu_mảng= Array[kiểu_chỉ_số] Of kiểu_thành_phần;
 VAR tên_biến:tên_kiểu_mảng;
 - Tham chiếu đến từng phần tử: Tên_biến[chỉ số]
 2. Câu hỏi và bài tập về nhà.
 - Viết chương trình nhập vào một mảng gồm n số nguyên( 1<=n<=100), mỗi số có giá trị tuyệt đối không uqá 300. Tính tổng giá trị các phần tử có giá trị chia hết cho k.
 - trả lời các câu hỏi 1_4, làm bài tập 5, 6, 7, sách giáo khoa, trang 79.	
Xỏc nhận soạn GA ngày thỏng năm 2014
 PHỤ TRÁCH CM
Ngày soạn:.
Ngày giảng: Lớp :.............
Tiết 21
KIỂU MẢNG(T2)
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 một chiều. Biết được một loại biến có chỉ số.
 - Biết cấu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều.
 2. Kĩ năng
 - Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.
- Hiểu được VD1,2 trong sgk có sử dụng mảng 1 chiều
 II. Đồ dùng dạy học
 1. Chuẩn bị của giáo viên.
Máy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa.
 2. Chuẩn bị của học sinh.
 Sách giáo khoa.
 III. Hoạt động dạy - học.
hướng dẫn của giáo viên
Hoạt động của học sinh
 - ổn định tổ chức
1. Hoạt động 1: Kiểm tra bài cũ
? Thế nào là mảng 1 chiều?
? để mô tả mảng 1 chiều cần xác định điều gì?
2 Hoạt động 2:Tìm hiểu VD 1 trong SGK trang 56
Bài toán:Tìm phần tử lớn nhất của dãy gồm N số nguyên và giá trị của các số không vượt quá 500
 ? Input của bài toán là gì? 
? output của bài toán là gì?
? Cho biết thuật toán của bài toán trên?
chương trình duyệt tuần tự các phần tử để tìm ra giá trị lớn nhất.
program TIMMAX;
Uses Crt;
Const nmax:=250;
Type arrInt = Array[1..nmax] of integer ;
Var A: arrInt;
 Max, N, i, csmax: integer;
Begin
 Clrscr;
 Write(‘nhap vào số phần tử n=’);
 readln(n);
 For i:=1 to N do 
 Begin
 write(' phan tư thu',i,'=');
 readln(a[i]);
 end;
 max: = A[1]; csmax: = 1;
 For i:=2 to N do 
 if a[i] > max then
 begin
 max: = a[i];
 csmax: = i;
 end;
 Write(‘gia trị của phan tư lon nhat la’,max);
 Write(‘chi so của phan tư lon nhat la', csmax);
 readln;
End.
? Vòng lặp đầu tiên For i:=1 to N do 
dùng để làm gì?
? Câu lệnh max: = A[1]; csmax: = 1;
là câu lệnh gì?
? dãy Câu lệnh 
 For i:=2 to N do 
 if a[i] > max then
 begin
 max: = a[i];
 csmax: = i;
 end;
có ý nghĩa như thế nào?
- cuối cùng là 2 câu lệnh in ra màn hình gía trị lớn nhất và chỉ số của phần tử lớn nhất qua 2 câu lệnh write. 
VD: dãy A gồm có 5 phần tử như sau
A1 A2 A3 A4 A5
3 5 4 11 3
- Giáo viên cho học sinh nhìn vào bài toán và chạy chương trình trên để cho học sinh đưa ra kết quả như trên.
 3. Hoạt động 3: Sắp xếp dãy số nguyên thành 1 dãy không giảm bằng thuật toán trao đổi.( Dãy gồm N số và N<250 và giá trị mỗi số không vượt quá 500(VD2)
? Input của bài toán là gì? 
? output của bài toán là gì?
Thuật toán: 
program SX;
Uses Crt;
Const nmax:=250;
Type arrInt = Array[1..nmax] of integer ;
Var A: arrInt;
 Max, N, i, j,t: integer;
Begin
 Clrscr;
 Write(‘nhap vào số phần tử n=’);
 readln(n);
 For i:=1 to N do 
 Begin
 write(' phan tư thu',i,'=');
 readln(a[i]);
 end;
 For j:=N dowto 2 do 
 For i:=1 to j-1 do 
 if a[i] >A[i+1] then
 begin
 t: = a[i];
 a[i]:= a[i+1];
 a[i+1]:= t;
 end;
 Write(‘dãy được Xs la' );
For i:=1 to N do 
 Write(a[i]);
 readln;
End.
- Lớp trưởng báo cáo sĩ số lớp.
- 
-Học sinh nhớ lại kiến thức đã học và đưa ra nhận xét của mình.
input: dãy gồm N số nguyên dương(N<250) A1, A2... AN, mỗi số đều không vượt quá 500.
output: Chỉ số và giá trị lớn nhất trong dãy đã cho.
- Học sinh suy nghĩ, xây dựng từng bước của thuật toán, học sinh khác bổ sung.
Thuật toán:
B1: Nhập N và dãy A1,A2AN;
B2: Max<- A1, i,<-2;
B3: Nếu i>N thì đưa ra giá trị Max rồi kết thúc.
B4: 
 B41 Nếu Ai> Max thì Max<- Ai
 B42 i<-i+1 rồi quay lại bước 3;
 chiếu chương trình trên lên bảng cho học sinh quan sát.
Học sinh quan sát trên máy chiếu VD trên 
- học sinh suy nghĩ trả lời câu hỏi.
dùng để nhập giá trị từ phần tử thứ nhất đến phần tử thứ N.
- Là câu lệnh gán giá trị lớn nhất bằng phần tử đầu tiên trong mảng và chỉ số của phần tử lớn nhất chính là phần tử đầu tiên trong mảng.
- Duyệt từ phần tử thứ 2 trở đi nếu giá trị phần tử thứ 2 đếnN lớn hơn giá trị phần tử thứ 1 thì đổi chỗ cho phần tử thứ 1 và gán chỉ số = chỉ số của phần tử lớn nhất đó.
- Học sinh chú ý nghe giáo viên giải thích từng câu lệnh có trong chương trình
- Vậy trong dãy trên thấy phần tử nào là lớn nhất?
- phần tử lớn nhất là 11
- Nó đứng ở vị trí thứ mấy?
- Nó đứng ở vị trí thứ 4
- Học sinh chú ý quan sát và nếu chưa hiểu thì yêu cầu giáo viên giảng lại cho học sinh thấy được.
input: dãy gồm N số nguyên dương(N<250) A1, A2... AN, mỗi số đều không vượt quá 500.
output: dãy được xắp xếp thành dãy không giảm.
Chiếu chương trình lên bảng cho học sinh quan sát
Giải thích từng câu lệnh có trong chương trình để học sinh biết ý nghĩa của các câu lệnh.
lấy VD với dãy số sau
A1 A2 A3 A4 A5
3 5 3 7 2
 sau khi sx dãy số trở thành
 2 3 3 5 7
- Giáo viên chạy chương trình trên cho học sinh thấy được kết quả của chương trình.
IV. Đánh giá cuối bài
 1. Những nội dung đã học.
 - các VD1, 2 trong sgk.
Xỏc nhận soạn GA ngày thỏng năm 2014
 PHỤ TRÁCH CM
Ngày soạn:.
Ngày giảng: Lớp:...............
Tiết 22
Kiểu mảng(tiết 3)
I. Mục đớch yờu cầu
 1. Kiến thức
 - Hiểu được VD 2 trong sgk về cách tìm kiếm một phần tử trong dãy = 1 số k nào đó.
 2. Kĩ năng
 - Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.
- Hiểu được VD3 trong sgk có sử dụng mảng 1 chiều
 II. Đồ dùng dạy học
 1. Chuẩn bị của giáo viên.
Máy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa.
 2. Chuẩn bị của học sinh.
 Sách giáo khoa.
 III. Hoạt động dạy - học.
Hoạt động của giáo viên
Hoạt động của học sinh
 - ổn định tổ chức
1 Hoạt động 1:Tìm hiểu VD 3 trong SGK trang 58
Bài toán:Tìm phần tử của dãy gồm N số nguyên có giá trị bằng 1 số k cho trước 
 ? Input của bài toán là gì? 
? output của bài toán là gì?
? Cho biết thuật toán của bài toán trên?
chương trình duyệt tuần tự các phần tử để tìm ra giá trị lớn nhất.
program TIMMAX;
Uses Crt;
Const nmax:=250;
Type arrInt = Array[1..nmax] of integer ;
Var A: arrInt;
 N, i, k: integer;
 Dau, cuoi, giua: Integer;
 timthay: Boolean;
Begin
 Clrscr;
 Write(‘nhap vào số phần tử n=’);
 readln(n);
 For i:=1 to N do 
 Begin
 write(' phan tư thu',i,'=');
 readln(a[i]);
 end;
 write(' nhap vao gia tri k=');
 readln(k);
dau:=1; cuoi:=N; timthay:=false;
 while( dau<= cuoi) and not (timthay) do
 begin
 giua;= (dau+ cuoi) div 2;
 if A[giua] =k then timthay: =true 
 else
 if A[giua] >k then cuoi:= giua-1
 else
 dau:= giua +1;
 end;
 if timthay then write(' chi so tìm duoc la', giua)
 else write('khong tim thay');
readln;
End.
VD: dãy A gồm có 5 phần tử như sau
A1 A2 A3 A4 A5
3 5 4 11 3
 và số k = 4 thì đưa ra thông báo có tìm thấy và chỉ số tìm được là vị trí thứ 3
- Giáo viên cho học sinh nhìn vào bài toán và chạy chương trình trên để cho học sinh đưa ra kết quả như trên.
- Lớp trưởng báo cáo sĩ số lớp.
- 
-Học sinh nhớ lại kiến thức đã học và đưa ra nhận xét của mình.
input: dãy gồm N số nguyên dương(N<250) A1, A2... AN, và 1 số nguyên k
output: Có hay không chỉ số i mà Ai=k
- Học sinh suy nghĩ, xây dựng từng bước của thuật toán, học sinh khác bổ sung.
Thuật toán:
B1: Nhập N và dãy A1,A2AN;
B2: Dau<- 1, cuối,<-N;
B3: Giua<-[dau+cuoi]/2;
B4: nếu Agiua = k thì thông báo chỉ số Giua rồi kết thúc.
B5: Nếu Agiua >k thì đặt cuoi = Giua - 1 rồi chuyển đến b7;
B6: Dau<-Giua + 1;
B7: Nếu Dau> Cuoi thi thông báo dãy A không có số hạng có giá trị bằng k rồi kết thúc.
B8: Quay lại B3
chiếu chương trình trên lên bảng cho học sinh quan sát.
Học sinh quan sát trên máy chiếu VD trên 
- Học sinh chú ý nghe giáo viên giải thích từng câu lệnh có trong chương trình
- Học sinh chú ý quan sát và nếu chưa hiểu thì yêu cầu giáo viên giảng lại cho học sinh thấy được.
IV. Đánh giá cuối bài
 1. Những nội dung đã học.
 - VD3trong sgk.
Xỏc nhận soạn GA ngày thỏng năm 2014
 PHỤ TRÁCH CM
Ngày soạn: ................
Ngày giảng: ............... Lớp:............
Tiết 23,24
Bài Tập và thực hành 3
I. Mục đớch yờu cầu:
- Xõy dựng chương trỡnh cú sử dụng cấu trỳc rẽ nhỏnh.
 - Làm quen với việc hiệu chỉnh chương trỡnh.
II. Đồ dựng dạy học:
1. Chuẩn bị của giỏo viờn:
SGK, GA, cỏc bài tập, phũng mỏy...
 2. Chuẩn bị của học sinh:
SGK,SBT, vở ghi...
III . Hoạt động dạy – học
Hoạt động của giỏo viờn
Hoạt động của học sinh
ổn định tổ chức.
Kiểm tra sĩ số.
1.Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn.
 a. Mục tiêu:
 - Học sinh hiểu được chương trình có sẵn ở câu a, biết được kết quả chạy chương trình này, từ đó tìm ra cách giải quyết câu b.
 b. Nội dung:
 a – Tìm hiểu, gõ chương trình vào máy và chạy thử:
 Program Sum 1;
 Uses Crt;
 Const nmax:=100;
 Type Myarray = Array[1..nmax] of integer ;
 Var A:myarray;
 s, n, i, k:integer;
 Begin
 Clrscr;
 Randomize;
 Write(‘nhap n=’);
 readln(n);
 For i:=1 to n do a[i]:=random(300) – random(300);
 For i:=1 to n do Write(A[i]:5);
 Writeln;
 Write(;nhap k=’);
 readln(k);
 s:=0;
 For i:=1 to n do 
 if a[i] mod k=0 then s:=s+a[i];
 Write(‘tong can tinh la’,s);
 readln;
 End.
 b – Thêm các lệnh mới vào chương trình nhằm sửa đổi chương trình trong câu a dể chương trình thực hiện đếm số dương và số lượng số âm của mảng.
 Posi, neg:integer;
 Posi:=0;neg:=0;
 If a[i] >0 then Posi:=posi+1
 Else if a[i] <0 then neg:=neg+1;
 Write(pói:4,neg:4);
 c. Các bước tiến hành:
1. tìm hiẻu chương tình ở câu a, sách giáo khoa, trang 63 và chạy thử chương trình.
 - Chiếu chương trình lên bảng .
 - Hỏi: Khai báo Uses CRT; có ý nghĩa gì?
 - Hỏi: Myarray là tên kiểu dữ liệu hay tên biến?
 - Hỏi: Vai trò của nmax và n có gì khác nhau?
 - Hỏi: Những dòng lệnh nào dùng để tạo biến màng a?
 - Thực hiện chương trình để học sinh thấy kết quả.
 - Hỏi: Lệnh gán a[i]:=random(300) – random(300) có ý nghĩa gì?
 - Hỏi: Lệnh Fori:=1 to n do
 Write(A[i]:5);có ý nghĩa gì?
 - Hỏi : Lệnh For – Do cuối cùng thực hiện nhiệm vụ gì?
 - hỏi: Lệnh s:=a+a[i]; được thựchiện bao nhiêu lần?
 - Thực hiện lại chương trình lần cuối để học sinh thấy kết quả.
 2. Sửa chương trình câu a để được chương trình giải quyết bài toán ở câu b.
 - Chiếu lên màn hình các lệnh cần thêm vào chương tình ở câu a.
 - Hỏi: ý nghĩa của biến Posi và neg?
 - Hỏi: Chức năng của lệnh:
 If a[i] >0 then posi:=posi+1
 else if a[i] <0 then neg:=neg+1;
 - Yêu cầu học sinh thêm vào vị trí cần thiết để chương trình đếm được số.
 - Yêu cầu học gõ nội dung và lưu lại với tên caub.pas. thực hiện chương trình và báo cáo kết quả.
2. Hoạt động 2: rèn luyện kĩ năng lập trình.
 - Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và in ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì chỉ đưa ra phần tử có chỉ số nhỏ nhất.
1. láy một ví dụ thực tiễn: Người mù tìm viên sỏi có kích thước lớn nhất trong một dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn nhất.
 - Yêu cầu: Nêu thuật toán tìm phần tử có giá trị lớn nhất.
 2. Tìm hiểu chương trình tìm chỉ số và giá trị lớn nhất.
 - Chiếu chương tình ví dụ, sách giáo khoa, trang 64. 
 - Hỏi: Vai trò của biến j trong chương trình?
 - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần sửa ở chỗ nào?
 - Hỏi: Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất ta sửa ở chỗ nào?
 3. Đặt yêu cầu mới: Viết chương trình đưa ra các chỉ số của các phần tử có giá trị lớn nhất.
 - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn nhất không?
 - Hỏi: Cần thêm lệnh nào nữa?
 - Hỏi: Vị trí thêm các lệnh đó?
 - Yêu cầu: Viết chương trình hoàn thiện.
 - Yêu cầu học sinh nhập dữ liệu vào của giáo viên và báo kết quả.
Lớp trưởng bỏo cỏo sĩ số.
 1. Quan sát, chú ý và trả lời.
 - Khai báo thư viện chương trình con Crt để sử dụng được thủ tục Clrscr;
 - Tên kiểu dữ liệu.
 - nmax là số phần tử tối đa có thể chứa của biến mảng a.n là số phần tử thực tế của a.
 - Lệnh khai báo kiểu và khai báo biến.
 - Quan sát chương trình thực hiện và kết quả trên màn hình.
 - Lệnh sinh ngẫu nhiên giá trị cho mảng a từ – 299 đến 299.
 - In ra màn hình giá trị của từng phần tử trong mảng a.
 - Cộng các phần tử chia hết cho k.
 - Có số lần đúng bằng số phần tử a[i] chia hết k.
 - Quan sát giáo viên thực hiện chương trình và kết quả trên màn hình.
 2. Quan sát và chú ý theo dõi các câu hỏi của giáo viên:
 - Quan sát các lệnh và suy nghĩ vị trí cần sửa trong chương trình câu a.
 - Dùng để lưu số lượng đếm được.
 - Đếm số dương hoặc đếm số âm.
 - Chỉ ra vị trí cần thêm vào trong chương trình.
 - Lưu chương trình. Thực hiện chương trình và thông báo kết quả.
1. Theo dõi vị trí của giáo viên.
 - So sánh lần lượt từ trái sang phải, giữ lại chỉ số của phần tử lớn nhất. 
 2. Quan sát chương trình, suy nghĩ và trả lời.
 - Giữ lại chỉ số của phần tử có giá trị lớn nhất.
 - Phép so sánh a[i] <a[j]
 - Chuyển thứ tự duyệt từ n-1 vè 1.
 3. Theo dõi yêu cầu, suy nghĩ các câu hỏi định hướng để viết chương trình.
 - Có.
 - Lệnh để in ra các chỉ số có giá tị bằng giá trị lớn nhất tìm được.
 - Sau khi tìm được giá trị lớn nhất.
 - Soạn chương trìnhvào máy. Thực hiện chương trình và thông báo kết quả.
 - Nhập dữ liệu vào và thông báo cho giáo viên dữ liệu ra.
IV. Đỏnh giỏ cuối bài.
 1. Một số thuật toán cơ bản:
 + Tìm tổng các phần tử thỏa mãn điều kiện nào đó.
 + Đếm số các phần tử thỏa mãn điều kiện nào đó.
 + Tìm phần tử lớn nhất, nhỏ nhất.
 2. Câu hỏi và bìa tập về nhà.
 - Viết chương trình nhập một mảng một chiều A[1..20] và nhập một số x. Đếm số lượng số trong A có giá trị bằng x.
 - Xem nội dung của bài thực hành số 4, sách giáo khoa, trang 65.
Xỏc nhận soạn GA ngày thỏng năm 2014
 PHỤ TRÁCH CM
Ngày soạn:.
Ngày giảng: Lớp:.........
Tiết 25
BÀI TẬP
I. Mục đớch yờu cầu
 - 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ể .
 II. Đồ dùng dạy học
 1. Chuẩn bị của giáo viên.
 - Máy vi tính, máy chiếu Projector, sách giáo khoa, máy chiếu Overhead, phiếu học tập.
 2. Chuẩn bị của học sinh.
 - Sách giáo khoa.
III. Hoạt động dạy - học.
Hoạt động của giáo viên
Hoạt động của học sinh
 - ổn định tổ chức
1 Hoạt động 1:Tìm hiểu ý nghĩa của kiểu mảng hai chiều 
Bài toán Viết chương trỡnh để in ra màn hình bảng cửu chương có dạng như sgk
 1. Giới thiệu ví dụ trong sách giáo khoa. Tính và đưa ra màn hình bảng cửu chương.
 - Hỏi: Sử dụng kiến thức về mảng một chiều, hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng cưu chương.
 - Với cách lưu trữ như vậy ta phải khai báo bao nhiêu biến mảng?
 - Có những khó khăn gì?
 - Để khắc phục các khó khăn này, ta xem một bảng một chiều là một phần tử, ta ghép 9 mảng một chiều thành một mảng hai chiều.
 - Yêu cầu học sinh nhận xét về mảng hai chiều.
 2. Các yếu tố xác định mảng hai chiều.
 - Hỏi: Để mô tả kiểu mảng hai chiều, ta cần xác định những yếu tố chính 
2. Hoạt động 2: Tìm hiểu về kiểu mảng hai chiều.
 - Tạo kiểu dữ liệu mảng hai chiều:
 TYPE tên_kiểu_mảng=Array[chỉ_số_dòng,chỉ_số_cột] Of kiểu_thanh_phần;
 - Khai báo biến mảng hai chiều: VAR tên_biên:tên_kiểu_mảng;
 - Tham chiếu đến từng phần tử: Tên_biến[chỉ_số_dòng,chỉ_số_cột]
1. Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cách tạo kiểu dữ liệu mảng hai chiều.
 - Yêu cầu học sinh tìm ví dụ minh họa.
 - Gọi một học sinh khác, hỏi: ý nghĩa của lệnh mà bạn vừa viết?
 2. Yêu cầu học sinh cho biết cách khai báo biến và một ví dụ khia bóa một biến mảng hai chiều ứng với kiểu dữ liệu vừa tạo .
 3. giới thiệu cách tham chiếu đến từng phần tử của mảng một hciều. Yêu cầu học sinh lấy một ví dụ.
3. Hoạt đông 3: Rèn luyện kĩ năng sử dụng kiểu mảng hai chiều
 - Giải quyết bài toán đặt vấn đề trong hoạt động 1.
1. giới thiệu đề bài.
 - Chiếu đề bài lên bảng.
 - Yêu cầu học sinh xác định cách thức tổ chức dữ liệu.
 - Yêu cầu học sinh chỉ ra các nhiệm vụ chính của bào toán cần giải quyết.
 2. Chia lớp thành 3 nhóm. Yêu cầu viết chương trình lên giấy bìa trong.
 - Thu phiếu trả lời, chiếu lên bảng. Gọi học sinh nhóm khác nhận xét đánh giá.
 3. Chuẩn hóa chương trình cho học sinh bằng cách chiếu chương trình mẫu để học sinh quan sát và thực hiện chương trình để học sinh thấy kết quả.
 4. Chiếu chương trình ví dụ 2, sách giáo khoa, trang 62 để học sinh quan sát.
 - Thực hiện chương trình để học sinh thấy được kết quả của nó.
 - Giáo viên cần giải thích một số chỗ có thể học sinh chưa hiểu và yêu cầu học sinh về nhà tìm hiểu thêm.
- Lớp trưởng b

File đính kèm:

  • docga_tin_11_20150727_122605.doc
Giáo án liên quan