Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 12:30   #1
.:Stimer:.
Заблокирован
 
Регистрация: 04.11.2009
Сообщений: 41
Сообщение Проблемка с калькулятором...

Я решил сделать калькулятор... Но он получился не совсем номармальный, он у меня по написанному коду может только выполнять одну функцию: делить или умножать или складывать или вычитать... Принцип такой: вводишь число нажимашь Enter, в водишь второе число и нажимаешь Enter, и выдвет ответ а действее с этими числами длает то которое написано в программе, вот код:
Код:
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    start:
    cout << "The number lead In to which want to add what or number:" << endl;
int x;
cin >> x;
cout << "In lead number which want to add to number:" << endl;
int y;
cin >> y;
int a = x+y;
cout << "Your decision of the example:" << endl;
cout << a << endl;
cout << "Press any key for termination of the program." << endl;
goto start;  
}
Но я хочу сделать чтоб был ешё выбор знака действия... Чтоб работал по такому принципу: В водишь число и нажимаешь Enter, в водишь знак и нажимаешь Enter, в водишь второе число и жмешь Enter, и выдается ответ примера... Не поскажите как это можно сделать?

Последний раз редактировалось .:Stimer:.; 07.11.2009 в 16:26.
.:Stimer:. вне форума Ответить с цитированием
Старый 07.11.2009, 12:52   #2
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

С помощью связки printf/scanf можно сделать считывания сразу выражения, например что-то типа:
Код:
int x,y; //переменные
char z; //знак
printf("Enter...\n");
scanf("%d%c%d", &x,&z,&y);
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 07.11.2009, 13:06   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
#include <iostream>

int main()
{
int a, b, c;
char sign;

std::cout << "Введите первое число, затем знак, затем второе число: ";
std::cin >> a >> sign >> b;
switch(sign)
 {
 case '+': c = a + b; break;
 case '-': c = a - b; break;
 case '*': c = a * b; break;
 case '/': c = a / b; break;
 }
std::cout << a << sign << b << '=' << c << '\n'; 
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 07.11.2009, 13:11   #4
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Код:
float *calculation(float *firstDigit, float *secondDigit, char *actionCode){
  float *ansver;
  switch(*actionCode){
    case '+':
      *ansver = (*firstDigit + *secondDigit);
      break;
    case '*':
      *ansver = (*firstDigit * *secondDigit);
      break;
    case '/':
      *ansver = (*firstDigit / *secondDigit);
      break;
    case '-':
      *ansver = (*firstDigit - *secondDigit);
      break; 
    default: {puts("Sorry, but you lol :)"); break;} 
  }
  return ansver;
}
Цитата:
goto start;
- жестоко
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 07.11.2009, 13:58   #5
.:Stimer:.
Заблокирован
 
Регистрация: 04.11.2009
Сообщений: 41
По умолчанию

Код:
case '+': c = a + b; break;
- это типо переменный вид знака? )
И не поскажите как писать в Dev-C++ на русском?
SunKnight, в каком смысле жестоко?
.:Stimer:. вне форума Ответить с цитированием
Старый 07.11.2009, 14:28   #6
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Цитата:
SunKnight, в каком смысле жестоко?
- не красиво
- не функционально
- бесконечный цикл

и вообще, метки применяют очень в крайних случаях. Лучше использовать while с проверкой на нажатие esc для выхода.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 07.11.2009, 14:43   #7
Lunex.08
Форумчанин
 
Аватар для Lunex.08
 
Регистрация: 25.02.2009
Сообщений: 145
По умолчанию

Вот простенький вариант, хоть и слегка награможденный.
Код:
#include <iostream>
using namespace std;
int main ()
{
    int x,y,b;
    char a;
    cout << "enter 1 Number" << '\n';
    cin >> x;
    cout << "enter arithmetic sign" << '\n';
    cin >> a;
    cout << "enter 2 Number" << '\n';
    cin >> y;
    if (a=='+'){         // Сложение
                cout << x+y ;
                getchar ();
                }
                if  (a=='-') {      //Вычитание           
                 cout << x - y;
                    getchar ();
                    }
if (a=='*'){              //Умножение
            cout << x * y;
            getchar (); 
            }
            if (a=='/'){ //Деление
                       if(y==0) cout << "Division error";
else     cout << x/y;
                                   }                  
                    return 0;
                    }
Эх,как вспомню как я с калькулятором парился когда-то)Хех.Если что непонятно-обращайся.Хоть я и не мастер, но кое-что в голове есть)
Компьютеры бесподобны: за несколько минут они могут совершить такую грандиозную ошибку, какую не в состоянии сделать множество людей за многие месяцы.

Последний раз редактировалось Sazary; 08.11.2009 в 19:22.
Lunex.08 вне форума Ответить с цитированием
Старый 07.11.2009, 16:14   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Сообщение от .:Stimer:. Посмотреть сообщение
Код:
case '+': c = a + b; break;
- это типо переменный вид знака? )
Это мы проверяем, какой символ ввел пользователь. Если один из знаков + - * / то считаем соответствующим образом ответ. Можно было по отдельности запрашивать первое число, знак и второе число, как здесь предлагают, а можно ввести все одной строкой.
Ну и там у меня лучше вместо int поставить double, это я зарапортовался!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 07.11.2009, 16:14   #9
.:Stimer:.
Заблокирован
 
Регистрация: 04.11.2009
Сообщений: 41
По умолчанию

Цитата:
Сообщение от Lunex.08 Посмотреть сообщение
Вот простенький вариант, хоть и слегка награможденный.
#include <iostream>
using namespace std;
int main ()
{
int x,y,b;
char a;
cout << "enter 1 Number" << '\n';
cin >> x;
cout << "enter arithmetic sign" << '\n';
cin >> a;
cout << "enter 2 Number" << '\n';
cin >> y;
if (a=='+'){ // Сложение
cout << x+y ;
getchar ();
}
if (a=='-') { //Вычитание
cout << x - y;
getchar ();
}
if (a=='*'){ //Умножение
cout << x * y;
getchar ();
}
if (a=='/'){ //Деление
if(y==0) cout << "Division error";
else cout << x/y;
}
return 0;
}
Эх,как вспомню как я с калькулятором парился когда-то)Хех.Если что непонятно-обращайся.Хоть я и не мастер, но кое-что в голове есть)

Спасибо чувак все понятно здесь... ))
.:Stimer:. вне форума Ответить с цитированием
Старый 07.11.2009, 16:17   #10
.:Stimer:.
Заблокирован
 
Регистрация: 04.11.2009
Сообщений: 41
По умолчанию

А в каком вы компеляторе пишете? ))
.:Stimer:. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с калькулятором JlunaZ Помощь студентам 3 07.04.2009 22:20
Помогите с калькулятором vishnya454 Помощь студентам 8 07.01.2009 10:35
Проблема з калькулятором carbon383 Помощь студентам 22 02.11.2008 11:49
Помогите с калькулятором. Sanch Помощь студентам 1 24.09.2008 06:42
Проблемы с калькулятором MAKEDON Помощь студентам 18 02.08.2008 14:30