Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Подпрограммы

Та методики практичної психології, к.пс.н. Л.Б. Наугольник

 

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

Пусть некоторая последовательность команд встречается в программе несколько раз. В этом случае поступают так: отдельно пишется этот повторяющийся фрагмент, которому дается имя. Затем пишется основная программа, и в тех местах, где требуется подстановка заданного текста, просто указывается его имя.

В общем случае программа будет иметь следующую структуру:

Program имя; // заголовок программы

 

Uses …; описательная часть

Const…;

Type …;

Var …;

Описание подпрограмм;

 

Begin

… основной блок программы

Вызовы подпрограмм;

End.

 

В Турбо Паскале используется два вида подпрограмм: процедуры и функции.

 

Процедура – это особым образом оформленный фрагмент программы, имеющий собственное имя.

Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом. В результате вызова процедуры всегда меняется значение каких-то переменных в программе.

Функция – это подпрограмма, которая вычисляет некоторое значение, при этом в большинстве случаев в результате вычислений никакие переменные в программе не меняются. Вычисленное значение просто доставляется в точку вызова функции.

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

Для обмена информацией между основной программой и подпрограммами используются параметры вызова (формальные параметры).

 

Описание процедуры имеет следующую структуру:

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

Var …;

Begin

…операторы процедуры …;

End;

Формальные параметры – это описание переменных, которые будут использованы в процедуре. Описание параметров аналогично описанию переменных в секции Var основной программы. Единственное отличие, что ключевое слово Var иногда может отсутствовать. Слово Var ставиться тогда, когда в переменной будет содержаться результат работы процедуры.

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

Те данные, которые передаются из основной программы в подпрограмму при вызове подпрограммы, а также те переменные, в которые принимаются результаты из подпрограмм, называются фактическими параметрами.

Для параметров–переменных соответствующие фактические параметры могут быть представлены только переменными, а для параметров-значений фактические параметры могут быть представлены переменной, константой или произвольным выражением. При этом соответствующие фактические и формальные параметры должны быть одного типа.

 

Вызов процедуры имеет следующий синтаксис:

Имя (список фактических параметров);

 

Обращение к процедуре происходит следующим образом:

1. В тексте основной программы встретился вызов процедуры;

2. Ищется процедура с данным именем;

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

4. запускается процедура;

5. после завершения работы процедуры начинает выполняться оператор, следующий за оператором, вызвавшем данную процедуру.

 

Пример. Ввести числа a, b, c,,d. Поменять значения переменных a и d, b и c. Вывести результат.

 

Program obmen; Var a,b,c,d:byte;   Procedure swap (var x,y:byte); Var t: byte; Begin t:=x; x:=y; y:=t; End;   Begin Writeln (‘Введите 4 числа:’); Readln (a,b,c,d); Writeln (‘Исходный порядок:’); Writeln(a,b,c,d); Writeln (‘Результат:’); Swap (a,d); //вызов для a, d Swap (b,c); //вызов для b, c Writeln(a,b,c,d); Readln; End.

1. Написать процедуру вывода на экран 10 случайных чисел.

2. Написать процедуру заполнения массива 10 случайными числами.

3. Написать процедуру вывода на экран массива.

4. Написать процедуру вывода на экран строки в обратном порядке.

5. Написать процедуру вывода на экран матрицы 5х5


Функции

Функция – это подпрограмма, которая вычисляет некоторое значение, при этом в большинстве случаев в результате вычислений никакие переменные в программе не меняются. Вычисленное значение просто доставляется в точку вызова функции.

 

Описание функции имеет следующую структуру:

function Имя (список формальных параметров.):Тип;

Var …;

Begin

…операторы процедуры …;

Имя:=<результат>;

End;

 

Описание функции имеет следующие особенности:

1.В заголовке вместо слова Procedure слово function.

2. В заголовке указан тип значения, возвращаемого функцией в качестве результата.

3.В теле функции результат работы подпрограммы должен быть присвоен имени функции. Тип результата должен соответствовать типу функции.

 

Пример 1. Вычислить тангенс чисел от 0 до 100. Написать функцию для нахождения тангенса заданного числа.

Program func_tg;

Var i:byte;

 

Function tg (var x: real):real;

Begin

Tg:=sin(x)/cos(x);

End;

 

Begin

For i:= 1 to 100 do writeln(tg(i));

End.

 

<== предыдущая лекция | следующая лекция ==>
Проведення заняття | Кількість годин:2
Поделиться с друзьями:


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


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



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




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