fox-cab3444
?>

МНОГО ПАСКАЛЬ Напишите программу, которая выполняет "сжатие массива" – переставляет все нулевые элементы в конец массива. При этом все ненулевые элементы располагаются в начале массива в том же порядке. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данные Программа должна вывести в одну строчку все элементы получившегося массива, разделив их пробелами. Примеры входные данные 6 1 0 2 0 3 4 выходные данные 1 2 3 4 0 0

Информатика

Ответы

Anastasiya

Ничего не понял он прикольно

Galinagol559
11111100=1*2^{7}+1*2^{6}+1*2^{5}+1*2^{4}+1*2^{3}+1*2^{2}+0+0=128+64+32+16+8+4=252
11100111=1*2^{7}+1*2^{6}+1*2^{5}+0+0+1*2^{2}+1*2^{1}+1*2^{0}=128+64+32+4+2+1=231
1111100=1*2^{6}+1*2^{5}+1*2^{4}+1*2^{3}+1*2^{2}+0+0=64+32+16+8+4=124

383 191 95 47 23 11 5 2 1
1      1    1   1   1    1  1 0 1 -> 101111111

46688 23344 1167 583 291 145 72 36 18 9 4 2 1
0         0          1      1     1      1    0   0   0   1  0 0 1 -> 101000111100

968574 484287 242143 121071  60535 30267 15133 7566 3783 1891
0           1           1            1           1          1         1        0         1       1
945 472 236 118 59 29 14 7 3 1
1     0     0      0    1   1   0   1 1 1 -> 11101100011101111110
ea9824165833886
Const
  n = 10;

var
  a: array[1..n] of integer;
  i, p, q: integer;
  flag: boolean;

begin
  {1. Инициализируем массив}
  Randomize;
  Write('Элементы массива: ');
  for i := 1 to n do
  begin
    a[i] := Random(101) - 50;
    Write(a[i]:5)
  end;
  Writeln;
  {2. проверяем элементы массива на наличие отрицательных значений}
  flag := true;
  i := 1;
  {2.1 Ищем первое по порядку отрицательное }
  while flag and (i <= n) do
  begin
    flag := (a[i] >= 0);
    i := i + 1
  end;
  if flag then Writeln('В массиве нет отрицательных элементов')
  else begin
    p := i - 1;
    {2.1 Ищем последнее по порядку отрицательное }
    i := n;
    flag := true;
    while flag and (i > p) do
    begin
      flag := (a[i] >= 0);
      i := i - 1
    end;
    if flag then Writeln('В массиве один отрицательный элемент с номером ', p)
    else
      Writeln('Отрицательные элементы лежат в промежутко от ', p, ' до ', i + 1)
  end
end.

Тестовое решение:

Элементы массива:    17  -45  -29  -30   32  -12   29  -39   20    6
Отрицательные элементы лежат в промежутке от 2 до 8

const
  nm = 50;{максимальная длина массива}

var
  i, n, n2: integer;
  a: array[1..nm] of integer;
  flag: boolean;

begin
  { 1. Инициализация массива }
  Write('Введите количество элементов в массиве: ');
  Readln(n);
  Write('Введите элементы массива через пробел ');
  for i := 1 to n do Read(a[i]);
  { 2. Проверка симметричности массива }
  flag := true;
  i := 1;
  n2 := n div 2;
  while flag and (i <= n2) do
  begin
    flag := (a[i] = a[n - i + 1]);
    i := i + 1
  end;
  if flag then Writeln('Массив является симметричным')
  else Writeln('Массив не является симметричным')
end.

Тестовое решение:

Введите количество элементов в массиве: 8
Введите элементы массива через пробел 1 7 3 4 4 2 7 1
Массив не является симметричным

Введите количество элементов в массиве: 7
Введите элементы массива через пробел 8 4 9 1 9 4 8
Массив является симметричным

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

МНОГО ПАСКАЛЬ Напишите программу, которая выполняет "сжатие массива" – переставляет все нулевые элементы в конец массива. При этом все ненулевые элементы располагаются в начале массива в том же порядке. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данные Программа должна вывести в одну строчку все элементы получившегося массива, разделив их пробелами. Примеры входные данные 6 1 0 2 0 3 4 выходные данные 1 2 3 4 0 0
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

akopsiroyan
Galiaahmatova4447
igor8809337
omraleva
manimen345
oledrag7
dushechkin2
Tyukalova
det-skazka55
mila-vsv
Columbia777
rashad8985
mantseva
infosmolenskay
olesya-kwas