Задача на языке Pascal. Помогите пожалуйста через 8 часов мне сдавать ее!!!
Дан массив целых чисел, состоящий из 30 элементов. 1) Найти сумму отрицательных элементов. 2) Заменить первый отрицательный элемент нулем. 3) Удалить из него все элементы, первая цифра которых четная. 4) Вставить число k1 после всех элементов, больших заданного числа, а число k2 – перед всеми элементами, кратными 3 (k1 и k2 вводить с клавиатуры). 5) Перенести первые k элементов в конец, то есть: a[k=1], a[k+2], a[n], …, a[1], a[2],…,a[k].
По дате
По рейтингу
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
program Task(input, output);
var
A: array[1..30] of integer;
n, i, j, k, k1, k2, sum, flag: integer;
begin
{Ввод данных}
for i := 1 to 30 do
read(A[i]);
readln(k1, k2);
{1) Сумма отрицательных элементов}
sum := 0;
for i := 1 to 30 do
if A[i] < 0 then
sum := sum + A[i];
{2) Замена первого отрицательного элемента нулем}
flag := 0;
for i := 1 to 30 do
if A[i] < 0 then
begin
A[i] := 0;
flag := 1;
break;
end;
if flag = 0 then
writeln('Отрицательных элементов нет');
{3) Удаление элементов с четной первой цифрой}
i := 1;
j := 1;
while i <= 30 do
begin
if (A[i] div 10) mod 2 <> 0 then
begin
A[j] := A[i];
inc(j);
end;
inc(i);
end;
n := j - 1;
{4) Вставка чисел k1 и k2}
{4.1) k1 после всех элементов, больших заданного}
i := n;
while i >= 1 do
begin
if A[i] > k1 then
begin
for j := n + 1 downto i + 1 do
A[j] := A[j - 1];
A[i + 1] := k1;
inc(n);
break;
end;
dec(i);
end;
{4.2) k2 перед всеми элементами, кратными 3}
i := 1;
while i <= n do
begin
if A[i] mod 3 = 0 then
begin
for j := n + 1 downto i + 1 do
A[j] := A[j - 1];
A[i] := k2;
inc(n);
inc(i);
end;
inc(i);
end;
{5) Перенос первых k элементов в конец}
k := 1;
while k <= n do
begin
for j := n + 1 downto k + 1 do
A[j] := A[j - 1];
A[k] := A[n];
inc(k);
dec(n);
end;
{Вывод результата}
for i := 1 to n do
write(A[i], ' ');
end.
Определи, чему должна быть равна переменная k, чтобы цикл выполнился ровно 2 раза:
i := 5;
while (i > k) do begin
writeln(i, ' ');
i := i - 1;
end;
Chat GPT в помощь
Хз