Форум программистов, компьютерный форум CyberForum.ru

Калькулятор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проблемы с STL http://www.cyberforum.ru/cpp-beginners/thread707394.html
Задание довольно таки большое. Суть в том, что есть экскурсии(однодневные и многодневные) и нужно всю информацию об этих экскурсиях свести в перемешанную таблицу(перемешивание сцеплением) Доступ осуществляется по коду экскурсии. Каждый элемент таблицы содержит указатель на описатель экскурсии. Классы экскурсий, даты, времени и маршрута я написал. И я могу записать всю эту информацию в таблицу...
C++ Что означают эти объявления переменных? Я не знаю как это понимать... В условии задания почему-то тип данных указан только для первой строки, а для остальных нет... там же точки с запятыми стоят.. http://www.cyberforum.ru/cpp-beginners/thread707390.html
C++ Циклы. Возведение в степень. Алгоритм Герона.
Написать функцию вычисления а ^ 1/2, где a ≥ 0, по алгоритму- мом Герона и условием продолжения, которая отвечает неравенства | х (с индексом n) ^ 2 - a |> d.Правила форума п. 5.16: Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Циклы. Написать функцию, которая по целым n и m возвращает целые неотрицательные числа C++
Написать функцию, которая по целым n и m возвращает целых неотрицательных чисел, которые меньше 10 ^ n и имеют сумму цифр m.Правила форума п. 5.16: Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
C++ Считать даные из файла в массив http://www.cyberforum.ru/cpp-beginners/thread707379.html
Немогу нормально считать даные из файла в массив. Сначала через етот код создаю файл.#include<stdio.h> #include<iostream> using namespace std; int main() { FILE*f; f=fopen("D:\\dig.txt", "w"); if (!f) { cout<<"ERROR";
C++ Вывести таблицу значений функции y=2,4х2+5х–3 в диапазоне от –2 до 2 с шагом 0,5 Написать программу, которая выводит таблицу значений функции y=2,4х2+5х –3 в диапазоне от –2 до 2 с шагом 0,5. Через оператор с пред условием while. Заранее спасибо . подробнее

Показать сообщение отдельно
Nicksetone
Сообщений: n/a
24.11.2012, 12:46     Калькулятор
Помогите пожалуйста сделать в этом калькуляторе скобки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;
const int MAX=7, Max=255;
bool EXIT(bool);
 
void main(){
double Res=0, Dig;
bool Exit=false;
char str[MAX];
char History[Max];
char Oper='\0';
   
   History[0]='\0';
   while (Exit!=true){
           cout<<"Input: ";
           cin>>str;
           strcat(History,str);
 
                if(str[0]=='='){
                     cout<<"Result: "<<History<<Res<<endl;
                     Exit=EXIT(Exit);
                     str[0]='\0';
                     History[0]='\0';
                }
        
            Dig=atof(str);
 
                if(Dig==0 && str[0]!='0'){
                      if(strstr("+-*/%^",str)!=0 || strcmp("cos",str)==0 
                                           || strcmp("sin",str)==0 ||strcmp("tan",str)==0 
                                           || strcmp("log",str)==0){
 
                          if(strcmp("cos",str)==0)
                                Res=cos(Res);
                             if(strcmp("sin",str)==0)
                                Res=sin(Res);
                             if(strcmp("tan",str)==0)
                                Res=tan(Res);
                             if(strcmp("log",str)==0)
                                Res=log(Res);
                      }
                      else{
                          cout<<"Not correct operation: "<<str<<endl;
                                Exit=EXIT(Exit);
                          str[0]='\0';
                          History[0]='\0';
                      }
                      
                      Oper=str[0];
                }
 
                else
                 if(Oper!='\0'){
                            if (Oper=='+') Res+=Dig;
                            if (Oper=='-') Res-=Dig;
                            if (Oper=='*') Res*=Dig;
                            if (Oper=='/') Res/=Dig;  
                 if (Oper=='%') Res=int(Res)%(int)Dig;
                 if (Oper=='^') Res=pow(Res,Dig);
                            Oper='\0';
                            }
                      else
                           Res=Dig;
                      
   }
}
 
bool EXIT(bool Exit){
    char k;
    cout<<endl<<"Do you want exit?(y/n): ";
       cin>>k;
    cout<<endl;
        if(k=='y')
           return Exit=true;
}
Вот алгоритм для скобок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
while (not exit)
    history=empty;
    result=calc();
    output result
function calc: double{
operation=empty;
result=0;
while (not exit)
{input string;
history=history+string;
if (string ==()
    dig=calc()
if (string==))
    return result;
if (string not digit) then
    if (string is func)
        result=function(result)
    else 
operation=string;
else
    if (operation==empty)
        result=string
    else
if (operation==+) then result=result+string;
if (sign==*) then result=result*b;
if (sign==/) then result=result/b;
if (sign==%) then result=result%b;
if (sign===) then output history; history=empty;
operation=empty;
output result;}}
 Комментарий модератора 
Правила форума п. 5.5: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru