1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo án Tin học 11 - Bài 11: Kiểu mảng

11 152 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

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

Nội dung

Nhấn mạnh: Khái niệm mảng một chiều Để người lập trình có thể xây dựng và sử dụng mảng 1 chiều NNLT có cách thức cho phép xác định: tên kiểu mảng 1 chiều, số lượng phần tử, kiểu dữ liệu [r]

Trang 1

Ngày soạn: 25 / 12 /2014

Ngày dạy:29 /12 /2014

Lớp: 11CB2

Tuần: 20 Tiết CT: 19

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Bài 11: KIỂU MẢNG

I Mục tiêu:

1. Kiến thức:

- Hiểu được khái niệm mảng 1 chiều.

- 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.

2. Kỹ năng:

- Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.

3. Thái độ

II Phương tiện, phương pháp

1 Phương tiện

- Máy tính, máy chiếu, phông chiếu, bảng phấn

- Đính kèm Slide bài giảng bằng Power Point

2 Phương pháp: nêu – giải quyết vấn đề.

III Nội dung:

1 Ổn định lớp(1’)

2 Kiểm tra bài cũ()

3 Giới thiệu bài mới

4 Nội dung bài mới

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

Nêu các kiểu dữ liệu mà em đã

được học?

Sử dụng các kiểu dữ liệu đã

học để giải bài toán sau:

Ví dụ: Nhập vào nhiệt độ

(trung bình) của mỗi ngày

trong tuần Tính và in ra màn

hình nhiệt độ trung bình của

tuần và số lượng ngày trong

tuần có nhiệt độ cao hơn nhiệt

độ trung bình tính được?

-Xác định Input và Output?

-Nêu các bước để giải?

-Chương trình minh họa

Program nhiet do tuan;

Var t1, t2, t3, t4, t5, t6,

tb:real; dem:integer;

Begin

Write(‘Nhap vao nhiet do

cua 7 ngay:’);

Readln(t1, t2, t3, t4, t5, t6, t7);

HS trả lời:

- byte, integer, longint, real, char, boolean,

-Input: nhiệt độ 7 ngày trong tuần (t1, t2, t3, t4, t5, t6, t7)

-Output: nhiệt độ trung bình trong tuần (tb) và số ngày có nhiệt độ cao hơn nhiệt độ trung bình

- Nhập giá trị nhiệt độ 7ngày

- Tính trung bình cộng

- Đếm số phần tử có giá

I Kiểu mảng một chiều

1 Khái niệm:

Mảng môt chiều là dãy hữu hạn các phần tử cùng kiểu VD:

A 1 2 3 4 5 6 7

Trong đó:

- Tên mảng là : A

- Số phần tử của mảng : 7

- Kiểu dữ liệu của các phần tử: kiểu nguyên

17 20 18 25 19 12 19

Trang 2

tb:=(t1+t2+t3+t4+t5+t6+t7)/7 ;

dem:=0;

if t1>tb then dem:=dem+1;

if t2>tb then dem:=dem+1;

if t3>tb then dem:=dem+1;

if t4>tb then dem:=dem+1;

if t5>tb then dem:=dem+1;

if t6>tb then dem:=dem+1;

if t7>tb then dem:=dem+1;

Write(‘nhiet do trung binh

tuan:’,tb);

Writeln(‘So ngay nhiet do

cao hon nhiet do trung binh

tuan:’,dem):

readln;

End

- Hỏi: Khi muốn tính nhiệt dộ

trung bình của 1 tháng hay 1

năm thì chương trình trên có

những hạn chế như thế nào?

- Dẫn dắt: Để khắc phục

những hạn chế trên, người ta

thường ghép chung 7 biến trên

thành một dãy và đặt cho nó

chung một tên và đánh cho

mỗi phần tử một chỉ số

1 Kiểu mảng 1 chiều.

Yêu cầu học sinh tham khảo

sách giáo khoa và hỏi: Em

hiểu như thế nào về mảng một

chiều?

- Hỏi: Để mô tả mảng một

chiều, ta cần xác định những

yếu tố nào?

trị lớn hơn trung bình cộng tính được

-Xuất ra nhiệt độ trung bình và số ngày có nhiệt

độ lớn hơn nhiệt độ trung bình đó

- Quan sát, suy nghĩ và trả lời

+ Phải khai báo quá nhiều biến

+ Chương trình phải viết rất dài

1 Nghiên cứu sách giáo khoa để trả lời

