Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
Postano: 6:17 sub, 8. 7. 2006 Naslov: racunanje aritmetickih izraza u POST/PRE-FIX-u |
|
|
zanima me, kad racunamo aritmeticki izraz pomocu stoga...
da li citamo izraz s lijeva na desno ili obrnuto? da li to mozda ovisi o tome da li mi je operand na pocetku izraza (lijevo) ili na kraju? :grebgreb:
na vjezbama kod asistenta Lopatica smo racunali s lijeva na desno, i za takav nacin je dan algoritam koji ne kaze sto radimo ako nam je na pocetku operator :shock: (a na takve primjere sam naisla na proslim rokovima).
algoritam:
[code:1]
1. citamo postfix izraz s lijeva na daesno
2. kad susretnemo operand stavljamo ga na stog
3. kad susretnemo operator skidamo sa stoga onoliko operanada koliko taj operator trazi
4. obavljamo operaciju i rezultat vracamo na stog[/code:1]
zadatak sa zadnjeg roka: ABCD///EF+*GH-*
nije mi jasno kako skidamo operande sa stoga, jer na vjezbama smo napravili primjer koji je na stogu imao npr. AB i onda je dosao /, pa smo skinuli A i B sa stoga i napravili -> A/B. :shock: ja sam shvatila da sa stoga uzimamo operand po operand, te bi na taj nacin imali-> B/A. :-k
zanima me, kad racunamo aritmeticki izraz pomocu stoga...
da li citamo izraz s lijeva na desno ili obrnuto? da li to mozda ovisi o tome da li mi je operand na pocetku izraza (lijevo) ili na kraju?
na vjezbama kod asistenta Lopatica smo racunali s lijeva na desno, i za takav nacin je dan algoritam koji ne kaze sto radimo ako nam je na pocetku operator (a na takve primjere sam naisla na proslim rokovima).
algoritam:
Kod: |
1. citamo postfix izraz s lijeva na daesno
2. kad susretnemo operand stavljamo ga na stog
3. kad susretnemo operator skidamo sa stoga onoliko operanada koliko taj operator trazi
4. obavljamo operaciju i rezultat vracamo na stog |
zadatak sa zadnjeg roka: ABCD///EF+*GH-*
nije mi jasno kako skidamo operande sa stoga, jer na vjezbama smo napravili primjer koji je na stogu imao npr. AB i onda je dosao /, pa smo skinuli A i B sa stoga i napravili → A/B. ja sam shvatila da sa stoga uzimamo operand po operand, te bi na taj nacin imali→ B/A.
Zadnja promjena: petrich; 11:09 sub, 8. 7. 2006; ukupno mijenjano 2 put/a.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 10:00 sub, 8. 7. 2006 Naslov: Re: racunanje aritmetickih izraza u POSTFIX-u |
|
|
[quote="petrich"]da li citamo izraz s lijeva na desno ili obrnuto? da li to mozda ovisi o tome da li mi je operand na pocetku izraza (lijevo) ili na kraju? :grebgreb:[/quote]
Sto bi znacio operand na pocetku [b]postfix[/b] izraza? :-k
[quote="petrich"]na vjezbama kod asistenta Lopatica smo racunali s lijeva na desno, i za takav nacin je dan algoritam koji ne kaze sto radimo ako nam je na pocetku operator :shock: (a na takve primjere sam naisla na proslim rokovima).[/quote]
:idea: Da to nisu bili prefix izrazi? :D
[quote="petrich"]zadatak sa zadnjeg roka: ABCD///EF+*GH-*
nije mi jasno kako skidamo operande sa stoga, jer na vjezbama smo napravili primjer koji je na stogu imao npr. AB i onda je dosao /, pa smo skinuli A i B sa stoga i napravili -> A/B. :shock: ja sam shvatila da sa stoga uzimamo operand po operand, te bi na taj nacin imali-> B/A. :-k[/quote]
Ako je na stogu abcdef, skines zadnja dva (to su f, e) i upotrijebis ih redom kojim su [b]stavljani[/b] (a ne skidani). 8) Dakle, ne [tt]return pop()/pop()[/tt] nego [tt]drugi = pop(); return pop()/drugi;[/tt]. 8)
Pogledaj [url=http://web.math.hr/nastava/c/vjezbe/vjezbe08/49__glavni.c]ovaj primjer[/url] iz [url=http://web.math.hr/nastava/c/vjezbe/vjezbe08/]osmih vjezbi iz C-a[/url]. :)
petrich (napisa): | da li citamo izraz s lijeva na desno ili obrnuto? da li to mozda ovisi o tome da li mi je operand na pocetku izraza (lijevo) ili na kraju?  |
Sto bi znacio operand na pocetku postfix izraza?
petrich (napisa): | na vjezbama kod asistenta Lopatica smo racunali s lijeva na desno, i za takav nacin je dan algoritam koji ne kaze sto radimo ako nam je na pocetku operator (a na takve primjere sam naisla na proslim rokovima). |
Da to nisu bili prefix izrazi?
petrich (napisa): | zadatak sa zadnjeg roka: ABCD///EF+*GH-*
nije mi jasno kako skidamo operande sa stoga, jer na vjezbama smo napravili primjer koji je na stogu imao npr. AB i onda je dosao /, pa smo skinuli A i B sa stoga i napravili → A/B. ja sam shvatila da sa stoga uzimamo operand po operand, te bi na taj nacin imali→ B/A.  |
Ako je na stogu abcdef, skines zadnja dva (to su f, e) i upotrijebis ih redom kojim su stavljani (a ne skidani). Dakle, ne return pop()/pop() nego drugi = pop(); return pop()/drugi;.
Pogledaj ovaj primjer iz osmih vjezbi iz C-a.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
Postano: 10:14 sub, 8. 7. 2006 Naslov: Re: racunanje aritmetickih izraza u POSTFIX-u |
|
|
[quote="vsego"]
:idea: Da to nisu bili prefix izrazi? :D[/quote]
#-o ma da.. prefix... sve mi se pomjesalo i prefix i infix, postorder, inorder,preorder.. to je kad ucim navecer.. :glavobolja:
[quote]
Ako je na stogu abcdef, skines zadnja dva (to su f, e) i upotrijebis ih redom kojim su [b]stavljani[/b] (a ne skidani). 8) Dakle, ne [tt]return pop()/pop()[/tt] nego [tt]drugi = pop(); return pop()/drugi;[/tt]. 8)
[/quote]
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam [b]prefix[/b] izraz kad ga racunam. :neznam:
vsego (napisa): |
Da to nisu bili prefix izrazi?  |
ma da.. prefix... sve mi se pomjesalo i prefix i infix, postorder, inorder,preorder.. to je kad ucim navecer..
Citat: |
Ako je na stogu abcdef, skines zadnja dva (to su f, e) i upotrijebis ih redom kojim su stavljani (a ne skidani). Dakle, ne return pop()/pop() nego drugi = pop(); return pop()/drugi;.
|
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam prefix izraz kad ga racunam.
_________________  Just buzzing by 2 say hi...
Zadnja promjena: petrich; 10:32 sub, 8. 7. 2006; ukupno mijenjano 3 put/a.
|
|
[Vrh] |
|
rat in a cage Forumaš(ica)


