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

Как записывать арифметические выражения

  • автор:

2. Выражения

Выражение – это набор величин, которые объединены знаками операций, приводящие к вычислению значения операндов.

Правила записи выражений в алгоритмическом языке.

  • Выражения записываются в строчку. Например, 2 3 = 2 / 3 .
  • Нельзя опускать знак умножения между множителями. Например, 5 x = 5 ∗ x .
  • Операции выполняются в порядке старшинства (как в математике – умножение, деление, сложение, вычитание).

Выражения бывают: арифметическими, логическими и строковыми.

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

Линейная запись формул требует введения дополнительных обозначений математических функций.

Screenshot_4.png

Логическое выражение — это составное высказывание, состоящее из простых высказываний, которые объединены логическими операциями (НЕ, И, ИЛИ).

Строковые выражения состоят из величин символьного типа. Могут соединяться операцией сцепления \(«+»\).
Например,
А \(=\) ученик,
В \(=\) Петров,
\(А + В\)\(=\) ученик Петров.

Как записывать арифметические выражения

Арифметические выражения состоят из операций и операндов. В языке программирования Pascal существует шесть операций: сложение (обозначается знаком «+» ), вычитание (обозначается знаком «-» ), умножение (обозначается знаком «*» ), деление (обозначается знаком «/» ), деление нацело (обозначается словом « div ») и взятие остатка от деления нацело (обозначается словом «mod» ). Слова div и mod являются служебными зарезервированными.

Важным понятием в арифметике является понятие операнда. Операндами называются те объекты, над которыми выполняется арифметическая операция. В математике различные операции могут иметь разное количество операндов, но все арифметические имеют два операнда. Операндом для операции может являться как одиночное число или имя переменной, так и целое арифметическое выражение. Рассмотрим выражение (2+2)*2 . У операции сложения операндами являются два числа `2`, а у операции умножения правый операнд – это число `2`, а левый – это выражение в скобках `(2+2)`. Прежде чем выполнять операцию, необходимо вычислить оба её операнда.
Приоритет операций в Паскале точно такой же, как и в математике. Сначала выполняются операции умножения, деления, div и mod (это тоже операции деления), а потом операции сложения и вычитания. Операции одного приоритета выполняются слева направо. Для изменения порядка действий можно использовать круглые скобки. Операции в скобках имеют более высокий приоритет, чем операции вне скобок. Так при вычислении выражения 2+2*2 получается число `6`, потому что операция умножения имеет более высокий приоритет, чем сложение, и, следовательно, выполняется первой. Если же записать выражение (2+2)*2 , то при вычислении получается число `8`, потому что сложение в скобках выполняется раньше умножения.
Рассмотрим, как определить тип результата при вычислении арифметического выражения. Операции сложения, вычитания и умножения выдают целый результат, если оба их операнда целые, и вещественный, если хотя бы один из операндов – вещественный. Операция деления «/» всегда выдаёт вещественный результат. Даже если мы `4` делили на `2`, всё равно в итоге получается нецелое число. На первый взгляд это кажется странным, но в отличие от математики в программировании каждое число кроме значения ещё имеет тип, и если типы у чисел не совпадают, то они НЕ считаются равными. Нужно уяснить, что `bb(1!=1.0)`. Это несложно понять, если помнить, что раз числа `1` и `1.0` имеют различные типы, то будут представлены совершенно разными последовательностями битов. Операции div и mod всегда выдают целый результат и, в отличие от всех остальных арифметических операций, могут иметь только целые операнды. Попытка применить данные операции к вещественным числам приведёт к тому, что программа просто не будет работать.

Давайте подробнее познакомимся с двумя последними операциями. Операция a div b выдаёт целую часть от деления числа a на число b . То есть 5 div 2 = 2 , а 3 div 7 = 0 . Операция a mod b выдаёт остаток от деления a на b по следующему закону:

a mod b = a – ((a div b) * b)

Приведём примеры выполнения этих их операций для всех возможных знаков операндов:

