Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик по ТЯП. Вариант 18.doc
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
107.01 Кб
Скачать

Оператор цикла

Синтаксис:

while (<ParExpression>) <Block>

Вычисляется значение логического выражения <ParExpression>, если оно = 1 (истина), то тогда выполняется тело цикла – блок операторов <Block>, после выполения последнего оператора этого блока, опять вычисляется значение выражения <ParExpression>, и если оно = 1, то выполняется <Block> и так до тех пор, пока значение <ParExpression> не станет равным 0 (ложь). Предполагается, что тело цикла <Block> изменяет переменные, которые используются в <ParExpression>, таким образом изменяя значения этого выражения после каждого выполнения тела цикла, иначе может случиться зацикливание.

Оператор вывода

Синтаксис:

<Output>::=write(<OutputList>);

<OutputList>::=<ExpressionR>[#<DigitSequence>]{, <ExpressionR>[#<DigitSequence>]}

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

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

Для вещественных переменных необходимо указать число символов после запятой, это можно указать, поставив после имени вещественной переменной #<DigitSequence>, т.е. кол-во символов.

Пример: write(a, b, c#4, d); выведет список из четырех переменных, причем вещественная переменная d будет выведена с четырьмя символами после запятой.

Оператор ввода

Синтаксис:

<Input>::=<ExpressionL> = read();

Оператор ввода осуществляет чтение из стандартного потока ввода (клавиатуры) значения, если тип введенного значения и тип переменной <ExpressionL> совпадают, то этой переменной присваивается введенное значение. В противном случае присваивание не выполняется и пользователю выдается сообщение об ошибке.

Классы

Пользователь может создавать свои собственные типы данных, объявляя классы.

Класс объявляется следующим образом

<ClassDeclaration>::=class<Identifier><ClassBody>

<ClassBody>::={{<ClassBodyDeclarations>}}

<ClassBodyDeclaration>::=<FieldDeclaration> | <MethodDeclaration>

За ключевым словом class следует идентификатор – имя класса, оно должно быть уникально в пределах программы и не должно совпадать с именами переменных и меток.

Тело класса состоит из определения методов и полей. Поле – это объявление (плюс может быть инициализация) переменной, атрибута класса. Метод – определение функции класса.

Имя класса может быть использовано пользователем при создании объектов этого класса, например

new MyClass();

Функции

В качестве типа возвращаемого значения функция может выступать любой тип данных – встроенный или определенный пользователем. Если в качестве возвращаемого значения указано ключевое слово void, это значит, что функция ничего не возвращает, в таком случае вызов этой функции не может стоять в правой части выражения, т.е. быть r-value.

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

return <ExpressionR>;

причем, значение, получаемое при вычислении <ExpressionR>, должно совпадать с типом возвращаемого значения функции.

Если в качестве возвращаемого значения указано ключевое слово void, то ключевое слово return; может как присутствовать, так и отсутствовать в теле функции. Причем в таком случае после return должно стоять “;”, так как в таком случае функция ничего не возвращает.

Ключевое слово return определяет точку выхода из функции, рассчитывается значение выражения, стоящее после return (если оно есть), это происходит возврат в то место программы, откуда эта функция вызывалась, причем вычисленное значение возвращается как результат выполнения функции (или ничего не возвращается).