Pridružen/a: 25. 11. 2004. (21:45:48) Postovi: (22C)16
Lokacija: Zg
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
|
[Vrh] |
|
rat in a cage Forumaš(ica)


Pridružen/a: 25. 11. 2004. (21:45:48) Postovi: (22C)16
Lokacija: Zg
|
Postano: 10:34 sub, 8. 7. 2006 Naslov: |
|
|
[quote="petrich"][quote="rat in a cage"][quote="petrich"]
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam [b]prefix[/b] izraz kad ga racunam. :neznam:[/quote]
ne kužim točno kaj pitaš..?
pa s lijeva na desno sve čitaš, za pretvaranje između oblika imaš dijkstrin alg. i nema tu više neke mudrusti
tim algoritmom iz vježbi stavljaš i mičeš sa stoga, i konačni rezultat ti ostane sam na stogu[/quote]
ok a kaj onda s ovim zadatkom:
**/A/B/CD+EF-GH
znaci prvo je operator * po onom algoritmu ja bih sad sa stoga trebala uzeti 2 operanda sa stoga i pomnozit ih,al ja nemam nis na stogu.. :roll:[/quote]
gle al to ne postoji, nemaš ni u jednom obliku operator prvi, di si to našla?
petrich (napisa): | rat in a cage (napisa): | petrich (napisa): |
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam prefix izraz kad ga racunam.  |
ne kužim točno kaj pitaš..?
pa s lijeva na desno sve čitaš, za pretvaranje između oblika imaš dijkstrin alg. i nema tu više neke mudrusti
tim algoritmom iz vježbi stavljaš i mičeš sa stoga, i konačni rezultat ti ostane sam na stogu |
ok a kaj onda s ovim zadatkom:
**/A/B/CD+EF-GH
znaci prvo je operator * po onom algoritmu ja bih sad sa stoga trebala uzeti 2 operanda sa stoga i pomnozit ih,al ja nemam nis na stogu..  |
gle al to ne postoji, nemaš ni u jednom obliku operator prvi, di si to našla?
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
Postano: 10:38 sub, 8. 7. 2006 Naslov: |
|
|
[quote="rat in a cage"][quote="petrich"][quote="rat in a cage"][quote="petrich"]
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam [b]prefix[/b] izraz kad ga racunam. :neznam:[/quote]
ne kužim točno kaj pitaš..?
pa s lijeva na desno sve čitaš, za pretvaranje između oblika imaš dijkstrin alg. i nema tu više neke mudrusti
tim algoritmom iz vježbi stavljaš i mičeš sa stoga, i konačni rezultat ti ostane sam na stogu[/quote]
ok a kaj onda s ovim zadatkom:
**/A/B/CD+EF-GH
znaci prvo je operator * po onom algoritmu ja bih sad sa stoga trebala uzeti 2 operanda sa stoga i pomnozit ih,al ja nemam nis na stogu.. :roll:[/quote]
gle al to ne postoji, nemaš ni u jednom obliku operator prvi, di si to našla?[/quote]
:) hehe reci to asistentici Bosner. :) to je zadatak 2. sa roka 4.7.2001.
rat in a cage (napisa): | petrich (napisa): | rat in a cage (napisa): | petrich (napisa): |
ok, to je sad jasno al jos je ostalo pitanje u kojem smjeru citam prefix izraz kad ga racunam.  |
ne kužim točno kaj pitaš..?
pa s lijeva na desno sve čitaš, za pretvaranje između oblika imaš dijkstrin alg. i nema tu više neke mudrusti
tim algoritmom iz vježbi stavljaš i mičeš sa stoga, i konačni rezultat ti ostane sam na stogu |
ok a kaj onda s ovim zadatkom:
**/A/B/CD+EF-GH
znaci prvo je operator * po onom algoritmu ja bih sad sa stoga trebala uzeti 2 operanda sa stoga i pomnozit ih,al ja nemam nis na stogu..  |
gle al to ne postoji, nemaš ni u jednom obliku operator prvi, di si to našla? |
hehe reci to asistentici Bosner. to je zadatak 2. sa roka 4.7.2001.
_________________  Just buzzing by 2 say hi...
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 10:58 sub, 8. 7. 2006 Naslov: |
|
|
Opet mijesate izraze. :ccc:
[tt]**/A/B/CD+EF-GH[/tt] je [b]PRE[/b]fix i normalno je da je operator prvi. :prodike: Racuna se ovako (ne znam formalni algoritam za implementaciju; to valjda morate sami izmisliti):
**/A/B/CD+EF-GH = **/A/B(C/D)(E+F)(G-H) = **/A(B/(C/D))(E+F)(G-H) = **(A/(B/(C/D)))(E+F)(G-H) = *((A/(B/(C/D)))*(E+F))(G-H) = ((A/(B/(C/D)))*(E+F))*(G-H)
Jasno, uz standardni disk-lejmer: [i]ako nisam nista fulao...[/i] O:)
Ovako, na pamet, rekao bih da algoritam ide ovako:
1. citaj s lijeva na desna; procitano stavi u varijablu [tt]p[/tt]
2. ako je [tt]p[/tt] operator, stavi ga na stog
3. ako je [tt]p[/tt] operand i na vrhu stoga [b]nije[/b] operand, stavi [tt]p[/tt] na stog
4. ako je [tt]p[/tt] operand i na vrhu stoga [b]je[/b] operand, skini gornje dvije stvari s vrha stoga (varijabla [tt]v[/tt] i, nakon nje, varijabla [tt]o[/tt] u koju ce, ocito, doci operator (ako je izraz ispravan ;))); izracunaj [tt]x = v o p[/tt]; za [tt]p = x[/tt] izvedi opet korak 3
Nakon citanja, na stogu bi trebao biti jedan operand - rezultat izraza. 8)
Probajte "na ruke", jer sam ovo izmislio iz glave. :blush:
Opet mijesate izraze.
**/A/B/CD+EF-GH je PREfix i normalno je da je operator prvi. Racuna se ovako (ne znam formalni algoritam za implementaciju; to valjda morate sami izmisliti):
**/A/B/CD+EF-GH = **/A/B(C/D)(E+F)(G-H) = **/A(B/(C/D))(E+F)(G-H) = **(A/(B/(C/D)))(E+F)(G-H) = *((A/(B/(C/D)))*(E+F))(G-H) = ((A/(B/(C/D)))*(E+F))*(G-H)
Jasno, uz standardni disk-lejmer: ako nisam nista fulao...
Ovako, na pamet, rekao bih da algoritam ide ovako:
1. citaj s lijeva na desna; procitano stavi u varijablu p
2. ako je p operator, stavi ga na stog
3. ako je p operand i na vrhu stoga nije operand, stavi p na stog
4. ako je p operand i na vrhu stoga je operand, skini gornje dvije stvari s vrha stoga (varijabla v i, nakon nje, varijabla o u koju ce, ocito, doci operator (ako je izraz ispravan )); izracunaj x = v o p; za p = x izvedi opet korak 3
Nakon citanja, na stogu bi trebao biti jedan operand - rezultat izraza.
Probajte "na ruke", jer sam ovo izmislio iz glave.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
|
[Vrh] |
|
rat in a cage Forumaš(ica)


Pridružen/a: 25. 11. 2004. (21:45:48) Postovi: (22C)16
Lokacija: Zg
|
|
[Vrh] |
|
|