| Prethodna tema :: Sljedeća tema | 
	
  | 
 
	  
		| Kako ocjenjujete težinu zadataka za vježbu? |  
		| 
			
			  | Ne razumijem što zadaci hoće. |  | 0% | [ 0 ] |  
			  | Shvaćam zadatak, ali ne znam odakle početi. |  | 10% | [ 1 ] |  
			  | Okvirno znam što napraviti, ali ne uspijevam iskodirati. |  | 30% | [ 3 ] |  
			  | Vrlo teško, ali ipak dobivam program koji donekle radi. |  | 10% | [ 1 ] |  
			  | Treba truda ali mogu ih riješiti u razumnom vremenu. |  | 40% | [ 4 ] |  
			  | Teški trivić, hoću prave stvari! |  | 0% | [ 0 ] |  
			  | Ma kakvi zadaci, ne da mi se ni pogledati! |  | 10% | [ 1 ] |  |  
		| Ukupno glasova : 10 |  
 | 
	
		| Autor/ica | Poruka | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 | 
			
				|  Postano: 0:09 pet, 20. 10. 2006    Naslov: |         |  
				| 
 |  
				| OK, evo jedna zadacica za sljedece vjezbe.
OK, evo jedna zadacica za sljedece vjezbe.Nije teska, ali ilustrira stvari kojih treba biti svjestan kad se barata s binarnom reprezentacijom objekata koji se razmjenjuju izmedju razlicitih sistema.
 
 Definirajte funkciju
 [code:1]bool isLittleEndian();[/code:1]
 koja vraca true akko sistem na kojem se izvrsava koristi little endian poredak byte-ova, a false inace (big endian).
 
 Definirajte potom funkcije
 [code:1]T convertEndian(T);[/code:1]
 za [b]prikladne[/b] primitivne tipove T, koje pretvaraju binarnu reprezentaciju iz sistemskog poretka byte-ova u "onaj drugi".
 Naravno, implementacije ce biti skoro identicne, pa tu funkciju ima smisla uciniti predloskom, ali o tome kad iste naucimo...
 
 Ako ne znate o cemu je tu rijec, pogledajte na Wikipediu.
 Ako zelite i zanimljivu pripovijest u pozadini, posjetite predavanja prof. Ribarica iz Gradje racunala.
 Nije teska, ali ilustrira stvari kojih treba biti svjestan kad se barata s binarnom reprezentacijom objekata koji se razmjenjuju izmedju razlicitih sistema.
 
 Definirajte funkciju
 
  	  | Kod: |  	  | bool isLittleEndian(); | 
 koja vraca true akko sistem na kojem se izvrsava koristi little endian poredak byte-ova, a false inace (big endian).
 
 Definirajte potom funkcije
 
 za prikladne primitivne tipove T, koje pretvaraju binarnu reprezentaciju iz sistemskog poretka byte-ova u "onaj drugi".
 Naravno, implementacije ce biti skoro identicne, pa tu funkciju ima smisla uciniti predloskom, ali o tome kad iste naucimo...
 
 Ako ne znate o cemu je tu rijec, pogledajte na Wikipediu.
 Ako zelite i zanimljivu pripovijest u pozadini, posjetite predavanja prof. Ribarica iz Gradje racunala.
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| GauSs_ Moderator
 
  
  
 Pridružen/a: 28. 01. 2004. (21:01:17)
 Postovi: (53C)16
 Spol:
  Lokacija: 231
 
 |  | 
	
		| [Vrh] |  | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| GauSs_ Moderator
 
  
  
 Pridružen/a: 28. 01. 2004. (21:01:17)
 Postovi: (53C)16
 Spol:
  Lokacija: 231
 
 | 
			
				|  Postano: 9:38 pet, 20. 10. 2006    Naslov: |         |  
				| 
 |  
				| @vsego: zaboravih reci da je <spoiler>[size=0]straight-forward u svim slucajevima[/size]  </spoiler> moguc. Barem se i meni tako cini@vsego: zaboravih reci da je <spoiler>straight-forward u svim slucajevima  </spoiler> moguc. Barem se i meni tako cini _________________ The purpose of life is to end
   
Prosle su godine kolokviji bili laksi, zar ne? |  | 
	
		| [Vrh] |  | 
	
		| GauSs_ Moderator
 
  
  
 Pridružen/a: 28. 01. 2004. (21:01:17)
 Postovi: (53C)16
 Spol:
  Lokacija: 231
 
 | 
			
				|  Postano: 9:58 pet, 20. 10. 2006    Naslov: |         |  
				| 
 |  
				| evo mali spoiler, kako rijesiti zadatak na trivijalan nacin za mxn matricu, m i n parni
evo mali spoiler, kako rijesiti zadatak na trivijalan nacin za mxn matricu, m i n parni
 <spoiler>[size=0]
 krecemo iz [m-1][0]
 -> [m-2][0]
 -> [m-1][0]
 -> [m-1][1] -> [m-2][1] -> [m-3][1]
 -> [m-3][0]
 i sada radimo zmiju do vrha po ta dva stupca
 -> [m-4][0] -> [m-4][1] -> [m-5][1] -> [m-5][0] -> ...
 dodjemo do [0][1], ako je bilo mx2 gotovo, inace
 [0][1]->[0][2]
 i sada opet radimo zmiju (po stupcima) do kraja
 [0][2]->[1][2]->...->[m-1][2]
 ->[m-1][3]->[m-2][3]->...
 i na kraju zavrsavamo u [0][n-1]
 [/size]
 </spoiler>
 
 <spoiler>
 krecemo iz [m-1][0]
 → [m-2][0]
 → [m-1][0]
 → [m-1][1] → [m-2][1] → [m-3][1]
 → [m-3][0]
 i sada radimo zmiju do vrha po ta dva stupca
 → [m-4][0] → [m-4][1] → [m-5][1] → [m-5][0] → ...
 dodjemo do [0][1], ako je bilo mx2 gotovo, inace
 [0][1]→[0][2]
 i sada opet radimo zmiju (po stupcima) do kraja
 [0][2]→[1][2]→...→[m-1][2]
 →[m-1][3]→[m-2][3]→...
 i na kraju zavrsavamo u [0][n-1]
 
 </spoiler>
 _________________ The purpose of life is to end
   
Prosle su godine kolokviji bili laksi, zar ne? |  | 
	
		| [Vrh] |  | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 | 
			
				|  Postano: 15:38 pon, 23. 10. 2006    Naslov: |         |  
				| 
 |  
				| Zadatak 3:
