В области 20 районов.площади,засеянные пшеницей (в гектарах)и урожай,собранный в каждом...

0 голосов
112 просмотров

В области 20 районов.площади,засеянные пшеницей (в гектарах)и урожай,собранный в каждом районе(в центнерах)хранятся в двух массивах.определите средний урожайность пшеницы по каждому району и по области
Задачу решить двумя способами
А)без использования дополнительного третьего массива
В)с использованием дополнительного массива


Информатика (23 баллов) | 112 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
Вот без массива.

// PascalABC.NET 3.2, сборка 1356 от 04.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadArrReal('Площади:',20);
  var u:=ReadArrReal('Урожай:',20);
  s.Zip(u,(x,y)->y/x).Println
end.

Пример работы программы
Площади: 3200 2670 1530 3040 2360 2350 1250 4150 4790 2210 4300 2950 3100 4290 3710 3790 2930 2380 4630 3760
Урожай: 55040 84639 56151 107008 83308 58045 40500 46065 148969 24310 46010 97645 102920 50193 115752 142125 82040 29988 170384 90616
17.2 31.7 36.7 35.2 35.3 24.7 32.4 11.1 31.1 11 10.7 33.1 33.2 11.7 31.2 37.5 28 12.6 36.8 24.1

Вот с массивом )))

// PascalABC.NET 3.2, сборка 1356 от 04.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadArrReal('Площади:',20);
  var u:=ReadArrReal('Урожай:',20);
  var q:=s.Zip(u,(x,y)->y/x).ToArray; q.Println
end.
(150k баллов)
0 голосов

Примечание: Ввод данных рандомный, но в скобках { } представлен альтернативный вариант ввода с клавиатуры. 
Также порядок ввода здесь по районам, но при желании можно изменить на ввод по массивам.

А) без использования дополнительного третьего массива

const n=20;
var
  a,b: array[1..n] of integer;
  sa: real;
  i: byte;
begin
  randomize;
  sa:=0;
  for i:=1 to n do begin;
    writeln ('Район № ',i);
    {write ('Площадь пшеницы: ');
    readln (a[i]);
    write ('Собрано пшеницы: ');
    readln (b[i]);}
    a[i]:=random(50,100); 
    b[i]:=random(500,1000);
    writeln ('Площадь пшеницы: ',a[i],' га');
    writeln ('Собрано пшеницы: ',b[i],' т');
    writeln ('Средняя урожайность: ',b[i]/a[i]:6:2,' т/га');
    writeln;
    sa:=sa+b[i]/a[i];
  end;
  sa:=sa/n;
  writeln;
  writeln ('Средняя урожайность по области = ',sa:6:2,' т/га');
  writeln;
  writeln ('Массив 1:');
  println (a);
  writeln ('Массив 2:');
  println (b);
end.
--------------------------------------------------
Результат работы для N=2
Район № 1
Площадь пшеницы: 98 га
Собрано пшеницы: 815 т
Средняя урожайность:   8.32 т/га

Район № 2
Площадь пшеницы: 63 га
Собрано пшеницы: 583 т
Средняя урожайность:   9.25 т/га

Средняя урожайность по области =   8.79 т/га

Массив 1:
98 63
Массив 2:
815 583
______________________________________________________

В) с использованием дополнительного массива 

const n=20;
var
  a,b,c: array[1..n] of real;
  sa: real;
  i: byte;
begin
  randomize;
  sa:=0;
  for i:=1 to n do begin;
    writeln ('Район № ',i);
    {write ('Площадь пшеницы: '); readln (a[i]);
    write ('Собрано пшеницы: '); readln (b[i]);}
    a[i]:=random(50,100); 
    b[i]:=random(500,1000);
    writeln ('Площадь пшеницы: ',a[i],' га');
    writeln ('Собрано пшеницы: ',b[i],' т');    
    c[i]:=b[i]/a[i];
    writeln ('Средняя урожайность: ',c[i]:6:2,' т/га');
    sa:=sa+c[i];
  end;  
  sa:=sa/n;
  writeln;
  writeln ('Средняя урожайность по области = ',sa:6:2,' т/га');
  writeln;
  writeln ('Массив 1:');
  println (a);
  writeln ('Массив 2:');
  println (b);
  writeln ('Массив 3:');
  println (c)
end.
--------------------------------------------------
Результат работы для N=2
Район № 1
Площадь пшеницы: 97 га
Собрано пшеницы: 891 т
Средняя урожайность:   9.19 т/га
Район № 2
Площадь пшеницы: 87 га
Собрано пшеницы: 945 т
Средняя урожайность:  10.86 т/га

Средняя урожайность по области =  10.02 т/га

Массив 1:
97 87
Массив 2:
891 945
Массив 3:
9.18556701030928 10.8620689655172

(3.5k баллов)