Язык программирования Паскаль. Типы данных. Основные операторы, страница 2

Для вычисления предыдущего и последующего значений используются стандартные функции predи succ:

pred (профессор) = доцент

succ (доцент) = профессор

К значениям переменных скалярного типа можно применять отношения  =, <>, <, >, <=, >=.

Ограниченные типы данных. Отрезок значений любого скаляр­ного или стандартного скалярного типа (исключая типreal) может быть определен как ограниченный тип.

Пример.

typek = 10..50;

преподаватель = ассистент .. профессор;

месяц: 1 .. 12;

Переменные ограниченного типа, описанные так, как показано выше, объявляются оператором var, например:

var x, z ; k;

tr   преподаватель;

Здесь переменная x может принимать ограниченные значения из целочисленного отрезка [ 10,50 ] , а переменная tr имеет ограничен­ный тип «преподаватель, для определения которого заранее должен быть задан базовый  скалярный.

Регулярные типы данных (массивы). Стандартные, скалярные ограниченные данные называются простыми. Регулярные типы данных являются массивами из простых. Примеры:

type

x = array [1,. 100] of integer;

t = array [1 . . 2)Sl] oi real;

symb =array [1. . 128]of char;

prlist = array I1 .. 70] of преподаватель;

В этом примере последний массив prlist состоит из 70 упорядочен­ных элементов, каждый из когорых может принимать одно из зна­чений: стажер, ассистент, доцент, профессор.

Многомерные массивы в языке Паскаль, в отличие от других языков программирования, могут определяться последовательно:

сначала объявляется один массив, затем второй, элементами кото­рого являются регулярные типы данных — объявленные ранее мас­сивы, и т. д. Один массив вкладывается в другой, и степень такого вложения неограничена. Например:

type

аг 1 = array [I . . 10] of integer;

аг 2 = array [1 . . 10] of ar 1;

Приведенное описание двухмерного  массива можно заменить эквивалентным описанием

var аг 2 : array [I . . 10] оf array [1 . . 10] of  integer;

Двухмерный массив аг 2 в этом случае можно считать матрицей , каждый элемент которой аг [i] [j] находится в строке с номером i и в столбце с номером j. Более привычным является еще одна форма описания многомерных массивов, когда списки типов индексов помещаются в одних квадратных скобках, например

var

аг 2 : array [ ., 10, 1 . . 10] of  integer

Регулярные типы данных или массивы описываются в разделе определения типов так:

type

имя-типа = array [типs-индексов]  of тип- компонент

Символьные массивы могут  быть объявлены  как упакованные и тогда в одном машинном слове длниои 1 размещается [1/8] или 1 div 8  символов Объявление  массива  упакованным, например,

var у : packed array [1 . . 120] ofchar;

позволяет экономить память по сравнению с объявлением

var у : array [1 . . 120] ofchar

Константы вводятся в специальном разделе констант програм­мы.

 Примеры описания констант:

const

кол= 15; х = -7. 14Е - 03;

стр =. ' паскаль' ; лог ==true

Здесь кол — константа целого типа, определяемая значением 15;

стр — константа, являющаяся последовательностью семи симво­лов со значением Паскаль. Такую константу можно сравнивать с лю­бой переменной следующего типа:

type str = array [1.. 7]  ofchar;

лог—логическая константа со значением true (истина).

               ОСНОВНЫЕ ОПЕРАТОРЫ

Оператор присваивания в языке Паскаль имеет  вид

имя-переменной : = выражение;

знак : = значительно более пригоден для присваивания, чем знак = ; последний удачно используется для определений. Примеры присваивания значений:

i: = 1

цвет : = синий

Операторы языка отделяются друг от друга точкой с запятой;

         х : = х + 1; у : = sin (k *x +fi); z : = х + cos (x)

Арифметические выражения в правой части оператора присваива­ния могут содержать числовые функции, константы, идентифика­торы допустимых типов. Они используют введенные выше знаки операций +, - , * , / ,   mod, div и различные  стандартные  функции.
Для возведения в степень используются стандартные функции ехр (х) — экспонента и In (х) — натуральный логарифм. Действительно,

         a  =  e

применяя к левой и правой частям операцию логарифмирования по натуральному основанию, получаем тождество

гlna == г1па;

поэтому при необходимости вычислить у == аг на языке Паскаль можно записать оператор

      у : = ехр (r * In (a))

В выражениях могут быть использованы также следующие функ­ции:

   Sin (x) – синус x

   cos (x)  - косинус  x

   arctan (x) – арктангенс x