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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ошибка в MY_HEADER_H http://www.cyberforum.ru/cpp-beginners/thread915989.html
где ошибка? #ifndef MY_HEADER_H #define MY_HEADER_H #include <iostream> class MyClass { public:
C++ Подскажите с заголовочным файлом есть заголовочный фаил header.h: #include<iostream.h> void fn_void(int m) { m=9; cout<<m; } и есть основная программа: #include<iostream> #include<fstream> http://www.cyberforum.ru/cpp-beginners/thread915958.html
C++ Определить количество целых корней данного уравнения
Уравнение ах^3+Ьх*+сх+(1=0 с целыми коэффициентами (0 < \d\ < 2). Определить количество целых корней данного уравнения.
C++ Понижение загрузки ЦП, используя Sleep (1)
Не сильно мудрёная программа заметно грузит ресурсы процессора. Возможные точки нагрузки: 1) Программа запускается посредством CreateProcess, параллельно родительской программе, т.е. возможно, что такой метод не осиливает мой процессор 2) Дочерняя программа по 2-3 раза в течение своего времени вызывает внешние программы функцией system, т.е. возможно я не знаком с подводными камнями этой...
C++ Нахождение обьема тела и прощади поверхности http://www.cyberforum.ru/cpp-beginners/thread915898.html
Тело имеет форму параллелепипеда с высотой h. Прямоугольник в основе имеет диагональ d. Известно, что диагонали прямоугольника пересекаются под углом. Найти объем тела V и площадь полной поверхности S.
C++ Пузырьковая сортировка Есть курсовик. Есть пузырьковая сортировка Есть одно НО. Сортировка должна быть сделана через массив указателей, а не через массив структур. Был бы очень благодарен за помощь. #include <stdio.h> #include <conio.h> #define max_elem 300 подробнее

Показать сообщение отдельно
Lili_I
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 9
02.07.2013, 18:34  [ТС]
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;
     }
}
//---------------------------------------------------------------------------
нужно чтобы он вычислял результат, есть предположения, как лучше это сделать?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru