1. Trang chủ
  2. » Mẫu Slide

Giáo án Tin học 11 - Tiết 23: Kiểu mảng và biến có chỉ số

3 4 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 139,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

KIỂ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)

Ngày đăng: 01/04/2021, 22:32

🧩 Sản phẩm bạn có thể quan tâm

w