BÀI 11: KIỂU MẢNG
BÀI 11: KIỂU MẢNG
SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH ĐIỆN BIÊN
TRƯỜNG THPT THỊ XÃ MƯỜNG LAY
GIÁO VIÊN : NGUYỄN THANH THẢO
MƯỜNG LAY : 20/01/2014
BÀI DỰ THI BÀI GIẢNG E-LEANRING
TIẾT 20 CHƯƠNG TRÌNH TIN HỌC LỚP 11
BÀI 11: KIỂU MẢNG
Có thể dùng cấu trúc rẽ nhánh để mô tả cấu trúc
lặp được không ?
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Chúc mừng ban
Chúc mừng ban
Đáp án của bạn là:
Đáp án của bạn là:
Đáp án đúng là
Đáp án đúng là
Rất tiếc bạn đ? sai
Rất tiếc bạn đ? sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
KIỂM TRA BÀI CŨ
A) Được
B) Không
BÀI 11: KIỂU MẢNG
Có thể dùng cấu trúc rẽ nhánh dạng thiếu để mô tả cấu
trúc rẽ nhánh dạng đủ được không ?
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Chúc mừng ban
Chúc mừng ban
Đáp án của bạn là:
Đáp án của bạn là:
Đáp án đúng là
Đáp án đúng là
Rất tiếc bạn đ? sai
Rất tiếc bạn đ? sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
A) Có
B) Không
BÀI 11: KIỂU MẢNG
Phát biểu nào trong các phát biểu sau đây là sai ?
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Chúc mừng ban
Chúc mừng ban
Đáp án của bạn là:
Đáp án của bạn là:
Đáp án đúng là
Đáp án đúng là
Rất tiếc bạn đ? sai
Rất tiếc bạn đ? sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
A)
Câu lệnh sau Do sẽ được thực hiện ít nhất 1 lần ;
B)
Câu lệnh sau Do có thể sẽ không được thực hiện ít nhất 1
lần ;
C)
Câu lệnh sau Do không được phép là
một câu lệnh While-do
BÀI 11: KIỂU MẢNG
BẠN CẦN ÔN LAI NỘI DUNG BÀI CŨ
BÀI 11: KIỂU MẢNG
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 độ trung bình của tuần và số lượng ngày
có nhiệt độ trung bình cao hơn nhiệt độ trung bình trong tuần
* Dữ liệu nhập vào (Input): t1,t2,t3,t4,t5,t6,t7.
* Dữ liệu cần tính và In ra (OUTPUT): tb, dem.
BÀI TOÁN ĐẶT VẤN ĐỀ :
Hãy xác định Input, Output và viết chương trình
giải bài toán trên
BÀI 11: KIỂU MẢNG
Program nhietdotb;
Uses crt;
Var t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : integer;
BEGIN
write(‘ Nhap vao nhiet do 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 trong tuan = ‘,tb : 6 : 2);
Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘, dem);
Readln; END.
BÀI 11: KIỂU MẢNG
Quan sát chương trình hãy
cho biết nếu muốn tính
nhiệt độ trung bình của N
ngày trong năm
(VD: N=365) thì sẽ gặp
khó khăn gì ?
Khai báo quá lớn
(T1,t2,t3…t365) và
chương trình quá dài
( với 365 lệnh IF )
Để khắc phục khó khăn đó ta sử dụng
kiểu dữ liệu mảng một chiều
BÀI 11: KIỂU MẢNG
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu
17 20 18 25 19 12 19
A
1 2 3 4 5 6 7
Trong đó :
Khi tham chiếu đến phần tử thứ I ta viết A[i].
Ví dụ: A[5] = 19.
Tên mảng : A.
Số phần tử của mảng : 7.
Ví dụ:
Kiểu dữ liệu của các phần tử : Kiểu Nguyên
19
1. Khái niệm
BÀI 11: KIỂU MẢNG
2. Khai báo mảng một chiều trong PASCAL
*Cách 1 : Khai báo gián tiếp
TYPE <tên kiểu mảng> = array[<chỉ số đầu> <chỉ số cuối>] of
<kiểu phần tử>;
Var <ds biến mảng> : <tên kiểu mảng>;
Ví dụ: TYPE nhietdo = array[1 365] of integer;
Var A: nhietdo;
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;
Giữa 2 chỉ số là dấu
BÀI 11: KIỂU MẢNG
* C¸ch 2: Khai b¸o trùc tiÕp
Var A,B : array[1 100] of real;
Ví dụ: Var nhietdo : array[1 365] of integer;
Var <Ds biến mảng > : array[<chỉ số đầu> <chỉ số cuối>] of
<kiểuphần tử>;
BI 11: KIU MNG
3. Cỏc thao tỏc x lớ trong mng mt chiu
A
n
1.
Nhập số phần tử của mảng (n).
Write( Nhap vao so ngay:);
Readln(n);
2. Nhập vào giá trị của các phần tử
trong mảng
(
A
[i]).
For i:=1 to n do
Begin
write(nhiet do ngay thu ,i, : );
readln(A[i]);
end;
.
CC BC
TH HIN BNG PASCAL
a. Nhp mng mt chiu
Vi n = 7
19171921182017
Vớ d: Nhp nhit n ngy.
BÀI 11: KIỂU MẢNG
b. In mảng một chiều
Writeln(‘ Mang vua nhap : ’);
For i:=1 to n do Write(A[i]:5);
Mang vua nhap:
- Thông báo
- In giá trị của các phần tử
17 20 18 21 19 17 19
Kết quả in ra màn hình:
Ví dụ: In mảng vừa nhập.
BÀI 11: KIỂU MẢNG
* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước .
dem :=0;
For i :=1 to n do
IF A[i]>TB then
dem:=dem+1;
c . Các thao tác khi xử lý khác.
Ví dụ : Đếm số ngày có nhiệt độ cao
hơn nhiệt độ TB cả tuần
TB = 18.7
Dem=0
7654321
i
19171921182017
A[i]
0 1 1 2
3
3 4
20 21 19 19
+1 +1 +1+1
BÀI 11: KIỂU MẢNG
Program vd1;
Uses crt;
Var
A: Array[1 366] of integer;
i,n,dem: integer;
S,TB : real ;
BEGIN
Clrscr;
write(‘ Nhap vao so ngay : ’) ;
readln(n) ;
S := 0 ;
For i := 1 to n do
Begin
write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ;
readln(A[i]) ;
S:=S+A[i] ;
End;
TB := S/n ; dem := 0 ;
For i := 1 to n do
If A[i]>TB Then dem := dem+1;
Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ;
Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;
Readln ;
END.
Khai báo mảng một chiều
Nhập mảng 1 chiều
Tính tổng
Đếm số phần tử thoả
mãn điều kiện
BÀI 11: KIỂU MẢNG
Nhap vao so ngay :
7
Nhap nhiet do ngay thu 1 :
17
Nhap nhiet do ngay thu 2 :
20
Nhap nhiet do ngay thu 3 :
18
Nhap nhiet do ngay thu 4 :
21
Nhap nhiet do ngay thu 5 :
19
Nhap nhiet do ngay thu 6 :
17
Nhap nhiet do ngay thu 7 :
19
Nhiet do trung binh 7 ngay = 18.70
So ngay co nhiet do cao hon nhiet do TB la: 4
Chương trình chay với kết quả như sau:
BÀI 11: KIỂU MẢNG
Thông thường, các thao tác xử lí trong mảng một chiều đều dùng câu lệnh
FOR DO.
* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước
Ví dụ: Tính tổng các phần tử trong mảng
chia hết cho 3.
S :=0;
For i :=1 to n do
IF A[i] mod 3 = 0 then S:=S+A[i];
19121825162015
S = 45
BI 11: KIU MNG
Mảng một chiều là một dãy
hữu hạn các phần tử cùng kiểu.
Khai báo: tên mảng, chỉ số đầu,
chỉ số cuối, kiểu phần tử.
Tham chiếu phần tử mảng:
Tên biến mảng[chỉ số phần tử]
Nhiều thao tác xử lí mảng dùng
cấu trúc lặp FOR TO DO.
15 20 19 25 18 12 16
Var A: ARRAY[1 100] OF integer;
A[5] = 18
Cng c !
BÀI 11: KIỂU MẢNG
BÀI TẬP & CỦNG CỐ
1. Khái niệm
2. Khai báo mảng một chiều trong PASCAL
*Cách 1 : Khai báo gián tiếp
* C¸ch 2: Khai b¸o trùc tiÕp
3. Các thao tác xử lí trong mảng một chiều
a. Nhập mảng một chiều
b. In mảng một chiều
c . Các thao tác khi sử lý khác.
BÀI 11: KIỂU MẢNG
Phát biểu nào sau đây là đúng ?
Đúng -Bấm chuột vào chỗ bất kỳ
để tiếp tục
Đúng -Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ để
tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ để
tiếp tục
Chúc mừng bạn
Chúc mừng bạn
Câu trả lời của bạn là :
Câu trả lời của bạn là :
Đáp án là :
Đáp án là :
Bạn đ? trả lời sai
Bạn đ? trả lời sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
A)
Mảng một chiều là dãy vô hạn các phần tử cùng kiểu
dữ liệu
B) Mảng một chiều là dãy hữu hạn các phần tử khác kiểu
dữ liệu
C)
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu dữ
liệu
BÀI 11: KIỂU MẢNG
Các phần tử của mảng có thể có những kiểu gì ?
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Chúc mừng bạn
Chúc mừng bạn
Câu trả lời của bạn là :
Câu trả lời của bạn là :
Đáp án là :
Đáp án là :
Bạn đ? trả lời sai
Bạn đ? trả lời sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
A) Kiểu số nguyên
B) kiểu số thực
C) Các kiểu dữ liệu chuẩn (đơn giản)
D) Kiểu kí tự và kiểu logic
BÀI 11: KIỂU MẢNG
Hãy chọn khai báo sai trong các khai báo sau đây
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Đúng -Bấm chuột vào chỗ bất
kỳ để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ
để tiếp tục
Chúc mừng bạn
Chúc mừng bạn
Câu trả lời của bạn là :
Câu trả lời của bạn là :
Đáp án là :
Đáp án là :
Bạn đ? trả lời sai
Bạn đ? trả lời sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
A)
Type A= array[-5 5] of real ;
Var A=B;
B) Type A= array[-5 5] of real ;
Var A:B;
C) Type mang: array[-5 5] of real ; Var
C:mang;
BÀI 11: KIỂU MẢNG
Giả sử ta có khai báo mảng như sau
Var A:array[1 10] of Char ;
Đúng -Bấm chuột vào chỗ bất kỳ
để tiếp tục
Đúng -Bấm chuột vào chỗ bất kỳ
để tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ để
tiếp tục
Sai - Bấm chuột vào chỗ bất kỳ để
tiếp tục
Chúc mừng bạn
Chúc mừng bạn
Câu trả lời của bạn là :
Câu trả lời của bạn là :
Đáp án là :
Đáp án là :
Bạn đ? trả lời sai
Bạn đ? trả lời sai
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Bạn phải hoàn thành câu trả lời
trước khi tiếp tục
Trả lời
Trả lời
Xoá
Xoá
1 2 3 4 5 6 7 8 9 10
a b E d H i L M o P
Để có được giá trị M thì ta cần tham chiếu
như thế nào ?
BÀI 11: KIỂU MẢNG
BẠN LÊN THAM GIA HỌC LẠI BÀI
HỌC NÀY
BÀI 11: KIỂU MẢNG
CHÚC MỪNG BẠN BẠN LÀ MỘT HỌC
VIÊN GIỎI