Рассмотрим операции, которые можно выполнять с целыми числами и целочисленными переменными.
Пример 2.2.
Операции с переменными целого типа: Program Action; var А,В.С: integer; begin А:=17; В:=3; { Операция умножения: } С:=А*В; writeln('17 * 3=',С); { Деление нацело: } С:=А div В; writeln(‘17 div 3=’,С); { Вычисление остатка от деления: } С:=А mod В; writeln(' 17 mod 3=',С); { Сложение: } С:=А+В: writeln('17 + 3=',С); { Вычитание: } С:=А-В; writeln('17 - 3=',С) end.
При запуске программа выведет на экран следующее: 17 * 3=51 17 div 3=5 17 mod 3=2 17 + 3=20 17-3=14
Рассмотрим еще несколько примеров операций div и mod.
Для успешного понимания результатов этих операций нужно вспомнить 2-й класс и деление столбиком (рис. 2.2).
Рис. 2.2. Пример целочисленного деления столбиком
Частая ошибка: не забудьте, что все действия мы производим только с целыми числами! Не нужно продолжать деление, когда делимое (это то, что мы делим) оказывается меньше делителя (это то, на что мы делим). То, что осталось отделимого, называется остатком. Это и есть результат операции mod. Целое число, которое получилось в результате деления, называется целочисленным частным. Это результат операции div.
Проверим себя, вспомнив 2-й класс: 5 div 2=2; 5 mod 2=1; 6 div 2=3; б mod 2=0; 40 div 6=6; 40 mod 6=4; 3 div 5=0; 3 mod 5=3.
Результат вычисления операций div и mod для отрицательных чисел оказывается не совсем таким, как положено в математике (когда остаток всегда неотрицателен). Зато он более понятен. Другими словами, результат нужно посчитать отдельно от знаков, а потом добавить знак в соответствии с правилами математики: (-10) div 3=-3; (-10) mod 3=-1; (-3) div 5=0; (-3) mod 5=-3.
Задание 2.1. Даны 3 целых числа — А, В, С. Вычислить их сумму и произведение.
Продумаем алгоритм решения данной задачи. Представьте каждый шаг алгоритма на языке Паскаль.
1 блок Присваивание значений переменным А, В, С
2 блок Вычисление суммы чисел в переменной S
3 блок Вычисление произведения чисел в переменной Р
4 блок Вывод на экран суммы чисел (переменная S)
5 блок Вывод на экран произведения чисел (переменная Р)
Задание 2.2 (самостоятельное). Дана длина ребра куба (целое число). Найти объем куба и площадь его боковой поверхности.
Стандартные функции типа Integer
Многие стандартные действия с числовыми данными выполняются путем вызова функций из библиотеки Паскаля. Такие функции называются стандартными функциями.
Пример 2.3. Демонстрация стандартных функций
Program Infunct; var А,В.С: integer; begin А:=-2;
{ Функция Abs (X) вычисляет абсолютное значение аргумента X, то есть модуль X } B:=Abs(A); writeln('Abs(-2)='.В);
{ Функция Sqr (X) возводит в квадрат аргумент X } C:=Sqr(B); writeln('Sqr(2)=',С); С:=Sqr(B+B); writeln('Sqr(2+2)=',C) end.
При запуске программы вывод на экран: Abs(-2)=2 Sqr(2)=4 Sqr(2+2)=16
Задание 2.3. Вычислите значение следующего выражения: |39 • 54 - 84 2 |.
Задание 2.4. В переменные А и В записаны целые числа (оператором присваивания, например, А:=20; В:=13). Поменяйте числа в этих переменных местами. Будьте внимательны! Если записать А:=В, вы потеряете число 20 и получите в двух переменных число 13! Воспользуйтесь третьей переменной — С (рис. 2.4).
Рис. 2.4. Схема обмена значений двух переменных через третью ячейку. В кружках указан порядок операторов присваивания
Задание 2.5.Выполните задание 4 без использования третьей переменной. Используйте действия сложения и вычитания.