Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.04.2010
Сообщений: 3

Консольный калькулятор требует описание

03.04.2010, 13:23. Показов 2164. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!

Я написал простенький консольный калькулятор на C++ и хотел бы знать описание нескольких шагов. Знаю звучит глупо будто написал не я, но так уж получилось, что я не понял строчки 10 и 11 . Так же прошу высказать какие-либо замечания к программе, где нибудь поправить, подсказать и т.п. Прошу помочь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 
        double a,b;             //описание переменных a и b
        char s[2],c1[2],c2[2];  //описание строк s, c1 и c2
        cin>>s;                 //ввод строки s    
        c1[0]=s[0]; c2[0]=s[2]; //?
        c1[1]=NULL; c2[1]=NULL; //?
        a=atof(c1); b=atof(c2); //преобразование строки c1 и c2 в числа a и b.
        switch (s[1]){
                case '+' : cout<<a+b<<endl; break; 
                case '-' : cout<<a-b<<endl; break; 
                case '*' : cout<<a*b<<endl; break; 
                case '/' : cout<<a/b<<endl; break; 
        }
}
так же добавлю, что калькулятор может работать только с однозначными числами.
Ввод: 7+9 | 9*9
Вывод: 16 | 81
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2010, 13:23
Ответы с готовыми решениями:

Консольный калькулятор
Мне задали реализовать консольный калькулятор с выводом функций через параметры. Функции + - * / Пример использования: #myCalck...

Доделать консольный калькулятор
Ребят. Вот есть такой недоделыш. Должно работать следующим способом: вы вводите любое выражение, например 2+70*3+2583/5, а прога понятное...

Простой консольный калькулятор
Я новичок, изучаю C++ всего первый день, начал изучение по книге Либерти &quot;C++ за 21 день&quot;. Пока что из всех полученных мною знаний я...

5
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
03.04.2010, 13:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main()
{
 
        double a, b;
        char s;             // знак операции
        cin >> a >> s >> b;
        switch(s)
        {
            case '+' : cout << a+b << endl; break;
            case '-' : cout << a-b << endl; break;
            case '*' : cout << a*b << endl; break;
            case '/' : cout << a/b << endl; break;   // вот здесь необходимо сделать проверку деления на 0
            default : cout << "Error." << std::endl; // если будет введён символ отличный от знака операции
        }
}
1
50 / 49 / 25
Регистрация: 03.04.2010
Сообщений: 100
03.04.2010, 13:44
У тебя в строку s сохраняется то, что ввел пользователь, то есть при вводе 7+9
s[0] = '7'
s[1] = '+'
s[2] = '9'.
Соответственно в 10 строке ты записываешь символы '7' и '9' в нулевые элементы массивов с1 и с2. В строке 12 ты записываешь в элемент 1 этих массивов 0, и теперь они представляют собой строки с нулем на конце ('7',0 и '9',0) (можно использовать их в качестве аргументов функций для работы со строками, чот и делается в дальнейшем - atof() ).

Замечание - введенные числа приводятся к float, хотя ввести можно всего одну цифру... Так что или увеличить количество допустимых цифр, или приводить к int.
1
0 / 0 / 0
Регистрация: 03.04.2010
Сообщений: 3
03.04.2010, 13:51  [ТС]
rangerx, спасибо за ваше решение!
я не догадался, что можно вводить переменные без пробелов. Значит можно, если первая переменная одного типа, а вторая другого?

gh05t,
Цитата Сообщение от gh05t Посмотреть сообщение
Соответственно в 10 строке ты записываешь символы '7' и '9' в нулевые элементы массивов с1 и с2. В строке 11 ты записываешь в элемент 1 этих массивов 0, и теперь они представляют собой строки с нулем на конце ('7',0 и '9',0)
а этот ноль же не число? это как бы пустое место? да?
0
50 / 49 / 25
Регистрация: 03.04.2010
Сообщений: 100
03.04.2010, 14:01
Это значение, которое говорит о конце строки. При выполнении математических операций калькулятором не участвует.
1
0 / 0 / 0
Регистрация: 03.04.2010
Сообщений: 3
03.04.2010, 14:03  [ТС]
gh05t, а тогда все, большое спасибо! разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2010, 14:03
Помогаю со студенческими работами здесь

Консольный калькулятор на вычитание
Здравствуйте. Помогите пожалуйста разобраться в двух ошибках. Самой трудно понять, так как программирование плохо знаю. Задание: Нужно...

Консольный калькулятор, в чем ошибка?
int main() { setlocale(0, &quot;&quot;); char input ; int value; cout &lt;&lt; &quot;Введите число: &quot;; for(int i=0;i&lt;256;i++) { int...

Написать консольный калькулятор (сложение чисел)
Как мне написать код, с помощью которого можно было складывать числа, так сказать калькулятор, но только с возможностью сложения

Написать консольный калькулятор (разрядность чисел - 12)
подскажите, пожалуйста, как написать калькулятор (разрядность чисел - 12) на Си или Си++

Простой консольный калькулятор - не пойму, где ошибка
#include &lt;stdio.h&gt; int main() { float num1,num2,res,moreCalc; char operation; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru