PDA

View Full Version : سوال: مشکل در تشخیص پرانتزها



m.dehkordi.py
یک شنبه 30 آبان 1389, 21:11 عصر
سلام و عرض خسته نباشید به دوستان عزیز!

سوالی که دارم اینه که چه جوری می تونیم تشخیص بدیم دستور نوشته شده درست پرانتزگذاری شده یعنی به ازای هر پرانتز باز یک پرانتز بسته وجود داره. ممنون میشم اگه راهنماییم کنید.

Salar Ashgi
یک شنبه 30 آبان 1389, 22:26 عصر
دوست عزیز ، سوالتان مبهم و خیلی کلی است ، لطفا" واضحتر بیان کنید ./

m.dehkordi.py
دوشنبه 01 آذر 1389, 09:46 صبح
منظورم اینه که وقتی کاربر یک عبارت پرانتز گذاری شده را وارد می کنه برنامه بتونه تشخیص بده به ازای هر پرانتزی که باز شده یک پرانتز بسته هم وجود داره.
مثلا اگه کاربر عبارت (4*(x*y)/2)) را وارد میکنه برنامه بتونه تشخیص بده که این عبارت درست پرانتز گذاری نشده.
بازم تشکر از توجه تون!

Felony
دوشنبه 01 آذر 1389, 11:25 صبح
براتون یک تابع نوشتم :

bool CheckBracket(char str[20])
{
int Parantez= 0;
for (int i=0; i<=20; i++)
if (str[i]== '(')
Parantez++;
else if (str[i]== ')')
Parantez--;
if (Parantez== 0)
return true;
else
return false;
}

نمونه استفاده :

main()
{
char str[20];
cout<< "Enter a formula :";
cin>> str;
if (CheckBracket(str)== true)
cout<< "it is true";
else
cout<< "it is false";
}

Salar Ashgi
دوشنبه 01 آذر 1389, 16:57 عصر
علاوه بر کدی که دوست عزیز مجتبی تاجیک (http://www.barnamenevis.org/forum/member.php?u=63881) ، ذکر کردند ؛ روش دیگر استفاده از پشته (Stack) میباشد ./