Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции




End.

Begin

Begin

Begin

Процедуры.

Число и тип формальных и фактических параметров должны совпадать с точность до их следования.

В программе все переменные делятся на глобальные и локальные.

Глобальные переменные – это те переменные, которые объявленные в описании основной части.

Локальные переменные – это те, которые объявлены в процедурах и функциях. Эти переменные помещаются в стек при вызове подпрограммы и убираются из него при возвращении в точку вызова. Таким образом, локальные переменные существуют только тогда, когда работает подпрограмма, появляются при вызове и исчезают при завершении работы.

 

Процедуры предназначены для выполнения некоторой последовательности действий. Любая процедура начинается с заголовка, который являются ее обязательной частью (в отличие от заголовка программы). Они состоят из служебного слова Procedure, за которым следует имя процедуры (которое выбирается пользователем в соответствии с правилами образования имен), а в круглых скобках – список формальных параметров (которые используются только в теле процедуры), в конце ставим точку с запятой. После заголовка могут идти те же разделы, что и в программе. Таким образом, общий вид будет следующим:

Procedure <имя> (список формальных параметров);

<описательная часть>

<тело процедуры>

end;

Часть заголовка со списком формальных параметров может отсутствовать.

Результат выполнения процедуры - это одно или несколько значений. Оно (или они) передается в основную программу как значения ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования.

Пример:

Составить программу, которая будет находить an, то есть n-ую степень числа а, где а и n-это это целые числа и n>0, вводимые с клавиатуры.

Решение:

Составим процедуру, которая вычисляет степень целого числа.

Procedure Degree(x, y: Integer; Var st: Longint);{заголовок процедуры}

Var i: Integer; {описанная часть}

Begin {тело процедуры}

st: =1;

For i:=I to y Do

st: =st*x;

End;

Первая строчка в описании – это заголовка. Служебное слово Procedure указывает на то, что именем Degree названа процедура. В скобках записан список формальных параметров, то есть перечислены переменные с указанием их тела. Будем передавать три параметра: первый параметр–основание, то есть число, которое надо возвести в степень, второй параметр–это степень, а третий – это результат. Поэтому первые два формальные параметра- это параметры-значения, а третий –это параметр-переменная и перед ним надо написать слово Var. Обозначим их x, y, и st, где st=xn. Все они описаны целым типом (x и y типом Integer, а st- Longint, так как степенная функция быстро возрастает).

После заголовка идет описательная часть. В нашем примере она состоит только из раздела переменных, где имеется одна переменная I (для работы с циклом).

Далее идет тело процедуры, оно начинается с служебного слова Begin и заканчивается служебным словом End, после которого ставим точку с запятой (в конце программы после последнего End ставим точку). Между этим словами могут быть использованы те же операторы, что и в основной программе. В данном случае вычисляется степень некоторого числа с помощью цикла For.

Вся программа для нашей задачи может иметь следующий вид:

Program Ex_28;

Var a,n: Integer;

s: Longint;

Procedure Degree(x, y: Integer; Var st: Longint);

Var i: integer;

st: =1;

For i:=I to y Do

st: =st*x;

End;

Writeln (′введите два числа′);

Readln (a, n);{ ввод с клавиатуры значений переменных a, n}

Degree (a, n, s); {обращение к процедуре}

Writeln (′Результат′, s); {вывод значения an}

Readln;

Процедура вызывается как оператор, состоящий из имени процедуры. В круглых скобках передаются фактические параметры. В нашем примере, фактические параметры a, n и s передают свои значения соответственно формальным параметрам x, y и st. После завершения работы процедуры переменные а и n имеют те же значения, что и при а s получает новое значение.

Передача параметров является очень важной для процедур и функций. Это процесс, благодаря которому передается информация.

Пуста a=3 и n=4.Когда в программе встречается оператор Degree (a, n, s), то ЭВМ выполняет следующие действия:

1)выделяет память для переменных, описанных в процедуре Degree;

2)присвоит формальным параметрам значения фактических: x:=a(x=3), y:=n(y=4), st:=s;

3)выполняет операторы процедуры, то есть найдет 34

полученное значение присвоит переменной s, а переменные a и n остаются прежними, после этого переходит к выполнению следующих действий программы в точке, то есть выполняются следующий оператор, стоящий за обращением процедуры.

 

Функции предназначены для того, чтобы вычислить только оно значение, поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом).

Второе отличие заключаются в заголовке функции. Он состоит из слова function, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. Остальное как в процедуре.

Кроме того: в теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой – ее значение. Иначе, значение не будет определено.

Таким образом, общий вид будет следующим:

Function <имя> (список формальных параметров):< тип результата>;

<описательная часть>




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 282; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.