Zápočet 23.1.

Anonymous at 2006-01-24 20:09:59

Měl jsem za úkol naprogramovat vyhodnocování vyrazů (jsou použita celá čísla, operace +, -, *, div a libovolný počet závorek). Délka vstupu není delší než 255 znaků a je bez mezer (předpokládáme, že vstup je zadán správně).

Řešil jsem to trochu kostrbatě převodem z infixového zápisu do postfixového a následným vyhodnocením. Holan mě upozornil, že by to šlo i jednodušeji, ale program v pohodě uznal :D

Celkem mi to trvalo něco přes hodinu.

Zdeněk Vilušínský at 2006-01-24 21:01:15

Nezmínil se, jak jednodušeji bz to šlo? Já, že jediný co mě napadá je taky železničářův algoritmus (postorder a zaroveň vyhodnotit)

Trupik at 2006-01-24 21:23:32

Zdeněk Vilušínský wrote:Nezmínil se, jak jednodušeji bz to šlo? Já, že jediný co mě napadá je taky železničářův algoritmus (postorder a zaroveň vyhodnotit)

Prakticky stejné zadání jsme dostali na testu z C++, trošku jsem popsal i algoritmus. Algoritmus v pascalu (i se zdrojákem) je taky v Algoritmech a datových strukturách od T. Töpfera.
http://forum.matfyz.info/viewtopic.php?p=3583#3583

Anonymous at 2006-01-24 21:35:00

Zdeněk Vilušínský wrote:Nezmínil se, jak jednodušeji bz to šlo? Já, že jediný co mě napadá je taky železničářův algoritmus (postorder a zaroveň vyhodnotit)

pomocí procedur, co nám ukazoval na přednáškách - myslím, že se to jmenovalo výraz, člen a faktor - je to popsané i Töpferově knížce. v letním semestru bychom prý měli znát nějaký postup jak vyhodnocovat výrazy v infixu přímo

Zdeněk Vilušínský at 2006-01-24 21:41:02

Tak to ať se nezlobí, ale vyrobit železničáře je pro mě o řád jednodušší, než se snažit postavit ty jeho šílený procedury Výraz Člen a Faktor.
Ale asi je to individuální..

stnicolaus at 2006-01-24 21:42:52

Zdeněk Vilušínský wrote:Tak to ať se nezlobí, ale vyrobit železničáře je pro mě o řád jednodušší, než se snažit postavit ty jeho šílený procedury Výraz Člen a Faktor.
Ale asi je to individuální..

asi jsem se špatně vyjádřil. řekl, že bychom měli znát nějaký postup, jak vyhodnocovat přímo bez převodu do postfixu. mě jediné jiné řešení napadlo pomocí těch jeho procedur člen, .... on je výslovně nezmínil :D

Zdeněk Vilušínský at 2006-01-24 21:53:57

Tak to pak jo :)
To se dá vždy najít výraz , který jde nahradit výsledkem. Ale je to dost pomalé. Nicméně prý vcelku snadné naprogramovat..