АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Описание процедур и функций

Читайте также:
  1. I. Описание практики.
  2. I. Подготовка к процедуре
  3. I. Подготовка к процедуре.
  4. I. Подготовка к процедуре.
  5. I. Подготовка к процедуре.
  6. I. Подготовка к процедуре.
  7. I. Подготовка к процедуре.
  8. I. Подготовка к процедуре.
  9. II. Выполнение процедуры
  10. II. Выполнение процедуры
  11. II. Выполнение процедуры
  12. II. Выполнение процедуры

При описании процедуры указывается, как и у программы, заголовок и блок(тело процедуры), который не отличается от блока программы, за исключением отсутствия раздела подключения модулей.

Заголовок процедуры имеет формат:

Procedure <Имя> [(формальные параметры)];

<Тело процедуры>;

Для обращения к процедуре используется оператор вызова процедуры, который содержит имя процедуры и фактические параметры, если они есть в описании.

Описание функции также состоит из заголовка и блока(тела функции).

Заголовок функции имеет формат:

Function <Имя> [(формальные параметры)]:тип результата;

<Тело функции>;

Возвращаемое значение может иметь любой тип, кроме файлового.

В теле функции должен быть хотя бы один оператор присваивания, в левой части которого стоит имя функции. Именно он и определяет значение, возвращаемое функцией. Вместо имени функции можно указывать переменную Result. С помощью этой переменной можно в любой момент получить внутри блока доступ к текущему значению функции.

Пример. Дано 2 массива из 8 чисел. Найти сумму максимальных элементов массивов.

Program S;

Type

tArr = array [1..8] of integer;

Var

i,s:integer;

m1,m2:tArr;

function Max (Mas:tArr):integer;

var m,j:integer;

begin

m:=mas[1];

for j:=2 to 8 do

if m<Mas[i] then m:=Mas[i];

Max:=m; // или можно написать Result:=m;

end;

 

begin

writeln(‘Введите 8 чисел 1-го массива через пробел’);

for i:=1 to 8 do read(m1[i]);

writeln(‘Введите 8 чисел 2-го массива через пробел’);

for i:=1 to 8 do read(m2[i]);

s:= Max (m1)+ Max (m2);

Writeln(‘Сумма максимальных эл-тов = ’, s:5);

end.

 

Урок № 21. Формальные и фактические параметры. Вызов подпрограмм.

 

1.Формальные и фактические параметры.

Delphi поддерживает 2 механизма передачи параметров в подпрограммы:

- по значению;

- по ссылке.

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

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

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

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)