Cтроковые (литерные) выражения, значениями которых являются текcты. В строковые выражения могут входить литерные и строковые константы, литерные и строковые переменные, литерные функции, разделенные знаками операции сцепки. Например, А + В означает присоединение строки В к концу строки А . Если А = "куст ", а В = "зеленый", то значение выражения А + В есть "куст зеленый".
5. Операторы (команды). Оператор — это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав опеpатоpов входят:
ключевые слова;
данные;
выpажения и т.д.
Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые — для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).
7.19. Что такое стандартная функция?
При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д.
Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями, которые заранее запрограммированы и встроены в транслятор языка.
Таблица стандартных функций школьного алгоритмического языка
Название и математическое обозначение функции
Указатель функции
Абсолютная величина (модуль)
| х |
abs(x)
Корень квадратный
sqrt(x)
Натуральный логарифм
ln x
ln(x)
Десятичный логарифм
lg x
lg(x)
Экспонента (степень числа е ~ 2.72)
ex
exp(x)
Знак числа x ( - 1, если х<0; 0, если x = 0; 1, если x > 0)
sign x
sign(x)
Целая часть х (т.е. максимальное целое число,не превосходящее х)
int(x)
Минимум из чисел х и y
min(x,y)
Максимум из чисел х и y
max(x,y)
Частное от деления целого х на целое y
div(x,y)
Остаток от деления целого х на целое y
mod(x,y)
Случайное число в диапазоне от 0 до х - 1
rnd(x)
Синус (угол в радианах)
sin x
sin(x)
Косинус (угол в радианах)
cos x
cos(x)
Тангенс (угол в радианах)
tg x
tg(x)
Котангенс (угол в радианах)
ctg x
ctg(x)
Арксинус (главное значение в радианах)
arcsin x
arcsin(x)
Арккосинус (главное значение в радианах)
arccos x
arccos(x)
Арктангенс (главное значение в радианах)
arctg x
arctg(x)
Арккотангенс (главное значение в радианах)
arcctg x
arcctg(x)
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
sin ( 3.05 )
min ( a, 5)
sin ( x )
min ( a, b )
sin ( 2 * y + t / 2 )
min ( a + b , a * b )
sin((exp(x) + 1) ** 2)
min(min(a, b), min(c, d))
Каждый язык программирования имеет свой набор стандартных функций.
7.20. Как записываются арифметические выражения?
Арифметические выражения записываются по следующим правилам:
Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
Индексы элементов массивов записываются в квадратных (школьный АЯ, Pascal) или круглых (Basic) скобках.
Для обозначения переменных используются буквы латинского алфавита.
Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание.
Операции одного старшинства выполняются слева направо. Однако, в школьном АЯ есть одно исключение из этого правила: операции возведения в степень выполняются справа налево. Так, выражение 2**(3**2) в школьном АЯ вычисляется как 2**(3**2) = 512. В языке QBasic аналогичное выражение 2^3^2 вычисляется как (2^3)^2 = 64. А в языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal x^y записывается как exp(y*ln(x)), а x^y^z как exp(exp(z*ln(y))*ln(x)).
Примеры записи арифметических выражений
Математическая запись
Запись на школьном алгоритмическом языке
x * y / z
x / ( y * z ) или x / y / z
( a**3 + b**3 ) / ( b*c )
( a[i+1] + b[i-1] ) / ( 2*x*y )
( -b + sqrt(b*b - 4*a*c)) / ( 2*a )
(x<0)
sign(x) * abs(x) ** (1/5)
0.49 * exp(a*a - b*b) + ln(cos(a*a)) ** 3
x/(1 + x*x/(3 + (2*x)**3))
Типичные ошибки в записи выражений:
5x + 1
a + sin x
((a + b)/c**3
Пропущен знак умножения между 5 и х
Аргумент x функции sin x не заключен в скобки
Не хватает закрывающей скобки
7.21. Как записываются логические выражения?
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.
Примеры записи логических выражений, истинных при выполнении указанных условий.
Условие
Запись на школьном алгоритмическом языке
Дробная часть вещественого числа a равна нулю
int(a) = 0
Целое число a — четное
mod(a, 2) = 0
Целое число a — нечетное
mod(a, 2) = 1
Целое число k кратно семи
mod(a, 7) = 0
Каждое из чисел a, b положительно
(a>0) и (b>0)
Только одно из чисел a, b положительно
((a>0) и (b<=0)) или ((a<=0) и (b>0))
Хотя бы одно из чисел a, b, c является отрицательным
(a<0) или (b<0) или (c<0)
Число x удовлетворяет условию a < x < b
(x>a) и (x
Число x имеет значение в промежутке [1, 3]
(x>=1) и (x<=3)
Целые числа a и b имеют одинаковую четность
((mod(a, 2)=0) и (mod(b, 2)=0) или ((mod(a, 2)=1) и (mod(b, 2)=1))
Точка с координатами (x, y) лежит в круге радиуса r с центром в точке (a, b)
(x-a)**2 + (y-b)**2 < r*r
Уравнение ax^2 + bx + c = 0 не имеет действительных корней
b*b - 4*a*c < 0
Точка (x, y) принадлежит первой или третьей четверти
((x>0) и (y>0)) или ((x<0) и (y>0))
Точка (x, y) принадлежит внешности единичного круга с центром в начале координат или его второй четверти
(x*x + y*y > 1) или ((x*x + y*y <= 1) и (x<0) и (y>0))
Целые числа a и b являются взаимнопротивоположными
a = -b
Целые числа a и b являются взаимнообратными
a*b = 1
Число a больше среднего арифметического чисел b, c, d
a > (b+c+d) / 3
Число a не меньше среднего геометрического чисел b, c, d
a >= (b+c+d) ** (1/3)
Хотя бы одна из логических переменных F1 и F2 имеет значение да
F1 или F2
Обе логические переменые F1 и F2 имеют значение да
F1 и F2
Обе логические переменые F1 и F2 имеют значение нет
не F1 и не F2
Логическая переменная F1 имеет значение да, а логическая переменная F2 имеет значение нет
F1 и не F2
Только одна из логических переменных F1 и F2 имеет значение да
(F1 и не F2) или (F2 и не F1)
7.22. Упражнения
7.1. Запишите по правилам алгоритмического языка выражения: