Mục đích yêu cầu - KT: + Củng cố thuật toán sắp xếp cơ bản mà học sinh đã học ở lớp 10; + Minh họa, củng cố và nâng cao những hiểu biết của học sinh trong tiết 19 về mảng một chiều cấu t[r]
Trang 1KIỂU MẢNG VÀ BIẾN CÓ CHỈ SỐ (t3)
I Mục đích yêu cầu
- KT:
+ Củng cố thuật toán sắp xếp cơ bản mà học sinh đã học ở lớp 10;
+ Minh họa, củng cố và nâng cao những hiểu biết của học sinh trong tiết 19 về mảng một chiều (cấu trúc, cách khai báo, cách tham chiếu một phần tử và lợi ích của kiểu mảng một chiều);
- KN: Vận dụng kiểu mảng một chiều trong cài đặt chương trình
II Chuẩn bị bài giảng:
1/ GV: bài giảng tiết 23; SGK, SGV; Thuật toán bài toán sắp xếp phóng lớn;
2/ HS: tìm hiểu trước bài toán sắp xếp đã giới thiệu L10;
III Nội dung và tiến trình bài giảng.
1 Ổn định lớp (1’) ;
2 Kiểm tra bài cũ (15’):
- GV hỏi:
Câu hỏi 1: Khai báo mảng số thực gồm 50 phần tử bằng 2 cách đã học?
Câu hỏi 2: Viết đoạn chương trình nhập vào mảng B gồm 45 phần tử chỉ số bắt đầu từ 1?
Câu hỏi 3: Qua 2 ví dụ đã họcvà thực hành Cho nhận xét về cách giải quyết 2 chương trình:
Bài toán VD1tr 56: chương trình Tim_Max;
Bài toán 2 Bài 2 chương trình MaxElement;
- HS lên bảng trả lời:
- GV nhận xét và cho điểm
3 Nội dung bài giảng:
§11 KIỂU MẢNG VÀ BIẾN CÓ CHỈ SỐ <tiếp>
-GV lưu ý HS hàm Random qua VD1
BT&TH3 Random(n) sinh số nguyên
ngẫu nhiên từ 0 -> n-1 Khi không cần
chính xác về số liệu, có thể sử dụng
hàm sinh số ngẫu nhiên để không mất
thời gian nhập mảng (số lượng lớn).
-HS theo dõi và ghi bài
Chú ý: đoạn chương trình nhập vào mảng B gồm 45 phần tử
chỉ số bắt đầu từ 1?
For I := 1 to 45 do Begin Write(‘Nhap phan tu thu ‘,I,’ : ’) ; readln(B[i]) ; End ;
Hoặc
For I := 1 to 45 do Begin Write(‘B[‘,I,’] = ’) ; readln(B[i]) ; End ;
Hoặc
Khởi tạo bộ sinh số ngẫu nhiên như VD1 BT&TH3:
Randomize ; For I := 1 to 45 do B[i] := random(300) – random(300) ;
Trang 2-HS tìm hiểu và xác định bài toán: b/ Ví dụ:
Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi:
Xác định bài toán:
Input: N (N<=250), A1, A2, …, AN (Ai <=500, i= 1, 2, …, N) Output: Dãy A được sắp thành dãy không giảm
-GV yêu cầu HS liệt kê thuật toán bài
toán Sau đó treo khổ giấy phóng lớn
thuật toán khi đã hoàn thiện câu trả lời
-HS theo dõi thuật toán và viết chương
trình vào vở Nhận biết các bước thuật
toán cài đặt trong chương trình
-GV giới thiệu thuật toán và viết chương
trình được cài đặt Thuật toán:
A1 A2 A3… AN
B1 Nhập số nguyên dương N và dãy số
nguyên An;
B2 M <- N ;
B3 M <- N -1 ; j <- 0 ;
B4 Nếu M < 2 thì chuyển đến B8;
B5 j <- j + 1 ;
B6 Nếu j > M thì quay lại B3;
B7 Nếu Aj > Aj+1 thì đổi chỗ 2 phần tử
B8 Đưa ra dãy A rồi kết thúc
-GV giải thích lại thuật toán sắp xếp:
Bằng cách tìm phần tử lớn nhất sắp về
cuối dãy; phần tử lớn thứ 2; phần tử lớn
thứ 3 Vì thể thuật toán trên còn gọi là
thuật toán nổi bọt.
Chương trình bài toán:
Program sapxep ; Const nmax = 250 ; Type ArrInt = array[1 100] of integer ; var A : ArrInt ;
m, n, i, j : integer ;
tg : integer ;
Begin {Bước 1}
write('Nhap so phan tu mang N= ') ; readln(n) ; For i := 1 to n do
Begin write('a[',i,']=') ; readln(a[i]) ; end ;
{Thao tác sắp xếp gồm B3 -> B7}
m := n-1 ; while not (m<2) do begin
for j := 1 to m do
if a[j] >a[j+1] then begin tg := a[j] ; a[j] := a[j+1] ; a[j+1] := tg ; End ;
m := m-1 ; end ; writeln;
{Hiển thị mảng đã sắp xếp lên màn hình}
for i := 1 to n do write(a[i] : 4) ; readln
end
Trang 3-HS quan sát kết quả mô phỏng khi thực
hiện chương trình
Nhap so phan tu mang N = 5 A[1] = 5
A[2] = 6 A[3] = 10 A[4] = 11 A[5] = 4
4 5 6 10 11
4 Củng cố bài học và ra BTVN:
-GV yêu cầu HS nhận biết củng cố:
Khai báo gián tiếp mảng một chiều thông qua định nghĩa kiểu:
Const nmax = 250 ;
Type ArrInt = array[1 100] of integer ;
var A : ArrInt ;
Nhập các mảng là nhập từng phần tử mảng:
For i := 1 to n do
Begin
write('a[',i,']=') ; readln(a[i]) ;
end ;
Duyệt các phần tử mảng để sắp xếp;
for j := 1 to m do
if a[j] >a[j+1] then
begin tg := a[j] ; a[j] := a[j+1] ; a[j+1] := tg ; End ;
Duyệt các phần tử mảng để hiển thị từng phần tử:
for i := 1 to n do write(a[i] : 4) ;
BTVN:
Tìm hiểu trước mảng 2 chiều;
BTVN: hoàn thành BT đã cho: 5, 6, 7, 8 SGK tr79;
Bài làm thêm 4.6 -> 4.15 SBT (tr31->35)