Autor Zpráva
peta
Profil *
retezec = 5-2^4
vysledek = ??
potrebuji z retezce bez zavorek s operatory +-/*^ dostat vysledek

Cely priklad je kalkulacka, se zavorkami, ale rozebrani zavorek uz jsem zvladl, nemuzu prijit na to, co s pocitani. Stale se mi nedari nalezt vhodny reg. vyraz pro cislo a to v pripade, ze vyjde vysledek +- a pod...

Kdyby jste mi nekdo poradil, byl bych fakt vdecky, uz se s tim morduju asi 2 hodiny...

na rozebrani na zavorky mam takovou fintu :)
for ($i=0;$i<$z1;$i++)
{
$y = Ereg_Replace("(.*)\((.*)\)(.*)","\\2",$x); //najdi zavorku
$y = spocitej($y);
$x = Ereg_Replace("(.*)\((.*)\)(.*)","\\1".$y."\\3",$x);//prepis zavorku vysledkem
}
peta
Profil *
s temi zavorkami je to trochu jinak...
$o="-\+\*\/\^"; //operatory reg
$y = Ereg_Replace("(.*)\(([".$o."0-9\.]*)\)(.*)","\\2",$x); //najdi zavorku, kde jsou cislice, tecka a operatory
$y = spocitej($y);
$x = Ereg_Replace("(.*)\(([".$o."0-9\.]*)\)(.*)","\\1".$y."\\3",$x); //prep is zavorku vysledkem
Toto téma je uzamčeno. Odpověď nelze zaslat.

0