5 div 3 = 1; 5 mod 3 = 2;
-5 div 3 = -1; -5 mod 3 = -2;
5 div -3 = -1; 5 mod -3 = 2;
-5 div -3 = 1; -5 mod -3 = -2;

Операндами в арифметическом выражении также могут быть стандартные математические функции, которые приведены в таблице ниже.

Функция Комментарий Тип аргумента Тип результата
abs(x) $$ │x│$$ — модуль $$ x$$ integer, real совпадает с типом аргумента
sqr(x) $$ ^$$ integer, real совпадает с типом aргумента
sqrt(x) `sqrt x` $$ $$ — корень квадратный из $$ x$$ integer, real real
Pi `3.1415926535897932385` нет real
sin(x) $$ \mathrmx$$ integer, real real
cos(x) $$ \mathrmx$$ integer, real real
arctan(x) `»arctg»x` integer, real real
trunc(x) отсекание дробной части $$ x$$ real integer
round(x) округление $$ x$$ до ближайшего целого. Половины округляются в сторону увеличения модуля. real integer

Необходимо отметить, что функциям sin и cos угол следует подавать в радианах, а не в градусах! Также функция arctan возвращает результат в радианах.

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

( a[i+1] + b[i-1] ) / ( 2*x*y )

( -b + sqrt(b*b — 4*a*c)) / ( 2*a )

sign(x) * abs(x) ** (1/5)

0.49 * exp(a*a — b*b) + ln(cos(a*a)) ** 3

Типичные ошибки в записи выражений:

Пропущен знак умножения между 5 и х

Аргумент x функции sin x не заключен в скобки

Не хватает закрывающей скобки

7.21. Как записываются логические выражения?

В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения < (меньше), (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.

Примеры записи логических выражений, истинных при выполнении указанных условий.

Запись на школьном алгоритмическом языке

Дробная часть вещественого числа a равна нулю

Целое число a — четное

Целое число a — нечетное

Целое число k кратно семи

Каждое из чисел a, b положительно

Только одно из чисел a, b положительно

Хотя бы одно из чисел a, b, c является отрицательным

Число x удовлетворяет условию a < x < b

Число x имеет значение в промежутке [1, 3]

Целые числа a и b имеют одинаковую четность

((mod(a, 2)=0) и (mod(b, 2)=0) или ((mod(a, 2)=1) и (mod(b, 2)=1))

Точка с координатами (x, y) лежит в круге радиуса r с центром в точке (a, b)

Уравнение ax^2 + bx + c = 0 не имеет действительных корней

Точка (x, y) принадлежит первой или третьей четверти

Точка (x, y) принадлежит внешности единичного круга с центром в начале координат или его второй четверти

Целые числа a и b являются взаимнопротивоположными

Целые числа a и b являются взаимнообратными

Число a больше среднего арифметического чисел b, c, d

Число a не меньше среднего геометрического чисел b, c, d

Хотя бы одна из логических переменных F1 и F2 имеет значение да

Обе логические переменые F1 и F2 имеют значение да

Обе логические переменые F1 и F2 имеют значение нет

Логическая переменная F1 имеет значение да, а логическая переменная F2 имеет значение нет

Только одна из логических переменных F1 и F2 имеет значение да

(F1 и не F2) или (F2 и не F1)

Общая схема компьютера

Джон фон Нейман, 1945 г. Архитектура с параллельным процессором

Архитектура многопроцессорного компьютера

Микропроцессор Pentium 4. Вид сверху (слева) и вид снизу (справа)

ДВОЙНОЕ СЛОВО

Разбиение памяти для четырехбайтовых компьютеров

Микросхемы памяти RIMM (сверху) и DIMM (снизу)

Интегральные схемы BIOS и CMOS

Поверхность магнитного диска

Винчестерский накопитель со снятой крышкой корпуса

Профиль дорожки CD-ROM

Накопитель на сменных дисках

Схема реализации модемной связи

Общая структура персонального компьютера с подсоединенными периферийными устройствами

Рис. 2.28. Системный блок со снятой крышкой корпуса

1 — Системная плата. 2 — Разъём дополнительного второго процессора. 3 — Центральный процессор с радиатором для отвода тепла. 4 — Разъёмы оперативной памяти. 5 — Накопитель на гибких магнитных дисках. 6 — Накопитель CD-ROM. 7 — Сетевая карта. 8 — Графический акселератор. 9 — Блок питания, преобразующий переменное напряжение электросети в постоянное напряжение различной полярности и величины, необходимое для питания системной платы и внутренних устройств. Блок питания содержит вентилятор, создающий циркулирующие потоки воздуха для охлаждения системного блока.

Рис. 2.29. Системная плата компьютера класса Pentium

1 — Разъём под центральный процессор; 2 — Дополнительный кэш объёмом 256 Кбайт; 3 — Разъём под дополнительный кэш; 4 — Контроллеры внешних устройств; 5 — Разъёмы накопителей на жёстких магнитных дисках; 6 — Разъёмы под оперативную память, 4 планки; 7 — Коннектор (соединитель) клавиатуры и мыши; 8 — Микросхема, обслуживающая флоппи-дисковод, последовательные порты и параллельный порт; 9 — Разъёмы 32-битной шины (для видеокарты, карты Интернет и др.); 10 — Перезаписываемая BIOS (Flash-память); 11 — Мультимедийная шина; 12 — Разъёмы 16-битной шины.

Организация связи между компьютерами

Сетевой сервер HP LD PRO

Топологии компьютерных сетей

Небольшая офисная локальная сеть

Соединение локальных сетей посредством мостов

Топология «все со всеми»

Смайлики (рассматривайте, склонив голову влево)

:-Q курит :-@ кричит 🙁 грусть :’-( плачет 😉 хитрец >:-( злится : 0 зевает

:-)~ пускает слюнки 8:-) маленькая девочка :-* cъел горькое :’-) плачет от счастья :-& поклялся молчать O-) аквалангист =8-) носит очки

