- •Введение
- •1. Общие положения
- •1.1. Понятие алгоритма. Данные в задачах и алгоритмах
- •1.2. Понятие о технологии разработки программ. Принципы и этапы разработки программ
- •1.3. Состав документации по отдельным этапам
- •1. Задача
- •9. Структурные тесты
- •1.4. Нисходящая разработка и нисходящая отладка
- •2. Процесс разработки программы на примере решения типовой задачи
- •2.1. Разработка алгоритма и программы уровня 0 с заглушками
- •2. Входные данные
- •3. Выходные данные
- •5. Функциональные тесты
- •6. Метод
- •7. Алгоритм
- •8. Программа на паскале. Диалоговый вариант
- •9. Структурные тесты
- •2.2. Отладка программы с заглушкой
- •2.3. Общая схема перехода от метода к алгоритму решения
- •2.4. Разработка алгоритма и программы для примера
- •2. Входные данные
- •5. Функциональные тесты
- •6. Метод
- •7. Алгоритм
- •8. Программа на паскале
- •9. Структурные тесты
- •2.5. Отладка полной программы
- •2.6. Список заданий
- •3. Организация хранения данных с позиций эффективности отладки и использования программы
- •3.1. Как лучше хранить, вводить и выводить данные
- •3.2. Использование текстовых файлов для хранения входных и выходных данных
- •3.3. Использование параметров в Паскаль-программах
- •3.4. Задание
- •4. Некоторые методы решения типовых задач
- •4.1. Поиск экстремальных значений (максимума, минимума) в одномерном массиве
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.2. Поиск элемента, удовлетворяющего заданному условию
- •2. Входные данные
- •6. Метод
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.3. Задача со сложной логикой
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.4. Упорядочение одномерного массива
- •3. Выходные данные
- •6_А. Метод включения
- •6_Б. Метод пузырька
- •4.5. Список заданий
- •5. Работа с двумерными массивами (матрицами)
- •5.1. Схема обработки матриц
- •5.2. Ввод и вывод матрицы
- •5.3. Пример решения задачи
- •3. Выходные данные
- •6. Метод
- •5.4. Список заданий
- •6. Оформление алгоритмов в виде процедур
- •6.1. Основные положения
- •6.2. Кодирование процедур на языке Паскаль
- •6.3. Специфика оформления процедур ввода – вывода
- •6.4. Рекомендации по оформлению процедур
- •6.5. Примеры разработки процедур
- •3. Выходные данные
- •6. Метод
- •3 Истина, если все элементы строки больше 1, ложь, в противном случае . Выходные данные
- •7. Описание процедуры
- •8. Кодирование на паскале
- •9. Структурные тесты
- •2. Входные данные
- •3. Выходные данные
- •4. Аномалии не рассматриваем
- •6. Метод
- •7. Алгоритм
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •8. Кодирование на паскале
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •8. Кодирование на паскале
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •7. Описание процедуры
- •8. Кодирование на Паскале
- •6.6. Список заданий
- •7. Внешние модули (unit) в турбо-Паскале
- •7.1. Суть и описание модуля
- •7.2. Связь модуля с другими модулями и главной программой. Область действия описаний объектов
- •7.3. Специфика оформления процедур ввода – вывода в модулях
- •7.4. Примеры оформления процедур во внешних модулях
- •7.5. Задания
- •7.6. Обработка многомодульных программ в среде турбо-Паскаль
- •8. Контрольные вопросы к главе 1
- •К главе 2
- •К главе 3
- •К главе 6
- •К главе 7
- •Заключение
- •Литература
- •Приложение 1. Базовые структуры алгоритмов
- •Приложение 2. Простые типы в Паскале
- •Приложение 3. Структура типов данных в языке Паскаль
- •Содержание
2. Входные данные
цел n- число элементов массива; простая переменная; ...
цел а- заданный одномерный массив; .....
3. Выходные данные
цел km– искомый номер; ....
4. Аномалиине рассматриваем
5. Функциональные тестысоставить самостоятельно. Предусмотреть тесты для каждой из возможных ситуаций расположения элементов.
6. Метод
Пусть k1- номер первого элемента, удовлетворяющегос1,
истина, если такой элемент есть,
ложь, в противном случае.
лог р1=
истина, если такой элемент есть,
ложь, в противном случае.
лог р2=
Соотношениями значений этих переменных описываются все перечисленные ситуации.
Схема решения
Поиск значений p1иk1
Вх.: n,a;
вых.:p1,k1
A1
задача
типа
«Поиск
по условию»
Вх.: n,a;
вых.:p2,k2
Поиск значений p2иk2
A2
{сит.1} если p1&p2& (k1<=k2) то
Вх.: n,
a,
k1,
k2;
вых.: km
Поиск номера максимального элемента,
начиная с № k1до №k2,
c проверкой условия с1
A3
вывод (km) по обр4;
кесли;
{сит.2} если p1 & p2& (k1>k2) то
вывод по обр5;
кесли;
{сит.3} если p1& ¬p2то
Вх.: n,
a,
k1,
k2;
вых.: km
Поиск номера максимального элемента,
начиная с № k1до №k2,
c проверкой условия с1
A4
вывод (km) по обр6;
кесли;
{сит.4} если ¬p1&p2то
вывод по обр7;
кесли;
{сит.5} если ¬p1& ¬p2то
вывод по обр8;
кесли;
Замечание.Видно, что задачи А3 и А4 схожи по постановке (и даже совпадают). Тем не менее каждая из них должна быть представлена в программе, поэтому они имеют разные имена. Очевидно, для их решения будет использован один и тот же алгоритм, который будет записан дважды.
Далее такие «одинаковые» задачи мы будем оформлять в виде процедур, и тогда описание процедуры будет представлять собой обобщенный алгоритм решения, а две задачибудут решатьсядвумя вызовамиодной процедуры, т.е. А3 и А4 будут соответствовать отдельным вызовам одной процедуры. Не путать!
4.4. Упорядочение одномерного массива
Упорядочение, или сортировка,массива – размещение его элементов в заданном порядке: по убыванию или по возрастанию. Мы рассмотрим только так называемуювнутреннюю сортировку, когда обрабатываемый массив введен в оперативную память. Алгоритмывнешней сортировкипредназначены для сортировки файлов на внешнем устройстве и здесь не рассматриваются.
Приведены два базовых метода упорядочения:
включения, основанный на поиске максимума (или минимума);
пузырька, основанный на проверке условия упорядоченности.
Входной массив оставим тот же, что в предыдущих задачах.
1. Задача Order.Упорядочить в порядке убывания элементы одномерного массиваa[n].
Пример
Пусть n=5,a=(5 3 9 4 2).
Упорядоченный массив: a=(9 5 4 3 2).
2. Входные данные. Состав и входная форма те же, что в задачахExtrиCond_2.