Mục đích yêu cầu: Sau bài học học sinh cần nắm được: - Khái niệm về Kiểu mảng - Nhận biết được các thành phần trong khai báo mảng 1 chiều.. Định nghĩa: - Mảng một chiều là dãy hữu hạn
Trang 1Giáo án
KIỂU MẢNG
Mảng một chiều
A Mục đích yêu cầu:
Sau bài học học sinh cần nắm được:
- Khái niệm về Kiểu mảng
- Nhận biết được các thành phần trong khai báo mảng 1 chiều
- Biết cách khai báo mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên
- Biết được các quy tắc, cách thức trong xây dựng và sử dụng mảng một chiều
B Phương pháp, phương tiện:
1 Phương pháp:
Kết hợp các phương pháp như thuyết trình, vấn đáp,…
2 Phương tiện:
- Sách giáo khoa Tin học 11
- Vở ghi lý thuyết Tin học 11
- Một số sách nâng cao (nếu có)
C Tiến trình lên lớp, nội dung bài giảng:
I Ổn định lớp: (1’)
Lớp trưởng báo cáo sĩ số
II Kiểm tra bài cũ : (3’)
Giáo viên nhắc lại kiến thức của chương trước.
III Gợi động cơ: (2’)
Chúng ta đã được biết đến các kiểu dữ liệu chuẩn, nhưng trên thực tế, kiểu dữ liệu chuẩn không đủ để biểu diễn dữ liệu của các bài toán thực tế
Các ngôn ngữ lập trình có các quy tắc, cách thức cho phép người lập trình xây dựng những kiểu dữ liệu phức tạp từ những kiểu đã có Đó được gọi là kiểu dữ liệu có cấu trúc
Hôm nay chúng ta sẽ chuyển sang chương mới: Kiểu dữ liệu có cấu trúc.Bài hôm nay là bài: Kiểu mảng
IV Nội dung bài giảng:
Trang 2Nội dung Hoạt động giữa thầy và trò Thời
gian
1 Định nghĩa:
- Mảng một chiều là 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ố
- Để mô tả mảng một chiều
cần xác định kiểu của các
phần tử và cách đánh số các
phần tử của nó
- Có thể tham chiếu các phần
tử của mảng bằng tên của
mảng và chỉ số tương ứng
của phần tử này
Thuyết trình:
Định nghĩa mảng một chiều:
Mảng một chiều là 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ố
Để ngườ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ử
5’
2 Ví dụ:
Xét một ví dụ đơn giản như
sau:
Nhập vào nhiệt độ (trung bình
của mỗi ngày trong tuần.Tính
và đưa 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 của tuần
Chương trình dùng khi dùng 7
biến thực:
program Nhietdotuan;
Var t1,t2,t3,t4,t5,t6,t7,tb
:Real;
dem:integer;
Begin
Write('Nhap vaonhiet do
cua 7 ngay:');
Yêu cầu học sinh:
Em có thể nhận xét gì khi sử dụng 7 biến ? Nếu cần tính toán với N ngày thì sao?
HS: Quan sát bài toán
Trả lời :
Dùng các biến như trên rất dài dòng, cùng một tháo tác thực hiện nhiều lần cho nhiều biến Nếu dùng cho N ngày phải dùng N biến sẽ rất dài
Chúng ta có thể khắc phục điều
đó bằng cách dùng mảng một chiều
Nhắc lạiđịnh nghĩa mảng một chiều :
GV: Minh hoạ bằng TP
10’
Trang 3Readln(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 d trung
binh tuan:', tb);
Writeln('so ngay nhiet
do cao hon nhiet do tb
la:',dem);
Readln
End
Ví dụ:
- Khai báo kiểu mảng một chiều gồm Max số thực
Type MyArray = Array[1 Max] of Real;
- Khai báo biến mảng nhiệt
độ gián tiếp qua kiểu mảng
Var Nhietdo : Nhietdo 1 ;
- Khai báo biến mảng nhiệt
độ trực tiếp
Var Nhietdo : Array[1 Max] of Real;
GV:
Trong ví dụ SGK, nếu mở rộng bài toán lên N ngày, ta có thể khai báo theo kiểu mảng như thế nào? Đâu là biến ? Chúng cùng kiểu gì ?
2.Ví dụ mở rộng:
Mở rộng bài toán lên N ngày
program Nhietdo_Nngay;
const Max = 366;
Type Kmang1 =
array[1 max] of real;
var Nhietdo: Kmang1;
dem, I, n : byte;
Tong, trung_binh: real;
Begin
write(‘Nhap so ngay: ’);
readln(N);
Giáo viên:
Dẫn dắt học sinh qua 2 chương trình để thấy được: tương ứng với mỗi giá trị của i, một phần
tử của mảng được xác định bởi Nhiêtdo[i] ; có thể thực hiện thao tác nhập, xuất hay xử lý trên phần
tử này
15’
Trang 4tong:=0;
For i:= 1 to N do
begin
write(‘Nhap nhiet do
ngay’,I,’: ’);
readln(nhietdo[i]);
tong:= tong + nhietdo[i];
end;
dem:= 0;
trung_binh:= tong/N;
for i:= 1 to N do
if nhietdo[i]>trung_binh
then dem: =dem +1;
writeln(‘nhiet do trung binh
’,N,’Ngay: ’, trung_binh:8:3);
writeln(‘so ngay nhiet do cao
hon trung binh: ’,dem);
readln
end
Khai báo:
Có 2 cách để khai báo(định
nghĩa) kiểu dữ liệu mảng 1
chiều:
GV: Ví dụ khác
Program TimMax;
Uses crt;
const nmax = 250;
type Arrint = array[1 max] of integer;
var
N, i, max, csmax: integer;
a:arrint;
begin
GV: Trong đoạn chương trình
trên:
- Cho biết tên kiểu dữ liệu?
- Kiểu mảng đó có bao nhiêu phần tử?
- Mỗi phần tử của mảng thuộc kiểu gì?
- Qua phần khai báo biến cho biết tên của các mảng sẽ dùng trong chương trình?
GV: Những kiểu dữ liệu nào có
thể là kiểu thành phần của mảng?
GV: Những kiểu dữ liệu nào có
thể là kiểu chỉ số?
GV: Kích thước cho phép của
mảng?
5’
Trang 5V Củng cố bài: (2’)
- Trực tiếp trong phần khai
báo biến (với từ khoá var)
Var tên
<biến mảng> :array
[kiểu chỉ số] of<kiểu phần tử>
- Đặt tên và định nghĩa cho
kiểu dữ liệu mới này (với từ
khoá type), rồi sau đó khai
báo các biến thuộc kiểu mới
(đã có tên)
Type <tên biến 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>;
Để khai báo kiểu dữ liệu mảng
1 chiều, người lập trình cần
xác định các yếu tố sau:
- Kiểu phần tử: Kiểu của các
phần tử tạo nên mảng
- Kiểu chỉ số: Thường dùng
một đoạn số nguyên liên tục
làm chỉ số của mảng, số
nguyên đầu tiên là phần tử
thứ nhất của mảng, số
nguyên cuối cùng tương ứng
là phần tử cuối cùng của
mảng
Xác định cả kích thước của
mảng
Giáo viên hướng dẫn ví dụ trong sách giáo khoa và chỉ cho học sinh thấy các kiểu khai báo không hợp lệ và hợp lệ
GV: Cho ví dụ:
Var B: array [1 100] of real;
Hãy chuyển sang khai báo kiểu Type
Trang 6Sau bài hôm nay chúng ta đã biết được khái niệm mảng một chiều và chúng ta biết được cách khai báo và cách tham chiếu đến một phần tử của mảng Kiểu mảng là kiểu dữ liệu có cấu trúc được dùng nhiều trong lập trình
VI Bài tập về nhà: (1’)
- Xem lại các ví dụ trong bài học
- Làm bài tập trong sách bài tập
VII Nhận xét, rút kinh nghiệm giờ giảng: (1’)
Nhận xét, đánh giá của giáo viên về tiết học