Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
языки и методы программирования.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
45.19 Кб
Скачать

7. Базовые алгоритмические структуры. Реализация циклических алгоритмов. Примеры.

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

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

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

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

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

Цикл с постусловием Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until

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

8. Структурированные типы данных: массивы. Визуальные компоненты для работы с массивами. Методы сортировки данных в массиве. Оценка методов сортировки

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

В Турбо Паскале пять структуированных типов(массивы; строки; множества; записи; файлы). Массив — Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В языке Object Pascal можно создавать одномерные и многомерные массивы. Массивы делятся на статический тип и динамический тип. Статические массивы - это такие массивы, число элементов которых не изменяется в процессе выполнения программы. Динамические массивы, в свою очередь, имеют свойство изменять количество элементов на нужное пользователю. Описание типа массива задается следующим образом: <имя типа> = array [ <сп.инд.типов> ] of <тип>; Здесь <имя типа> - правильный идентификатор; array, of - зарезервированные слова {массив, из); <сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса.

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива TStringGrid - таблица строк(Additional)

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

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

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки.

Существует много методов сортировки элементов массива. Среди них:

- Пузырьковый

- Сортировка перемешиванием

- Сортировка вставками

И т.д.

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

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

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

for i = 2, 3, ..., n:

key := A[i]

j := i – 1

while j >= 1 and A[j] > key:

A[j + 1] := A[j]

j := j – 1

A[j + 1] := key