- •I. Теоретические сведения.
- •1.1. Вспомогательные алгоритмы.
- •1.2. Подпрограммы.
- •1.2.2. Формальные параметры подпрограммы. Две категории формальных параметров
- •1.2.4. Местоположение подпрограмм в тексте и вне текста программы.
- •2. Массив как статическая структура данных
- •Тестирование программ
- •4. Отладка программ
- •4.1. Нисходящая отладка программ (сверху вниз).
- •II. Контрольные вопросы.
- •III. Последовательность выполнения общего задания.
- •1. Постановка задачи
- •Иллюстрация для построения тестов
- •2. Входные данные
- •3. Выходные данные
- •4.Функциональные тесты
- •5. Схема решения задачи
- •IV. Последовательность выполнения индивидуального задания.
- •4. Функциональные тесты
- •5. Схема решения, алгоритм, программа
- •V. Требования к разработке программы.
- •VI. Требования к оформлению отчета.
1.2.4. Местоположение подпрограмм в тексте и вне текста программы.
1. Расположение подпрограммы внутри текста программы.
Подпрограммы могут располагаться в виде отдельного раздела внутри описательной части текста программы.
2. Размещение подпрограммы в файле.
Размещение подпрограммы возможно в отдельном текстовом файле, который может иметь расширение PAS или INC. В этом случае текст подпрограммы включается в текст программы директивой компилятора {$I имя файла}.
3. Размещение подпрограммы в библиотеке.
Подпрограмма может находиться в библиотеке в виде машинных кодов. Существует возможность для пользователя создавать собственные библиотеки. Тексты библиотек представляют собой программные единицы, называемые модулями. Модули после трансляции располагаются в файлах с расширением TPU.
2. Массив как статическая структура данных
Массив – это упорядоченная последовательность данных одного и того же типа, имеющая общее имя; доступ к элементам массива организуется при помощи индексов, которые могут быть любого порядкового типа. Индексы можно представлять себе как порядковые номера элементов в последовательности.
Массив как статическая структура обладает следующими свойствами:
-
она имеет описание, и обращение к ней возможно по имени;
-
память под нее выделяется на этапе компиляции;
-
объем памяти фиксирован и не меняется в процессе выполнения программы.
Массивы могут быть одномерными, двумерными и многомерными.
Одномерный массив – это массив, для получения доступа к элементам которого достаточно одной индексной переменной. Математическим представлением одномерного массива является вектор.
2.1. Линейный поиск в массивах данных.
В задачах на линейный поиск требуется найти в массиве данных элемент, группу элементов или фрагмент массива, которые отвечают заданным требованиям. В данном случае, как правило, нет необходимости сортировать массив или выделять дополнительные рабочие массивы того же порядка, что и заданный.
2.2. Способы сортировки в массивах данных.
Сортировкой информационной структуры (массива, списка, файла) называется преобразование исходной структуры путем перестановки ее элементов для достижения упорядоченности по заданному признаку порядка.
2.2.1. Признаки порядка.
Одномерный массив А (n) называется упорядоченным
по возрастанию, если для любого i = 2, 3, …, n ai > ai-1
по неубыванию, если для любого i = 2, 3, …, n ai ≥ ai-1
по убыванию, если для любого i = 2, 3, …, n ai < ai-1
по невозрастанию, если для любого i = 2, 3, …, n ai ≤ ai-1
2.2.2. Пузырьковая сортировка (попарные перестановки).
При пузырьковой сортировке многократно переставляются каждые два соседних элемента, нарушающие порядок; процесс завершается по достижении упорядоченности массива.
Алгоритм пузырьковой сортировки можно реализовать с помощью использования двух циклов с параметром (внешнего и вложенного), а также используя в качестве внешнего цикла цикл с постусловием с вложенным в него циклом с параметром.
2.2.3. Сортировка выбором.
При сортировке выбором каждый элемент меняется местами с минимальным или максимальным, в зависимости от признака порядка, среди следующих за ним, то есть используется метод:
ai’ = min(max){aj , j=i, i+1, …, n}, i=1, …, n-1
где n – размерность массива
2.2.4. Сортировка простыми вставками.
Чтобы упорядочить массив A(n) сортировкой простыми вставками используется следующий подход: для i = 2, 3, …, n каждый элемент ai переставляется в нужное место среди упорядоченных ранее элементов a1, a2, …, ai-1, раздвигая их за счет удаления ai.
2.3.Некоторые рекомендации при работе с массивом.
-
При объявлении массивов размерность задается константами, поэтому следует объявлять наиболее разумные размерности, а затем вводить переменные размерности и циклы организовывать уже с их использованием.
-
При обработке массивов рекомендуется использовать вывод на экран всего введенного массива в наглядной форме для визуального контроля правильности ввода и демонстрации соответствия результатов введенным данным.
-
Следует максимально ограничивать выделение дополнительных (рабочих) массивов той же размерности, что и обрабатываемые, а также искать эффективные по трудоемкости алгоритмы.
-
В задачах на анализ или поиск в заданном массиве не следует искажать массив в своих целях.
-
Если требуется найти фрагмент массива, обладающий каким-либо свойством (цепочку элементов), то следует в качестве результата показать не только сам фрагмент, но и его местоположение (индексы первого и последнего элементов фрагмента) в массиве.
-
В задачах на сортировку массивов следует наглядно показать, как изменился порядок следования элементов отсортированного массива по сравнению с исходным массивом, для чего допускается использование дополнительного массива индексов.
Понятие массив используется на уровне постановки задачи: задается или должно быть сформировано множество однотипных данных. При описании интерфейса как способа взаимодействия с будущей подпрограммой необходимо знать только перечень входных и выходных данных, их тип и способ размещения – входную и выходную формы.