Книга: Основы программирования на языке Паскаль
Var k,L: integer, R,a,S:real;
Begin writeln (' введите целые k,L'); readln (k,L);
writeln (' введите вещественные r,S,a'); readln (R,S,a);
writeln(l-l/(l+sqr(r * a/k))/(exp(2)/sqr(s) * sqr(l+r * a/l)),
readln ; END .
Последний оператор writeln вначале вычислит арифметическое выражение, а затем выведет на экран его значение в виде числа. Если мы хотим, чтобы результат был в виде 'результат Y = число', то необходимо последний writeln написать в следующем виде:
writeln ('результат Y =',1-l/(l+sqr(r*a/k))/exp(2)/sqr(s) *sqr(l+r*a/l)); тогда машина вначале выведет текст, взятый в апостроф, т.е. "результат Yi", а затем его значение.
2.7. Раздел описания типов
Помимо вышеперечисленных стандартных типов в Паскале могут быть применены типы, определенные пользователем, т.е. перечисляемые и интервальные типы. Перечисляемые типы задаются непосредственным перечислением всех значений, которые может принимать переменная данного типа. Описать типы, определенные пользователем, можно в разделе Var или предварительно в разделе Туре , а затем – в Var . рассмотрим оба варианта.
Пусть нам нужна переменная с именем season (сезон года). она может принимать значения winter (зима), spring (весна), summer (лето), autumn (осень), другие значения она принимать не может. Тогда нужно сделать следующее описание:
Var season : ( winter , spring , summer , autumn ).
Здесь тип season задан перечислением всех констант, которые могут быть занесены в ячейку памяти season . Попытка занести в ячейку season любое другое значение приведет к ошибке – "несоответствие типа".
Если переменных данного типа будет несколько, удобнее и нагляднее вначале определить тип в разделе Туре (описание типа), а затем в разделе Var сослаться на этот тип, и машина в Var выделит конкретные ячейки памяти для хранения данных указанного типа.
Например, необходимо определить, что Gi , G2 , G3 , G4 будут ячейками памяти, в которых могут храниться наименования газов Со , О , N , F , а в ячейках памяти Metall1 , Metall2 , Metall3 – наименования металлов Fе , Со , Na , Cu , Zn , тогда можно применить описание:
VAR GI, G2, G3, G4: (CO,O,N,F);
Metall1, Metall2, Metall3: (Fe,Co,Na,Cu,Zn).
Можно использовать и другое, более наглядное описание. вначале определить тип Gaz , Met , а затем на них сослаться:
Туре Gaz =( Co , О, N , F );
Met = (F е , Со , Na, Cu, Zn);
Var GI, G2, G3, G4 : GAZ;
Metall 1, Metall 2, Metall 3, Met ;
Особенно удобно применение раздела Туре , если он находится во внешнем блоке, а ссылки на него идут во внутренних блоках (см. раздел "Блоки"). Тогда значительно экономится память, поскольку она может быть практически одной и той же в разных блоках.
При описании переменных перечисляемого типа данные внутри скобок являются константами, которые может принимать описываемая переменная. Над данными такого типа допустимо выполнять операции отношения и логические операции (см. далее). Например, для приведенного выше описания данного season будет истинным высказывание: "winter < spring ".
При работе с данными перечисляемого типа можно применять стандартные функции Succ, Рred, Ord .
Succ (аргумент) возвращает значение, следующее за элементом, указанным как аргумент. Если следующего элемента нет (закончились), то это приводит к программному прерыванию (ошибке).
Рred (аргумент) возвращает предыдущее значение из перечня констант, из которых состоит данный тип.
Ord (аргумент) возвращает порядковый номер аргумента в списке констант, перечисленных в описании в виде целого числа. Элементы пронумерованы в порядке 0,1,2,..., т.е. первый элемент имеет номер 0.
Пример:
Туре month = ('jan','fab','mar','apr','may',' jun ',' jul ','aug','sep','ocf','nov','dec');