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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lili_I
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 9
#1

Дано числовое выражение, содержащее числа, знаки действий +, -, * и круглые скобки (), например 10-(3+6). Найти значение заданного выражения - C++

01.07.2013, 21:27. Просмотров 758. Ответов 2
Метки нет (Все метки)

программа на с++. нужно ООП. спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано числовое выражение, содержащее числа, знаки действий +, -, * и круглые скобки (), например 10-(3+6). Найти значение заданного выражения (C++):

Удалить из заданного текста все части, заключенные в круглые скобки - C++
Написать программу удаляющую из заданного текста все части, заключенные в круглые скобки, вместе со скобками.

Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» — True, «F» — False): <выражение> : - C++
помогите пожалуйста решить задачку на рекурсию Вывести значение логического выражения, заданного в виде строки S. Выражение определяется...

Регулярные выражения: круглые скобки в replace - JavaScript
Здравствуйте, подскажите пожалуйста, как с помощью метода replace в javascript заменить выражение, содержащее круглые скобки. Ситуация...

Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно, то вывести число - Java SE
Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно, то вывести число 0. Если нет, то вывести -1.

Для выражения определить наименьшее k, при котором значение выражения становится больше заданного числа П - Turbo Pascal
Для выражения exp(k)/k определить наименьшее k, при котором значение выражения становится больше заданного числа П.

Найти значение выражения 1.1 - 1.2 + 1.3 - ... (N слагаемых,знаки чередуются). - C++ Builder
Дано целое число N ( &gt; 0 ). Найти значение выражения 1.1 - 1.2 + 1.3 - ... (N слагаемых,знаки чередуются). Условный оператор не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mogost
7 / 7 / 1
Регистрация: 07.04.2012
Сообщений: 51
01.07.2013, 22:20 #2
Никто за вас писать не будет...
Сама идея в том, чтобы записать выржание в постфиксной форме.
http://natalia.appmat.ru/c&c++/postfisso.html
1
Lili_I
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 9
02.07.2013, 18:34  [ТС] #3
Mogost, а мне и не надо. Я просто не могу понять, как делать. А уж набрать код я и сама могу

Добавлено через 7 часов 15 минут
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <condefs.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//-------------------------------Г‘ Г’ Г… ГЉ-------------------------------------
const int maxsize=50;
char values[maxsize];
int top=0;
 
bool empty()
     {
      if (top==0) return true;
         else return false;
     }
 
void push(char c)
     {
      if (top==maxsize) ShowMessage("Overflow in stack!!!");
         else values[top++]=c;
     }
 
void pop(char &c)
     {
      if (empty()) ShowMessage("Stack is empty!!!");
         else c=values[--top];
     }
 
//-------------------------ГЏ ГЋ Г‘ Г’ Г” Г€ ГЉ Г‘---------------------------------
void PostFix(char *in, char *res)
{
int i=0;
int n_r=0;
char c, temp;
 
push('%');
while (in[i]!='%')
      {
       c=in[i++];
 
       if (c=='(') {push(c); continue;}
 
       if (c==')')
          {
           pop(temp);
           while (temp!='(')
             {
              res[n_r++]=temp;
              pop(temp);
             }
           continue;
          } 
 
       if (c=='+'||c=='-')
          {
           pop(temp);
           if (temp=='%'||temp=='(')
              {
               push(temp);
               push(c);
              }
           else if (temp=='+'||temp=='-'||temp=='*'||temp=='/')
              {
               res[n_r++]=temp;
               push(c);
              }
           continue;
          }
       if (c=='*'||c=='/')
          {
           pop(temp);
           if (temp=='%'||temp=='('||temp=='+'||temp=='-')
              {
               push(temp);
               push(c);
              }
           if (temp=='*'||temp=='/')
              {
               res[n_r++]=temp;
               push(c);
              }
           continue;
          }
       else res[n_r++]=c;
      }
pop(temp);
while (temp!='%')
      {
       res[n_r++]=temp;
       pop(temp);
      }
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
char formula[100]="";
char resultat[100]="";
char temp_formula[100]="";
char turn_formula[100]="";
int  b=0, k, i=0, t=0, j=0;
 
Edit1->GetTextBuf(formula, 100);
while (formula[i]!=NULL)
      {
       if (formula[i]=='(') b++;
       if (formula[i]==')') b--;
       k=i;
       i++;
      }
if (b!=0) ShowMessage("ochibka na vhode!");
else
    {
formula[k+1]='%';
 
PostFix(formula, resultat);
Edit2->Text=resultat;
     }
}
//---------------------------------------------------------------------------
нужно чтобы он вычислял результат, есть предположения, как лучше это сделать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2013, 18:34
Привет! Вот еще темы с ответами:

Добавить цифры и знаки арифметических действий так, чтобы получилось правильное арифметическое выражение - Delphi
Дана конечная последовательность, состоящая из левых и правых скобок различных заданных типов. Как определить, можно ли добавить в нее...

Числовое значение выражения - Математика
Привет Все подзабылаа

Дано действительные числа х и у. Вычислить значение выражения: - C++
выражения:(| х | - | у |) / (1 + | х * у |) Для Microsoft Visual Studio 2010 Запрещено размещать тему в нескольких разделах...

Дано предложение, содержащее целые положительные числа, которое заканчивается запятой. Вывести числа на экран - Visual Basic
Дано предложение содержащее целые положительные числа,которое заканчивается запятой. Вывести на экран эти числа


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru