Имеется таблица данных среднемесячной температуры по всем месяцам года в 10 странах 1-украина 2-Польша 3-болгария 4-германия 5-англия 6-италия ш 7-франция 8-швеция 9-испания 10-турция. Составить программу — 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

35 − = 33