Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Подпрограммы.
Важным принципом современного программирования является принцип модульности. В модульной программе отдельные её части, предназначенные для решения каких-то частных задач, организованы в подпрограммы. В такой организации есть два больших преимущества. Во-первых, один и тот же фрагмент можно использовать многократно как в одной, так и в разных программах, не набирая его текст заново. Во-вторых, программы лучше писать небольшими частями. Т.е. одну большую задачу рекомендуют разбивать на ряд подзадач, и для решения каждой подзадачи описывают отдельную подпрограмму. Такие программы легче читать, тестировать и отлаживать. У них, как правило, более четкая логическая структура. Таким образом, подпрограмма – это отдельно записанная часть операторов, которая может вызываться из данной или другой программы необходимое количество раз. Любая подпрограмма – это по сути дела отдельная самостоятельная программа, которая имеет все необходимые атрибуты: имя, раздел описаний, тело и т.д. В языке Паскаль принцип модульности обеспечивается использованием подпрограмм-функций, подпрограмм-процедур и модулей.
Подпрограммы-функции.
Описание подпрограммы-функции должно находится в разделе описаний программы. Стандартный вид описания функции: function идентификатор ( список параметров ): тип; Begin тело функции; End;
Здесь зарезервированное слово function показывает, что далее следует описание функции. Идентификатор осуществляет именование функции. Список параметров – это список переменных, используемых для передачи данных в подпрограмму-функцию. Тип – это тип значения, носителем которого является идентификатор функции. Это значение, которое будет возвращать функция. Внутренняя структура функции аналогична структуре программы, т.е. сначала идет раздел описаний (uses, type, const, var), а затем тело функции (begin…end). В теле функции должен обязательно присутствовать оператор присваивания в левой части которого находится имя функции, а в правой выражение. Этот оператор осуществляет возврат из функции в основную программу. Все операторы, которые располагаются после этого оператора присваивания не выполняются! Следует обратить внимание, что функция возвращает единственное значение, носителем которого является имя функции! Обращение к подпрограмме-функции производится просто путем указания имени функции в составе какого-либо выражения (например: оператора присваивания или логического условия). Рассмотрим пример: составить программу для вычисления выражения: z=axn+bxa+cym, где a, x, n, b, c, y, m – целые числа. Вычисление степени оформить в виде функции. Uses Crt; Function step (k, s: Word): Word; Var i, f: word; Begin f: =1; for i: =1 to s do f: =f*k; step: =f; end; Var z, a, b, c, n, m, y, x: Word; Begin Write (‘Введите числа a, b, c, n, m, y, x: ’); Readln (a, b, c, n, m, y, x); z: =a*step(x, n)+b*step(x, a)+c*step(y, m); Writeln (‘z=’, z); End.
результат выполнения программы:
Введите числа a, b, c, n, m, y, x: 2 1 1 2 3 2 2 z=20
|