Лабораторная работа №7
Разработка, отладка и испытание алгоритмов и программ с использованием процедур и функций
Цель работы: овладение практическими навыками разработки программ с использованием процедур и функций.
ОПИСАНИЕ ПРОЦЕДУРЫ
Описание процедуры начинается с заголовка, который является обязательным. Заголовок начинается со служебного слова Procedure,за которым следует имя процедуры и в круглых скобках описание формальных параметров. После заголовка могут идти те же разделы, что и в основной программе:
Procedure[(Список формальныхпараметров)]; Разделы описаний процедуры Begin Тело процедуры End; |
При вызове процедуры ее формальные параметры заменяются на фактические — это параметры, которые передаются процедуре при ее вызове. Фактические и формальные параметры должны соответствовать:
- потипу,
- попорядку следования
- поколичеству.
Формальные параметры описываются в заголовке процедуры. Они делятся на параметры-значения — это входные данные. Перед ними не ставится служебное слово Var.
Парметры-переменные — это выходные и входные данные. Перед ними ставится служебное слово Var.
В процедуре может быть любое конечное количество выходных данных (результатов). Все переменные делятся на глобальные (описываются в разделе описаний основной программы) и локальные (описываются в разделе описаний подпрограммы). Локальные переменные «живут» только во время работы подпрограммы.
Вызов процедуры
Вызов процедуры осуществляется путем указания имени процедуры с указанием фактических параметров. Например, Summa(a,150,s).
Пример . Найти значение выражения y=3×10+2×5+x3.
Решение. Для решения данной задачи воспользуемся процедурой, вычисляющей степень аn .
Var x, y, s1, s2, s3: integer; {x, y, s1, s2, s3 — глобальные переменные}
Procedure St (a, n: integer; Var s: integer);
{a, n, S — формальные параметры}
{a,n — параметры- значения, S — параметр -переменная }
Var i: integer; {i— локальная переменная}
Begin
S:=1;
For i:=1 to N do s:=s*a;
End; {ProcedureSt }
BEGIN
Read(x);
ST(x, 10,s1); ST(x, 5,s2); ST(x, 3,s3);
Y:=3*s1+2*s2+s3;
Write(y);
End.
Описание функции
Заголовок функции состоит из зарезервированного слова Function, за которым следует имя функции, затем в круглых скобках записывается список формальных параметров, далее ставится двоеточие и указывается тип результата функции (результат всегда один).
! В теле функции обязательно должен быть один и только один операторприсваивания, в левой части которого стоит имя функции, а в правой — ее значение.Иначе значение функции не определено. |
Таким образом, общий вид описания функции следующий:
Function Имя [ (Список формальных параметров)]: Тип результата;
Begin
End;
Вызов функции
Вызов функции осуществляется в выражениях с указанием имени и фактических параметров: например, y: =f(1,x)+f(2*x,3).
Пример . Найти
Решение.
Var n: integer;
c: integer;
Function Factor (n:integer): integer;
Var i:integer; rez: integer;
Begin
Rez:=1;
For i:=1 to N do
rez:=rez*i;
Factor:=rez;
End;
Begin
Readln (n);
с:=factor(n);
Writeln (c);
End.
Задания
1.Составьте программу для определения числа сочетаний , используя функцию при вычислении факториала.
2.С помощь следующей процедуры произведите обмен значениями между двумя переменными:
procedure Swap (var x,y: real);
var t:real; //промежуточная переменная
Begin
t:=x; //запоминаем значение x
x:=y; //переменной x присваиваем значение y
y:=t; //переменной y присваиваем t, равное x
end;
- Опишитефункцию, определяющую максимальное из двух чисел, и с помощью этой функциивычислите значение выражения: .
- Данызначения c,d,l,k. Напишите функцию min для вычислениязначения следующего выражения: .
- Ввести 3 целых массива из n чиселкаждый: А, В, С. Вычислить значение , где max(A) — максимальный элемент массиваА (аналогично max(B) и max(C)). Вычислениемаксимального элемента массиваоформить в виде подпрограммы. Формула имеет смысл, если max(C)0.
- Треугольникзадан длинами своих сторон. Найдите длины его медиан. Вычисление длинымедианы оформить в виде подпрограммы ( – длина медианы,проведенной из вершины B).
***
Статьи к прочтению:
- Ваш результат от — 3 баллов и ниже
- В данной форме делегат action, описывающий тело цикла, определяется следующим образом.
Why does the universe exist? | Jim Holt
Похожие статьи:
-
Определение строковой переменной
Рис. 12. Данные строкового типа в памяти Последовательность \0 называется нулевымсимволом и рассматривается как один символ. Как вы помните, язык Си не…
-
Переменные, константы и их типы
Данные в компьютере можно рассматривать как ячейки памяти, имеющие свои имена (идентификаторы). Все данные в программе на языке Delphi должны быть…