Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция №3.doc информатика.doc
Скачиваний:
10
Добавлен:
11.03.2015
Размер:
126.98 Кб
Скачать

11. Простые типы, определяемые пользователем

Любой тип, вводимый в рассмотрение пользователем, можно описать непосредственно при описании переменных или этому типу можно присвоить имя в разделе описания типов, а затем использовать имя типа при описании переменных. Для того чтобы отличать имена типов от имен других программных объектов, можно начинать имя типа с префикса t_.

Раздел описания типов:

Идентификатор имя типа. Описание типа определяется правилами языка для каждого вида типов.

Из простых типов, определяемых пользователем, рассмотрим интервальные и перечисляемые. Указательный тип будет рассмотрен ниже.

Ввод числовых данных

Перед набором числа допускается набор пустых символов (пробел, табуляция, переход к новой строке). После ввода числа должен быть введен хотя бы один пустой символ, в противном случае произойдет ошибка ввода. Разделителями при последовательном вводе чисел являются пустые символы. Пустые символы, предшествующие числу, считываются из буфера, но игнорируются. Затем считывается число, и его значение присваивается соответствующей переменной. Пустой символ после числа служит только признаком конца считывания, но он остается в буфере ввода, и с него начнется следующее считывание.

Пример 1.

var n:word; Набрать значенияnиrможно в одной

r :real; строке, ,

begin или в разных строках,

read(n,r);

... {операторы} .

end.

СТАНДАРТНЫЙ ВЫВОД

Вывод на дисплей выполняют процедуры writeиwriteLn.

Синтаксическая диаграмма вызова процедуры write:

Процедура writeвычисляет и выводит на экран значения выражений, перечисленных в качестве параметров. Выражения могут бытьчисловыми,символьными,логическимиистроковыми.

В

12 3 k

ывод начинается с текущей позиции курсора на экране. После вывода значения курсор помещается за последним выведенным символом, и вывод следующего значения начнется с этой позиции. Никаких разделителей между выводимыми значениями не предусмотрено. Поэтому операторwrite(12, 3,‘k’) выведет строку . Для разделения значений можно предусмотреть вывод пробелов между ними. Так, оператор

w

123k

12 3 k

rite(12,’ ‘,3, ‘ ‘, ‘k’) выведет .

Значения типа realвыводятся в форме с плавающей точкой в следующем виде:

(| )<цифра>.<цифра>{<цифра>}E(+|)<цифра><цифра> (1)

К

1.2345000000E+02

оличество цифр после точки10. Общее число позиций, занимаемых вещественным числом, при этом равно 17. Например, оператор

write(123.45) выведет .

Процедура writeLnвыполняется так же, как иwrite, но после вывода значений переводит курсор в начало новой строки.WriteLnможно использовать и без параметров для перехода к новой строке.

Выбирающий оператор

В Паскале два вида выбирающего оператора: условный оператор и оператор переключатель.

1. Условный операториспользуется при кодировании развилок, то есть для организации бинарного ветвления.

При отсутствии ветви еlse условный оператор будем называть неполным. После ключевых словthen и еlse синтаксис требует наличия только одного оператора. Если же по какой-либо ветви нужно выполнить несколько операторов, то следует использовать составной оператор. Перед еlse точка с запятой недопустима, так как в этом случае междуthenиelseбудут два оператора, один из которых пустой.

Если оператор, выполняемый по ветви thenили еlse, является условным, то говорят о вложенных условных операторах. В случае вложенных условных операторов каждое еlse относится к ближайшему предшествующемуthen.

Примеры вложенных условных операторов(каждоеelse рекомендуется располагать под соответствующим then):

a) Оператор присваивает переменнойmaxmaximum{a,b,c}:

if a>b then if a>c then max:=a

else max:=c

else if b>c then max:=b

elsemax:=c;

б) Оператор, эквивалентный приведенной слева развилке, имеет вид

if a>b then

begin

if a>c then a:=0

end

elsea:=1;

В приведенном примере вложенный условный оператор неполный, поэтому он заключен в операторные скобки. При отсутствии операторных скобок неполным будет внешний оператор.