alinaLodygina
27.12.2020 02:07

Подсчитайте количество единичных элементов в целочисленном массиве с(n,m).массив заполнять вручную пропустил эту тему по болезни и ничего не понимаю теперь((

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
marijamz2016
21.07.2021 03:22

Номер 1

использовать Робот

алг

нач

нц пока сверху свободно

вверх

кц

нц пока сверху стена

закрасить

влево

кц

нц пока сверху не стена

влево

кц

нц пока сверху стена

закрасить

влево

кц

вверх

вправо

нц пока снизу стена

закрасить

вправо

кц

нц пока снизу не стена

вправо

кц

нц пока снизу стена

закрасить

вправо

кц

кон

Номер 2

использовать Робот

алг

нач

нц пока сверху стена

закрасить

влево

кц

вправо

нц пока сверху стена

если справа не свободно то

вправо

все

если справа свободно то

вправо

если сверху стена то

закрасить

все

все

кц

влево

нц пока снизу не стена

вниз

кц

нц пока слева не стена и снизу стена

закрасить

влево

кц

кон

0,0(0 оценок)
Ответ:
lglglglgl
22.06.2020 18:06

//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".

var

 a, b, c: array [1..100] of longint;

 i, min, n, j, t: longint;

begin

 //Читаем количество элементов в нашем массиве.

 readln(n);

 

 //Читаем массив.

 for i := 1 to n do read(a[i]);

 

 //Заполняем первую "половинку".

 for i := 1 to n div 2 do b[i] := a[i];

 

 //Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и

 //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.

 for i := n div 2 + 1 to n do c[i - n div 2] := a[i];

 

 //Теперь отсортируем первую "половинку" методом выбора. Идея этого метода

 //основывается на том, что мы ищем минимальный среди неотсортированных элемент,

 //а затем аем его с тем, который стоит сразу после отсортированных.

 for i := 1 to (n - 1) div 2 do

 begin

   min := i;

   for j := i + 1 to n div 2 do

     if b[min] > b[j] then

       min := j;

   if min <> i then begin

     t := b[i];

     b[i] := b[min];

     b[min] := t;

   end;

 end;

 

 //Затем вторую точно также, только стоит обратить внимание на сравнения.

 //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом

 //будет другим.

 for i := 1 to (n - 1) div 2 do

 begin

   min := i;

   for j := i + 1 to n div 2 do

     if c[min] < c[j] then

       min := j;

   if min <> i then begin

     t := c[i];

     c[i] := c[min];

     c[min] := t;

   end;

 end;

 

 //А теперь по очереди выводим готовые "половинки", не забывая ставить

 //пробел после вывода каждого элемента.

 for i := 1 to n div 2 do write(b[i], ' ');

 for i := 1 to n - n div 2 do write(c[i], ' ');

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота