Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-07-01 | 264 |
5.00
из
|
Заказать работу |
|
|
ПАРАМЕТРЫ СТРУКТУРИРОВАННЫХ ТИПОВ
Чтобы передать в подпрограмму массив (строку, запись,...), нужно сначала описать его тип. Следствие – возможные затраты памяти.
Type vector = array [1..100] of Real;
Procedure Sum (A: vector; Var B: vector); begin...end;
Открытые массивы:
Procedure Sum (A: array of Real; Var B: array of Real); Var i: Word;
begin for i:= 0 to High(A) do B[i]:= A[i]+B[i]
end;
Var A1,A2: array [1..100] of Real;
Begin
{инициализация массивов A1 и A2}
Sum(A1,A2);
{вывод A2} End.
РЕКУРСИЯ
Применительно к практическому программированию под рекурсией понимается вызов функции (процедуры) из тела этой же самой функции (процедуры). Необходимым условием работоспособности рекурсивных подпрограмм является наличие условия окончания рекурсивных вызовов.
Var {вычисление n!}
N: Word;
Function Fact (m: Word): Int64; begin if m = 0 then
Fact:= 1 else
Fact:= m*Fact(m-1) end;
Begin
Readln(N);
Writeln('n! = ',Fact(N)) End.
РЕКУРСИЯ
Реализация рекурсивных алгоритмов при большом числе итераций ограничена доступным объемом памяти; каждый отложенный вызов процедуры или функции – это свой набор значений всех локальных переменных этой подпрограммы (фрейм активации), размещенных в стеке.
{вычисление n! итерационным методом}
Function Fact (m: Word): Int64;
Var
I: Word; P: Int64; begin P:= 1; if m = 0 then
Fact:= 1 else begin for I:= 1 to m do P:=P*I;
Fact:= P end
end;
ПРОЦЕДУРНЫЙ ТИП
Процедурный тип позволяет интерпретировать процедуры и функции как данные-объекты, которые можно использовать, в частности, при передаче параметров. Значением переменной процедурного типа является конкретная
процедура |
или |
функция |
. |
Type |
идентификатор |
типа |
= |
; |
procedure |
список |
параметров |
function |
список |
параметров |
тип |
результата |
: |
Билет 34. Процедурные типы. Параметры-функции и параметры-процедуры.
|
ПАРАМЕТРЫ-ФУНКЦИИ И ПАРАМЕТРЫ-ПРОЦЕДУРЫ
{вычисление интеграла функции}
Type
FuncType = Function (X: Real): Real;
Procedure Integral (LowerLimit, UpperLimit: Real;
Var Result: Real;
Funct: FuncType);
begin... end;
Function SinExp (Arg: Real): Real; begin
SinExp:= Sin(Arg) + Exp(Arg) end;
Var
Res: Real;
...
Begin...
Integral (0, 1, Res, SinExp);
...
End.
ПРОЦЕДУРА – ПОЛЕ ЗАПИСИ
Type
ProcType = Procedure;
RecType = record
X,Y: Integer; P: ProcType; end;
Var
Rec1,Rec2: RecType;
Procedure P1; begin
...
end;
Begin...
with Rec1 do P:= P1;... End.
Процедурные переменные совместимы с переменными типа Pointer (их значения – адреса). Процедуры и функции – это адреса.
СТАНДАРТНЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ И ПРОЦЕДУРЫ
ABS(X) – возвращает абсолютное значение аргумента Х (Х – целое/вещественное, результат – как у аргумента);
SQR(X) – возвращает квадрат Х (Х – целое/вещественное, результат – как у аргумента);
SIN(X), COS(X), ArcTan(X) – возвращают значения синуса, косинуса и арктангенса
(Х – целое/вещественное, результат – Extended);
SQRТ(X) – возвращает квадратный корень из Х (Х > 0 – целое/вещественное, результат – Extended);
EXP(X), LN(X) – возвращает экспоненту или натуральный логарифм Х (Х – целое/вещественное, результат – Extended);
FRAC(X) – дробная часть числа Х (Х – целое/вещественное, результат – Extended);
INT(X) – целая часть числа Х (Х – целое/вещественное, результат – Extended);
TRUNC(X) – целая часть числа Х (Х – целое/вещественное, результат – Int64); ROUND(X) – округление Х до ближайшего целого (Х – целое/вещественное, результат – Int64);
СТАНДАРТНЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ И ПРОЦЕДУРЫ
RANDOM(X) – возвращает случайное целое число из диапазона от 0 до Х (X и результат – Integer);
RANDOM – возвращает случайное число от 0 до 1 (результат – Extended); RANDOMIZE – процедура гарантирует несовпадение последовательностей случайных чисел, выдаваемых функцией Random;
ODD(X) – возвращает True, если Х – нечетное число, и False, если Х – четное (Х – целое, результат – Boolean);
INC(Var X: <целое>), DEC(Var X: <целое>) – увеличивает или уменьшает значение Х на 1 (процедуры);
INC(Var X: <целое>; N: <целое>), DEC(Var X: <целое>; N: <целое>) – увеличивает или уменьшает значение Х на N (процедуры);
|
Var
X: Integer;
Begin
X:= 2;
INC(X,4) {X 6}
End.
Билет 35. Модули. Структуры модуля.
МОДУЛИ
Модуль – это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры, функции) и, возможно, некоторые исполняемые операторы, которая предназначена для использования другими модулями и программами.
Unit <имя модуля>;
Interface
<секция интерфейса> Implementation
<секция реализации>
Initialization
<секция инициализации>
Finalization
<секция завершения> End.
Имя модуля (например, Unit_1) должно совпадать с именем дискового физического файла, в который помещается исходный текст модуля (unit_1.pas). Для подключения ресурсов модуля к другим программным единицам
(программа, модуль) необходимо указать его имя в спецификации Uses раздела описаний этой программной единицы (Uses Unit_1;).
МОДУЛИ
Unit Unit_1;
Interface
Type
Complex = record Re, Im: Real end;
Var
Zmain: Complex;
Procedure P_1 (X,Y: Complex; Var Z: Complex);
Implementation
Procedure P_1; begin
Z.Re:= X.Re + Y.Re;
Z.Im:= X.Im + Y.Im end;
Initialization
Zmain.Re:= 1; Zmain.Im:= -1 End.
СЕКЦИИ МОДУЛЯ
В интерфейсной секции содержатся объявления всех глобальных элементов модуля (типов, констант, переменных, функций, процедур), которые должны стать доступными основной программе и другим модулям, к которым подключен данный модуль. При объявлении глобальных подпрограмм указывается только их заголовок. Если при объявлении типов, данных и подпрограмм используются элементы, введенные в других модулях, то они должны быть указаны в разделе Uses сразу после слова Interface.
Секция реализации содержит описание подпрограмм, объявленных в интерфейсной части, и описание внутренних ресурсов модуля (локальных переменных, типов, подпрограмм). Обращение к этим ресурсам возможно только из подпрограмм, описанных в этом же модуле.
Секция инициализации (может отсутствовать) включает программные действия, которые будут произведены перед выполнением основной программы, к которой подключен данный модуль. Обычно в разделе инициализации происходит заполнение стартовыми значениями библиотечных переменных, а также одноразовые действия, которые должны выполниться в начале программы (например, открываться нужные файлы и т.д.).
|
Секция завершения (может отсутствовать) содержит операторы, которые будут выполняться при завершении работы приложения (основной программы).
СТАНДАРТНЫЕ МОДУЛИ DELPHI PASCAL
• Системные модули:
- SYSTEM – включает все стандартные математические процедуры и функции, обеспечивает работу с файлами, с динамической памятью, с другими модулями и т.д.; подключается автоматически к каждой программе.
- SYSUTILS – содержит дополнительные процедуры и функции для работы с файлами, дисками, строками, по обработке исключительных ситуаций и др.
- MATH – содержит множество дополнительных математических функций и процедур.
• Модули визуальных компонентов (VCL – Visual Component Library) используются для визуальной разработки полнофункциональных GUIприложений - приложений с графическим пользовательским интерфейсом (Graphical User Interface).
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!