|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Описание процедур и функций
При описании процедуры указывается, как и у программы, заголовок и блок(тело процедуры), который не отличается от блока программы, за исключением отсутствия раздела подключения модулей. Заголовок процедуры имеет формат: 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, которая прерывает выполнение подпрограммы и возвращает управление вызывающей программе.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |