flash_back
@flash_back

Упражнение из книги Страуструпа. Программа мини-калькулятор. Цифры записанные в строковом формате. Что имеется ввиду в данном контексте?

Привет всем.
Не могу понять, как необходимо изменить программу исходя из условия упражнения.
Упражнение сформулировано так:
Модифицируйте мини-калькулятор, описанный в упр.4, так , чтобы он принимал на вход цифры, записанные в числовом и строковом формате.

Упражнение 4 сделал, вот код:
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian");

	double first;
	double second;
	double result;
	char operation;

	while (cin >> first >> second >> operation)
	{
		switch (operation){
			case '+': result=first+second; 
					  cout << "Сумма " << first << " и " << second << " равна " << result << endl; 
					  break;
			case '-': result=first-second; 
					  cout << "Разность " << first << " и " << second << " равна " << result << endl;
					  break;
			case '*': result=first*second;  
					  cout << "Произведение " << first << " и " << second << " равно " << result << endl;
					  break;
			case '/': result=first/second;  
					  cout  << "Частное " << first << " и " << second << " равно " << result << endl;
					  break;
			case '%': result= fmod(first,second);  
					  cout  << "Остаток от деления " << first << " и " << second << " равен " << result << endl;
					  break;
			default:  cout  << "Неизвестная операция" << endl; break;
		}

Не могу понять, что значит:
цифры, записанные в числовом и строковом формате

Вроде в числовом и так вводим. А в строковом это просто string, но зачем? А если полностью словами, то как-то сложно для упражнения одной из вводных глав учебника для новичков. А вы как думаете?
  • Вопрос задан
  • 1501 просмотр
Решения вопроса 1
Ох уж этот перевод. Читайте лучше оригинал (stroustrup principles and practice using c++ 2014):
"Modify the “mini calculator” from exercise 5 to accept (just) single-digit numbers written as either digits or spelled out."

Числа из только одной цифры, записанные текстом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Числа в строковом формате - да просто string. Чтоб производить над ними арифметические действия нужно преобразовать в число - см. std::atoi и т.п.
Немного забегая вперед - преимущество ввода в строковом формате в том, что можно все выражение записать в одной строке, а потом эту одну строку парсить. Т.е. можно сделать универсальный калькулятор, которые воспринимает не два аргумента и операцию, а сложные выражения. Кроме простых действий в этом случае в калькулятор можно прикрутить вычисления разнообразных математических функций и т.п.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы