Удаление элементов в одномерном массиве, Задача в паскале: создать одномерный...

0 голосов
52 просмотров

Удаление элементов в одномерном массиве, Задача в паскале: создать одномерный массив,содержащий целые числа.Удалить все нечётные элементы массива. Сделать с процедурой


Информатика (153 баллов) | 52 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
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

(142k баллов)
0 голосов

Const
  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.

(13.3k баллов)