Функции в Паскале Подпрограммы в Паскале
Подпрограмма - автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В Паскале подпрограмма является частью основной программы, ее описание располагается между разделом var главной программы и ее программным блоком (первым begin). Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим. В Паскале различают два вида подпрограмм: процедуры (PROCEDURE) и функции (FUNCTION). Основное различие между ними заключается в том, что процедура получает в результате своей работы любое количество данных, а функция только одно значение.
Функция Это последовательность операторов, имеющая имя и результат Обрабатывает данные, предназначенные ей из главной программы, и затем возвращает полученный результат Функция называется с помощью указателя. Указатель- это имя функции, после которого в круглых скобках перечисляются аргументы функции.
Функции Pascal можно разделить на три группы: стандартные функции (abs(x), sqrt(x), sqr(x), sin(x), cos(x), и т.д.); функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную); библиотечные функции (стандартные библиотечные модули).
Структура функции Function ( ): ; const …; ….. Блок описания локальных переменных var … ; Begin имя:= выражение; End; В разделе операторов должен находится, хотя бы один оператор, присваивающий имени функции значение.
Объявление переменных Глобальные переменные - переменные, объявленные в основной программе, доступны всем операторам программы, а так же операторам процедур и функций. Локальные переменные - переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций
Пример: program primer1; var r, c, q : real; function inper (a: real; b: real) :real; var x,y: real; begin ; end; begin (основная программа) end. Глобальные переменные Локальные переменные
Вычисление функции Вычисление скорости свободного падения тела Вычисление n-й степени числа Примеры:
Вычисление функции program f1; var n,x: real; function fun(a:real):real; var y:real; begin y:=sqrt(a)+a; fun:=y; end; begin write('n='); readln(n); x:=fun(n); writeln('x=',x:4:2); end.
Вычисление скорости свободного падения тела program f2; var t,v: real; function fun(t:real):real; begin fun:=9.8*t; end; begin write('t='); readln(t); v:=fun(t); writeln('v=',v:5:3); end.
Вычисление n-й степени числа program f2; var n: integer; z,x: real; function step(a:integer;x:real):real; var y:real; i:integer; begin y:=1; for i:=1 to a do begin y:=y*x; step:=y; end; begin write('степень='); readln(n); write('x='); readln(x); z:=step(n, x); writeln('z=', z:4:2); end.
Задания: Рассчитать значение Рассчитать значение х= Написать программу свободного падения. выводящую таблицу скорости за первые 10 секунд с шагом 0,5 секунд. Рассчитать значение Рассчитать значение х= Написать программу вычисления площади круга. Для кругов с радиусами 5, 2, 1, 10, 4. Вычисление площади круга оформить в виде функции.
Вычисление площади круга var a,c:integer; b,r:real; function circle(r:real):real; begin circle:=pi*r*r; end; begin for c:=1 to 5 do begin write('vvod razmer ',c,' radiusa:'); readln(a); b:=circle(a); writeln('S=',b:4:2); end; end. ФУНКЦИЯФУНКЦИЯ
Вычисление функции program f1; uses Crt; var n,x,s: real; i:integer; function fun(a:real):real; var y:real; begin y:=sqrt(a)+a; fun:=y; end; begin s:=0; for i:=1 to 3 do begin write('n='); readln(n); x:=fun(n)/2; s:=s+x; end; writeln(s=',s:3:5); end. ФУНКЦИЯФУНКЦИЯ
Вычисление функции program f1; uses Crt; var n,x: real; i:integer; function fun(a:real):real; var y:real; begin y:=a+sin(a); fun:=y; end; begin s:=0; for i:=1 to 3 do begin write('n='); readln(n); x:=fun(n)/3; s:=s+x; end; writeln(s=',s:3:5); end. ФУНКЦИЯФУНКЦИЯ
Составить таблицу скорости свободного падения тела за первые 10 секунд с шагом 0,5 секунд program f2; var t,v: real; n:integer; function fun(t:real):real; begin fun:=9.8*t; end; begin n:=1; while n
Домашнее задание 1. Составить программу для вычисления суммы членов геометрической прогрессии. 2. Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. 3. Даны координаты точек прямоугольника. Определить, является ли он квадратом, ромбом, трапецией или параллелограммом, и вычислить, исходя из этого, площадь фигуры. 4. Найти все простые числа из заданного интервала натуральных чисел [N1, N2].