- Mảng một chiều là dãy hữu hạn các phần

tử có cùng kiểu dữ liệu

Các phần tử trong mảng

có cùng chung một tên

và phân biệt nhau bởi chỉ số

- Để mô tả mảng một chiều cần xác định:

+Kiểu của các phần tử +Số phần tử trong mảng +Cách đánh số các phần

tử của nó

IV Củng cố và dặn dò(1’)

Nhấn mạnh:

- Khái niệm mảng một chiều

- Để người lập trình có thể xây dựng và sử dụng mảng 1 chiều NNLT có cách thức cho phép xác định: tên kiểu mảng 1 chiều, số lượng phần tử, kiểu dữ liệu của phần tử cách khai báo biến mảng,

Trang 3

V Rút kinh nghiệm

Trang 4

Ngày soạn: 25 / 12 /2014

Ngày dạy:29 /12 /2014

Lớp: 11CB2

Tuần: 20 Tiết CT: 19

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Bài 11: KIỂU MẢNG

III Mục tiêu:

4. Kiến thức:

- Hiểu được khái niệm mảng 1 chiều.

- 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.

5. Kỹ năng:

- Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.

6. Thái độ

IV Phương tiện, phương pháp

3 Phương tiện

- Máy tính, máy chiếu, phông chiếu, bảng phấn

- Đính kèm Slide bài giảng bằng Power Point

4 Phương pháp: nêu – giải quyết vấn đề.

III Nội dung:

1 Ổn định lớp(1’)

2 Kiểm tra bài cũ()

3 Giới thiệu bài mới

4 Nội dung bài mới

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

a)Khai báo

-GV dẫn: Vậy trong Pascal,

để tạo ra 1 mảng 1 chiều ta

phải khai báo như thế nào?

-Có 2 cách: Trực tiếp và

gián tiếp

+Cách 1: Khai báo trực tiếp

-Yêu cầu học sinh nghiên

cứu sách giáo khoa và cho

biết cách tạo kiểu dữ liệu

mảng một chiều trong ngôn

ngữ lập trình Pascal bằng

trực tiếp

GV chốt lại cách khai báo

trực tiếp và giải thích về các

thành phần

Ví dụ: Var a=array[1 100]

of integer;

Trong đó: Tên biến mảng là

a , có 100 phần tử, các phần

tử kiểu nguyên

+Cách 2: Khai báo gián tiếp

HS trả lời:

Var <tên biến mảng> : array [<chỉ số đầu> <chỉ

số cuối>]of <kiểu phần tử>;

Type <tên kiểu mảng> = array [<chỉ số đầu> <chỉ

dố cuối>] of <kiểu phần

tử>;

Var <tên biến mảng>:<tên

kiểu mảng>;

2 Khai báo mảng một chiều

Cách 1: Trực tiếp

VAR <tên biến mảng>: ARRAY

[<chỉ số đầu> <chỉ số cuối>]

OF <kiểu phần tử>;

VD: Var nhietdo: array [1 366] of real;

Cách 2: Gián tiếp

TYPE <tên kiểu mảng> = ARRAY [<chỉ số

Trang 5

Yêu cầu học sinh nghiên

cứu sách giáo khoa và cho

biết cách tạo kiểu dữ liệu

mảng một chiều trong ngôn

ngữ lập trình Pascal bằng

gián tiếp

-GV chốt lại cách khai báo

và ý nghĩa các thành phần

trong đó

-Ví dụ:

Type A=array[1 100] of

integer;

Trong đó:

+Kiểu dữ liệu mới có tên A

+Gồm 100 phần tử

+Các phần tử có kiểu

nguyên

- Gọi học sinh, nêu cách

khai báo 1 kiểu dữ liệu

mảng có tên Nhietdo, gồm 7

phần tử,các phần tử có kiểu

số thực?

- Cho 1 số VD khai báo kiểu

mảng một chiều

Type

Arrayr=array[1 200] of

real;

Arrayr=array[byte] of real;

Arrayb=array[-100 0] of

boolean;

- Hỏi: Những khai báo nào

đúng?

- Yêu cầu học sinh cho biết

cách khai báo biến và một

ví dụ khai báo một biến

mảng ứng với kiểu dữ liệu

vừa tạo

Ví dụ:

- Gọi học sinh khác, tạo ra

một biến T với kiểu là

Nhietdo đã tạo ở trên

-GV hỏi:Vậy thì biến mảng

T này có bao nhiêu phần tử

và các phần tử này có kiểu

gì?

- Chú ý cho học sinh về

cách đặt tên kiểu dữ liệu và

tên biến, tránh nhầm lẫn.

- Gọi học sinh, nêu cách

khai báo 1 biến mảng có

tên T, gồm 7 phần tử, các

Type Nhietdo=array[1 7] of real;

- Quan sát bảng và chọn khai báo đúng

+Arrayr=array[1 200] of real;

+Arrayb=array[-100 0] of boolean;

-Var <ten_bien_mang>:

<ten_kieu_mang>;

- Var T : Nhietdo;

-7 phần tử -Các phần tử có kiểu thực -Var T: array[1 7] of real;

-Theo dõi hướng dẫn của giáo viên và độc lập suy nghĩ để trả lời

a[1] là phần tử ở vị trí 1 của mảng a

a[i] là phần tử ở vị trí i của mảng a

đầu> <chỉ dố cuối>] OF

