Tải bản đầy đủ (.doc) (14 trang)

Bài giảng Bai 11_Kiểu mảng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (179.54 KB, 14 trang )

Ngày dạy Lớp Sĩ số Học sinh nghỉ
..../...../ 2010 11B3 ...../.....,
..../...../ 2010 11B4 ...../.....,
..../...../ 2010 11B5 ...../.....,
..../...../ 2010 11B6 ...../.....,
Theo PPCT: 21
Chương IV. KIỂU DỮ LIỆU CÓ CẤU TRÚC MẢNG
BÀI 11. KIỂU MẢNG
(Tiết 1/4)
I. Mục tiêu
1. Kiến thức:
- Khái niệm kiểu mảng: là kiểu dữ liệu có cấu trúc;
- Biết khái niệm kiểu mảng một chiều là một dãy hữu hạn các phần tử cùng
kiểu;
- Biết khai báo mảng một chiều.

2. Kĩ năng:
- Biết cách khai báo mảng (với Pascal có 2 cách: mô tả trực tiếp kiểu dư liệu
trong khai báo biến với từ khóa Var và khai báo biến thuộc kiểu dư liệu đã
được mô tả với từ khóa Type).
3. Thái độ
- Tích cực trong tìm hiểu ngôn ngữ lập trình và kiểu dữ liệu mảng.
II. Chuẩn bị của GV và HS
1.Chuẩn bị của GV:
Sách GK tin 11, Sách GV tin 11, các ví dụ, máy chiếu (nếu có).
2. Chuẩn bị của HS
- Sách GK tin học 11, bài cũ ở nhà, đồ dùng học tập cần thiết.
III. Tiến trình bài dạy
1. Kiểm tra bài cũ: không kiểm tra bài cũ
2. Nội dung bài mới(42 phút):
Hoạt động 1(25 phút): Khái niệm mảng một chiều


Hoạt động của GV và HS Nội dung bài
GV: theo các em thế nào gọi là mảng:
HS: Trả lời câu hỏi: ….
GV: lấy ví dụ
- Trên sông nước người ta đóng các
mảng gỗ
- Trong đời sống xã hội người ta giao
nhiệm vụ công việc cho từng người
phụ trách các mảng công việc như:
Tiết 21. §11. KIỂU MẢNG
(Tiết 1/4)
1. Kiểu mảng một chiều
Mảng một chiều là dãy 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ố.
68
Mảng Kinh tế, mảng Giáo dục, mảng
xây dựng, …; phân tích mảng gỗ. . .
HS: nghe giảng và ghi bài
GV: Vậy khái niệm kiểu mảng một
chiều như sau:
Mảng một chiều là dãy 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ố.
HS: nghe và ghi bài
GV: để lập trình có thể xây dựng và sử
dụng kiểu mảng một chiều ngôn ngữ
lập trình có quy tác và cách thức cho
phép như sau:
+ Tên kiểu mảng một 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;
+ Cách tham chiếu đến phần tử.
HS: nghe và ghi bài
GV: Lấy ví dụ:
Bài toán nhập vào nhiệt độ các ngày
trong tuần và tính nhiệt độ trung bình
của tuần.
Ta sử dụng câu lệnh rẽ nhánh để thực
hiện (IF … THEN … ELSE …)
HS: nghe và quan sát
GV: đưa ra chương trình đã chuẩn bị
trước, dùng bảng phụ (hoặc máy
chiếu).
GV: em nào có thể cho biết trong
chương trình này có nhược điểm gì
không?
HS: nghe, quan sát và trả lời caau hỏi .
. .
GV: phân tích và nhận xét về chương
trình tính nhiệt độ trung bình khi sử
dụng các kiểu dữ liệu chuẩn để khai
báo và dùng cấu trúc câu lẹnh re nhánh
để thực hiện là chưa tối ưu.
- Để thực hiện được tốt hơn và có thể
cho biết số ngày muốn tính và chương
trình không kồng kềnh. Ta có thể sử
dụng kiểu dữ liệu mảng một chiều để
khai báo và sử dụng trong chương

