Имеются метеоданные о среднемесячной температуре по всем месяцам в ряде стран (англия, германия, швеция, швейцария, и т. д.) составить программу которая для заданной страны находит месяц, в которых среднемесячная температура ниже(выше) среднего значения среднемесячной температуры всех стран — Pascal(Паскаль)

uses crt;
const
m=10;{количество стран}
n=12;{количество месяцев}
strana:array[1..m]of string[10]=('Украина','Польша','Болгария','Германия',
                    'Англия','Италия','Франция','Швеция','Испания','Турция');
mesyac:array[1..n]of string[10]=('Январь','Февраль','Март','Апрель','Май','Июнь',
                    'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
var a:array[1..m,1..n+1] of real;{размер матрицы}
    i,j,ms,st,k:byte;
    sr,mn,mx,t:real;
    str:string[10];
begin
clrscr;
randomize;
writeln('Введите среднемесячную температуру по странам:');
for i:=1 to m do  {заполняем матрицу данными}
 begin
  writeln(strana[i],' ');
  for j:=1 to n do
   begin
    write(mesyac[j],'=');
    readln(a[i,j]);
   end;
  writeln;
 end;
clrscr;
{посчитаем среднюю температуру за год и запишем в дополнительный столбец}
for i:=1 to m do
 begin
  sr:=0;
  for j:=1 to n do
  sr:=sr+a[i,j];
  a[i,n+1]:=sr/n;
 end;
writeln('Матрица температур:':50,'Средн.':28);{выводим матрицу для обзора}
writeln;
for i:=1 to m do
 begin
  write(strana[i]);
  gotoXY(10,whereY);
  for j:=1 to n do
  write(a[i,j]:5:1);
  write(a[i,n+1]:8:1);
  writeln;
 end;
readln;
clrscr;
{сортируем по невозрастанию в указанном месяце}
repeat
writeln('Введите месяц, число 1-12:');
readln(ms);
until ms in [1..12];
for i:=1 to m-1 do
for j:=i+1 to m do
if a[i,ms]<a[j,ms] then
 begin
  t:=a[i,ms];
  a[i,ms]:=a[j,ms];
  a[j,ms]:=t;
  str:=strana[i];
  strana[i]:=strana[j];
  strana[j]:=str;
 end;
writeln('Страны по невозрастанию температуры в месяце ',mesyac[ms]);
for i:=1 to m do
 begin
  write(strana[i]);
  gotoXY(10,whereY);
  write(a[i,ms]:5:1);
  writeln;
 end;
readln;
clrscr;
{сортировка по невозрастанию среднегодовой температуры}
for i:=1 to m-1 do
for j:=i+1 to m do
if a[i,n+1]<a[j,n+1] then
 begin
  t:=a[i,n+1];
  a[i,n+1]:=a[j,n+1];
  a[j,n+1]:=t;
  str:=strana[i];
  strana[i]:=strana[j];
  strana[j]:=str;
 end;
writeln('Страныы по невозрастанию среднегодовой температуры:');
for i:=1 to m do
 begin
  write(strana[i]);
  gotoXY(10,whereY);
  write(a[i,n+1]:5:1);
  writeln;
 end;
readln;
clrscr;
{находим месяц с температурой ниже(выше) установленного значения для заданной страны}
repeat
write('Страна (1-10): ');
readln(st);
until st in [1..10];
write('Установленное значение температуры :');
readln(t);
writeln('В стране ',strana[st]);
writeln(' - температура ниже ',t:0:1,':');
k:=0;
for i:=1 to m do
if a[st,i]<t then
 begin
  k:=1;
  write(mesyac[i],' ');
 end;
writeln;
if k=0 then writeln('Таких месяцев нет!');
writeln(' - температура выше ',t:0:1,':');
k:=0;
for i:=1 to m do
if a[st,i]>t then
 begin
  k:=1;
  write(mesyac[i],' ');
 end;
writeln;
if k=0 then writeln('Таких месяцев нет!');
readln
end.

Leave a Comment

6 + 1 =