Tải bản đầy đủ (.ppt) (12 trang)

Bai 11 Kieu mang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (529.09 KB, 12 trang )

Bài 11.


Bài tốn đặt vấn đề
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 độ TB 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.
Hãy xác định Input,
Output và viết chương
* Dữ cần tính và
in ra
(Output):
trình
giải
bài tốn tb,
trêndem.
?


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.


Quan
sát chương
Để khắc
phụctrình,
khó
hãy cho biết nếu muốn
khăn
đó độ
ta sử
dụng
tính nhiệt
trung
bình
kiểuNdữ
liệu

mảng
của
ngày
trong
năm
chiều.
(VD: mt
N=365)
thỡ s gp
khú khn 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) !!!!!


1. Mảng một chiều.
a. Khái niệm
Ví dụ:

A

17

20

18

25


19

12

19

1
2
3
4
5
6
7
Trong ®ã :
 Tên mảng: 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
 Khi tham chiếu đến phần tử thứ i ta viết A[i]
Ví dụ: A[5] = 19.

KN: Mảng một chiều là một dãy hữu hạn các phần tử
cùng kiểu dữ liệu. Các phần tử mảng cùng chung tên,
phân biệt nhau bởi chỉ số.


b. Khai báo mảng một chiều trong PASCAL
* Cách 1: 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ử>;
Ví dụ: Var nhietdo : array [1..366] of real;

Var A,B : Array [1..100] of Integer;
* Cách 2: 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>;
Trong đó: - [Kiểu chỉ số] gồm [<chỉ số đầu> .. <chỉ số cuối>]
- Chỉ số đầu < chỉ số cuối;
-Giữa 2 chỉ số là dấu ..
Ví dụ: Type nhietdo = array[1..366] of real;
Var A: nhietdo;


Các thao tác xử lí trong mảng một chiều
+ Nhập mảng một chiều
Ví dụ: Nhập nhiệt độ n ngày

A

17

Các bước

20

18 .......
21 19
với nn= 7

17

19


Thể hiện bằng Pascal

1. Nhập số phần tử của mảng

Write(‘ Nhap vao so ngay:’);

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;

Readln(n);


In mảng một chiều
Ví dụ: In mảng vừa nhập.
- Thơng báo

Writeln(‘ Mang vua nhap : ’);

- In giá trị của các phần tử

For i:=1 to n do Write(A[i]:5);

Kết quả in ra màn hình:

Mang vua nhap:
17 20 18 21 19 17 19


Các thao tác xử lí khác
* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước
Ví dụ: Đếm số ngày có nhiệt
độ cao hơn nhiệt độ TB của
tuần

i
A[i]

Dem=0

dem :=0;
For i :=1 to n do
IF A[i]>TB then dem:=dem+1;

1

2

3

4

5

6


7

17

20

18

21

19

17

19

2

3

0

1
+1

1
+1

+1


3

4
+1

TB = 18.7


Program vd1;
Uses crt;
Var
Khai báo mảng 1 chiều
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
NhËp m¶ng 1 chiỊu
Begin
write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ;
TÝnh tæng
readln(A[i]) ;
S:=S+A[i] ;
End;
TB := S/n ;

dem := 0 ;
For i := 1 to n do
Đếm số phần tư tho¶
If A[i]>TB Then dem := dem+1;
Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ; m·n ®iỊu kiƯn
Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;
Readln ;
END.


Chương trình chạy và cho kết quả như sau:

Nhap vao so ngay :

7

Nhap nhiet do ngay thu 1 :
Nhap nhiet do ngay thu 2 :
Nhap nhiet do ngay thu 3 :
Nhap nhiet do ngay thu 4 :

17
20
18
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


* 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

15

20

16

S :=0;
For i :=1 to n do
IF A[i] mod 3 = 0 then S:=S+A[i];

25

S = 45

18

12

19




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×