Удаление элементов в одномерном массиве, в паскале: создать одномерный массив,содержащий целые числа.удалить все нечётные элементы массива. сделать с процедурой
var a: array[1..MAX_SIZE] of integer; i, size: integer;
procedure delete_odd_elements(); var i, j: integer; begin i := 1; repeat if odd(a[i]) then begin dec(size); for j := i to size do a[j] := a[j + 1] end else inc(i); until i > size; end;
begin writeln('Исходный массив: '); size := MAX_SIZE; for i := 1 to size do begin a[i] := random(100); write(a[i] : 3); end; delete_odd_elements; writeln; writeln('Полученный массив: '); for i := 1 to size do write(a[i] : 3); end.
MAX_SIZE = 10;
var
a: array[1..MAX_SIZE] of integer;
i, size: integer;
procedure delete_odd_elements();
var i, j: integer;
begin
i := 1;
repeat
if odd(a[i]) then
begin
dec(size);
for j := i to size do
a[j] := a[j + 1]
end
else inc(i);
until i > size;
end;
begin
writeln('Исходный массив: ');
size := MAX_SIZE;
for i := 1 to size do
begin
a[i] := random(100);
write(a[i] : 3);
end;
delete_odd_elements;
writeln;
writeln('Полученный массив: ');
for i := 1 to size do
write(a[i] : 3);
end.
procedure DeleteOdd(var a:array of integer);
begin
a:=a.Where(x->not Odd(x)).ToArray
end;
begin
var a:=ArrRandom(ReadInteger('n='),1,100); a.Println;
DeleteOdd(a); a.Println
end.
Тестовое решение:
n= 10
56 47 35 2 39 83 20 68 1 38
56 2 20 68 38