Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_IGA.docx
Скачиваний:
29
Добавлен:
25.09.2019
Размер:
5.47 Mб
Скачать

109. Организация циклических процессов в языках высокого уровня (си или Pascal). Три типа операторов цикла.

Циклы в языке С.

Многократное повторение каких-либо действий (команд) называется циклом.

Алгоритм назыветсяциклическим, если он содержит один или несколько циклов.

Виды циклов:

Цикл с предусловием

Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В большинстве процедурных языков программирования реализуется оператором while, отсюда его второе название — while-цикл.

Цикл с предусловием

На языке Си:

while(<условие>)

{

<тело цикла>

}

Цикл с постусловием

Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Си — do…while.

На языке Си:

do

{

<тело цикла>

}

while(<условие>)

Цикл со счётчиком

Цикл со счётчиком — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В большинстве процедурных языков программирования реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик.

Неоднозначен вопрос о значении переменной по завершении цикла, в котором эта переменная использовалась как счётчик.

В некоторых языках, например, Си и других, произошедших от него, цикл for, несмотря на синтаксическую форму цикла со счётчиком, в действительности является циклом с предусловием. То есть в Си конструкция цикла:

for (i = 0; i < 10; ++i)

{

... тело цикла

}

  1. Алгоритм сортировки массивов. Метод установки.

Сортировка – это перестановка элементов в определенном порядке.

Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы различны, то надо говорить о неубывающем (или невозрастающем) порядке.

Это большая и сложная тема, в которой известно много различных алгоритмов. Критерии оценки эффективности этих алгоритмов могут включать следующие параметры:

количество шагов алгоритма, необходимых для упорядочения;

количество сравнений элементов;

количество перестановок, выполняемых при сортировке.

Сортировка методом установки. В методе установки на каждое место последовательно устанавливается, нужный элемент, каждый элемент последовательно сравнивается со всеми следующими элементами, при необходимости пара элементов меняется местами. В методе установки, число сравнений элементов зависит только от длины массива и не зависит от расположения элементов.

111. Алгоритмы сортировки массивов. Метод пузырька.

Сортировка простыми обменами, сортиро́вкапузырько́м— простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов.

Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.

Вход: массив A, состоящий из элементов A[1], A[2], ..., A[n-1], A[n]

t := истина

цикл пока t:

t := ложь

цикл для j = 1, 2, ..., n − 1:

если A[j] > A[j+1], то:

обменять местами элементы A[j] и A[j+1]

t := истина

Пример - Первый проход:

(5 1 4 2 8) (1 5 4 2 8), Здесь алгоритм сравнивает два первых элемента и меняет их местами.

(1 5 4 2 8) (1 4 5 2 8), Меняет местами, так как 5 > 4

(1 4 5 2 8) (1 4 2 5 8), Меняет местами, так как 5 > 2

(1 4 2 5 8) (1 4 2 5 8), Теперь, ввиду того, что элементы стоят на своих местах (8 > 5), алгоритм не меняет их местами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]