
- •Лекция 1. Понятие алгоритма. Свойства алгоритма
- •Лекция 2. Способы описания алгоритмов
- •Лекция 3. Типовые алгоритмы программ
- •Лекция 4. Принципы разработки схем алгоритмов программ
- •Лекция 5. Эволюция языков программирования Классификация языков программирования. Понятие системы программирования.
- •Лекция 6.
- •Структура программы. Назначение функции main. Объявление функции main. Назначение заголовочных файлов
- •Лекция 7. Переменные и данные. Основные типы данных. Объявление переменных. Инструкции присваивания
- •Лекция 8. Функции ввода-вывода Форматированный вывод на экран
- •Лекция 9. Стандартные математические функции
- •Лекция 10. Алгоритм и программы линейной структуры
- •Лекция 11.
- •Лекция 12. Ветвления
- •If (выражение) оператор;
- •Лекция 13. Оператор выбора (переключатель).
- •Циклы Лекция 14.
- •Лекция 15.
- •Массивы Лекция 16.
- •Лекция 17. Сортировка массивов.
- •Лекция 18. Многомерные массив.
- •Лекция 19. Указатели и ссылки.
- •Лекция 20. Указатели и массивы.
- •Лекция 21. Символы и символьные строки
- •Лекция 22. Графика
- •Лекция 23. Использование функций графических примитивов, работы с текстом в графическом режиме.
- •Функции Лекция 24.
- •Лекция 25. Прототип функции.
- •Лекция 26. Передача значений через глобальные переменные.
- •Лекция 29. Объединение.
- •Лекция 30 Файлы
- •Лекция 31. Работа с файлами на диске.
Лекция 4. Принципы разработки схем алгоритмов программ
В теории алгоритмов известно понятие вспомогательного алгоритма. Вспомогательным называется алгоритм решения некоторой подзадачи из основной решаемой задачи. В таком случае алгоритм решения исходной задачи называется основным алгоритмом.
В
качестве примера рассмотрим следующую
задачу: требуется составить
алгоритм вычисления степенной функции
с целым показателем
у
=
хк,
где
к
—
целое число, х
0.
В алгебре такая функция
определена следующим образом:
п
ри
n=0
при n<0
при n>0
Для данной задачи в качестве подзадачи можно рассматривать возведение числа в целую положительную степень.
Учитывая,
что
,
запишем основной алгоритм решения
этой задачи.
алг Степенная функция
цел n; вещ х,у
нач ввод х,n
если n=0
то у:=1
иначе если n>0
то СТЕПЕНЬ (х,n, у )
иначе СТЕПЕНЬ(1/х,-n,у)
кв
кв
вывод у
кон
Здесь дважды присутствует команда обращения к вспомогательному алгоритму с именем степень. Это алгоритм возведения вещественного основания в целую положительную степень путем его многократного перемножения. Величины, стоящие в скобках в команде обращения к вспомогательному алгоритму, называются фактическими параметрами.
В учебном алгоритмическом языке вспомогательные алгоритмы оформляются в виде процедур. Запишем процедуру степень.
процедура СТЕПЕНЬ(вещ а,цел к,вещ z)
цел i
нач z:=l; i:=l
пока
i
k,
повторять
нц z:=z*a i:=i+l
кц кон
Заголовок вспомогательного алгоритма начинается со слова «процедура», после которого следует имя процедуры и в скобках — список формальных параметров. В этом списке перечисляются переменные-аргументы и переменные-результаты с указанием их типов. Здесь а и к — формальные параметры-аргументы, z — параметр-результат. Следовательно, процедура степень производит вычисления по формуле z = ak. В основном алгоритме «Степенная функция» обращение к процедуре производится путем указания ее имени с последующим в скобках списком фактических параметров. Между формальными и фактическими параметрами процедуры должны выполняться следующие правила соответствия:
по количеству (сколько формальных, столько и фактических параметров);
по последовательности (первому формальному соответствует первый фактический параметр, второму — второй и т.д.);
по типам (типы соответствующих формальных и фактических параметров должны совпадать).
Фактические параметры-аргументы могут быть выражениями соответствующего типа.
Обращение к процедуре инициирует следующие действия:
Значения параметров-аргументов присваиваются соответствующим формальным параметрам.
Выполняется тело процедуры (команды внутри процедуры).
Значение результата передается соответствующему фактическому параметру, и происходит переход к выполнению следующей команды основного алгоритма.
В процедуре степень нет команд ввода исходных данных и вывода результатов. Здесь присваивание начальных значений аргументам (а, п) производится через передачу параметров-аргументов. А присваивание результата переменной (у) происходит через передачу параметра-результата (z). Таким образом, передача значений параметров процедур — это третий способ присваивания (наряду с командой присваивания и командой ввода).
Использование процедур позволяет строить сложные алгоритмы методом последовательной детализации.