1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

C/c++ Калькулятор Visual Studio

Тема в разделе "Вопросы новичков и не только", создана пользователем Vanua2, 3 янв 2012.

Статус темы:
Закрыта.
  1. Vanua2

    Vanua2 Гость

    Репутация:
    0
    #include <iostream>
    #include <stdlib.h>
    #include <string>
    #include <math.h>
    #define EMPTY 'e'
    #define ERROR 'r'
    #define END 'x'
    double result=0,diget,t;
    using namespace std;
    void main(){
    setlocale(LC_ALL,"Ukrainian");
    char string[255],history[255];
    char oper=EMPTY;
    history[0]='\0';
    cout<<"Введіть числа і знак(+,-,*,/,%,^).\n";
    while (1) {cin>>(string);
    strcat(history,string);
    diget=atof(string);
    if (diget==0){
    if(strlen(string)==1)
    oper=string[0];
    else if(strcmp(string,"cos")==0)
    result=cos(result);
    else if(strcmp(string,"sin")==0)
    result=sin(result);
    else if(strcmp(string,"tg")==0)
    result=tan(result);
    else if(strcmp(string,"ctg")==0)
    result=1/tan(result);
    else if(strcmp(string,"e")==0)
    result=exp(result);
    else{cout<<"Wrong function\n";
    history[strlen(history)-strlen(string)]='\0';
    }
    if (oper=='='){
    cout<<history<<result<<endl;
    history[0]='\0';
    oper=EMPTY;}
    if(oper==END) exit(1);}
    else if(oper==EMPTY) result=diget;
    else { switch(oper){
    case '+': result=result+diget; oper=EMPTY;break;
    case '-': result=result-diget; oper=EMPTY;break;
    case '*': result=result*diget; oper=EMPTY;break;
    case '/': if(diget==0)cout<<"На нуль ділити не можна";
    else{result=result+diget; oper=EMPTY;break;
    case '%': result=(int)result % (int)diget; oper=EMPTY;break;
    case '^': result=pow(result,diget); oper=EMPTY;break;
    case 'x': exit(1);
    case '=': break;
    default: t=ERROR; history[strlen(history)-strlen(string)-1]='\0';oper=EMPTY;}
    if (t==ERROR)
    cout<<"Неправильний знак\n";}
    }}}
     

    Вложения:

Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей