Слайд 1Базовые средства описания действий
Pascal
Слайд 2Базовые средства описания действий
Выражения
Операции действий
Операции управления
Следование
Ветвление
Цикл
Блоки
Подпрограммы
Процедуры
Функции
Пакеты
Слайд 3Выражения/Операции
Выражения состоят из операторов, операндов и возможно круглых скобок.
Операнд
(англ. operand) - аргумент операции, данное, которое обрабатывается командой;
Оператор
– знак, определяющий операцию (+,-,*).
В зависимости от положения операнд относительно знака операции различают
префиксные (напр., sinx (x — операнд)),
инфиксные (например, a + b (a, b — операнды)) и
постфиксные (например, x3 (x — операнд)) операции.
Слайд 4Выражения
В зависимости от числа операнд различают
одноместные (унарные, или монадические)
операции (например, -а);
двуместные (бинарные, или диадические) операции (a + b);
многоместные
(или полиадические) операции.
Слайд 5Выражения
Все компоненты выражения записываются на одном уровне, т.е. в строчку
Не
допускается следование двух операторов подряд. Если это необходимо, то используют
круглые скобки.
Последовательность выполнения операторов в выражении определяется:
приоритетом;
порядком расположения операций в выражение;
использованием скобок.
Слайд 6Приоритет операторов
Первый уровень унарные операторы
(-, +, @, not)
Второй уровень -
следующие бинарные операторы:
*, /, div, mod, and, shl, shr,
as
Третий уровень – бинарные операторы:
+, -, or, xor
Четвертый уровень:
=, <>, <, >, <=, >=, in, is
Слайд 7Виды операторов (по характеру выполняемых действий)
Арифметические: +, -, *, /,
div, mod
Отношения: =, , >, =,
or, xor
Поразрядные (или сдвиговые): shr, shl
Строковые операции: +(конкатенации)
Операции над множествами : +, -, *, in, <=, >=, =, <>
Операции взятия адреса: @
Операция над классами: as, is
Слайд 8Операторы действия
Операторы присваивания
Операторы процедуры
Операторы перехода
Слайд 9Оператор присваивания
Формат::= ;
Назначение: поместить значение вычисленного выражения по адресу памяти,
обозначенному через идентификатор переменной.
Тип выражения и тип переменной должны быть
совместимы по присваиванию.
Совместимые типы данных – это типы данных, которые имеют пересечения по области значений и операций.
Пример. Var I:integer; W:word; R:real;
I:=W ;(всегда) W:=I; (иногда)
R:=I; (всегда) I:=R; (никогда)
Слайд 10Операторы процедур
Назначение: активизация некоторых действий, описанных в ее теле.
Для работы
процедуры иногда необходимо использовать входные и выходные аргументы.
Входные: константы и
выражения необходимого типа данных. Выходные: идентификаторы переменных необходимого типа.
Формат использования:
<идентификатор процедуры>(<параметры>);
Пример:
primer0; primer2 (4, A+7);
primer1(1,2); primer3 (A, B+A,C);
Процедуру с указанными именами должны быть описаны в разделе описания процедур.
Слайд 11Процедура (оператор) ввода
Формат:
READ ();
READLN ();
Пример:
Ввести значения переменных N, X,Y
readln(N); readln(X,Y)
или readln (N,X,Y)
или
read(N); read (X,Y)
или …
Особенность readln: после прочтения значений с клавиатуры (или других устройств) в указанные аргументы, курсор переводится на следующую строку, не зависимо от того остались ли в этой строке данные или нет.
Слайд 12Процедура (оператор) вывода
Формат:
WRITE ();
WRITELN ();
В первом
случае курсор остается на этой же строке, во втором –
переводится на следующую.
Пример:
write (5); writeln (‘ ’,6, 7 ); writeln (‘Все !’);
Для каждого аргумента операторов вывода может быть указан формат его вывода.
Слайд 13Формат вывода целых чисел
:
Вывод осуществляется с выравниванием по
правому краю поля.
Пример:
write (678:5);
write (678:1);
writeln (A1:10, A2:10, A3:10);
Слайд 14Формат вывода вещественных чисел
Вывод в формате с плавающей точкой:
:
вывода>
Пример: write (6,78:15);
Вывод в формате с фиксированной точкой
::
знаков после точки>
Пример: write (6,78:10:4);
Слайд 15Оператор перехода
Назначение: передача управления оператору в программе, перед которым указана
метка.
Оператор должен использоваться в том блоке, где была описана метка.
Причем управление должно передаваться оператору в том же блоке.
Формат: goto <метка>
Этот оператор противоречит принципам структурного программирования.