Ngày soạn: 27/12/2009
Ngày giảng: 29/12/2009
Tiết theo PPCT: 20
BÀI TẬP
I - Mục tiêu bài học
1. Kiến thức
- Củng cố kiến thức bài Mảng một chiều
2. Kỹ năng
- Học sinh biết vận dụng lí thuyết vào bài tập cụ thế
III - Tiến trình bài học
1. Ổn định tổ chức lớp
- Lớp:
- Sĩ số:
- Lí do vắng:
2. Kiểm tra bài cũ
Câu hỏi:
Trình bày cú pháp khai báo mảng 1 chiều? Cách tham chiếu đến các phần tử
mảng 1 chiều?
Khai báo một mảng 1 chiều gồm tối đa 100 phần tử có kiểu dữ liệu là kiểu
nguyên.
3. Nội dung bài mới
Hoạt động của giáo viên và học sinh Nội dung
Câu 1: Thế nào là mảng 1 chiều? Tại sao
nói mảng là kiểu dữ liệu có cấu trúc? Có
mấy cách để khai báo mảng một chiều?
Cách tham chiếu đến phần tử mảng một
chiều?
Trả lời:
- Mảng một chiều là một dãy hữu hạn các
phần tử cùng kiểu, các phần tử trong mảng
có chung một tên gọi và phân biệt nhau bởi
chỉ số.
- Mảng là kiểu dữ liệu có cấu trúc vì nó
được xây dựng từ những kiểu dữ liệu đã có
theo quy tắc, khuôn dạng do ngôn ngữ lập
trình cung cấp.
* Khai báo trực tiếp
Var <tên biến mảng> : array [kiểu chỉ số]
of <kiểu phần tử>;
* Khai báo gi án tiếp
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>;
1
Câu 2:Tại sao phải khai báo kích thước
của mảng?
Câu 3: Các phần tử của mảng có thể có
những kiểu gì?
Câu 4:Cách tham chiếu đến phần tử mảng
một chiều? Hãy khai báo một mảng một
chiều có thể chứa tối đa 50 phần tử có
kiểu nguyên, tham chiếu đến phần tử
mảng.
Bài tập1: Nhập vào một mảng số nguyên.
Đếm xem trong mảng vừa nhập có bao
nhiêu số chẵn, Tính tổng các số chẵn đó.
Gợiý:
- Các biến cần khai báo
Trong đó:
- Kiểu chỉ số: thường là 1 đoạn số nguyên
liên tục có dạng n1 n2, với n1 là chỉ số đầu,
n2 là chỉ số cuối.
- Kiểu phần tử: là kiểu của các phần tử
mảng.
*Tham chiếu đến các phần tử của mảng
<tên biến mảng>[chỉ số]
VD1:Type mmc=array[1 100] of integer;
Trả lời:
Khai báo số ô nhớ tối đa để có thể lưu trữ
số lượng phần tử mảng, không làm tốn bộ
nhớ.
Trả lời:
Các phần tử của mảng có thể có các kiểu
dữ liệu:
+ Số nguyên (integer, byte, word,
longint)
+ Số thực (real, extended)
+ Logic (boolean)
+ Kí tự (char)
Trả lời:
*Tham chiếu đến các phần tử của mảng
<tên biến mảng>[chỉ số]
VD:Type mmc=array[1 100] of integer;
Var A : mmc;
5 4 9 14 25 8 6
A[5] = 25
A[7] = 6…
2
- Nhập vào 1 mảng
- khởi tạo đếm và tổng
- Duyệt qua từng phần tử mảng, kiểm tra
nếu nó là số chẵn thì đếm và cộng vào tổng
ban đầu đã khởi tạo.
Bài tập 2: Nhập vào một mảng số nguyên,
đưa mảng vừa nhập ra màn hình. Nhập
một số nguyên x từ bàn phím, đếm xem
trong mảng vừa nhập có bao nhiêu số
bằng x.
Gợiý:
- Các biến cần khai báo
- Nhập vào 1 mảng
- Đưa mảng vừa nhập ra màn hình
- Nhập số nguyên x
- Khởi tạo biến đếm
- Kiểm tra số tham chiếu đến có bằng x
không? Nếu bằng thì đếm.
Program bt1;
Uses crt;
Var a : array[1 20] of integer;
i,n,dem,t:integer;
begin
write(‘nhap n = ‘); readln(n);
for i:= 1 to n do
begin
write(‘a[‘,i,’]’);
readln(a[i]);
end;
dem:=0; t:=0;
for i:=1 to n do
if (a[i] mod 2 = 0 ) then
begin
dem:=dem + 1;
t:= t + a[i];
end;
writeln(‘so chan trong mang la:’, dem);
writeln(‘tong so chan la:’, t);
readln
end.
Program bt1;
Uses crt;
Var a : array[1 20] of integer;
i,n,dem,x:integer;
begin
write(‘nhap n = ‘); readln(n);
for i:= 1 to n do
3
begin
write(‘a[‘,i,’]’);
readln(a[i]);
end;
dem:=0;
for i:=1 to n do
if a[i] = x then
dem:=dem + 1;
writeln(‘so bang’,x,’ trong mang la:’, dem);
readln
end.
IV - Củng cố
- Cách khai báo và tham chiếu đến các phần tử mảng 1 chiều.
- Bài tập: Nhập vào một mảng số nguyên, sắp xếp mảng theo chiều tăng dần, đưa
mảng vừa sắp xếp ra màn hình. Đếm xem trong mảng có bao nhiêu số lẻ, tính tổng các số
lẻ.
4