Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на языке Pascal. Помогите пожалуйста через 8 часов мне сдавать ее!!!

Илья Бадмажапов Ученик (97), на голосовании 1 неделю назад
Дан массив целых чисел, состоящий из 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].
Голосование за лучший ответ
Max Morozov Мастер (1325) 1 месяц назад
 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.
Похожие вопросы