1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập kiểu mảng

7 273 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 7
Dung lượng 79,5 KB

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

Nội dung

I. MỤC TIÊU 1. Kiến thức. Hiểu được cách khai báo và truy cập cập đến phần tử của mảng một chiều. Hiểu được thủ tục nhập xuất mảng và sắp xếp phần tử trong mảng 2. Kỹ năng Thực hiện được khai báo mảng. Viết được chương trình sử dụng mảng 1 chiều đơn giản. 3. Thái độ Tiếp tục thể hiện lòng yêu thích bộ môn tin học. II. CHUẨN BỊ 1. Giáo viên: Sách giáo khoa Tin học 11, sách giáo viên Tin học 11, bảng phụ. 2. Học sinh: Sách giáo khoa Tin học 11, vở ghi, bút… III. PHƯƠNG PHÁP Phương pháp: Sử dụng các phương pháp, dạy học cơ bản sau một cách linh họat nhằm giúp học sinh tìm tòi, phát hiện, chiếm lĩnh tri thức.

Trang 1

TRƯỜNG THPT THÁI PHIÊN

GVHD : TRẦN THỊ PHƯỢNG

GSTT : CHU THÀNH NHÂN

NGÀY SOẠN : 26/2/2017 NGÀY DẠY : 2/3/2017 TIẾT : 3

LỚP : 11/9

GIÁO ÁN GIẢNG DẠY

BÀI TẬP KIỂU MẢNG

I MỤC TIÊU

1 Kiến thức.

- Hiểu được cách khai báo và truy cập cập đến phần tử của mảng một chiều

- Hiểu được thủ tục nhập xuất mảng và sắp xếp phần tử trong mảng

2 Kỹ năng

- Thực hiện được khai báo mảng

- Viết được chương trình sử dụng mảng 1 chiều đơn giản

3 Thái độ

- Tiếp tục thể hiện lòng yêu thích bộ môn tin học

II CHUẨN BỊ

1 Giáo viên: Sách giáo khoa Tin học 11, sách giáo viên Tin học 11, bảng phụ.

2 Học sinh: Sách giáo khoa Tin học 11, vở ghi, bút…

III PHƯƠNG PHÁP

- Phương pháp: Sử dụng các phương pháp, dạy học cơ bản sau một cách linh họat nhằm giúp học sinh tìm tòi, phát hiện, chiếm lĩnh tri thức

IV.HOẠT ĐỘNG DẠY – HỌC

1 Ổn định lớp

2 Tiến trình lên lớp

T

G

Hoạt động của GV Hoạt động của HS Nội dung

Trang 2

Hoạt động 1: Ôn tập lý thuyết

4’ GV đưa ra 5 câu hỏi trắc

nghiệm để củng cố kiến thức

về 1 mảng 1 chiều Yêu cầu

học sinh trả lời và nhận xét

HS trả lời câu hỏi BÀI TẬP KIỂU MẢNG

Hoạt động 2: Bài tập 1

20’

Hỏi học sinh : Input và output

của bài toán là gì ?

GV dẫn dắt ý tưởng của bài

toán tương tự với bài toán tìm

số lớn nhất trong dãy các em

đã học ở tiết trước

Yêu cầu học sinh nhắc lại ý

tưởng của bài toán tìm số lớn

nhất

GV dẫn dắt: Bài toán này

cũng tương tự bài toán tìm

max, chỉ khác là không phải

tìm 1 số mà tìm 3 số liên tiếp

có tổng lớn nhất

VD: Cho mảng A gồm 6 phần

tử

1 2 3 4 5 6

Ta cần phải tìm 3 số liên tiếp

có tổng lớn nhất trong mảng

A, có thể là 5, 6 ,1 hoặc có thể

là 6, 1, 2 hoặc 1, 2 ,7 …

Input: Mảng A gồm

n phần tử (n nhập từ

bàn phím) Mỗi phần tử có kiểu số nguyên Output : 3 số liên tiếp có tổng lớn nhất

Gán max := A[1] sau đó sử dụng câu lệnh lặp for do để duyệt mảng, nếu A[i] >

max thì gán max :=

A[i];

Bài tập 1 : Cho mảng A gồm n phần tử (n nhập từ bàn phím) Mỗi phần tử có kiểu số nguyên và

in ra màn hình 3 số liên tiếp có tổng lớn nhất trong mảng

program tim3solonnhat; var A: array [1 100] of integer;

i, n, cs , max , tong : integer;

begin Writeln('Nhap vao so phan tu cua mang'); Readln(n);

For i:= 1 to n do Begin

Writeln('A[',i,']=')

; Readln(A[i]); End;

max:=A[1]+A[2]+A[ 3];

cs:=2;

for i:=3 to n-1 do begin

tong:=A[i-1]+A[i] + A[i+1];

if tong>max then begin

max:=tong;

Trang 3

Hỏi học sinh output của mảng

A này là gì ?

GV giảng giải:

Do bài toán tính tổng 3 phần

tử liên tiếp nên ta xét 3 phần

tử A[i] , A[i-1] , A[i+1] trong

đó A[i-1] là số liền trước và

A[i+1] là số liền sau của phần

tử A[i]

Đầu tiên ta gán

max:=A[1]+A[2]+A[3];

Hỏi học sinh chỉ số phần tử

A[i] bằng bao nhiêu ?

Để lưu lại chỉ số i của A[i] thì

ta cần dùng 1 biến cs

Hỏi học sinh biến cs gán giá

trị bằng bao nhiêu ?

GV dẫn dắt ban đầu đã tính

tổng của A[1]+A[2]+A[3] ,

cần tính tổng của A[2]+A[3]

