Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Нужна помощ в задачах С++


Автор: antigrom 3.5.2009, 16:44
Уважаемые эксперты!
Памагите разобраться.... надо чтобы при вводе любого математического выражения проверялось правильное написание скобок... всмысле того что если скобка открыта то она длжна быть закрыта где то в выражении ... я сделал так но при вводе )))((( прога показывает что верно ... надо сделать проверку на равенство открывшихся скобок и закрывшихся...


Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int flag=0;
int z=RichEdit1->Lines->Text.Length()-2;
 
for (int i=1; i<=z; i++)
{
if (RichEdit1->Lines->Strings[0][i] =='(')
flag--;
 
if (RichEdit1->Lines->Strings[0][i] ==')')
flag++;
 
if (RichEdit1->Lines->Strings[0][i] =='[')
flag--;
 
if (RichEdit1->Lines->Strings[0][i] ==']')
flag++;
 
 
}
 
if (flag==0)
ShowMessage("Правильно");
else
ShowMessage("Не правильно");
 
 
}



Да и еще есть проблема...
Задача
Изобразить на экране N кривых-эвольвент, образованных точкой, лежащей на прямой, обкатывающейся по окружности без скольжения. Каждая эвольвента строится при обкатывании по дуге в 2пи/N угловых градусов.
как ваааще делать ее ???? ума не преложу... можете подсказать..?(очень прошу )
С уважением Дмитрий.


Модератор: пользуйся кнопкой "Код"


M
bsa
Кто код форматировать (я про отступы) будет?

Автор: antigrom 3.5.2009, 17:43
ну с первой мне помогли....

Код
#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;string&gt;
using namespace std;

const char s1[2]={'(',')'};
const char s2[2]={'[',']'};

int main()
{
int s1c=0,s2c=0;
string str;
int i;
bool err=false;
bool s1b=false,s2b=false;

cout&lt;&lt;&quot;Vvedite stroku: \n&quot;;
cin&gt;&gt;str;

for(i=0;i&lt;str.length();i++)
{
if(str[i]==s1[0])
{
s1c++;
s1b=true;
s2b = false;
}
if(str[i]==s1[1])
{
s1c--;
if(s2b==true) err=true;
s1b=false;
}
if(str[i]==s2[0])
{
s2c++;
s2b = true;
s1b = false;
}
if(str[i]==s2[1])
{
s2c--;
if(s1b==true) err=true;
s2b=false;
}
}

if(s1c==0 &amp;&amp; s2c==0) cout&lt;&lt;&quot;Balans skobok ne narushen\n&quot;;
else
{
if(s1c!=0)
{
cout&lt;&lt;&quot;Narushen balans skobok tipa '&quot;&lt;&lt;s1[0]&lt;&lt;s1[1]&lt;&lt;&quot;'\n&quot;;
if(s1c&lt;0) cout&lt;&lt;&quot;Izbytok '&quot;&lt;&lt;s1[1]&lt;&lt;&quot;'(&quot;&lt;&lt;-s1c&lt;&lt;&quot\n&quot;;
else cout&lt;&lt;&quot;Izbytok '&quot;&lt;&lt;s1[0]&lt;&lt;&quot;'(&quot;&lt;&lt;s1c&lt;&lt;&quot\n &quot;;
}
if(s2c!=0)
{
cout&lt;&lt;&quot;Narushen balans skobok tipa '&quot;&lt;&lt;s2[0]&lt;&lt;s2[1]&lt;&lt;&quot;'\n&quot;;
if(s2c&lt;0) cout&lt;&lt;&quot;Izbytok '&quot;&lt;&lt;s2[1]&lt;&lt;&quot;'(&quot;&lt;&lt;-s2c&lt;&lt;&quot\n&quot;;
else cout&lt;&lt;&quot;Izbytok '&quot;&lt;&lt;s2[0]&lt;&lt;&quot;'(&quot;&lt;&lt;s2c&lt;&lt;&quot\n &quot;;
}
}

if(err) cout&lt;&lt;&quot;\nSkobki rasstavleny neverno!\n&quot;;

getch();
return 0;
}


А вот со второй просто проблема.... помогите пожалуста...

Автор: zim22 3.5.2009, 17:49
Цитата(antigrom @  3.5.2009,  17:43 Найти цитируемый пост)
cout&lt;&lt;&quot;Narushen balans skobok tipa '&quot;&lt;&lt;s2[0]&lt;&lt;s2[1]&lt;&lt;&quot;'\n&quot;;

прелесть. пользуйтесь кнопкой CODE

Автор: antigrom 5.5.2009, 04:41
блин попомогите со второй задачкой........

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)