Операции
Операции – элементарные действия над данными.
Различают операции следующих видов:
1) арифметические(+,*,/,-,Mod, Div - бинарные операции, т.к. имеют 2 операнда)(-,+ -унарные операции, т.к. имеют 1 операнд)
Все арифметические операции работают с численными операндами и дают результат численного типа.
2) Операции со строками – конкатенация(+) объединяет две строки, её операнды имеют символьный или строковый тип, а результат строковый тип.
‘опер’+‘ация’Þ‘операция’
3) Операции сравнения(<,>,<=,>=,=,<>) – могут быть различных типов строковые, числовые, символьные, но оба операнда должны иметь один тип. Результатом всегда является значение логического типа (true, false)
Пример:
‘A’<’B’Þtrue
‘дом’>‘дум’Þfalse
Выражения с операциями сравнения воспринимаются как вопросы, на которые даётся логический ответ.
При сравнении символов используется порядок их следования в таблице символов Windows. Алфавитные символы следуют в алфавитном порядке. Большим считается символ, идущий ниже в таблице символов.
4) Логические операции – имеют операнды логического типа и дают результат логического типа. В качестве операндов обычно выступают выражения с операциями сравнения, или переменные логического типа.
Основные логические операции:
OR, AND, NOT, XOR.
OR – операция логического сложения, выдаёт в качестве результата true, если один из операндов или они оба равны true.
AND – операция логического умножения даёт в качестве результата true, если оба операнда равны true.
XOR – аналогично OR, но в случае если оба операнда равны true, дает false. Даёт true, если только один из операторов равен true.
NOT – унарная операция, дающая результат противоположный операнду. Называется “логическая инверсия”. NOT не является необходимой операцией и используется только для удобства записи и восприятия.
Логические операции могут комбинироваться в рамках одного выражения.
If NOT(((x>0)and(x<-100))or(y=0))
Порядок выполнения отдельных частей регулируется скобками.
В Pascal существует логический тип данных boolean. Переменным этого типа можно присваивать результаты операции сравнения и логических операций.
Они могут быть операндами в других операциях.
var t:boolean;
x:=4;
t:=x>5; Þ false
if (t=false)OR(y=0) then
Приоритет операций.
Приоритет определяет порядок выполнения операций. Операции с более высоким уровнем приоритета выполняются раньше.
Существует несколько уровней приоритета:
Самый высокий: унарные -, +, NOT;
*, /, Mod, Div, AND;
бинарные +, -, OR, XOR;
операции сравнения
Приоритет операций меняется при помощи скобок. Если одни скобки вложены в другие, то более высокий приоритет имеют внутренние.
При выполнении операций с равным приоритетом, сначала выполняются те операции, которые находятся левее.
x:=(-(3+x)*7) -2 / (y+7)
II I III VI V IV
Условный оператор IF.
IF служит аналогом блока выбора и имеет две формы:
1. Полную
2. Неполную
Оператор множественного выбора.
case <выражение> of
список констант 1: <оператор 1>;
список констант 2: <оператор 2>;
…
список констант N: <оператор N>;
else <оператор>;
end
Пример.
case N of
12,1,2: Write(‘Зима’);
3,4,5: Write(‘Весна’);
6,7,8: Write(‘Лето’);
9,10,11: Write(‘Осень’);
else Write(‘Ты идиот’);
end.
В качестве выражения записывается переменная или константа целого типа или символьного типа либо выражение, дающее результат этих типов.
В списках констант записываются значения, которые может принимать выражение.
Если невозможно предусмотреть все возможные значения используется конструкция else, срабатывающая, когда значение N не перечислено выше. В списках констант можно использовать интервалы 3,4,5 Û 3..5.
Составной оператор.
Во многих конструкциях после ключевого словаможет следовать только один оператор. Если таких операторов несколько, то они должны быть объединены в один. Для этого используется составной оператор(операторные скобки)
Пример: Поиск среднего арифметического:
if x>0 then
begin
s:=s+x;
k:=k+1;
end;
if x>0 then S:=S+x;
k:=k+1;
Ввод данных.
Ввод данных осуществляется при помощи подпрограмм:
Read
Readln
Имеют такой формат:
Read([имя файла],[список переменных]);
В квадратных скобках указываются элементы, которые могут бать опущены.
Если имя файла не указано происходит чтение с клавиатуры(экрана), если указано – из файла. Список переменных содержит переменные любых типов, идущие через запятую(,).
Пример:
Var a:real; b:integer;
Begin read(a,b);
Readln отличается от Read тем, что дополнительно переводит курсор экрана на следующую строку.
Вывод данных.
Вывод данных осуществляется при помощи подпрограмм.
Write
Writeln
Имеет такой формат:
Write ([имя файла],[список переменных, констант, выражений],)
Пример:
A=3,b=5
Write (a,’__’, b);
Write (a+b);Þ8
Write (‘Сумма =’, a+3); Þ Сумма =6
Writeln отличается от Write тем, что дополнительно переводит курсор экрана на следующую строку.
Для вывода чисел в форме, желательной для программиста используются форматы вывода:
- для целых чисел – переменная : количество позиций
Write (В:9);
- для вещественных чисел:
1) переменная : общее количество позиций
Write (А:8:3);
2) переменная : количество позиций
Write (А:9);
