Есть ответ 👍

4. Дан целочисленный массив из 10 элементов. Отсортировать отрицательные по убыванию, положительные - по возрастанию, оставив отрицательные на местах, принадлежащих, отрицательным, а положительные - на местах, принадлежащих положительным. Вывести на экран исходный и полученный массивы, дополнительных массивов не использовать.

163
482
Посмотреть ответы 1

Ответы на вопрос:


Вот правильно отформатированный код. пока код не отформатирован, понять его сложно, поэтому программисты всегда сразу пишут код с необходимым форматированием. начинающим писать программы тоже необходимо всегда следовать этому же принципу. if (a[h,v]=0) or (a[h-1,v]< > 0) then eng+=1; if a[h,v]< > 0 then   if a[h-1,v]=0 then begin       a[h-1,v]: =a[h,v];       a[h,v]: =0;   end; наличие переменных вида a[h,v] позволяет сделать вывод, что фрагмент программы что-то делает с элементами двумерного массива "а". при этом, эдементы все время встречаются парами вида a[h,v] и a[h-1,v]. если a[h,v] - некий текущий элемент в строке h и столбце v, то a[h-1,v] - это элемент в предыдущей строке и том же столбце. для краткости будем называть элемент a[h,v] текущий, а элемент a[h-1,v] - предшествующий, предполагая просмотр по столбцам. теперь фрагмент программы можно заменить псевдокодом. если (текущий=0) или (предшествующий≠0) то eng+=1; (1) если текущий≠0 то (2)   если предшествующий=0 то (3)       предшествующий: =текущий; (4)       текущий: =0; (5) опреатор eng+=1 - более короткая запись оператора eng: =eng+1, допустимая только в версии pascalabc.net и пришедшая в него из языка c#. это действие обычно называют "плюс единичка в счетчик", подразумевая, что eng подсчитывает количество некоторых событий. в данном случае это событие - случай, когда или текущий элемент нулевой, или предшествующий ненулевой. сделаем псевдокод более компактным. если (текущий=0) или (предшествующий≠0) то (1)   добавим 1 в счетчик таких событий (2) если текущий≠0 то (3)   если предшествующий=0 то (4)       предшествующий: =текущий; текущий: =0; (5) условие (4) проверяется только если выполняется условие (3). это оптимизация кода, которая позволяет не проверять условие (4), если условие (3) не выполняется. такая оптимизация полезна только для старых компиляторов, а pascalabc.net умеет оптимизировать подобные вещи сам. для понимания алгоритма вопрос оптимизации несущественен, поэтому мы можем утверждать, что (5) выполнятнся только при одновременном наступлении (3) и (4). если (текущий=0) или (предшествующий≠0) то   добавим 1 в счетчик таких событий если (текущий≠0) и (предшествующий=0) то   предшествующий: =текущий; текущий: =0 в последней строке отметим, что предшествующий принимает значение текущий, а текуший обнуляется. но это происходит только если предшествующий был нулём, следовательно можно говорить об обмене значениями. если (текущий=0) или (предшествующий≠0) то   добавим 1 в счетчик таких событий если (текущий≠0) и (предшествующий=0) то   обменять значения предшествующего и текущего вот все, что делает фрагмент кода.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS