| 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...
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
 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:
Opet mijesate izraze.
 [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:
   
 **/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] |  | 
	
		|  |