Skip to content
This repository has been archived by the owner on Dec 11, 2023. It is now read-only.

Homework for the C++ course at ITMO University (2023): "Simple Calculator"

Notifications You must be signed in to change notification settings

npanuhin/ITMO-CPP-calc-number-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C++: Простой калькулятор

Лабораторная работа по курсу C++, ИТМО

Поддерживаются базовые арифметические операции и ввод десятичных чисел. Операции производятся над значением из единственного регистра (он же - приёмник результата) и, если операция бинарная, вторым операндом, вводимым после оператора.

Ограничения

Размер вводимых чисел ограничен 10 десятичными цифрами.

Операции

  • сложение +
  • вычитание -
  • умножение *
  • деление /
  • остаток от деления %
  • инвертирование знака _
  • возведение в степень ^
  • квадратный корень SQRT

Пользовательский интерфейс

Пользовательский ввод построчно читается из стандартного ввода, в каждой строке ожидается одна операция или ввод числа (без знака):

op [arg]

number

Результат каждой операции выводится в стандартный вывод, сообщения об ошибках - в стандартный вывод ошибок.

Задание

Требуется расширить реализацию калькулятора поддержкой дополнительных систем счисления - позволить вводить пользователю числа в двоичном, восьмеричном и шестнадцатеричном виде (как целые, так и дробные).

Вывод результата остаётся без изменений, в десятичном виде.

Поменять код так, чтобы программный интерфейс не поменялся - реализация должна предоставлять в качестве интерфейса функцию double process_line(double, const std::string &).

Форматы

  • двоичные: 0b101.11
  • восьмеричные: 01347.7
  • шестнадцатеричные: 0xFF.1C

Регистр букв не должен иметь значения (0B11 == 0b11, 0XaF == 0xAF).

About

Homework for the C++ course at ITMO University (2023): "Simple Calculator"

Topics

Resources

Stars

Watchers

Forks