- •«Вычислительная техника и программирование»
- •0702 «Прикладная физика»
- •Тема 1. Основы алгоритмизации
- •В вод / Вывод данных Блок вычислений
- •Задания для практических занятий
- •Тема 2. Язык программирования
- •Вопросы для практических занятий
- •Тема 3. Интегрированная система программирования Turbo Pascal
- •Задания для практических занятий
- •Тема 4. Элементы алгоритмического языка Pascal
- •Вопросы и задания для практических занятий
- •Тема 5: Структура программы
- •Задания для практических занятий
- •Раздел 6.1 Линейная алгоритмическая структура
- •Задания к практическим занятиям
- •Раздел 6.2 Алгоритмическая структура – ветвления
- •Где If, then, else – зарезервированные слова
- •Задания к практическим занятиям
- •Задания для практических занятий
- •Раздел 6.3 Алгоритмическая структура - циклы
- •Оператор цикла с постусловием Repeat . . . Until
- •Задание для практических занятий
- •Тема 7. Структурированные типы данных
- •7.1 Массивы
- •Двумерный массив (матрица)
- •Задания для практических занятий
- •7.2 Множества
- •Задания и вопросы к практическим
- •7.3 Записи
- •Вопросы к практическим занятиям
- •Задание к практическим занятиям
- •Задания к практическим занятиям
- •Тема 8. Строки
- •Задания к практическим занятиям
- •Тема 9. Подпрограммы (Процедуры. Функции)
- •Пример:
- •Задания к практическим занятиям
- •Тема 10. Графика
- •В tp принята следующая система координат графического режима.
- •Задание к практическим занятиям
- •Меры длины
- •Линии и точки
- •Процедура SetLineStyle. Устанавливает новый стиль вычерчиваемых линий.
- •Список литературы
- •Пособие для изучения дисциплины «Вычислительная техника и программирование»
- •Специальности 6.070200 «радиофизика и электроника»
Тема 9. Подпрограммы (Процедуры. Функции)
Части программы, предназначенные для решения отдельных задач, организуются в подпрограммы - инструмент, с помощью которого любая программа может быть разбита на ряд в известной степени независимых друг от друга частей.
В Паскале определяют два типа подпрограмм – процедуры и функции. Любая подпрограмма обладает той же структурой, которой обладает и вся программа.
Основное, не формальное различие между процедурой и функцией состоит в том, что процедура только выполняет какую – либо последовательность действий, не возращая результат работы в основною программу, а функция и выполняет действие и возвращает результат. Например, вызов функции M:=MIN(X,Y) вернет в основную программу значение наименьшего из двух чисел и это значение будет присвоено переменной М.
Описание подпрограммы состоит из заголовка и тела подпрогаммы.
Заголовок процедуры имеет вид:
PROCEDURE < имя > [ (< сп.ф.п.>)];
Заголовок функции :
FUNCTION < имя > [ (< сп.ф.п.>)]: <тип>;
Где < имя > - имя подпрограммы – правильный идентификатор;
< сп.ф.п.> - список формальных параметров;
<тип> - тип, возвращаемого функцией результата.
Описание подпрограммы - функции располагается в разделе описаний программы, другой подпрограммы или модуля и начинается с заголовка:
FUNCTION name of function (arguments_list): type_of_result
После списка имен параметров следует двоеточие и идентификатор их типа. Если имеется несколько групп параметров разного типа, указывается тип для каждой группы. Список параметров может отсутствовать.
Внутренняя структура функции аналогична структуре программы – сначала описания, а затем исполняемые операторы. Завершается подпрограмма-функция зарезервированным словом end, за которым следует символ «точка с запятой». В теле функции присутствует оператор присваивания, в левой части которого указано имя функции, а в правой находится выражение. Обращение к подпрограмме – функции производится путем указания ее имени в составе какого-либо выражения, например арифметического, если функция возвращает числовое значение.
Особенность функции в том, что результат ее выполнения – единственное значение, «носителем» которого является ее идентификатор. Допустимыми типами результата являются следующие:
все разновидности вещественного типа;
строковый тип;
скалярный тип (все разновидности целого типа, булев, символьный, перчисляемый тип, отрезок типа);
указатель.
Пример 1:
В Турбо-Паскале нет операции возведения в степень, однако с помощью встроенных функций Ln (x) и Exp (x) реализуем новую функцию, осуществляющую возведение любого вещественного числа в любую вещественную степень.
Var
X, y : real;
Function Power (a, b: real): real;
Begin {Power}
If a>0 then
Power: = exp (b * ln(a))
Else
if a<0 then
Power: =exp (b * ln (abs (a)))
Else
if b=0 then
Power:=1
Else
Power:=0
End {Power};
begin {main}
repeat
readln (x, y);
writeln (Power (x, y):12:10, power(x,-y):15:10);
until EOF
end {main}.
A, b –формальные параметры;
Х,у при вызове - фактические.
Процедура PROCEDURE < имя > [ (< сп.ф.п.>)];
начинается с зарезервированного слова PROCEDURE, за которым следует идентификатор имени процедуры, а далее в круглых скобках - список формальных параметров.
Досрочный выход из подпрограммы возможен только с помощью EXIT.
При вызове процедуры необходимо указать ее имя и в круглых скобках список фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами. Все формальные параметры можно разбить на 4 категории:
параметры – значения (эти параметры в основной программе подпрограммой не изменяются);
параметры – переменные (эти параметры подпрограмма может изменить в основной программе);
параметры – константы;
параметры – процедуры и парметры –функции.
Все переменные, которые использует подпрограмма, могут быть либо глобальными, т.е. объявленные в основной программе и доступные как программе, так и всем ее подпрограммам, либо локальные объявленные внутри подпрограммы и доступные только ей самой. Обмен информации между основной программой и подпрограммой может осуществляться только с помощью глобальных переменных.