Определить среднюю температуру дня - PascalABC.NET
Формулировка задачи:
В таблице содержаться результаты измерений средней температуры воздуха, которые проводились ежедневно с 8 до 20 часов:
1)Определить среднюю температуру дня
2)Сколько раз в течении дня температура опускалась ниже нулевой отметки
3)Определить время когда температура была минимальной и максимальной
4)Определить среднюю температуру с 10 часов до 15 часов
Решение задачи: «Определить среднюю температуру дня»
textual
Листинг программы
const m=13;
type day=array[1..m] of real;
tab=array of day;
procedure dann(a:day;var s1,s2:real;var k,mn,mx:byte);
var i:byte;
begin
s1:=0;
s2:=0;
mn:=8;
mx:=8;
k:=0;
for i:=1 to m do
begin
s1:=s1+a[i];
if i in [3..8] then s2:=s2+a[i];
if a[i]<a[mn-7] then mn:=i+7;
if a[i]>a[mx-7] then mx:=i+7;
if a[i]<0 then inc(k);
end;
s1:=s1/m;
s2:=s2/6;
end;
var t:tab;
n,i,j,k,mn,mx:byte;
s1,s2:real;
begin
randomize;
write('Количество дней n=');
readln(n);
setlength(t,n);
for i:=0 to n-1 do
for j:=1 to m do
t[i][j]:=-2+4*random;
writeln(' Сведения о температуре');
writeln('-----------------------------------------------------------------------------------------------------------------');
writeln('|День| Время | Средняя | Кол. | Мин |Макс| Средняя |');
writeln('| |----------------------------------------------------------------|температура| дней | | |температура|');
write('| |');
for i:=8 to 20 do
write(i:4,'|');
writeln(' дня |ниже 0| | |с 10 до 15|');
writeln('----------------------------------------------------------------------------------------------------------------');
for i:=0 to n-1 do
begin
write('|',i+1:3,' |');
for j:=1 to m do
write(t[i][j]:4:1,'|');
dann(t[i],s1,s2,k,mn,mx);
writeln(s1:7:1,' |',k:5,' |',mn:4,' |',mx:4,'|',s2:7:1,' |');
end ;
writeln('----------------------------------------------------------------------------------------------------------------');
end.