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 1Ngà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 2tb:=(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 3V 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 5Yê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 6phầ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 8If 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 10nhữ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