<kiểu phần tử>;

VAR <tên biến mảng>:<tên kiểu mảng>;

VD:

Type A= array [1 366] of real;

Var nhietdo: A;

Trong đó:

 Chỉ số đầu, chỉ số cuối thường là các hằng hoặc biểu thức nguyên

 Chỉ số đầu <= chỉ số cuối

 Kiểu phần tử là kiểu dữ liệu của các phần tử mảng VD: Khai báo mảng một chiều có tên A gồm 10 phần tử, các phần tử là kiểu nguyên

Var A: array[1 100]of integer;

Hoặc:

Type mang= array[1 100]

of integer;

Var A: mang;

3 Nhập, xuất mảng một chiều.

* Nhập mảng 1 chiều:

- Nhập số phần tử của mảng (N)

Writeln(‘Nhap so phan tu N=’);

Readln(N);

- Nhập giá trị của các phần tử trong mảng (A[i])

Trang 6

phần tử có kiểu số thực?

3 Nhập, xuất mảng 1

chiều

Để nhập, xuất mảng 1 chiều

ta dùng 1 vòng lặp for với 1

chạy từ 1 đến n phần tử

- Giới thiệu cách tham chiếu

đến từng phần tử của mảng

một chiều Yêu cầu học sinh

lấy một ví dụ

For i:=1 to n do Begin

Writeln(‘Nhap phan tu thu’,i,’: ’);

Readln(A[i]);

End;

* Xuất mảng 1 chiều Writeln(‘Mang vua nhap la: ’);

For i:= 1 to n do Write(A[i]:5);

• Tham chiếu đến phần

tử trong mảng

Tên mảng[chỉ số];

VD: A[3] =18

IV Củng cố và dặn dò(1’)

Nhấn mạnh:

- Khái niệm mảng một chiều

- Để người lập trình có thể xây dựng và sử dụng mảng 1 chiều NNLT có cách thức cho phép xác định: tên kiểu mảng 1 chiều, số lượng phần tử, kiểu dữ liệu của phần tử cách khai báo biến mảng,

V Rút kinh nghiệm

Trang 7

Ngày soạn: 25 / 12 /2014

Ngày dạy:29 /12 /2014

Lớp: 11CB2

Tuần: 20 Tiết CT: 19

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Bài 11: KIỂU MẢNG

7. Kiến thức:

- Hiểu được khái niệm mảng 1 chiều.

- 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.

8. Kỹ năng:

- Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.

9. Thái độ

VI Phương tiện, phương pháp

5 Phương tiện

- Máy tính, máy chiếu, phông chiếu, bảng phấn

- Đính kèm Slide bài giảng bằng Power Point

6 Phương pháp: nêu – giải quyết vấn đề.

III Nội dung:

1 Ổn định lớp(1’)

2 Kiểm tra bài cũ()

3 Giới thiệu bài mới

4 Nội dung bài mới

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

* Xác định input, output

của bài toán

Nêu thuật toán giải bài toán

trên

Input: số N và dãy số nguyên

Output: max,csmax

Gán max:=A1, csmax=1

i chạy từ 1 tới n Nếu Ai >max thì max:= Ai

Csmax:=i

Một số ví dụ

VD1: Tìm giá trị lớn nhất của một dãy số nguyên.

Input: Số nguyên dương N (N<=250) và dãy số nguyên

Ai (i=1 n)

Output: Chỉ số và giá trị của phần tử max

Program timmax;

Var A : array[1 250] of integer;

i, n, max,csmax : integer; Begin