trình.
HS: nghe và ghi bài
- Để lập trình có thể xây dựng và sử dụng
kiểu mảng một chiều, các ngôn ngữ lập trình
có quy tắc, cách thức cho phép xác định:
+ Tên kiểu mảng một 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;
+ Cách tham chiếu đến phần tử.
VD: Xét bài toán nhập vào nhiệt độ (trung
bình) của mỗi ngày trong tuần, tính và đưa
ra màn hình nhiệt độ của tuần và số lượng
ngày có nhiệt độ cao hơn nhiệt độ trung
bình của tuần.
Chương trình tính như sau:
Program Nhiet_Do_Tuan;
Var t1, t2, t3, t4, t5, t6, t7, TB: real;
Dem : integer;
Begin
Writeln(‘Nhap vao nhiet do cua 7 ngay: ’);
Readln(t1, t2, t3, t4, t5, t6, t7 );
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;
Writeln(‘Nhiet do trung binh cua tuan:
’,TB:4:2);
Writeln(‘So ngay co nhiet do cao hon trung
binh: ’, Dem);
Readln
End.
- Khi cần giải một bài toán với N ngày thì
cách làm như trên là không tối ưu. Vậy để
giải quyết được vấn đề đó, ta sử dụng kiểu
dữ liệu mảng một chiều để mô tả dữ liệu.
Chương trình như sau:
Program Nhiet_Do_Tuan;
Const Max = 366;
69
Type Kmang1 = array[1..Max] of real;
Var Nhietdo: Kmang;
Dem, i, n: byte;
Tong, TB: real;
Begin
write(‘Nhap nhiet do ngay: ’);
readln(n);
Tong := 0;
For i := 1 to n do
Begin
Write(‘Nhap nhiet do ngay’,i,,’:’);
Readln(Nhietdo[i]);
Tong := Tong + Nhietdo[i];
End;
Dem := 0;

TB := Tong/n;
For i := 1 to n do
If Nhietdo[i] > TB then Dem := Dem + 1;
Writeln(‘Nhiet do trung binh’,n,’ ngay:
’,TB:8:3);
Writeln(‘So ngay cos nhiet do cao hon trung
binh: ’,DEm);
Readln
End.
Hoạt động 2 (16 phút): Khai báo mảng 1 chiều
Hoạt động của GV và HS Nội dung bài
GV: đưa ra cách khai báo mảng một
chiều gồm có 2 cách.
HS: nghe, quan sát và ghi bài
GV: phân tích để HS hiểu được cách
khai báo mảng một chiều và phân biệt
với các loại dữ liệu khác.
HS: nghe, quan sát
GV: lấy VD để minh hoạ và Gọi hai HS
lên bảng lấy VD về khai báo kiểu mảng
một chiều.
HS: lên bảng lấy VD, các em ở dưới lớp
viết VD vào vở và quan sát bạn mình
làm ở trên bảng, sau đó cho nhận xét.
a. Khai báo mảng một chiều
Tổng quát:
Cách 1: khai báo trực tiếp biến mảng một
chiều:
Var <tên biến mảng> : array[ kiểu chỉ số]
of <kiểu phần tử>;

Cách 2: khai báo gián tiếp biến mảng qua
kiểu mảng một chiều:
Type <tên kiểu mảng> = array[kiểu chỉ
số] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
VD: các khai báo mảng sau đây là hợp lệ:
ArrayReal = array [-100..200] of real;
ArrayBoolean = array [-n+1..n+1] of boolean;
ArrayInt = array [-100..0] of integer;
trong đó n là hằng nguyên
3. Củng cố và nhắc nhở(3 phút):
70
- Mảng một chiều là dãy 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ố.
- Khai báo mảng một chiều
Cách 1: khai báo trực tiếp biến mảng một chiều:
Var <tên biến mảng> : array[ kiểu chỉ số] of <kiểu phần tử>;
Cách 2: khai báo gián tiếp biến mảng qua kiểu mảng một chiều:
Type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
4. Nhắc nhở về nhà chuẩn bị giờ sau
- Các em làm các bài tập trong sách bài tập trang 41. Xem tiếp bài giờ sau học
tiếp.
Ngày dạy Lớp Sĩ số Học sinh nghỉ
..../...../ 2010 11B3 ...../.....,
..../...../ 2010 11B4 ...../.....,
..../...../ 2010 11B5 ...../.....,
..../...../ 2010 11B6 ...../.....,
Theo PPCT: 22
BÀI 11. KIỂU MẢNG

