- •Кафедра прикладной математики
- •Тема: «программирование на языке turbo pascal 7.0»
- •Основные файлы пакета turbo pascal
- •1. Основные элементы языка turbo pascal 7.0
- •1.1. Алфавит и словарь языка turbo pascal.
- •В качестве цифр - десятичные цифры: 0 1 2 3 4 5 6 7 8 9
- •1.2. Слова в turbo pascal.
- •1.3. Идентификаторы.
- •1.4. Константы и переменные.
- •2. Типы данных.
- •Скалярные типы данных
- •Целочисленные типы данных
- •Вещественные типы данных
- •Литерный (символьный) тип
- •Логический (булевский) тип
- •4. Стандартные функции
- •Стандартные арифметические функции
- •Дополнительные стандартные функции
- •Стандартные функции преобразования
- •5. Выражения, операции, операнды
- •5.1. Арифметические выражения и операции
- •5.2. Выражения и операции отношения
- •Операции отношения
- •5.3. Логические выражения и операции
- •Логические операции
- •5.4. Приоритет операций
- •Порядок выполнения операций
- •Контрольные вопросы и задания
- •Лекция № 13 по курсу «информатика»
5.1. Арифметические выражения и операции
Арифметическим выражением называется комбинация, состоящая из арифметических констант и переменных, стандартных функций и использующая только знаки арифметических операций и круглые скобки. Порядок вычисления выражения определяется скобками и старшинством операций. Результатом вычисления арифметического выражения является целое или действительное (вещественное) значение. Рассмотрим арифметические операции, которые можно производить над числовыми данными.
Операция |
Обозначение |
Тип операндов |
Тип результата |
Умножение |
A*B |
real; integer |
real; integer |
Деление |
A/B |
real; integer |
real; integer |
Целая часть от деления |
A div B |
integer |
integer |
Остаток от деления |
A mod B |
integer |
integer |
Сложение |
A+B |
real; integer |
real; integer |
Вычитание |
A-B |
real; integer |
real; integer |
Операция сложения (+), вычитания (-), умножения (*) и деления (/) выполняются так же, как и в обычных арифметических выражениях.
Целочисленное деление (div) отличается от обычной операции деления тем, что вычисляет целую часть частного, дробная часть отбрасывается. Перед выполнением операции оба операнда округляются до целых значений. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.
Например: Выражение Результат
11 div 5 2
10 div 3 3
2 div 3 0
Остаток от деления (mod) вычисляет остаток, полученный при выполнении целочисленного деления.
Например: Выражение Результат
10 mod 5 0
11 mod 5 1
10 mod 3 1
14 mod 5 4
При вычислении арифметических выражений действуют обычные правила старшинства операций: в первую очередь выполняются умножение и деление, а потом - сложение и вычитание. Операции div и mod имеют тот же приоритет, что и операции умножения и деления. Из двух операций одинакового старшинства первой выполняется та, знак которой встречается раньше. Круглые скобки изменяют естественный порядок вычислений. Выражение, заключенное в круглые скобки, перед выполнением вычисляется как отдельный операнд. Все данные, входящие в арифметическое выражение, должны быть одного типа. Однако допускается использование в одной операции данных целого и действительного типа, результат которой при этом будет действительного типа.
Необходимо отметить, что в Pascal нет операции возведения в степень. Возведение в целую степень рекомендуется производить путем многократного умножения, а в вещественную - логарифмированием. Для возведения переменной х в некоторую степень а, т.е. нахождение , используется равенство
, запись на Pascal - exp(a*ln(x)).
При составлении арифметических выражений следует придерживаться следующих правил:
1. Записывать все составные части выражения в одну строку. Например:
Запись на Pascal: (a1*x1+b2*x2+5*a3*x3)/(25*d-14*g)
2. Использовать скобки только одного вида - круглые.
Нельзя записывать подряд два знака арифметических операций.
3*a*b/-z - неверная запись
3*a*b/(-z) - верная запись
Вычисления выполняются слева на право в соответствии с приоритетом
операций: вычисление функций - умножение, деление, div, mod - сложение и
вычитание.
Если аргумент функции представляет собой выражение, то сначала определяется значение этого выражения.
Например:
Запись на Pascal:
0.3*(((sin(x)*sin(x)-sqr(cos(x)))/sin((x+y)/2)-exp(abs(cos(x)+sin(x))))*ln(x)-sqrt(x-1))
ЗАДАНИЕ: какие результаты выполнения выражений неправильны?
1). 24/12=2 5). 2 div 3=1
2). 11 div 5=1 6). 6*5=30
3). 10 div 3=3 7). 11 mod 5=1
4). 15+21 div 2=25 8). 14 mod (5+3)=2