+A[4] thì cần bắt đầu từ i

bằng bao nhiêu ?

Gán

tong:=A[i-1]+A[i] + A[i+1];

Hỏi học sinh so sánh nếu

tong>max thì sẽ như thế nào

VD:

1 2 3 4 5 6

CS=2

1 Gán A[1] + A[2] + A[3] =

Max

2 i = 3 So sánh Max với A[2]

+ A[3] + [A4]

Chỉ số của phần tử

A[i] bằng 2

2

i = 3

Gán max:=tong;

cs:=i;

end;

end;

writeln('3 so ',A[cs-1],' ',A[cs],' ',A[cs+',A[cs-1],'

co tong lon nhat trong mang’);

readln;

end

Trang 4

6 1 2

3 Cho đến khi tong>max

i = 5

4 5 6

- Với cs = i Khi đó ta in ra

các phần tử

A[cs-1]+A[cs]+A[cs+1];

Giáo viên mời 2 em học sinh

lên viết chương trình, 1 em

viết phần khai báo và nhập

mảng,1 em viết phần tìm 3số

liên tiếp có tổng lớn nhất

Mời 1 em học sinh chạy lại

chương trình bạn đã viết trên

bảng

Hoạt động 2: Bài tập 2

10’

Hỏi học sinh : Input và output

của bài toán là gì?

Yêu cầu học sinh trình bày ý

tưởng để đếm số lần phần tử

X xuất hiện trong dãy

- Input : dãy n số

nguyên (n nhập từ

bàn phím)

- Output: in ra số lần phần tử X xuất hiện trong dãy

Khởi tạo biến đếm ban đầu là dem := 0

Sử dụng vòng lặp i, lặp từ 1 đến N

Đối với mỗi phần tử A[i], nếu A[i] = X thì tăng biến đếm lên 1

Neu dem:= 0 thì in không có giá trị X trong mảng

Kết thúc, giá trị biến đếm là số lần xuất

Bài tập 2 : Nhập vào một dãy gồm n số

nguyên sau đó đếm số lần xuất hiện phần tử có giá trị bằng X trong dãy (n, X nhập từ bàn

phím)

Program DemPtuX; var A: Array[1 100] of Integer;

i, n, dem, X: integer; Begin

Write('Nhap so phan tu cua Day so: ' );

Readln(n);

for i:= 1 to n do begin

Write('Nhap phan

tu thu ',i,'= ' );

Readln(A[i]); end;

Trang 5

In số lần xuất hiện của các phần tử trong A

phan tu X can tim: ' ); Readln(X);

dem :=0;

for i:=1 to n do

if A[i] = X then dem := dem + 1;

if dem = 0 then write('Khong

co phan tu ',X,' trong day')

else Write('So lan xuat hien phan tu ',X,'

=====> ',dem );

Readln End

Hoạt động 3: Làm bài tập 2

10’

Cho học sinh thời gian 5’ để

làm bài tập và lấy điểm cộng

cho 3 bạn nộp sớm và đúng

nhất

Chia bảng ra làm 3 và yêu cầu

3 học sinh xung phong lên

bảng viết chương trình

Yêu cầu các học sinh còn lại

nhận xét bài của 3 bạn viết

trên bảng

Giáo viên nhận xét và giải

thích các vấn đề học sinh chưa

nắm rõ

- Học sinh chăm chú

làm bài tập

3 Củng cố -Dặn dò ( TG: 1’)

- Nhấn mạnh kiến thức về mảng một chiều

- Nhắc nhở học sinh về xem trước bài bài tập và thực hành 3

Trang 6

PHIẾU HỌC TẬP Câu 1: Mảng một chiều là:

A Dãy hữu hạn các phần tử cùng kiểu Mảng được đặt tên và mỗi phần tử của nó có một chỉ số

B Dãy hữu hạn các phần tử cùng kiểu Mảng không được đặt tên và mỗi phần tử của

nó có một chỉ số

C Dãy hữu hạn các phần tử khác kiểu Mảng được đặt tên và mỗi phần tử của nó có một chỉ số

D Dãy vô hạn các phần tử cùng kiểu Mảng được đặt tên và mỗi phần tử của nó có một chỉ số

Câu 2: Để khai báo biến mảng một chiều, ta cần phải có các thông tin gì?

Câu 3: Khai báo biến DTB để lưu trữ điểm trung bình môn tin học của 54 học sinh, ta

sử dụng:

A Var DTB: array[0 53] of real;

B Var DTB := array[0 53] of integer;

C Var DTB: array[0 54] : real;

D Var DTB: array[0 54] of real;

Câu 4: Cho var A: array[0 99] of integer; Để tham chiếu tới phần tử thứ 20 của biến

mảng A, ta sử dụng:

Câu 5: Cho trước var A: array[1 N] of integer; Hãy cho biết đoạn chương trình sau

dùng để làm gì?

Giatri:= A[1];

For i:= 2 to N do

If A[i] > Giatri then Giatri:= A[i];

A Tìm phần tử nhỏ nhất của mảng

B Tìm phần tử nhỏ nhất từ A[2] đến A[N]

C Tìm phần tử lớn nhất của mảng

D Tìm phần tử lớn nhất từ A[2] đến A[N]

Đáp án: 1A, 2D, 3A, 4C, 5C

Ý kiến nhận xét của giáo viên hướng dẫn chuyên môn:

………

Trang 7

………

………

………

………

………

Đà Nẵng, ngày 26 tháng 2 năm 2017

GIÁO VIÊN HƯỚNG DẪN GIÁO SINH THỰC TẬP

Trần Thị Phượng Chu Thành Nhân

Ngày đăng: 04/03/2017, 11:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w