Выражения и операции
Любое выражение имеет определенный тип и
после вычисления возвращает некоторое значение. Простейшими
выражениями являются переменные и константы. Более сложные
выражения строятся из более простых с использованием операций,
скобок, вызовов функций, индексов и приведений типов. Данные, к
которым применяются операции, называются операндами.
В Pascal ABC имеются следующие операции: @,
not, ^, *, /, div, mod, and, shl, shr, +, -, or, xor, =, >, <,
<>, <= и >=.
Арифметические операции
К арифметическим относятся
бинарные операции + - * / для вещественных и целых чисел,
бинарные операции div и mod для целых чисел и унарные операции +
и - для вещественных и целых чисел. Выражение, имеющее числовой
тип, называется арифметическим. Тип арифметического выражения
определяется по следующему правилу: если все операнды целые и в
выражении отсутствует операция деления /, то выражение имеет тип
integer, в противном случае выражение имеет тип real. Например,
если b имеет тип byte, c имеет тип 1..9, то b+c и -b имеют тип
integer, а 2.0+b и 1/2 - тип real.
Операции отношения
Операции отношения <, >, <=,
>=, =, <> возвращают значение типа boolean
(логический) и применяются к операндам целого,
вещественного, символьного, логического и строкового типов, а
также к типизированным указателям. При сравнении
символа и строки символ преобразуется в строку длины 1.
Типы данных
Тип данных |
Диапазон
данных |
Тип
integer
(целый). |
Значения этого типа занимают 4
байта и находятся в диапазоне от -2147483648 до
2147483647. |
Тип
byte
(беззнаковый целый). |
Значения этого типа занимают 1
байт и находятся в диапазоне от 0 до 255. |
Тип
word
(беззнаковый целый). |
Значения этого типа занимают 2
байта и находятся в диапазоне от 0 до 65535. |
Тип
real
(вещественный). |
Значения вещественного типа
занимают 8 байт, содержат 15-16 значащих цифр и по
модулю не могут превосходить величины 1.7∙1038.
Самое маленькое положительное число вещественного типа
равно 5.0∙10-34. Константы типа
real
можно записывать как в форме с плавающей точкой, так и в
экспоненциальной форме:
1.7 ,
0.013 ,
2.5e3
(2500), 1.4e-1
(0.14). |
Арифметический квадрат
Функция
SQR(x) возвращает квадрат
значения аргумента, то есть
sqr(x)=x2=x*x.
ПРИМЕРЫ.
sqr(4)=42=16
sqr(13)=132=169
d=2, e=5, sqr(d+e)=sqr(2+5)=sqr(7)=72=79
x=3, sqr(sqr(3))=sqr(9)=92=81
Корень квадратный
Функция
SQRT(x) вычисляет корень
квадратный из значения аргумента, то есть
sqrt(x)=,
sqrt(x)=.
Абсолютная величина
Функция
ABS(х)
возвращает абсолютную величину значения аргумента (т.е. находит
модуль числа).
ПРИМЕРЫ.
abs(12)=12
abs(-12)=12
х=3, у=-5,
abs(3+(-5))=abs(-2)=2
abs(3)+abs(-5)=3+5=8
Примечание: в Паскале большие и маленькие буквы в именах
(переменных, функциях и пр.) не различаются. Не различаются они
при записи служебных слов. Пример (верно):SQR,
sqr, ABS, abs, BEGIN, begin ...
Проверка знаний
Тест:
Основные
понятия
арифметических выражений
Дроби в записи выражений
Пример
1. Запишите на языке Паскаль выражение:
Пример
2. Запишите на языке Паскаль выражение:
Пример 3.
Даны x, y, z. Написать программу для
вычисления a, b.
Этапы выполнения задания
(а).
I Определение исходных данных:
переменные x, y, z.
II Определение результатов:
переменная a.
III Алгоритм решения задачи.
1 Ввод исходных данных
2 Вычисление значения выражения
3 Вывод результата.
IV Описание переменных:
Все переменные, определенные для решения
задачи, имеют тип real. (Переменные x, y, z могут быть и целого
типа, а переменная а только вещественного типа, поскольку в
выражении используется операция деления.)
V Программа:
Var x,y,z,a: real;
Begin
Write(‘введите значение x=’);
Readln(x);
Write(‘введите значение y=’);
Readln(y);
Write(‘введите значение z=’);
Readln(z);
a:=(2*x+3*y-z)/(3+2*x);
Writeln(‘a=’,a:7:3);
End.
Можешь
загрузить!
Пример 3_а
VI Тестирование программы:
1. Запустите программу и введите значения
x=3
y=2
z=0
Проверьте, результат должен быть следующим:
a= 1.333
Проверить правильность вычислений можно на
калькуляторе.
2. Заполните таблицу
|
x |
y |
z |
a |
1 |
2 |
-5 |
1 |
|
2 |
2.362 |
4.258 |
-7.458 |
|
3 |
-1.2358 |
-4.554 |
5.562 |
|
3. Подберите такие значения x, y, z, чтобы
значение а= 2.000
4. Что изменится и почему, если в программе
заменить команду Writeln(‘a=’,a:7:3); на команду Writeln(a);?
5. Как распечатать только целую часть
результата?
Примечание.
Тип real предназначен для переменных вещественного типа.
Переменные данного типа выводятся на экран монитора с большим
дробным хвостом. Во избежание этого можно указать количество
цифр выводимых вообще и после запятой (дробной части). Например, Writeln(‘a=’,a:7:3)
- первая цифра 7 обозначает количество мест выделенных для цифр
всего числа, вторая 3 - цифры дробной части. Точка тоже
захватывается в количество мест для всего числа (т.е. в 7, в
данном случае).
Этапы выполнения задания
(b).
I Определение исходных данных: переменные
x, y.
II Определение результатов: переменная b.
III Алгоритм решения задачи.
1. Ввод исходных данных
2. Вычисление значения выражения
3. Вывод результата.
IV Описание переменных:
Все переменные, определенные для решения
задачи, имеют тип real. (Переменные x, y могут быть и целого
типа, а переменная b только вещественного типа, поскольку в
выражении используется функция вычисления квадратного корня.)
V Программа:
Var x,y,b: real;
Begin
Write(‘введите значение x=’);
Readln(x);
Write(‘введите значение y=’);
Readln(y);
b:=(SQRT(x)+4)/(ABS(y)-2);
writeln(‘b:=’,b:7:3);
End.
Можешь
загрузить!
Пример 3_б
VI Тестирование программы:
1. Запустите программу и введите значения
x=9
y=-7
Проверьте, результат должен быть следующим:
a= 1.000
Проверить правильность вычислений можно на
калькуляторе.
2. Заполните таблицу
|
x |
y |
b |
1 |
16 |
-5 |
|
2 |
2.362 |
4.258 |
|
3 |
-1.2358 |
-4.554 |
|
3. Подберите такие значения x, y, чтобы
значение b= 2.000.
Проверка знаний
Тест:
Построение
простейших арифметических выражений
Задачи
для самостоятельного решения
-
Составить программу вычисления значения
выражения:
а)
; б)
; в)
.
-
Перевести из
линейной записи в обычную следующие выражения:
а)
a/b/c;
б)
ab/c;
в) (а+b)/c;
г) (1,2a+b)/(3,6b+c);
д) a+4,7b/b+c;
е)
abs(x)+sqr(x)-sqrt(x).
Примечание.
В программах на Паскале дробное число записывается с помощью точки.
Например, 12.6; 3.6; 4.7.
-
Составить программу вычисления значения
функции при любом значении переменных:
-
;
-
-
-
-
-
-
-
;
-
;
-
-
-
-
Составить программу вычисления значения
функции:
Проверка знаний
Тест:
Арифметические выражения
Примеры решения задач
1.
Составить программу вычисления значения
выражения:
РЕШЕНИЕ:
program
Prim_3_1;
var
a,b,c,d:real;
begin
writeln('Введите
3 численных значения
через пробел и нажмите
<Enter>:');
readln(a,b,c
);
d:=(4.2/a-3.2*b)/(c/7+8);
writeln('d=',d);
writeln('Для
завершения работы программы нажмите
<Enter>:');
readln
end.
Можешь
загрузить!
Пример 3_1
2.
Перевести из линейной записи в обычную
следующие выражение:
(1,2a+sqr(b))/(3,6b+abs(c));.
РЕШЕНИЕ:
.
3. Составить программу
вычисления значения функции при любом значении переменных:
a)
b).
РЕШЕНИЕ:
program
Prim_3_3_a;
var
x,y:real;
begin
writeln('Введите
значение х и
нажмите
<Enter>:');
readln(x);
y:=2.5*sqr(x)-0.7*x+4.1;
writeln('y=',y);
writeln('Для
завершения работы программы нажмите
<Enter>:');
readln
end.
Можешь
загрузить!
Пример 3_3_а
program
Prim_3_3_b;
var
x,y,z:real;
begin
writeln('Введите
значения
х,y
и нажмите
<Enter>:');
readln(x,y);
z:=8.1*x*x*x-1.5*x*y*y+4*y-x-0.2;
writeln('z=',z);
writeln('Для
завершения работы программы нажмите
<Enter>:');
readln
end.
Можешь
загрузить!
Пример 3_3_б
4.
Составить программу вычисления значения функции:
РЕШЕНИЕ:
program
Prim_3_4;
var
t,g:real;
begin
writeln('Введите
значения
t и нажмите
<Enter>:');
readln(t);
g:=abs(2.4*t-100)+abs(t-2.2)-sqrt(sqr(t)/(18+abs(t)));
writeln('g=',g);
writeln('Для
завершения работы программы нажмите
<Enter>:');
readln
end.
Можешь
загрузить!
Пример 3_4