Читайте также:
|
|
В процедурном программировании основное внимание уделяется алгоритму, то есть некоторой заданной последовательности действий, выполнение которых приводит к получению результата вычислений. Структуризация алгоритмов привела к выделению отдельных блоков (подпрограмм).
Подпрограммы значительно облегчают программирование, за счет (а) избавления от необходимости многократно повторять в тексте программы аналогичные фрагменты; (б) улучшения структуры программы, облегчая ее понимание при разборе; (в) повышения устойчивости программы к ошибкам программирования и непредвиденным последствиям при модификациях.
Различают два вида подпрограмм - процедуры и функции.
Процедура – это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Процедура не может выступать как операнд в выражении. Упоминание в тексте имени процедуры приводит к её активизации и называется вызовом.
Функция – аналогично процедуре, с двумя отличиями: (1) функция передает в точку вызова скалярное значение, (2) имя функции может использоваться в выражении как операнд.
Подпрограммы в Pascal могут обращаться сами к себе. Такое обращение называется рекурсией.
Структура процедур и функций полностью повторяет структуру самой программы, кроме заголовка. Заголовки подпрограмм оформляются следующим образом:
Procedure <имя_процедуры> (<список формальных параметров>);
Function <имя_функции> (<список формальных параметров>): <тип результата>;
Все подпрограммы располагаются выше начала основной части программы (перед первым begin).
Рассмотрим примеры подпрограмм:
Задача: Организация ввода координат вектора. Вычислить длину вектора. Для начала определим список формальных параметров: входные и выходные данные. Нам потребуется Размерность векторного пространства (k: byte) и переменная х пользовательского типа vector=array[1..100] of real.
Для ввода координат будем использовать procedure, так как выходных данных будет много (его координаты), а так как длина вектора это число, поэтому используем function.
program pro;
type vector=array [1..100] of real;
var k: byte;
dl:real;
x: vector;
procedure vvod (var y:vector); {Процедура ввода вектора}
var i:byte;
begin
writeln('Введите координаты вектора');
for i:=1 to k do
readln(y[i]);
end;
function dlvec(y:vector):real; {Функция вычисления длины вектора}
var i:byte;
s:real;
begin
for i:=1 to k do
s:= s+ sqr(y[i]);
dlvec:= sqrt(s); {Обязательно в конце нужно имени функции присвоить вычисленное значение}
end;
begin
write(' Введите размерность векторного пространства k=');
readln(k);
vvod(x); {вызов процедуры}
dl:=dlvec(x); {вызов функции}
writeln('Длина вектора Х равна', dl: 8: 2);
end.
доходной и расходной части бюджета
Учебно-методическое пособие
для самостоятельной работы студентов
Чебоксары - 2010
ФИЛИАЛ ГОУ ВПО ВОЛГО-ВЯТСКОЙ АКАДЕМИИ ГОСУДАРСТВЕННОЙ СЛУЖБЫ
В Г. ЧЕБОКСАРЫ ЧУВАШСКОЙ РЕСПУБЛИКИ
кафедра экономики и финансов
планирование и прогнозирование
Дата добавления: 2014-12-19; просмотров: 46 | Поможем написать вашу работу | Нарушение авторских прав |