- Yêu cầu học sinh xác định input, output và xây dựng thuật toán. - Hướng dẫn các em viết chương trình.[r]
(1)Ngày soạn : Tiết : Ngày dạy : Lớp :
CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC §11: KIỂU MẢNG (tiết 2)
I MỤC TIÊU BÀI DẠY 1-Kiến thức
- Làm số ví dụ tập để củng cố kiến thức mảng chiều
2-Kỹ năng
- Kỹ khai báo mảng chiều - Tham chiếu đến phần tử mảng
3-Thái độ
- Say mê, ham thích nghiên cứu môn Tin học
II ĐỒ DÙNG DẠY HỌC 1-Chuẩn bị Giáo viên
- Giáo án, SGK, đồ dùng dạy học
2-Chuẩn bị Học sinh
- Sách giáo khoa, ghi, đồ dùng học tập
III HOẠT ĐỘNG HỌC TẬP 1-Hoạt động 1: Ổn định tổ chức
Hoạt động GV Hoạt động HS TG - Ổn định lớp
- Kiểm tra sỹ số
- Chào thầy - Báo cáo sỹ số
2’
2-Hoạt động 2:
Hoạt động GV Hoạt động HS TG
b Một số ví dụ
Ví dụ 1: Tìm phần tử lớn dãy số nguyên
- Yêu cầu xác định Input Output toán
- Yêu cầu học sinh đưa thuật toán
- Từ thuật toán giáo viên hướng dẫn em viết thành chương trình hồn
- Đưa input output toán -input: số nguyên dương n dãy n số nguyên dương a1, a2, , an -output: số giá trị phần tử lớn dãy số cho
- Thuật toán:
B1: Nhập n dãy a1, a2, , an B2: max:= a1, i:=2;
B3: Nếu i>n đưa giá trị max kết thúc
B4:
B4.1: Nếu ai>max max:=ai; B4.2: i:=i+1 quay lại bước 3;
(2)Hoạt động GV Hoạt động HS TG chỉnh
program tim_max; uses crt;
type mang=array[1 200] of integer; var n, i, max, csmax:integer;
a: mang; begin
clrscr;
write(‘Nhap vao so phan tu n = ‘); readln(n);
write(‘Nhap vao cac phan tu cua day’);
for i:=1 to n begin
write(‘a[‘,i,’]=’); readln(a[i]); end;
max:=a[1]; csmax:=1; for i:=2 to n
if a[i] > max then begin
max:=a[i]; csmax:=i; end;
write(‘Gia tri max la: ‘, max); write(‘Chi so cua max la: ‘, csmax’);
readln end
Ví dụ 2: Sắp xếp dãy số nguyên theo chiều tăng dần thuật toán tráo đổi - Yêu cầu học sinh xác định input, output xây dựng thuật tốn
- Hướng dẫn em viết chương trình program sapxep;
uses crt;
var n,i,j,tg:integer;
a: array[1 200] of integer; begin
clrscr;
write(‘Nhap n = ‘); readln(n); write(‘Nhap cac phan tu’); for i:=1 to n
begin
write(‘a[‘,i,’]=’); readln(a[i]); end;
for j:=n downto for i:=1 to j-1 if a[i] > a[i+1] then
- Quan sát chương trình, cách xây dựng chương trình
- Quan sát cách khai báo biến mảng
- Nhập vào giá trị mảng
- Cách tham chiếu đến phần tử mảng
- Input: số nguyên dương n dãy n số nguyên dương a1, a2, , an - Output: dãy xếp theo chiều tăng dần
- Thuật toán:
B1: Nhập n dãy a1, a2, , an B2: j:=n;
B3: Nếu j<2 đưa dãy xếp kết thúc
B4: j:=j-1; i:=0; B5: i:=i+1
B6: i>j quay lại bước 3; B7: a[i] > a[i+1] đỗi chỗ B8: quay lại bước
(3)Hoạt động GV Hoạt động HS TG begin
tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end;
write(‘Day duoc sap xep lai la’); for i:=1 to n
write(a[i]:4); readln
end
-Ví dụ 3: Tìm kiếm nhị phân
-u cầu em xác định input, output, xây dựng thuật toán viết chương trình
- Xác định input, output, trình bày thuật tốn viết chương trình
12’
IV CỦNG CỐ (4 ‘)
- Hệ thống lại dạng tập mảng chiều hay gặp
V VỀ NHÀ (1’)
- Đọc trước phần mảng chiều