- •1Основы алгоритмизации
- •1.1Этапы решения задач на эвм
- •1.2Алгоритм. Свойства алгоритмов
- •1.3 Алгоритмическая конструкция ветвления
- •1.4Алгоритмическая конструкция цикла
- •22. Программирование на Турбо Паскаль
- •2.1Основные конструкции языка Паскаль
- •2.1.1История создания языка.
- •2.1.2Программа на tp.
- •2.1.3 Простые типы данных.
- •2.1.4Константы, переменные и оператор присваивания.
- •2.1.5Операторы ввода/вывода.
- •2.2 Управляющие конструкции языка тп
- •2.2.1Безусловные конструкции.
- •2.2.2Условные конструкции.
- •2.2.3Циклические конструкции.
- •1. Цикл с предусловием.
- •Цикл с постусловием.
- •3. Цикл с параметром.
- •2.3Массивы
- •2.3.1Одномерные массивы
- •2.3.2Сортировка массивов.
- •2.3.3Двумерные массивы
- •2.4Процедуры и функции.
- •2.4.1Использование
- •2.4.2Формальные и фактические параметры
- •2.4.3Описание
- •2.4.4Вызов процедур и функций в основной программе
- •2.4.5Пример
- •2.5Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.
2.4Процедуры и функции.
2.4.1Использование
При решении сложных объемных задач часто целесообразно разбивать их на более простые. Метод последовательной детализации позволяет составить алгоритм из действий, которые, не являясь простыми, сами представляют собой достаточно самостоятельные алгоритмы. В этом случае говорят о вспомогательных алгоритмах или подпрограммах. Использование подпрограмм позволяет сделать основную программу более наглядной, понятной, а в случае, когда одна и та же последовательность команд встречается в программе несколько раз, даже более короткой и эффективной.
В языке Паскаль существует два вида подпрограмм: процедуры и функции, определяемые программистом. Процедурой называется именованная последовательность команд, реализующая некоторое действие. Функция отличается от процедуры тем, что она должна обязательно возвратить значение определенного типа.
Итак, процедуры и функции используются в тех случаях, когда:
Алгоритм или программа содержат одинаковые действия, различающиеся, возможно исходными данными;
Решаемая задача состоит из нескольких задач, меньших по объему и сложности;
Решением задачи занимается коллектив программистов.
2.4.2Формальные и фактические параметры
Процедуры и функции, используемые в программе, должны быть соответствующим образом описаны до первого их упоминания. Вызов процедуры или функции в разделе операторов производится по их имени.
Подпрограммы в языке Паскаль могут иметь параметры (значения, передаваемые в процедуру или функцию в качестве аргументов). При описании указываются так называемые формальные параметры (имена, под которыми будут фигурировать передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы в основной программе вместе с ее именем должны быть заданы все необходимые параметры в том порядке, в котором они находятся в описании. Значения, указываемые при вызове подпрограммы, называются фактическими параметрами.
Список параметров процедур содержит формальные параметры двух видов. Те, значения которых не возвращаются в программу, и параметры с возвращаемыми значениями.
Последние в списке отмечаются зарезервированным словом var.
2.4.3Описание
Формат описания процедуры:
Procedure <Имя процедуры> (<Список параметров с указанием типов>);
<Раздел описаний>
Begin
<Тело процедуры>
End;
Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы. Однако все описанные здесь переменные (и другие объекты) "видимы" лишь в этой процедуре. Они, также, как и имена формальных параметров здесь локальны. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для использования.
Легко заметить схожесть структуры программы целиком и любой из ее процедур. Действительно, ведь и процедура и основная программа реализуют некий алгоритм, просто процедура не дает решения всей задачи. Отличие в заголовке и в знаке после End.
Формат описания функции:
Function <Имя функции> (<Список параметров с указанием типов>): <Тип результата>;
<Раздел описаний>
Begin
<Тело функции>
End;
В теле функции обязательно должна быть хотя бы одна команда присваивания такого вида: <Имя функции>:=<Выражение>;
Указанное выражение должно приводить к значению того же типа, что и тип результата функции.