program ArrayProcessing;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
SIZE = 10; // размер массива
type
TArr = array[1..SIZE] of Integer;
procedure print_arr(x: TArr);
var
i: Integer;
begin
Writeln('Original array:');
for i := 1 to SIZE do
Write(x[i], ' ');
Writeln;
Writeln;
end;
procedure initialize_arr(var x: TArr);
var
i: Integer;
begin
for i := 1 to SIZE do
x[i] := Random(101) - 50;
print_arr(x);
end;
procedure indexNegative(x: TArr);
var
i: Integer;
firstNegativeIndex: Integer;
hasNegative: Boolean;
begin
firstNegativeIndex := -1; // отрицательный элемент не найден
hasNegative := False;
for i := 1 to SIZE do
begin
if x[i] < 0 then
begin
firstNegativeIndex := i;
hasNegative := True;
Break; // выходим из цикла после нахождения первого отрицательного
end;
end;
if hasNegative then
Writeln('Index of the first negative element: ', firstNegativeIndex)
else
Writeln('No negative elements found');
Writeln;
end;
function sumEven(x: TArr): Integer;
var
i: Integer;
evenSum: Integer;
begin
evenSum := 0;
for i := 1 to SIZE do
begin
if x[i] mod 2 = 0 then // проверка на чётность
evenSum := evenSum + x[i];
end;
sumEven := evenSum;
end;
procedure sortArr(var x: TArr);
var
i, j, temp: Integer;
begin
for i := 1 to SIZE - 1 do
begin
for j := 1 to SIZE - i do
begin
if x[j] > x[j + 1] then
begin
// обмен элементов
temp := x[j];
x[j] := x[j + 1];
x[j + 1] := temp;
end;
end;
end;
for i := 1 to SIZE do
Write(x[i], ' ');
Writeln;
Writeln;
end;
procedure replaceZero(var x: TArr);
var
i: Integer;
begin
for i := 1 to SIZE do
begin
if x[i] = 0 then
x[i] := 100;
Write(x[i], ' ');
end;
Writeln;
end;
var
arr: TArr;
i: Integer;
begin
Randomize; // инициализация генератора случайных чисел
// 1. заполнение массива случайными значениями от −50 до 50 и вывод на экран
initialize_arr(arr);
// 2. поиск индекса первого отрицательного элемента
indexNegative(arr);
// 3. вычисление суммы всех чётных элементов массива
Writeln('Sum of all even elements: ', sumEven(arr));
Writeln;
// 4. сортировка массива по возрастанию методом «пузырька»
Writeln('Array after sorting in ascending order:');
sortArr(arr);
// 5. замена всех нулевых элементов на 100 и вывод изменённого массива
Writeln('Array after replacing zero elements with 100:');
replaceZero(arr);
Readln;
end.