Zadatak 3:
 (Bit ce obradjen na vjezbama 30. 10.)
 
 Napisite [url=http://en.wikipedia.org/wiki/Reverse_Polish_notation]RPN[/url] kalkulator.
 
 Kalkulator racuna s racionalnim brojevima i podrzava:
 binarne operacije: + - * /
 stog operacije: [u]dup[/u] (kodiran kao prazna linija unosa) i [u]pop[/u] (kodiran kao \)
 
 Unos se obavlja liniju po liniju, svaka linija formatirana je kao:
 [latex](\mathsf{broj}\mid\mathsf{operator})?((\mathsf{\llcorner\hskip-1bp\lrcorner broj})\mid(\mathsf{\llcorner\hskip-1bp\lrcorner operator}))^*[/latex]
 Prazna linija (ne sadrzi nista osim eventualnih bjelina) predstavlja naredbu za dupliciranje broja na vrhu stoga ([u]dup[/u]).
 
 Nakon ucitavanja i izvrsavanja jedne linije kalkulator ispisuje cjelokupan sadrzaj stoga i ceka na novu liniju (tzv. read-eval loop).
 Recena petlja terminira se s EOF.
 
 
 Dodatno, napisite program koji konvertira aritmeticke izraze iz infix u RPN (postfix) oblik.
 
 Program prima 0, 1 ili 2 dodatna argumenta komandne linije.
 Prvi opcionalni argument navodi ime datoteke koja sadrzi infiks izraze; ako nije naveden, podrazumijeva se stdin.
 Drugi opcionalni argument navodi ime datoteke u koju treba spremiti dobivene RPN izraze; ako nije naveden, podrazumijeva se stdout.
 
 Svaki redak unosa/izlaza predstavlja jedan izraz.
 Detalji infix izraza prepusteni su na volju rjesavacu, ali moraju se podrzavati cijeli brojevi, cetiri osnovne binarne aritmeticke operacije i (okrugle) zagrade.
 Postfix izraz mora biti kompatibilan s unosom RPN kalkulatora.
 
 (Bit ce obradjen na vjezbama 30. 10.)
 
 Napisite RPN kalkulator.
 
 Kalkulator racuna s racionalnim brojevima i podrzava:
 binarne operacije: + - * /
 stog operacije: dup (kodiran kao prazna linija unosa) i pop (kodiran kao \)
 
 Unos se obavlja liniju po liniju, svaka linija formatirana je kao:
 
   Prazna linija (ne sadrzi nista osim eventualnih bjelina) predstavlja naredbu za dupliciranje broja na vrhu stoga (dup).
 
 Nakon ucitavanja i izvrsavanja jedne linije kalkulator ispisuje cjelokupan sadrzaj stoga i ceka na novu liniju (tzv. read-eval loop).
 Recena petlja terminira se s EOF.
 
 
 Dodatno, napisite program koji konvertira aritmeticke izraze iz infix u RPN (postfix) oblik.
 
 Program prima 0, 1 ili 2 dodatna argumenta komandne linije.
 Prvi opcionalni argument navodi ime datoteke koja sadrzi infiks izraze; ako nije naveden, podrazumijeva se stdin.
 Drugi opcionalni argument navodi ime datoteke u koju treba spremiti dobivene RPN izraze; ako nije naveden, podrazumijeva se stdout.
 
 Svaki redak unosa/izlaza predstavlja jedan izraz.
 Detalji infix izraza prepusteni su na volju rjesavacu, ali moraju se podrzavati cijeli brojevi, cetiri osnovne binarne aritmeticke operacije i (okrugle) zagrade.
 Postfix izraz mora biti kompatibilan s unosom RPN kalkulatora.
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| venovako Forumaš(ica)
 
  
 
 Pridružen/a: 07. 11. 2002. (22:46:38)
 Postovi: (2F9)16
 
 
 | 
			
				|  Postano: 23:52 pon, 13. 11. 2006    Naslov: |         |  
				| 
 |  
				| Zadatak 4:
Zadatak 4:
 Neka je [latex]\sigma\in S_n[/latex] proizvoljna permutacija.
 Prikazite je kao produkt transpozicija.
 
 Uputa:
 
 Neka je [latex]\sigma(n)=k_n\ne n[/latex].
 Nadalje, neka je [latex]\tau_n[/latex] transpozicija:
 [latex]\tau_n(k_n)=n;\ \tau_n(n)=k_n;\ \tau_n(i)=i[/latex] za [latex]i\notin\left\lbrace k,n\right\rbrace[/latex].
 Tada je [latex]\tau_n\sigma[/latex] permutacija t.d. [latex]\tau_n\sigma(n)=n[/latex].
 Ako je [latex]\sigma(n)=n[/latex], stavimo [latex]\tau_n=\mathsf{id}[/latex].
 
 Analogno, neka je [latex]\tau_n\sigma(n-1)=k_{n-1}\ne n-1[/latex].
 Kao gore dobivamo transpoziciju [latex]\tau_{n-1}[/latex] t.d. vrijedi:
 [latex]\tau_{n-1}\tau_n\sigma(i)=i[/latex] za [latex]i\in\left\lbrace n-1,n\right\rbrace[/latex].
 Ako je [latex]\tau_n\sigma(n-1)=n-1[/latex], stavimo [latex]\tau_{n-1}=\mathsf{id}[/latex].
 
 Ponavljanjem ovog postupka imamo:
 [latex]\tau_2\cdots\tau_{n-1}\tau_n\sigma=\mathsf{id}[/latex]
 odnosno, nakon pretumbavanja:
 [latex]\tau_n^{-1}\tau_{n-1}^{-1}\cdots\tau_2^{-1}=\sigma[/latex]
 gdje je, za neke [latex]i[/latex], moguce da je:
 [latex]\tau_i=\mathsf{id}[/latex]
 i takve [latex]\tau_i[/latex] ne ukljucujemo u trazeni produkt.
 
 Neka je
  proizvoljna permutacija. Prikazite je kao produkt transpozicija.
 
 Uputa:
 
 Neka je
  . Nadalje, neka je
  transpozicija: 
  za  . Tada je
  permutacija t.d.  . Ako je
  , stavimo  . 
 Analogno, neka je
  . Kao gore dobivamo transpoziciju
  t.d. vrijedi: 
  za  . Ako je
  , stavimo  . 
 Ponavljanjem ovog postupka imamo:
 
   odnosno, nakon pretumbavanja:
 
   gdje je, za neke
  , moguce da je: 
   i takve
  ne ukljucujemo u trazeni produkt. 
 
 |  | 
	
		| [Vrh] |  | 
	
		|  |