| Код | const CSize = 50;
type TArray = array [1..CSize] of real;
{-----------------------------------------------} {Процедура заполняет массив случайными числами} procedure Fill(var theArray: TArray; theSize: word); var i: word; begin randomize; for i := 1 to theSize do theArray[i] := random(1000) / 100 - 5; end; {-----------------------------------------------} {Процедура выводит все элементы массива} procedure Print(theArray: TArray; theSize: word); var i: word; begin for i := 1 to theSize do write(theArray[i]:2:4, ' '); end; {-----------------------------------------------} {Функция находит произведение всех положителльных элементов} function ProductOfNumbers(theArray: TArray; theSize: word): real; var i: word; result: real; begin result := 1; for i := 1 to theSize do if (theArray[i] > 0) then result := result * theArray[i]; ProductOfNumbers := result; end; {-----------------------------------------------} {Процедура копирует элементы с одного массива в другой, при этом делит все положительные элменты на заданное число} procedure CopyWithDivision(theArrayA: TArray; var theArrayY: TArray; theSize: word; theNumber: real); var i: word; begin for i := 1 to theSize do if (theArrayA[i] > 0) then theArrayY[i] := theArrayA[i] / theNumber else theArrayY[i] := theArrayA[i]; end; {-----------------------------------------------}
var a, y: TArray; n: word; product: real; begin write('input size array (max=', CSize, '): '); readln(n); if (n > CSize) then begin writeln('error: max < ', n); exit; end;
Fill(a, n); write('a: '); Print(a, n); writeln;
product := ProductOfNumbers(a, n); writeln('product=', product:2:4); CopyWithDivision(a, y, n, product); write('y: '); Print(y, n); end.
|
Бинарник с исходником ниже |