Опубликован: 27.07.2006 | Доступ: свободный | Студентов: 4406 / 1100 | Оценка: 4.28 / 4.13 | Длительность: 26:56:00
Специальности: Программист
Лекция 7:

Простейшие вычисления

Калькуляторы

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

Следующий рисунок дает представление о внешнем виде типичного представителя программ данного класса - калькуляторе KCalc, хорошо знакомого пользователям ОС Linux.


Процесс работы на калькуляторе прост и понятен практически без объяснений: после ввода выражения нажатие на кнопку со знаком = (равно) или на клавишу Enter приводит к вычислению результата. Кнопка +/- позволяет изменить знак числа на противоположный. Приоритеты арифметических операций стандартны, например, результатом ввода последовательности символов 3+4*5= будет 23, а не 35. Для изменения порядка вычислений используются круглые скобки. Так, результат ввода выражения (2+3)*(4+5)= эквивалентен вычислению 5*9=, что равно 45.

Использование дополнительных возможностей, предоставляемых конкретным программным средством, позволяет сделать процесс вычислений более легким и удобным. Далее мы подробнее остановимся на работе с калькулятором KCalc. Отметим, что пользователь может легко настроить внешний вид (шрифты и цвет панелей), а также задать точность вычислений.

KCalc в своей работе использует стек результатов, что дает возможность обращаться к результатам предыдущих вычислений. Каждый раз, когда пользователь нажимает на клавишу Enter или на клавишу =, результат, отображаемый калькулятором, записывается в стек результатов. Для просмотра этого стека используются клавиатурные клавиши с изображением стрелок вверх и вниз.

Нажатие на кнопку AC приводит к аннулированию текущего ввода, а кнопка C отменяет последнюю из введенных операций. Кнопки MR, M+ - и MC обеспечивают работу с так называемой "памятью". Первая из них выводит значение, хранящееся в памяти, вторая складывает содержимое памяти с числом, отображаемым на панели, а последняя обнуляет содержимое памяти.

KCalc позволяет проводить вычисления в следующих системах счисления: шестнадцатеричная (Hex), десятичная (Dec), восьмеричная (Oct) и двоичная (Bin). Для ввода чисел в шестнадцатеричной системе используется дополнительная панель, содержащая буквы латинского алфавита от A до F (обозначающие шестнадцатеричные цифры от 10 до 15). Перевод чисел из одной системы счисления в другую выполняется так: введя число в одной системе, следует изменить основание системы - число отобразится в новой системе счисления.


Пример

Пусть требуется перевести число 17 в двоичную систему счисления. Введем указанное число, для чего можно использовать как клавиатуру, так и кнопки на панели калькулятора. Изменив освование системы счисления с помощью переключателя, получим отображение числа в новой системе. Рисунок демонстрирует полученное представление числа в двоичной системе счисления (включена опция Bin ).

Общие приемы работы с KCalc

В отличии от большинства других приложений в KCalc реализован очень удобный механизм сохранения информации в буфере обмена. Щелчок левой кнопкой мыши в панели вывода результатов приводит к помещению его содержимого в буфер обмена (без предварительного выделения). Нажатие правой или средней кнопки мыши в этой панели выводит число, помещенное в буфер обмена другим приложением. Следует отметить, что только десятичная точка трактуется как признак последующей дробной части. Если в буфере находится число, у которого запятая отделяет дробную часть от целой, то программа интерпретирует ее как знак препинания, а не математический символ, и дробная часть числа не будет отображена.

KCalc может работать в двух режимах: статистическом и тригонометрическом. Для переключения между ними используется клавиша F3, либо окно настройки, вызываемое нажатием клавиши F2. При переключении меняется набор функций в левой колонке кнопок калькулятора. Первый режим предоставляет набор основных функций, используемых при статистических вычислениях. Мы не будем останавливаться на них и перейдем к обзору возможностей калькулятора в тригонометрическом режиме. Левый столбец кнопок в этом случае содержит тригонометрические и логарифмические функции. Правый содержит другие часто используемые функции.

Кроме панели выбора основания KCalc располагает панелью, указывающей, как интерпретировать аргументы тригонометрических функций. Переключатель Deg указывает, что ввод производится в градусной мере углов, а Rad интерпретирует аргумент, как заданный в радианах. Например, при включенном переключателе Deg комбинация клавиш 90 s дает 1 (sin 90o), в то время как при включенном переключателе Rad, комбинация клавиш Inv EE c, как и следовало ожидать, дает 1 ( cos pi ).

Основное назначение кнопки - ввод чисел в экспоненциальной форме. Например, следует последовательно нажать 2 . 3 +/- EE 4 +/- для ввода числа -2.3E-4, равного -0.00023.

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

Функция Клавиша Примечание
Hyp H Переключение калькулятора на ввод гиперболических функций, например, Hyp Sin
Sin S sin x
Cos C cos x
Tan T tg x
Ln N ln x
Log L lg x
Inv I Обратная функция, например, I S для вычисления arcsin x
+/- \ -x (смена знака)
x^2 [ x2
x^y ^ xy
x! ! Факториал числа
1/x R Обратная величина

Пример

Нажатие комбинации клавиш 7R или 7r приведет к вычислению величины, обратной 7 (т. е. 1/7).

Для ввода числа \pi =3.1415926... следует нажать кнопки Inv и EE. А для числа e (Эйлеровой константы, основания натурального логарифма) нажмите кнопки 1 Inv Ln.

Кнопка Mod предназначена для нахождения остатка от деления одного числа на другое, например, 22 Mod 8 дает результат, равный 6. Комбинация кнопок Inv Mod позволяет найти целую часть от деления одного числа на другое, скажем, результат вычисления 22 Inv Mod 8 равен 2.

Кнопка %, нажатая вместо = приводит к различным результатам в зависимости от того, какая операция выполнялась последней, а именно:

  • если вычислялась сумма или разность, то результат выводится в виде процента от последнего аргумента;
  • результат умножения делится на 100;
  • результат деления умножается на 100 (т. е. выводится количество процентов, которое составляет первый аргумент от второго);
  • при возведении в степень выводится первый аргумент, возведенный в степень, равную второму аргументу, деленному на 100;
  • во всех остальных случаях действие этой кнопки идентично нажатию кнопки =.

Пример

Проведем несколько вычислений с использованием операции %.

Ввод Результат
11 + 89 % 112.35.. (89 + 11 = 100, а 100 есть 112.35% от 89)
42 * 3 % 1.26 (42 * 3 / 100)
45 / 55 % 81.81... (45 есть 81.81.. процентов от 55)
2 ^ 300 % 8 (2 в степени (300/100))

Кнопка Lsh ( left shift, сдвиг влево) осуществляет побитовый сдвиг вправо двоичного представления числа. Например, результат вычисления 10 Lsh 3 равен 80, что эквивалентно умножению числа 10 на 2 три раза. Комбинация Inv Lsh (сдвиг вправо) приводит к побитовому сдвигу вправо, например, 16 Inv Lsh 2 даст 4 (16 дважды деленное на 2).

Кнопки And и Or позволяют выполнять операции логического сложения (дизъюнкция, ИЛИ) и умножения (конъюнкция, И).

Задания

  1. Переведите число 1100001001 из двоичной системы счисления в остальные три.
  2. Вычислите следующее выражение (нижним индексом указана система счисления, в которой задается очередное число):

    1112 + 10102 + 228 + 678 + 1016 - 1102

Дмитрий Фаттахов
Дмитрий Фаттахов
Виктория Бельгесова
Виктория Бельгесова

Добрый день. Как получить удостоверение о прохождении данного курса?