Другие языки программирования и технологии

Помогите решить на ПАСКАЛЕ!Увеличить четные числа массива размера N,на исходное значение первого четного числа.

Один из вариантов ниже, с пояснениями.

program mass2;
const
n = 10; {кол-во элтов массива можно поменять}

var
mass1 : array[1..n] of integer;
i : integer; { счетчик }
a : integer; {первое четное число}
begin
randomize; {инициализируем генератор случ. чисел}
for i := 1 to n do
begin
mass1 := random(50); {заполняем случ. числами от 0 до 50}
write(mass1, ' '); {выводим рез для сравнения}
end;
a := 0; {обнуляем значение и если четных чисел не будет}
{то эл-ты масс не увеличатся}
i := 1;

repeat
if mass1 mod 2 = 0 then a := mass1;
i := i + 1; {как только нашли первое четное число}
until a <> 0; {a <> 0 выходим из цикла}

{далее в цикле увеличиваем каждое четное число на А}

i := 2;
repeat
mass1 := mass1 + a;
i := i + 2;
until i >= n;
{выводим результат для примера}
writeln;
for i := 1 to n do
write(mass1, ' ');

readln;
end.

Удачи.
El - Андрей Кобзарь
El - Андрей Кобзарь
1 683
Лучший ответ
Доброго времени суток.

Переменные объявлены и массив заполнен.

j := 1;
while A[j] mod 2 <> 0 do j := j + 1; {ищем первое четное число}
FstN := A[j]; {запомнили его}
for i:=j+1 to n do {от найденного до конца}
if A[ i ] mod 2 = 0 then A[ i ] := A[ i ] + FstN; {если четное - увеличим}

Если надо увеличить и первое четное число, то цикл будет for i:=j to n

Удачи!
Дидим Герсамия
Дидим Герсамия
59 612
tmp = mas[2];
for i:=2 to n do
begin
mas:=mas*tmp;
i:=i+1;
end;
AS
Artem Snegirev
829
Program for_olga;
var ch : array[byte] of integer; {тут как тебе надо количество элементов
i : integer;
BEGIN
for i:= 1 to N {тут твоё число} do
begin
if ch mod 2 = 0 then inc(ch, ch[1]);
end;
END.
Впринципе всё! Если что не будет работать, или вопросы будут, мне пиши!

Похожие вопросы