(Tiết 2/4)
I. Mục tiêu
1. Kiến thức:
- Biết cách khai báo mảng một chiều;
- Duyệt tuần tự để tìm phần tử lớn nhất của day số nguyên;
- Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
2. Kĩ năng:
- Củng cố và làm cho học sinh hiểu sâu về thuật toán tìm kiếm, sắp xếp cơ
bản mà học sinh được học ở lớp 10;
- Hình thành kỹ năng cơ bản về sử dụng kiểu mảng trong chương trình.
II. Chuẩn bị của GV và HS
1.Chuẩn bị của GV:
Sách GK tin 11, Sách GV tin 11, các ví dụ, máy chiếu (nếu có).
2. Chuẩn bị của HS
- Sách GK tin học 11, bài cũ ở nhà, đồ dùng học tập cần thiết.
III. Tiến trình bài dạy
1. Kiểm tra bài cũ (10 phút):
Câu hỏi 1: Nêu khai niệm kiểu mảng?
Học sinh trả lời: ….
71
Câu hỏi 2: Em hãy nêu cách khai báo tổng quát dữ liệu kiểu mảng một
chiều?
Học sinh trả lời: ….
2. Nội dung bài mới (33 phút):
Hoạt động 1(20 phút): tìm hiểu ví dụ 1
Hoạt động của GV và HS Nội dung bài
GV: nhắc lại cách khai báo mảng 1
chiều và đưa ra VD1 cho HS tìm hiểu.
HS: nghe, suy nghĩ
GV: Em nào cho biết Input và Output

của bài toán này? gọi HS trả lời.
HS: Đứng dạy và đưa ra Input và
Output
GV: các em quan sát thuật toán của bài
toán trong SGK và đưa ra khai báo
mảng 1 chiều của bài toán này.
HS: suy nghĩ và đưa ra khai báo mảng 1
chiều của bài toán.
GV: hướng dẫn HS tìm hiểu và viết
chương trình thực hiện tìm phần tử lớn
nhất của mảng được đưa vào.
HS: nghe, suy nghĩ viết các câu lệnh
nhập số lượng phần tử của mảng, từng
phần tử của mảng, so sánh và đưa ra
màn hình phần tử có giá trị lớn nhất.
Tiết 22. §11. KIỂU MẢNG
(Tiết 2/4)
1. Kiểu mảng một chiều
a. Khai báo
b. Một số ví dụ
Ví dụ 1:
Tìm phần tử lớn nhất của dãy số
nguyên.
- Input: Số nguyên N(N<=250) và dãy N
số nguyên A
1
, A
2
, A
3

, . . ., A
N
, mỗi
số đều không vượt quá 500.
- Output: Chỉ số và giá trị của phần tử lớn
nhất trong dãy số đã cho.
- Thuật toán có dạng:
Bước 1: Nhập N và dãy A
1
, A
2
, . . ., A
N
;
Bước 2: Max  A
1
, i  2;
Bước 3: Bước 3: Nếu i > N thì đưa ra giá trị Max
rồi kết thúc;
Bước 4:
Bước 4.1: Nếu A
i
> Max thì Max 
A
i
;
Bước 4.2: i  i +1 rồi quay lại bước 3;
- Chương trình như sau:
Program TimMax;
Uses crt;

Const Nmax = 250;
Type ArrInt = array[1 . . Nmax] of
Integer;
Var N, i, Max, csmax: integer;
A: ArrInt;
Begin
Clrscr;
Write(‘Nhap so luong phan tu cua day
so, N = ’);
Readln(N);
For i := 1 to N do
Begin
72

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×