NhËp vµo nhiÖt ®é (trung b×nh) cña mçi ngµy trong tuÇn.[r]
(1)Bµi 12
(2)Nhập vào nhiệt độ (trung bình) ngày tuần Tính đ a hình nhiệt độ trung bình tuần số l ợng ngày có nhiệt độ TB cao nhiệt trung bình tun?
* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7.
* Dữ cần tính in (OUTPUT): tb, dem.
Hãy xác định Input, Output
viết ch ơng trình giải toán ?
(3)Program vd1;
Uses crt;
Var
t1,t2,t3,t4,t5,t6,t7,tb : real; dem : integer;
BEGIN
Clrscr;
write( Nhap vao nhiet : );‘ ’ readln(t1,t2,t3,t4,t5,t6,t7);
tb : = (t1+t2+t3+t4+t5+t6+t7)/7;
dem : = ;
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 trung binh tuan = ,tb : : 2);‘ ‘ Writeln( so co nhiet cao hon nhiet tb , dem);‘ ‘ Readln;
(4)Quan sát ch ơng trình, hãy cho biết muốn tính nhiệt độ trung bình N ngày
trong năm (VD: N=365) gặp khó
khăn ?
Khai báo lớn (t1,t2,t3, ,t365) ch ơng trình dµi (víi 365 lƯnh
IF) !!!!!
Để khắc phục khó
(5)Mảng chiều dÃy hữu hạn 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 liệu phần tử: Kiểu nguyên.
19
(6)2 Khai báo mảng chiều PASCAL
* C¸ch 1: Khai b¸o gi¸n tiÕp
TYPE <tên kiểu mảng> = array[<chỉ số đầu> <chØ sè ci>] of <kiĨuphÇ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, số cuối th ờng biểu thc nguyờn;
Chỉ số đầu số cuối; Giữa số dÊu
* C¸ch 2: Khai b¸o trùc tiÕp
Var <Ds biÕn m¶ng> : array[<chØ sè ®Çu> <chØ sè ci>] of <kiĨuphÇn tư>;
Var A,B : array[1 100] of real;
(7)3 Các thao tác xử lí mảng mét chiÒu
A
n
1 NhËp số phần tử mảng (n). Write( Nhap vao so ngay:);
Readln(n);
2 Nhập vào giá trị phần tử trong mảng (A[i]).
For i:=1 to n Begin
write(‘nhiet thu’ ,i, ’ : ’); readln(A[i]);
end;
C¸c b íc ThĨ hiƯn b»ng pascal
a NhËp m¶ng mét chiỊu
víi n = 7
19 17 19 21 18 20 17
(8)b In m¶ng mét chiỊu
Writeln(‘ Mang vua nhap : ’); For i:=1 to n Write(A[i]:5);
Mang vua nhap:
- Thông báo
- In giá trị phần tử
17 20 18 21 19 17 19
KÕt qu¶ in hình:
(9)* Đếm phần tử mảng thoả mÃn điều kiện cho tr íc
dem :=0;
For i :=1 to n
IF A[i]>TB then dem:=dem+1;
c C¸c thao t¸c xư lÝ kh¸c
Ví dụ: Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần
TB = 18.7
Dem=0 7 6 5 4 3 2 1 i 19 17 19 21 18 20 17 A[i]
0 1 1 2 3 3 4
20 21 19 19
(10)Program vd1;
Uses crt;
Var
A: Array[1 366] of integer; i,n,dem: integer;
S,TB : real ;
BEGIN
Clrscr;
write(‘ Nhap vao so : ’) ; readln(n) ;
S := ;
For i := to n Begin
write(‘ Nhap nhiet thu ‘,i,’ : ‘) ; readln(A[i]) ;
S:=S+A[i] ;
End;
TB := S/n ; dem := ;
For i := to n
If A[i]>TB Then dem := dem+1;
Writeln(‘ Nhiet trung binh ’ ,n,’ = ‘,TB : : 2) ;
Writeln(‘ So co nhiet cao hon nhiet TB la: ‘, dem) ; Readln ;
END.
Khai báo mảng chiều
NhËp m¶ng chiỊu TÝnh tỉng
(11)Nhap vao so : 7
Nhap nhiet thu : 17
Nhap nhiet thu : 20
Nhap nhiet thu : 18
Nhap nhiet thu : 21
Nhap nhiet thu : 19
Nhap nhiet thu : 17
Nhap nhiet thu : 19
Nhiet trung binh = 18.70
So co nhiet cao hon nhiet TB la: 4
(12)Thông th ờng, thao tác xử lí mảng chiều dùng câu lệnh FOR DO.
* Tính tổng các phần tử 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
IF A[i] mod = 0 then S:=S+A[i];
19 12
18 25
16 20
15
(13)HÃy nhớ!
Mảng chiều dÃy hữu hạn phần tử kiểu
Khai báo: tên mảng, số đầu, chỉ sè ci, 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;