Kỹ năng: Biết Khai báohay định nghĩa kiểu dữ liệu mảng: + Hoặc trực tiếp trong phần khai báo biến dùng Var.. + Hoặc đặt tên và định nghĩa cho kiểu dữ liệu mới này Type rồi sau đó khai bá
Trang 1BÀI TẬP MẢNG MỘT CHIỀU
I Mục đích yêu cầu:
1 Kiến thức:
Các bài tập 4.6,4.7,4.8,4.9; 4.10
2 Kỹ năng:
Biết Khai báo(hay định nghĩa) kiểu dữ liệu mảng:
+ Hoặc trực tiếp trong phần khai báo biến (dùng Var)
+ Hoặc đặt tên và định nghĩa cho kiểu dữ liệu mới này (Type) rồi sau
đó khai báo biến
3 Thái độ:
Tích cực ham học hỏi
II Chuẩn bị của giáo viên và học sinh:
1 Chuẩn bị của giáo viên:SGK, SGV, giáo án, giáo án điện tử, đèn chiếu,một số chương trình mẫu khổ lớn
2 Chuẩn bị của học sinh:Xem kỹ SGK, soạn trước bài học
Trang 2III Nội dung bài giảng
1 Ổn định tổ chức
2 Kiểm tra bài cũ
Trình bày cách khai báo biến kiểu mảng? Chương trình có sử dụng biến kiểu mảng thường chứa các câu lệnh lặp dạng nào? Tại sao?
3 Nội dung bài mới
Hoạt động thầy và trò Nội dung bài giảng
GV: Yêu cầu học sinh đọc đề 4.6
sách bài tập?
GV: Tóm tắc đề:
Var M,N:array[1 20] of integer;
Dữ liệu có đủ trong hai mảng
Đoạn chương trình sau làm gì?
d:=0;
For i:=1 to 20 do if M[i]<>N[i] then
d:=d+1;
Trang 3Writeln(d);
GV: Đổi đề thành
Var M,N:array[1 20] of integer;
Dữ liệu có đủ trong hai mảng
Đoạn chương trình sau làm gì?
d:=0;
For i:=1 to 7do if M[i]<>N[i] then
d:=d+1;
Writeln(d);
GV: Yêu cầu học sinh chạy thử
đoạn chương trình với bộ dữ liệu
vào:
Bộ1:
N: 5 9 7 8 6 2 3
M: 4 6 7 9 8 2 5
Bộ 2:
N: 8 9 6 12 7 14 3
Bài 4.6 Đáp án C
Trang 4M: 7 9 12 6 4 14 16
HS: thực hiện
Gv: Vậy đoạn chương trình trên làm
gì?
Hs: Trả lời
GV: Yêu cầu một học sinh cầm
sách giáo khoa viết lại chương trình
lên bảng
Gv: Yêu cầu học sinh chạy thử
chương trình với từng bộ dữ liệu
khác nhau
HS: Thực hiện
GV: Nhận xét gì?
HS: Nhận xét
GV: Xác định bài toán?
HS: xác định
Bài 4.7 Đáp án A
Bài 4.9
Trang 5GV: Yêu cầu học sinh lấy ví dụ cụ
thể và cho kết quả trong trường hợp
cụ thể?
HS: Thực hiện
Gv: Ý tửơng giải thuật:
-Khai báo mảng A
-Nhập mảng A
-Kỉêm tra trong mảng A tại vị trí
chẵn có giá trị lẻ thì đếm
Program bai49;
Uses crt;
Var A: array[1 100] of integer;
I,dem,m:byte;
Begin Clrscr;
Write(‘nhap so phan tu cua mang ‘);
Readln(n);
Writeln(‘nhap mang A’) For i:=1 to n do
Begin write(‘A[‘,i,’]=’);
Readln(A[i]);
Trang 6GV: Yêu cầu học sinh chạy chương
trình Test lại
GV: Yêu cầu học sinh xác định yêu
cầu của bài 4.10?
HS: Xác định
GV: Hướng dẫn học sinh nhập
mảng A, B.(tưong tự nhập mảng A
bài 4.9)
Mảng C được xác định thông qua
mảng A, B
End;
Dem:=0; m:= n div 2;
For i:=1 to m do
If A[i*2] mod 2<>0 then dem:=dem+1;
Write( ‘ so phan tu o vi tri chan co gia tri le la:’,dem);
Readln;
End
Bài 4.10
For i:= 1 to n do C[i*2-1]:=A[i];
For i:= 1 to n do C[i*2]:=B[i];
4 Củng cố:
Trang 7Nhắc lại cách nhập mảng một chiều, cách làm việc với phần tử của mảng
5 Bổ sung, dặn dò:
Chuẩn bị bài mới