КАТЕГОРИИ: Архитектура-(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) |
Функции
End. Begin Begin Var End. Begin ... Begin Var Type ... ... Const ... Type ...
Пример. MyInt = integer; MyDouble = double;
<Раздел объявления типизированных констант>:: = const // Признак начала раздела объявления констант <Имя константы 1>: <Тип 1> = < Константное выражение 1>; <Имя константы 2>: <Тип 2> = < Константное выражение 2>;
Пример: n: longint = 2000000000; EulerGamma: double = 0.5772156649015329; pi_half: double = pi / 2.0; pi_quarter: double = pi_half / 2.0;
Замечание. В Turbo Pascal 7.0 «типизированная константа» на деле константой не является: в тексте программы эту «константу» можно изменять. «Типизированная константа» – это, в действительности, инициализированная переменная. Замечание. Типизированная константа не может участвовать в константном выражении. Замечание. В Delphi типизированные константы, в отличие от констант без типа, могут принимать значения массивов, записей, процедур, указателей. Если действует ключ компиляции {$J-} (явно или по умолчанию), значения, принятые типизированными константами при объявлении, не могут быть изменены. Напротив, ключ {$J+} дает типизированным константам возможность изменяться по ходу исполнения программы.
Замечание. В языке «C++» инициализированные переменные объявляются так:
<Тип 1> <Имя 1> = <Константное выражение 1>, <Имя 2> = <Константное выражение 2>, <Имя N> = <Константное выражение N>;
<Тип 2> <Имя N+1> = <Константное выражение N+1>,
Примеры.
int I = 2, J = –5, K = 888; double x = 1.0, y = –2.2, z = 0.123; char c = ‘Q’; Цикл с постусловием
repeat <Операторы> until <Л.В.>
<Операторы> являются телом цикла. Тело цикла выполняется по меньшей мере один раз, а затем, возможно, многократно, пока < Л.В.> есть ложь. Если < Л.В.> есть истина при первой же оценке, то тело цикла выполняется один раз. Если < Л.В.> есть ложь при каждой оценке, то тело цикла выполняется неограниченно много раз.
В случае, если тело цикла содержит несколько операторов, нет необходимости использовать операторные скобки. Слово repeat заменяет собой begin, тогда как слово until заменяет собой end.
Замечание. В языке «C++» родственная конструкция имеет вид:
do <Оператор> while ( <Л.В.> )
«Полностью» аналогичная конструкция имеет вид:
do <Оператор> while (! <Л.В.> )
Знак логической инверсии «!» необходим, если истинность <Л.В.> должна приводить к прекращению цикла. Замечание по теме «циклы»
Инструкция break применяется для досрочного прекращения цикла. Равноценна оператору “ goto Metka1”, для которого “Metka1:” расположена сразу после оператора цикла.
Инструкция continue применяется для досрочного перехода на очередную проверку условия продолжения цикла. Равноценна оператору “ goto Metka2”, для которого “Metka2:” расположена сразу после последнего из операторов, составляющих тело цикла.
Инструкции break и continue в Паскале заимствованы из языка «C++». Процедуры
< Объявление процедуры >:: = procedure <Имя процедуры>[(<Список формальных параметров)]; <Разделы объявления локальных типов, констант, переменных> <Разделы объявления локальных процедур и функций>
<Список формальных параметров> :: = <Элемент списка 1>; <Элемент списка 2>; ...
<Элемент списка> :: = <Список имён параметров-значений>: <Тип> или var <Список имён параметров-переменных>: <Тип> или const <Список имён параметров-констант>: <Тип>
<Обращение к процедуре> :: = <Имя процедуры>[(<Список фактических параметров>)]
Замечание. Фактические параметры должны быть совместимы с формальными по типам.
Параметр-значение сам процедуре не передаётся. Передаётся лишь его «численная» (или иная, согласно типу параметра) копия, под которую выделяется дополнительное место в оперативной памяти. Это важно иметь в виду, особенно, если параметр занимает много места в памяти. Переменная, реализующая параметр-значение, может быть, при необходимости, использована, как локальная переменная. По окончании работы процедуры эта переменная становится недоступной. Новое значение, приданное ей в теле процедуры, недоступно в том месте, из которого процедура вызвана.
Параметр-переменная именно сам передаётся процедуре. Изменения, произошедшие с таким параметром, сохраняются и по окончании работы процедуры.
Параметр-константа также сам передаётся процедуре. Изменения такого параметра в теле процедуры запрещены.
Пример.
program Example2; MyInt = integer; I: MyInt; J: integer; procedure P2(var M: integer); end;
P2(J); // Нормально P2(I); // Ошибка. Несоответствие типов Пример.
program Example3; I, J, K: integer; procedure P3(L: integer; var M: integer; const N: integer); Inc(L); // Бесполезно Inc(M); // Полезно (* Inc(N); *) // Ошибка end;
I:= 1; J:= 1; K:= 1; P3(I, J, K); wri teln(‘I=’, I); // I = 1, переменная не изменилась wri teln(‘J=’, J); // J = 2, переменная изменилась Замечание. В языке «C++» процедур нет. Роль процедур исполняют функции, возвращающие значение void (пусто). < Объявление функции void>:: = void <Имя функции>([<Список формальных параметров>])
<Список формальных параметров> :: = <Элемент списка 1>; <Элемент списка 2>; ...
<Элемент списка> :: = <Тип> <Имя параметра-значения> или const <Тип> <Имя параметра-значения> Пример.
# include <vcl.h> # include <stdio.h> # include <conio.h> # pragma hdrstop int I, J, K, Q;
void P3(int L; int *M; const int N; const int *P) { L++; // Бесполезно *M++; // Полезно // N++; // Ошибка // *P++; // Ошибка // P++; // Ошибка }
int main (int argc, char* argv[]) { I = 1; J = 1; K = 1; Q = 1; P3(I, &J, K, &Q); printf (“I=%d”, I); // I = 1, переменная не изменилась printf (“J=%d”, J); // J = 2, переменная изменилась {
<Объявление функции> :: = function <Имя функции>(<Список формальных параметров>): <Тип возвращаемого значения>; <Разделы объявления локальных типов, констант, переменных> <Разделы объявления локальных процедур и функций>
Среди <Операторов> должен быть хотя бы один «Оператор» вида <Имя функции>:= <Выражение>; или result:= <Выражение>;
Пример.
program Example4;
Дата добавления: 2014-01-06; Просмотров: 253; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |