Найти сумму тех элементов массива, которые больше десяти, и каждый элемент массива разделить на половину этой суммы. сумму, а также начальный и полученные массивы отпечатать. паскаль.с использованием подпрограмм: процедур и функций.

sirkoalbina sirkoalbina    1   13.07.2019 23:20    1

Ответы
HYPE111 HYPE111  03.10.2020 03:26
// PascalABC.NET 3.0, сборка 1128
function Sum(a:array of real):real;
begin
  Result:=0;
  foreach var x in a do
    if x>10 then Result+=x
end;

procedure Half(a:array of real);
begin
  var s:=Sum(a)/2;
  for var i:=0 to a.Length-1 do a[i]/=s
end;

procedure PrintRealArray(a:array of real);
begin
  foreach var x in a do Write(x:0:3,' ');
  Writeln
end;

begin
  var n:=ReadInteger('Количество элементов массива:');
  var P:=ArrRandomReal(n,0,20);
  Writeln('Исходный массив'); PrintRealArray(P);
  Half(P);
  Writeln('Результирующий массив'); PrintRealArray(P)
end.

Тестовое решение:
Количество элементов массива: 10
Исходный массив
2.835 3.159 11.777 19.562 1.392 8.941 15.501 14.392 7.945 12.443
Результирующий массив
0.077 0.086 0.320 0.531 0.038 0.243 0.421 0.391 0.216 0.338
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика