Студопедия

КАТЕГОРИИ:


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

Подпрограмма-функция




Подпрограмма-процедура

Любая процедура начинается с заголовка. В отличие от основной программы заголовок в процедуре обязателен. Общий вид заголовка:

procedure <имя процедуры> ( <формальные параметры>: <тип> );

За заголовком могут идти такие же разделы, что и в основной программе. В отличие от основной программы процедура завершается точкой с запятой.

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

Разрешается описывать процедуры без формальных параметров, тогда организация передачи информации из программы в процедуру и обратно проводится с помощью глобальных переменных, а заголовок процедуры будет иметь более простой вид: procedure <имя процедуры> ;

Для вызова процедуры из основной программы или другой подпрограммы следует записать имя процедуры и список фактических параметров. Например:

Streug(a,b,c,s);

Streug(a/b,c+5,7,s1);.

Вызов процедуры без формальных параметров осуществляется по имени.

Пример 1. Даны два массива из N целых элементов из интервала [-20,20]. В каждом массиве найти максимальный элемент и затем сравнить их.

Program SravMas; {сравнение максимальных и минимальных элементов}

Const n=15;

Type massiv=Array[1..n] оf Integer;

Var m1, m2: massiv;

max1, max2: Integer;

{ процедура заполнения матрицы случайными числами }

Procedure RandomMas(Var x:massiv);

Var i:Integer;

Begin

Randomize;

For i:=1 To n Do x[i]:= -20+Random(41);

End;

{ процедура вывода матрицы }

Procedure VivodMas(Var x:massiv);

Var i:Integer;

Begin

For i:=1 To n Do write(x[i]:5);

End;

{ процедура нахождения максимального элемента матрицы }

Procedure MaxMas(Var x:massiv; Var MX:Integer);

Var i:integer;

Begin

MX:=x[1];

For i:=2 to n do

if x[i]>MX then MX:=x[i];

End;

{ основная программа }

Begin

RandomMas(m1);

Writeln('Первый массив:');

VivodMas(m1);

RandomMas(m2);

Writeln('Второй массив:');

VivodMas(m2);

{вызов процедуры нахождения максимального элемента}

MaxMas(m1,max1);

MaxMas(m2, max2);

if max1>max2 then writeln('В 1-м массиве максимальный элемент больше и =',max1) else

if max1<max2 then writeln('Во 2-м массиве максимальный элемент больше и=',max2)

else writeln('В обоих массивах максимальные равны ',max1);

End.

Подпрограмма-функция вычисляет одно единственное значение, которое передается через ее имя. Блок функции может содержать все разделы, которые могут быть в процедурах.

Основные отличия функции от процедуры:

1. Заголовок функции состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного строкового типа string, любого указателя.

2. В теле функции хотя бы раз имени функции должно быть присвоено значение:

<имя функции>:= <результат>;.

3. Функция вызывается в каком-нибудь выражении.

Пример 2. Составить программу табулирования функции на отрезке с шагом h.

Program pr_2;

Var a,b,h,x: real;

Function f(t: real): real;

Begin

f:=t*cos(t);

End;

Begin

Write('Введите начало и конец отрезка: ');

Readln(a,b);

Writeln('Введите шаг табуляции: ');

Readln(h);

Writeln('Аргумент Функция f(x)=x cos(x) ');

x:=a;

Repeat

writeln(x:6:3, f(x):20:3);

x:=x+h;

Until x>b;

End.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 456; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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