Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арифметические операции.docx
Скачиваний:
9
Добавлен:
14.09.2019
Размер:
442.97 Кб
Скачать

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

К арифметическим типам данных относятся группы вещественных и целых типов. К ним применимы арифметические операции и операции отношений.

Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам). Унарная арифметическая операция одна. Это операция изменения знака. Ее формат:

Бинарные арифметические операции стандартного Паскаля описаны в табл. 3.3. В ней I обозначает целые типы, R — вещественные типы.

Таблица 3.3

К арифметическим величинам могут быть применены стандартные функции Паскаля. Структура обращения к функции представлена на рис. 16.

Функция выступает как операнд в выражении. Например, в следующем операторе присваивания

операндами являются три функции: sin, ln, cos. Их запись такая же, как в математике. Аргументы называются фактическими параметрами и являются в общем случае выражениями арифметического типа. Аргументы записываются в круглых скобках. Результат вычисления функции — величина соответствующего типа.

Табл. 3.4 содержит описания математических стандартных функций Турбо Паскаля.

Таблица 3.4

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

Например, запишем по правилам Паскаля следующее математическое выражение:

На Паскале это выглядит так:

Для того чтобы правильно записывать арифметические выражения, нужно соблюдать следующие правила:

1. Все символы пишутся в строчку на одном уровне. Проставляются все знаки операций (нельзя пропускать знак умножения).

2. Не допускаются два следующих подряд знака операций (нельзя A+-B; можно А+(-B)).

3. Операции с более высоким приоритетом выполняются раньше операций с меньшим приоритетом. Порядок убывания приоритетов:

• вычисление функции;

• унарная операция смены знака (-);

• *, /, div, mod;

• +, -.

4. Несколько записанных подряд операций одинакового приоритета выполняются последовательно слева направо.

5. Часть выражения, заключенная в скобки, вычисляется в первую очередь. (Например, (A+B) * (C—D) — умножение производится после сложения и вычитания.)

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

Пример. Цифрами сверху указан порядок выполнения операций:

Данное арифметическое выражение соответствует следующей математической формуле:

В Паскале нет операции или стандартной функции возведения числа в произвольную степень. Для вычисления xy рекомендуется поступать следующим образом:

• если у — целое значение, то степень вычисляется через умножение; например, х3 → х ∙ х ∙ х; большие степени следует вычислять умножением в цикле;

• если у — вещественное значение, то используется следующая математическая формула: хy = eyln(x).

На Паскале это будет выглядеть так:

Очевидно, что при вещественном у не допускается нулевое или отрицательное значение х. Для целого у такого ограничения нет.

Например,

На Паскале это будет так:

Выражение имеет целый тип, если в результате его вычисления получается величина целого типа. Выражение имеет вещественный тип, если результатом его вычисления является вещественная величина.

Арифметический оператор присваивания имеет структуру, представленную на рис. 17.

Например:

Порядок выполнения оператора присваивания нами уже рассматривался. Следует обратить особое внимание на следующее правило: типы переменной и выражения должны быть одинаковыми. Исключение составляет случай, когда выражение имеет целый тип, а переменная — вещественный.

Упражнения

1. Для следующих формул записать соответствующие арифметические выражения на Паскале:

2. Записать математические формулы, соответствующие следующим выражениям на Паскале:

3. Почему в Паскале аргумент функции всегда записывают в скобках (например, пишут ln(5), а не ln5)?

4. Для следующих формул записать соответствующие арифметические выражения на Паскале:

5. Вычислить значения выражений:

6. Определить тип выражения:

7. Если у — вещественная переменная, а п — целая, то какие из следующих операторов присваивания правильные, а какие нет:

8. Поменять местами значения целых переменных х и у, не используя дополнительные переменные. Найдя такой алгоритм, определить, в чем его недостаток по сравнению с методом обмена через третью переменную. Можно ли его применять для вещественных чисел?

9. Присвоить целой переменной h значение цифры, стоящей в разряде сотен в записи положительного целого числа k (например, если k = 28796, то h = 7).

10. Целой переменной S присвоить значение суммы цифр трехзначного целого числа k.

11. Какую задачу решает следующая программа?

Можно ли того же самого результата достичь более простым способом?