Просмотр содержимого документа
«Подпрограммы в Паскаль»
Подпрограммы в Паскале
Назначение
- При разработке программы иногда появляются повторяемые группы действий или возникает необходимость расчленить программу на функциональные модули , сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм.
- В Паскале подпрограмма является частью основной программы , ее описание располагается между разделом var главной программы и ее программным блоком (первым begin ). Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим.
Подпрограмма — это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.
Подпрограммы
функции
процедуры
В Паскале различают два вида подпрограмм: процедуры и функции . Основное различие между ними заключается в том, что процедура получает в результате своей работы любое количество данных, а функция — только одно значение.
Функция
- Это последовательность операторов, имеющая имя и результат
- Обрабатывает данные, предназначенные ей из главной программы, и затем возвращает полученный результат
- Функция называется с помощью указателя. Указатель - это имя функции , после которого в круглых скобках перечисляются аргументы функции.
Далее
Функции Pascal можно разделить на три группы:
- стандартные функции ( abs(x), sqrt(x), sqr(x), sin(x), cos(x), и т.д.);
- функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную);
- библиотечные функции (стандартные библиотечные модули).
Меню
( параметры ): тип результата ; const …; … .. var … ; Begin операторы имя:= выражение ; End; Блок описания локальных переменных В разделе операторов должен находится, хотя бы один оператор, присваивающий имени функции значение. Меню " width="640"
Структура функции
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:3:5);
readln;
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:3:5);
readln;
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;
end;
begin
write(‘степень='); readln(n);
write('x='); readln(x);
z:= step (n,x);
writeln('z=',z:3:5);
readln;
end.
Назад
Задания:
2. Рассчитать значение х=
3. Даны шесть различных чисел. Определить максимальное из них.
4.Написать программу свободного падения. выводящую таблицу скорости за первые 10 секунд с шагом 0,5 секунд
Меню
Диктант по теме: «Функции в Паскале»
- Какую подпрограмму можно назвать функцией?
- Объясните назначение локальных и глобальных переменных.
- Что такое указатель?
- Перечислите группы функций.
- Каким образом происходит обращение к функции?
меню
Задания для самостоятельной работы
- Составить программу для вычисления суммы членов геометрической прогрессии.
- Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей.
- Даны координаты точек прямоугольника. Определить, является ли он квадратом, ромбом, трапецией или параллелограммом, и вычислить, исходя из этого, площадь фигуры.
- Найти все простые числа из заданного интервала натуральных чисел [N1, N2] .
меню
Вычисление функции
program f1;
uses Crt;
var n,x ,s : real;
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);
readln;
end.
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) /3 ;
s:=s+x;
end;
writeln(‘ s =', s :3:5);
readln;
end.
program f1;
uses Crt;
var n,x: real;
i:integer;
function fun(a:real):real;
var y:real;
begin
y:=a+s in (a);
fun:=y;
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
write('t='); readln(t);
v:=fun(t);
writeln(‘t=‘;t'v=',v:3:5);
end;
readln;
end.
Ф
У
Н
К
Ц
И
я
Назад
Ответы на диктант «Функции в Паскале»
- Это последовательность операторов, имеющая имя и результат.
- Глобальные переменные - переменные, объявленные в основной программе, доступны всем операторам программы, а так же операторам процедур и функций. Локальные переменные - переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций .
- Это имя функции.
- Стандартные, функции программиста библиотечные .
- В основной программе указывается имя функции и аргумент
Процедура – это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий.
; end ; Вызов процедуры – это упоминание ее имени в тексте основной программы. " width="640"
Структура процедуры:
procedure (список формальных параметров);
const
type
var
begin
операторы ;
end ;
Вызов процедуры – это упоминание ее имени в тексте основной программы.
PROGRAM PRIMER;
VAR A,B,S: REAL;
PROCEDURE SUMMA (X,Y:REAL; VAR S:REAL);
BEGIN
S:=X+Y;
END;
BEGIN
WRITELN('A=B='); READLN(A,B);
SUMMA(A,B,S);
WRITELN('S=',S, ' ',A, ' ', B);
END.