Найти сумму тех элементов массива, которые больше десяти, и каждый элемент массива разделить на половину этой суммы. Сумму, а также начальный и полученные массивы отпечатать. Паскаль.С использованием подпрограмм: процедур и функций.
program SumAndDivideArrayElements; const SIZE = 10; type TArray = array[1..SIZE] of Integer; var arr: TArray; sum, i: Integer; procedure InputArray(var arr: TArray); var i: Integer; begin for i := 1 to SIZE do begin Write('Введите элемент массива ', i, ': '); Readln(arr[i]); end; end; function CalculateSum(arr: TArray): Integer; var i, sum: Integer; begin sum := 0; for i := 1 to SIZE do begin if arr[i] > 10 then sum := sum + arr[i]; end; CalculateSum := sum; end; procedure DivideElements(var arr: TArray; sum: Integer); var i: Integer; begin for i := 1 to SIZE do begin arr[i] := arr[i] / (sum / 2); end; end; procedure PrintArray(arr: TArray); var i: Integer; begin for i := 1 to SIZE do Write(arr[i]:4); Writeln; end; begin InputArray(arr); sum := CalculateSum(arr); Writeln('Исходный массив:'); PrintArray(arr); Writeln('Сумма элементов больше десяти: ', sum); DivideElements(arr, sum); Writeln('Массив после деления каждого элемента на половину суммы:'); PrintArray(arr); end.
После ввода всех элементов массива данный код найдет сумму элементов, которые больше 10, затем каждый элемент массива разделит на половину этой суммы и выведет исходный и измененный массивы.
Пример решения на Pascal:
program SumAndDivideArrayElements;const
SIZE = 10;
type
TArray = array[1..SIZE] of Integer;
var
arr: TArray;
sum, i: Integer;
procedure InputArray(var arr: TArray);
var
i: Integer;
begin
for i := 1 to SIZE do
begin
Write('Введите элемент массива ', i, ': ');
Readln(arr[i]);
end;
end;
function CalculateSum(arr: TArray): Integer;
var
i, sum: Integer;
begin
sum := 0;
for i := 1 to SIZE do
begin
if arr[i] > 10 then
sum := sum + arr[i];
end;
CalculateSum := sum;
end;
procedure DivideElements(var arr: TArray; sum: Integer);
var
i: Integer;
begin
for i := 1 to SIZE do
begin
arr[i] := arr[i] / (sum / 2);
end;
end;
procedure PrintArray(arr: TArray);
var
i: Integer;
begin
for i := 1 to SIZE do
Write(arr[i]:4);
Writeln;
end;
begin
InputArray(arr);
sum := CalculateSum(arr);
Writeln('Исходный массив:');
PrintArray(arr);
Writeln('Сумма элементов больше десяти: ', sum);
DivideElements(arr, sum);
Writeln('Массив после деления каждого элемента на половину суммы:');
PrintArray(arr);
end.
После ввода всех элементов массива данный код найдет сумму элементов, которые больше 10, затем каждый элемент массива разделит на половину этой суммы и выведет исходный и измененный массивы.