Книга: Основы программирования на языке Паскаль

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 – наименования металлов , Со , 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');

К-во Просмотров: 471
Бесплатно скачать Книга: Основы программирования на языке Паскаль