Джон фон Нейман

Джон Бэкус

Билл Гейтс и Пол Аллен

Стивен Джобс и Стефан Возняк

Память на магнитных сердечниках

Суперкомпьютер CRAY —1

Карманный компьютер iPAQ 3150

Palmtop

Персональный цифровой помощник

Как записывать арифметические выражения

Арифметические выражения содержат арифметические операции, функции, операнды и круглые скобки.
Одна константа или одна переменная — простейшая форма арифметического выражения.

  1. Все символы пишутся в строку на одном уровне. Проставляются все знаки операций (нельзя пропускать *).
  2. Не допускаются два следующих подряд знака операций. Нельзя А + — В; можно А +(-В).
  3. Операции с более высоким приоритетом выполняются раньше операций с меньшим приоритетом. Порядок убывания приоритетов:
    • вычисление функции;
    • унарная операция смены знака (-);
    • *, /, div, mod;
    • +, —
  4. Несколько записанных подряд операций одинакового приоритета выполняются последовательно слева направо.
  5. Часть выражения, заключенная в скобки, вычисляется в первую очередь. (Например, (А + В)*(C — D) — умножение производится после сложения и вычитания).
    Не следует записывать выражений, не имеющих математического смысла. Например, деление на нуль, логарифм отрицательного числа и т.п.
Функция Возвращаемое значение
А * В Умножение А на В
A/B Деление А на В
A^B A возвести в степень B
A mod B остаток от целочисленного деления числа A на число B
A\B целочисленное деление A на B
Sqr(x) Квадратный корень числа х
Sin(x) Синус (х в радианах)
Cos(x) Косинус (х в радианах)
Tan(x) Тангенс
Atn(x) Арктангенс
Log(x) Натуральный логарифм числа х
Exp(x) Показательная функция
Int(x) наибольшее целое число, не превышающее число х
CInt(x) целое число, ближайшее к числу х
Fix(x) целое число, равное числу х без дробной части
Abs(x) абсолютное значение числа х
Rnd(x) случайное число

Запишите на Visual Basic следующие арифметические выражения:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *