Bài 11. Kiểu mảng
Chia sẻ bởi Nguyễn Thị Tuyết |
Ngày 10/05/2019 |
53
Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11
Nội dung tài liệu:
CHƯƠNG IV
Kiểu Dữ Liệu Có Cấu Trúc
Kiểu mảng
Kiểu xâu
Kiểu bản ghi
Bài 11
Kiểu Mảng
Hiểu khái niệm mảng một chiều và mảng
hai chiều
Hiểu cách khai báo và truy cập đến các
phần tử của mảng
Hiểu khái niệm mảng một chiều và mảng
hai chiều
Hiểu cách khai báo và truy cập đến các
phần tử của mảng
Viết được chương trình 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.
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 trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần?
* Dữ liệu nhập vaò (INPUT): t1,t2,t3,t4,t5,t6,t7.
* Dữ liệu cần tính và in ra (OUTPUT):
tb, dem.
Hãy xác định Input, Output và viết chương trình giải bài toán?
Bài toán đặt vấn đề:
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : byte;
BEGIN
Clrscr;
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? nh? phõn ph?i cho khai bỏo bi?n l bao nhiờu?
49
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 trên, ta sử dụng kiểu dữ liệu mảng một chiều.
17
20
18
25
17
A
1 2 3 4 5 6 7
Trong đó :
Khi tham chiếu đến các phần tử:
Tên mảng :
Số phần tử của mảng:
Vd:
Kiểu dữ liệu của các phần tử:
19
A
7
Kiểu nguyên
tênbiếnmảng[chỉsốphầntử], ta viết A[i] VD: A[5] = 19.
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.
1. Khái niệm
* Cỏch 1: Khai bỏo tr?c ti?p
Var : array[Kiểu chỉ số] of ;
Var A,B : array[1..100] of real;
Vd: Var nhietdo : array[1..365] of real;
2. Khai báo mảng một chiều trong PASCAL
Chú ý: Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2; với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 n2)
Kiểu phần tử là kiểu các phần tử của mảng
TYPE = array[Kiểu chỉ số] of ;
Var : ;
TYPE nhietdo = array[1..365] of real;
Var A: nhietdo;
Bt: Hãy khai báo biến cho bài toán sau:
Nhập từ bàn phím nhiệt độ của các ngày trong năm. Tính nhiệt độ trung bình.
2. Khai báo mảng một chiều trong PASCAL
* Cỏch 2: Khai bỏo giỏn ti?p
Program vd1;
Uses crt;
Var
A: Array[1..366] of integer;
i, n, dem: integer; S,TB : real ;
Khai báomảng1chiều
Nhập mảng 1 chiều
1 .Nhập số phần tử của dãy (n)
Write(‘ Nhap vao so ngay:’);
Readln(n);
2. Nh?p vo giỏ tr? cỏc ph?n t? trong m?ng (A[i])
Các bước
Thể hiện bằng pascal
For i:=1 to n do
Begin
write(‘nhiet do ngay thu’ ,i, ’ : ’);
readln(A[i]);
end;
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]) ;
End;
Tính tổng
S:=S+A[i] ;
TB := S/n;
Đếm số phần tử thỏa mãn điều kiện
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.
A
19
17
18
20
17
dem:=0 ;
Program vd1;
Uses crt;
Var
A: Array[1..366] of integer;
i, n, dem: integer; S,TB : real ;
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 chạy và cho kết quả như sau:
Câu 1:Cú pháp câu lệnh nào sau đây là đúng
A.Var mang : array[1…100] of char;
B. Var mang : array[1-100] of byte;
C. Var 1mang : array[1..100] of char;
D. Type mang = array[-100..100] of integer;
Câu Hỏi Củng Cố Kiến Thức
Câu 2: Cú pháp câu lệnh nào sau đây là đúng
E. Const n=100;
Var mang : array[1..n] of real;
F. Var A,B : array[1..50] of byte;
G. Type mang : array[-100..100] of integer;
H. Var mang : array[m..n] of real;
I. Var mang : array[10..1] of real;
1.Viết chương trình nhập vào dãy n số. Đếm những phần tử chia hết cho cả 2 và 5.
2.Viết chương trình nhập vào dãy n số (các số có thể giống nhau). Hiển thị ra màn hình vị trí đầu tiên phần tử bằng x (x nhập từ bàn phím).
Bài tập về nhà
Tiết học đến đây là kết thúc,
cám ơn các em đã chú ý theo dõi.
Xin chào và hẹn gặp lại .
Hãy nhớ!
?M?ng m?t chi?u
? Khai bỏo
Tham chi?u t?i ph?n t? m?ng
?Nhi?u thao tỏc x? lý m?ng s? d?ng l?nh l?p for
15 20 19 25 18 12 16
Var A:ARRAY[1..100] OF integer;
A[5] = 18
Kiểu Dữ Liệu Có Cấu Trúc
Kiểu mảng
Kiểu xâu
Kiểu bản ghi
Bài 11
Kiểu Mảng
Hiểu khái niệm mảng một chiều và mảng
hai chiều
Hiểu cách khai báo và truy cập đến các
phần tử của mảng
Hiểu khái niệm mảng một chiều và mảng
hai chiều
Hiểu cách khai báo và truy cập đến các
phần tử của mảng
Viết được chương trình 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.
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 trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần?
* Dữ liệu nhập vaò (INPUT): t1,t2,t3,t4,t5,t6,t7.
* Dữ liệu cần tính và in ra (OUTPUT):
tb, dem.
Hãy xác định Input, Output và viết chương trình giải bài toán?
Bài toán đặt vấn đề:
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : byte;
BEGIN
Clrscr;
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? nh? phõn ph?i cho khai bỏo bi?n l bao nhiờu?
49
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 trên, ta sử dụng kiểu dữ liệu mảng một chiều.
17
20
18
25
17
A
1 2 3 4 5 6 7
Trong đó :
Khi tham chiếu đến các phần tử:
Tên mảng :
Số phần tử của mảng:
Vd:
Kiểu dữ liệu của các phần tử:
19
A
7
Kiểu nguyên
tênbiếnmảng[chỉsốphầntử], ta viết A[i] VD: A[5] = 19.
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.
1. Khái niệm
* Cỏch 1: Khai bỏo tr?c ti?p
Var
Var A,B : array[1..100] of real;
Vd: Var nhietdo : array[1..365] of real;
2. Khai báo mảng một chiều trong PASCAL
Chú ý: Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2; với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 n2)
Kiểu phần tử là kiểu các phần tử của mảng
TYPE
Var
TYPE nhietdo = array[1..365] of real;
Var A: nhietdo;
Bt: Hãy khai báo biến cho bài toán sau:
Nhập từ bàn phím nhiệt độ của các ngày trong năm. Tính nhiệt độ trung bình.
2. Khai báo mảng một chiều trong PASCAL
* Cỏch 2: Khai bỏo giỏn ti?p
Program vd1;
Uses crt;
Var
A: Array[1..366] of integer;
i, n, dem: integer; S,TB : real ;
Khai báomảng1chiều
Nhập mảng 1 chiều
1 .Nhập số phần tử của dãy (n)
Write(‘ Nhap vao so ngay:’);
Readln(n);
2. Nh?p vo giỏ tr? cỏc ph?n t? trong m?ng (A[i])
Các bước
Thể hiện bằng pascal
For i:=1 to n do
Begin
write(‘nhiet do ngay thu’ ,i, ’ : ’);
readln(A[i]);
end;
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]) ;
End;
Tính tổng
S:=S+A[i] ;
TB := S/n;
Đếm số phần tử thỏa mãn điều kiện
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.
A
19
17
18
20
17
dem:=0 ;
Program vd1;
Uses crt;
Var
A: Array[1..366] of integer;
i, n, dem: integer; S,TB : real ;
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 chạy và cho kết quả như sau:
Câu 1:Cú pháp câu lệnh nào sau đây là đúng
A.Var mang : array[1…100] of char;
B. Var mang : array[1-100] of byte;
C. Var 1mang : array[1..100] of char;
D. Type mang = array[-100..100] of integer;
Câu Hỏi Củng Cố Kiến Thức
Câu 2: Cú pháp câu lệnh nào sau đây là đúng
E. Const n=100;
Var mang : array[1..n] of real;
F. Var A,B : array[1..50] of byte;
G. Type mang : array[-100..100] of integer;
H. Var mang : array[m..n] of real;
I. Var mang : array[10..1] of real;
1.Viết chương trình nhập vào dãy n số. Đếm những phần tử chia hết cho cả 2 và 5.
2.Viết chương trình nhập vào dãy n số (các số có thể giống nhau). Hiển thị ra màn hình vị trí đầu tiên phần tử bằng x (x nhập từ bàn phím).
Bài tập về nhà
Tiết học đến đây là kết thúc,
cám ơn các em đã chú ý theo dõi.
Xin chào và hẹn gặp lại .
Hãy nhớ!
?M?ng m?t chi?u
? Khai bỏo
Tham chi?u t?i ph?n t? m?ng
?Nhi?u thao tỏc x? lý m?ng s? d?ng l?nh l?p for
15 20 19 25 18 12 16
Var A:ARRAY[1..100] OF integer;
A[5] = 18
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Tuyết
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)