
- •1. Осн. Прин. Объектно-ориентир. Программ-я: абстрагирование, виды абстракций, ограничение доступа, модульность, иерархия, типизация, инкапсуляция, наследование, полиморфизм.
- •2. Объектно-ориентированное программирование. Состав проекта. Структура программы.
- •7. Базовые алгоритмические структуры. Реализация циклических алгоритмов. Примеры.
- •8. Структурированные типы данных: массивы. Визуальные компоненты для работы с массивами. Методы сортировки данных в массиве. Оценка методов сортировки
- •9. Функции и процедуры. Механизм передачи и действия параметров. Примеры. Рекурсия.
- •10. Средства языка программирования для работы с файлами. Виды файлов
- •11. Графические возможности языка программирования.
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