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

Помогите пожалуйста! Необходимо записать в паскале как можно проще для школьника. Срочно!!!

Дан массив. Сформировать три массива, включив в первый положительные чётные элементы массива, во второй - положительные нечётные, в третий - все остальные.
Sorbon Roibov
Sorbon Roibov
280
Школа уже не учится вроде или экзамен сдаёте :)
Что-то такое на память без проверки

Если дан массив mas

var

a[1..10] array of Integer = (0,-1,2,3,-4,5,-6,7,8,9);

a1[1..10] array of Integer;

a2[1..10] array of Integer;

a3[1..10] array of Integer;

ra1, ra2, ra3 : integer;

n : Integer;

begin

ra1:=0; ra2:=0; ra3:=0;

for n:=1 to 10 do

begin

if (a[n]>=0) and (a[n] mod 2 = 0) then

begin

Inc(ra1);

a1[ra1] := a[n];

end

else if (a[n]>=0) and (a[n] mod 2 = 1) then

begin

Inc(ra2);

a2[ra2] := a[n];

end

else

begin

Inc(ra3);

a3[ra3] := a[n];

end;

end;

end.
Евгений Буйвал
Евгений Буйвал
79 266
Лучший ответ
const N=20; {Длина массива}

var
Inp, {исходный массив}
Out1, {массив 1}
Out2, {массив 2}
Out3: {массив 3}
array[1..N] of Integer;

I, {переменная для цикла}
L1, L2, L3: Integer; {длина каждого из результирующих массивов}

begin
for I:=1 to N do
begin
Inp[I]:=0;
Out1[I]:=0; Out2[I]:=0; Out3[I]:=0;
end;
L1:=0; L2:=0; L3:=0;

{Заполняем массив Inp случайными числами}
for I:=1 to N do
Inp[I]:=Random(100)-50;

for I:=1 to N do
if (Inp[I]>=0) then
if not Odd(Inp[I]) then begin L1:=L1+1; Out1[L1]:=Inp[I]; end
else begin L2:=L2+1; Out2[L2]:=Inp[I]; end
else begin L3:=L3+1; Out3[L3]:=Inp[I]; end;

{Вывод массивов}
Write('Массив 1: ');
if L1=0 then Writeln('нет элементов! ') else
for I:=1 to L1 do Write(Out1[I]:3); Writeln;

Write('Массив 2: ');
if L2=0 then Writeln('нет элементов! ') else
for I:=1 to L2 do Write(Out2[I]:3); Writeln;

Write('Массив 3: ');
if L3=0 then Writeln('нет элементов! ') else
for I:=1 to L3 do Write(Out3[I]:3); Writeln;
end.

Программку не тестировал, тут набрал. Если нигде не ошибся, работать будет.
В паскале вроде бы нельзя делать динамические массивы.
Илья Литвинов
Илья Литвинов
1 552