Writeln(‘Nhap n= ’);

Readln(n);

For i:= 1 to n do Begin Writeln(‘A[’,i,’]=’); Readln(A[i]);

End;

Max:=A[1]; csmax:=1; For i:=1 to n do

Trang 8

If A[i] > max then Begin

max:=A[i];

csmax:=i;

End;

Writeln(‘max = ’, max); Writeln(‘chi so cua phan tu max:’, csmax);

Readln End

IV Củng cố và dặn dò(1’)

Nhấn mạnh:

- Khái niệm mảng một chiều

- Để người lập trình có thể xây dựng và sử dụng mảng 1 chiều NNLT có cách thức cho phép xác định: tên kiểu mảng 1 chiều, số lượng phần tử, kiểu dữ liệu của phần tử cách khai báo biến mảng,

V Rút kinh nghiệm

Trang 9

Ngày soạn: 25 / 12 /2014

Ngày dạy:29 /12 /2014

Lớp: 11CB2

Tuần: 20 Tiết CT: 19

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Bài 11: KIỂU MẢNG

VII Mục tiêu:

10.Kiến thức:

- Hiểu được khái niệm mảng 1 chiều.

- 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.

11.Kỹ năng:

- Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.

12.Thái độ

VIII Phương tiện, phương pháp

7 Phương tiện

- Máy tính, máy chiếu, phông chiếu, bảng phấn

- Đính kèm Slide bài giảng bằng Power Point

8 Phương pháp: nêu – giải quyết vấn đề.

III Nội dung:

1 Ổn định lớp(1’)

2 Kiểm tra bài cũ()

3 Giới thiệu bài mới

4 Nội dung bài mới

Xác định Input và Output

của bài toán?

Phần tử như thế nào được

gọi là phần tử chẵn?

Ta phải làm sao để kiểm

tra số đó có chia hết cho 2

hay không?

Làm sao để tính được

TBC của một dãy số?

Với những yêu cầu của

bài toán trên ta phải dùng

Input:

 N: số lượng phần tử của mảng

 Giá trị các phần tử

Output:

 Số phần tử chẵn và xuất phần tử

 TBC

Phần tử đó phải chia hết cho 2

Dùng phép chia lấy dư (mod)

Tính tổng của dãy số đó rồi đem chia cho số lượng phần tử

VD2 Nhập vào 1 mảng n số nguyên (N

<= 50).

a) Đếm và xuất

ra những phần tử chẵn của mảng b) Tính TBC các phần tử của mảng.

Program songuyen; Uses crt;

Var A:array[1 100] of integer;

N.i,dem,tong:integer; TBC:real;

Begin Clrscr;

Write(‘Nhap n=

’);

Readln;

For i:=1 to n do

Trang 10

những biến nào?

Yêu cầu 3 học sinh lên

làm thử những nội dung:

 Khai báo và nhập mảng

 Đếm và xuất ra những

phần tử chẵn

 Tính TBC các phần tử

Nhắc lại:

Begin…end; đặt trong

vòng for hay câu lệnh kiểm

tra điều kiên if khi có từ 2

câu lệnh trở lên trong đó

Nhận xét từng bài làm và

sửa lỗi

Biến:

 N: lưu số phần tử có trong mảng

 A: biến mảng

 Dem: số lượng phần tử chẵn

 Tong: tổng của các phần tử trong mảng

TBC: giá trị TBC của các phần

tử trong mảng

HS lên bảng làm bài

Begin Write(‘Nhap phan tu thu ’,i,’:’);

Readln(A[i]);

End;

Dem:=0; For i:=1 to n do If(A[i] mod 2=0) then

Begin Dem:=dem+1;

Writeln(A[i]);

End; Writeln(‘So luong phan tu chan la:

’,dem);

Tong:=0; For i:=1 to n do

Tong:=tong+A[i]; TBC:=tong/n; Writeln(‘TBC cua day so la:

’,TBC:4:2);

Readln

IV Củng cố và dặn dò(1’)

Nhấn mạnh:

- Khái niệm mảng một chiều

- Để người lập trình có thể xây dựng và sử dụng mảng 1 chiều NNLT có cách thức cho phép xác định: tên kiểu mảng 1 chiều, số lượng phần tử, kiểu dữ liệu của phần tử cách khai báo biến mảng,

V Rút kinh nghiệm

Ngày đăng: 02/04/2021, 07:23

TỪ KHÓA LIÊN QUAN

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

w