Bài 11. Kiểu mảng
Chia sẻ bởi Trần Thị Oanh |
Ngày 10/05/2019 |
50
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:
BÀI GIẢNG MÔN TIN HỌC 11
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
CHÀO QUÝ THẦY CÔ VÀ CÁC EM!
BÀI GIẢNG MÔN TIN HỌC 11
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
Bài 11
KIỂU MẢNG
Ma?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 có nhiệt độ cao hơn nhiệt độ trung bình của tuần
Input: t1,t2,t3,t4,t5,t6,t7.
Output: tb, dem.
Hãy xác định Input, Output và viết chương trình giải bài toán trên ?
Bài toán:
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : integer;
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.
Hãy cho biết thuật toán và các biến sử dụng trong chương trình?
Quan sát chương trình, hãy cho biết nếu muốn mở rộng bài toán tính nhiệt độ trung bình của N ngày(VD: 365 ngày) thì thuật toán có thay đổi không và sẽ gặp khó khăn gì?
? Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiều.
Ma?ng mơ?t chi`u
1. Định nghĩa:
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu
A
Trong đó :
? Tờn ma?ng : A.
?Sụ? phõ`n tu? cu?a ma?ng: 7
Ví dụ 1:
Kiểu dữ liệu của mảng: Kiểu nguyên
1 2 3 4 5 6 7
Cách tham chiếu tới một phần tử của mảng?
Tham chiếu tới phần tử của mảng một chiều được xác định bởi:[]
VD:
A[6]
=15
15
Ma?ng mơ?t chi`u
B
Trong đó :
? Tờn ma?ng : B.
?Sụ? phõ`n tu? cu?a ma?ng: 366
Ví dụ 2:
Kiểu dữ liệu của mảng: Kiểu Thực
1 2 3 … 365 366
Khi tham chiếu đến phần tử thứ i của mảng B ta viết: B[i]
Khai b¸o m¶ng 1 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
Ma?ng mơ?t chi`u
2. Khai báo mảng một chiều trong Pascal:
Cách 1: Khai báo trực tiếp:
Var : array[..] of ;
Var Nhietdo: array[1..366] of Real;
Var A, B : array[1..n] of Integer;
VD:
Cách 2: Khai báo gián tiếp:
TYPE = array[..] of ;
Var : ;
VD:
TYPE MangThuc = array[1..365] of Real;
Var A: MangThuc;
TYPE MangNguyen = array[1..100] of Integer;
Var B,C: MangNguỵen;
Trong đó:
Kiểu phần tử là kiểu dữ liệu chuẩn
Chỉ số đầu..chỉ số cuối là một đoạn số nguyên liên tục, chỉ số cuối lớn hơn chỉ số đầu.
Ma?ng mơ?t chi`u
Một học sinh định viết một chương trình tính điểm trung bình điểm tổng kết môn toán từ lớp 1 đến lớp 10 của mình. Nếu dùng mảng để lưu dữ liệu thì phải khai báo thế nào?
VD:
Var A : array[1..10] of Real;
TYPE MangThuc = array[1..10] of Real;
Var A: MangThuc;
C1:
C2:
Cách 1: Khai báo trực tiếp:
Var : array[..] of ;
Cách 2: Khai báo gián tiếp:
TYPE = array[..] of ;
Var : ;
Ma?ng mơ?t chi`u
a. Nhập các phần tử của mảng:
* Các thao tác xử lý mảng
Writeln(`nhap so phan tu cua mang`);Readln(n);
for i:=1 to n do
begin
writeln(`Nhap phan tu thu`,i,`:`);
readln(A[i]);
end;
A
15
18
16
20
19
15
18
i
1
2
4
3
5
6
7
Ma?ng mơ?t chi`u
b. Đế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;
Ví dụ: Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần.
Tương ứng với giá trị I, một phần tử của mảng được xác định bởi A[i].
Sử dụng một biến mảng với câu lệnh: For…To…Do…
Chương trình sẽ ngắn gọn hơn
TB = 17.2
Dem=0
7
6
5
4
3
2
1
i
0
1
1
2
3
3
4
18
20
19
18
+1
+1
+1
+1
Khai b¸o m¶ng 1 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
chạy chương trình ở pascal
Ma?ng mơ?t chi`u
BÀI GIẢNG MÔN TIN HỌC 11
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
CÁM ƠN QUÝ THẦY CÔ VÀ CÁC EM!
BÀI HỌC KẾT THÚC
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
CHÀO QUÝ THẦY CÔ VÀ CÁC EM!
BÀI GIẢNG MÔN TIN HỌC 11
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
Bài 11
KIỂU MẢNG
Ma?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 có nhiệt độ cao hơn nhiệt độ trung bình của tuần
Input: t1,t2,t3,t4,t5,t6,t7.
Output: tb, dem.
Hãy xác định Input, Output và viết chương trình giải bài toán trên ?
Bài toán:
Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real;
dem : integer;
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.
Hãy cho biết thuật toán và các biến sử dụng trong chương trình?
Quan sát chương trình, hãy cho biết nếu muốn mở rộng bài toán tính nhiệt độ trung bình của N ngày(VD: 365 ngày) thì thuật toán có thay đổi không và sẽ gặp khó khăn gì?
? Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiều.
Ma?ng mơ?t chi`u
1. Định nghĩa:
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu
A
Trong đó :
? Tờn ma?ng : A.
?Sụ? phõ`n tu? cu?a ma?ng: 7
Ví dụ 1:
Kiểu dữ liệu của mảng: Kiểu nguyên
1 2 3 4 5 6 7
Cách tham chiếu tới một phần tử của mảng?
Tham chiếu tới phần tử của mảng một chiều được xác định bởi:
VD:
A[6]
=15
15
Ma?ng mơ?t chi`u
B
Trong đó :
? Tờn ma?ng : B.
?Sụ? phõ`n tu? cu?a ma?ng: 366
Ví dụ 2:
Kiểu dữ liệu của mảng: Kiểu Thực
1 2 3 … 365 366
Khi tham chiếu đến phần tử thứ i của mảng B ta viết: B[i]
Khai b¸o m¶ng 1 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
Ma?ng mơ?t chi`u
2. Khai báo mảng một chiều trong Pascal:
Cách 1: Khai báo trực tiếp:
Var
Var Nhietdo: array[1..366] of Real;
Var A, B : array[1..n] of Integer;
VD:
Cách 2: Khai báo gián tiếp:
TYPE
Var
VD:
TYPE MangThuc = array[1..365] of Real;
Var A: MangThuc;
TYPE MangNguyen = array[1..100] of Integer;
Var B,C: MangNguỵen;
Trong đó:
Kiểu phần tử là kiểu dữ liệu chuẩn
Chỉ số đầu..chỉ số cuối là một đoạn số nguyên liên tục, chỉ số cuối lớn hơn chỉ số đầu.
Ma?ng mơ?t chi`u
Một học sinh định viết một chương trình tính điểm trung bình điểm tổng kết môn toán từ lớp 1 đến lớp 10 của mình. Nếu dùng mảng để lưu dữ liệu thì phải khai báo thế nào?
VD:
Var A : array[1..10] of Real;
TYPE MangThuc = array[1..10] of Real;
Var A: MangThuc;
C1:
C2:
Cách 1: Khai báo trực tiếp:
Var
Cách 2: Khai báo gián tiếp:
TYPE
Var
Ma?ng mơ?t chi`u
a. Nhập các phần tử của mảng:
* Các thao tác xử lý mảng
Writeln(`nhap so phan tu cua mang`);Readln(n);
for i:=1 to n do
begin
writeln(`Nhap phan tu thu`,i,`:`);
readln(A[i]);
end;
A
15
18
16
20
19
15
18
i
1
2
4
3
5
6
7
Ma?ng mơ?t chi`u
b. Đế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;
Ví dụ: Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần.
Tương ứng với giá trị I, một phần tử của mảng được xác định bởi A[i].
Sử dụng một biến mảng với câu lệnh: For…To…Do…
Chương trình sẽ ngắn gọn hơn
TB = 17.2
Dem=0
7
6
5
4
3
2
1
i
0
1
1
2
3
3
4
18
20
19
18
+1
+1
+1
+1
Khai b¸o m¶ng 1 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
chạy chương trình ở pascal
Ma?ng mơ?t chi`u
BÀI GIẢNG MÔN TIN HỌC 11
?
?
?
?
?
?
?
TRUO`NG THPT HUY`NH THU?C KHA?NG
CÁM ƠN QUÝ THẦY CÔ VÀ CÁC EM!
BÀI HỌC KẾT THÚC
* 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ẻ: Trần Thị Oanh
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)