Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
252 Кб
Скачать
☆

Int(X) – значением функции является целая часть вещественного числа X.

Frac(x) – значением функции является дробная часть вещественного числа x.

TRUNC(X) – вырабатывает целый результат путем отбрасывания дробной части вещественного числа x в формате longint. Пример: из 21.53 получится 21.

ROUND(X) – вырабатывает целый результат путем округления вещественного числа до ближайшего целого. Пример: из 21.53 получится 22, из 21.3 получится 21.

Hi(x) – старший байт x (x – integer)

lo(x) – младший байт x (x – integer)

swap(x) – оба байта меняются местами (x – integer)

Вопрос №15. Структура программ и подпрограмм.

Структура описания программ и подпрограмм

[<заголовок>]

<раздел описаний>

begin

<тело программы>

End.

Раздел описаний:

<раздел меток > - label

<раздел констант> const

<раздел типов> type

<раздел переменных> var

<раздел процедур и функций> procedure/function

В ТР порядок любой, но имя должно быть определенно до его использования.

Разделы могут повторятся.

Раздел описания меток и констант.

Метка – любой идентификатор, в целях совместимости со стандартом допускается использование в качестве метки целого без знака в диапазоне (от 0 до 9999).

Любой оператор в программе м.б. помечен меткой. Метка располагается перед оператором и отделяется от него двоеточием. Оператор может иметь несколько меток. Применение меток дает возможность изменять естественный порядок выполнения операторов. Все метки д.б. описаны в разделе описания меток.

LABEL LB1, LB2, R8;

Раздел описания констант.

Const <имя>=<константа>;

Но может быть и выражение пример

Const с=ord(‘9’)-ord(‘0’)+1;

Типированные константы.

Const <имя>:Тип=значение.

Пример

Found:Boolean=true;

Const NEWYEAR:record

D:Byte;

M:Byte;

Y:Integer;

End=

(1,1,2012)

Пример: программа генерации таблицы преобразования градуса Цельсия в градус Фаренгейта.

program CtoF;

const

Separator='_____';

min_gr=0;

max_gr=39;

MulBy=1.8;

Addin=32;

var Grad:Integer;

begin

writeln(separator);

for grad:=min_gr to max_gr do

begin

write(grad:4,'C',round(grad*Mulby+Addin):5,'F');

if Odd(grad) then writeln;

end;

writeln(separator);

readln

end.

Раздел описания типов и переменных.

Type <имя>=<тип>

Раздел переменных.

Var <имя>:тип;

Абсолютная переменная

Var имя:тип absolute <имя другой переменной тип>

Absolute позволяет рассматривать один и ту же память как разные типы данных.

Глобальные имена используются во всей программе, если только в каком-то внутреннем блоке непереобъявлены. Локальная переменная только лишь, где была объявлена.

Переменная доступна в том блоке, где она объявлена. Кроме внутренних блоков, где переобъявлена.

Вопрос №16. Операции на языке ТР.

Приоритет операции:

Если нет () то зависит от приоритета:

  1. Функции

  2. Одноместные операции (+,-,@,NOT)

  3. Мультипликативные(*,div,/,mod,AND,shl,shr)

  4. Аудитивные (+,-,OR,XOR)

  5. Операции отношений

Вопрос №17. Операторы.

Операторы Паскаля

Размещаются только в разделе операторов. Если в состав оператора не входят другие, то он простой, иначе структурный.

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

Оператор GOTO (безусловного перехода)

Осуществляет безусловную передачу управления оператору, которому предшествует метка.

Метки применяются в крайних случаях, когда без них невозможно обойтись. Метка, на которую ссылается GOTO, должна быть описана в разделе описаний меток LABEL и обязательно встретиться в теле программы.

Пример:

Program Test;

Label lb1;

Var b:real;

Begin

Goto lb1;

For i:=1 to 4 do

Writeln(b);

Lb1:readln(b);

End.

Оператор присваивания. :=

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

Cоставной оператор (BEGIN END;).

Задает последовательное выполнение операторов, входящих в него. Операторы, входящие в составной, заключаются между собой служебными словами BEGIN END и отделяются друг от друга

Условный оператор IF

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

Оператор выбора CASE

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

Таким образом, CASE предназначен для выбора одного из взаимоисключающих действий, необходимость появления которых возникает с одинаковой вероятностью. Ветка ELSE является необязательной, если она отсутствует, и значение переключателя не совпадает ни с одной из перечисленных констант, то весь оператор рассматривается, как пустой. Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно) сопроводив их одним оператором.

Оператор WHILE (с предусловием).

Этот структурный оператор задаёт повторяющееся выполнение операторов, входящих в него. Он может выполняться 0 и более раз.

While <истина> do <>

Цикл REPEAT UNTIL(с постусловием).

Организует многократное выполнение операторов, входящих в него. Последовательность действий, записанных между словами REPEAT UNTIL, выполнится по крайней мере один раз, так как условие выхода из цикла проверяется после выполнения очередного действия. Если выражение TRUE- цикл прекращается, если FALSE, цикл продолжается.

Repeat

<>

Until <false>

Зацикливание можно избежать, если ставить контроль времени, то есть по прошествию какого времени цикл должен точно прекратиться.

Цикл с параметром FOR DO

Цикл с параметром служит для повторения выполнения оператора (который может быть составным), пока управляющий переменной присваивается возрастающая последовательность значений, т.е. заранее известно, сколько раз можно выполнить цикл

Управляющая переменная должна быть описана в том же блоке, где встречается цикл и принадлежать к одному из порядковых типов. Она не должна стоять в левой части оператора присваивания, не должна присутствовать в READ и READLN, не должна быть использована для другого цикла с параметром.

Начальное и конечное значение управляющей переменной вычисляются только один раз. Если в теле цикла стоит ТО, то начальное значение управляющей переменной должно быть меньше конечного, если DOWNTO – то наоборот.

Оператор присоединения:

Оператор присоединения With . . Do.

Для того чтобы облегчить доступ к компонентам записи очень часто используют оператор присоединения With . . Do.

Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:

with <имя_записи> do <действие с полем записи>;

Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end ).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]