Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
Postano: 23:13 ned, 4. 11. 2012 Naslov: Prošlogodišnji kolokvij |
|
|
Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije?
2. U trećoj grupi sedmi zadatak glasi:
[quote]Napišite program koji učitava cijele brojeve sve dok se ne učita nula.
Program treba ispisati najmanji parni i najveći neparni od učitanih brojeva
(osim nule). Ako nije učitan niti jedan parni ili neparni broj, treba ispisati
poruku o tome.[/quote]
Imam problem jer ne znam kako dobiti najmanji parni. Dobro mi ispisuje za najveći neparni i slučajeve kad nisu učitani ni neparni ni parni pa čak i za neke slučajeve najmanjeg parnog. No uvijek se nađe neki primjer kad ne ispisuje dobro. Npr. za ulaz: 1 8 11 4 13 16 8 10 7 85 0, ispisuje: 1 i 85. Ovdje je i moj kod:
[code:1]n=input()
brp=0
brn=0
mip=n
mxn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(n<mip): mip=n
else:
brn=brn+1
if(n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!", mxn
elif(brn==0): print mip, "Nije ucitan niti jedan neparan broj!"
else:print mip, mxn[/code:1]
Znam da je vjerojatno problem u inicijalizaciji varijable ili tom dijelu programa, ali ne znam kako promijeniti :?
Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije?
2. U trećoj grupi sedmi zadatak glasi:
Citat: | Napišite program koji učitava cijele brojeve sve dok se ne učita nula.
Program treba ispisati najmanji parni i najveći neparni od učitanih brojeva
(osim nule). Ako nije učitan niti jedan parni ili neparni broj, treba ispisati
poruku o tome. |
Imam problem jer ne znam kako dobiti najmanji parni. Dobro mi ispisuje za najveći neparni i slučajeve kad nisu učitani ni neparni ni parni pa čak i za neke slučajeve najmanjeg parnog. No uvijek se nađe neki primjer kad ne ispisuje dobro. Npr. za ulaz: 1 8 11 4 13 16 8 10 7 85 0, ispisuje: 1 i 85. Ovdje je i moj kod:
Kod: | n=input()
brp=0
brn=0
mip=n
mxn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(n<mip): mip=n
else:
brn=brn+1
if(n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!", mxn
elif(brn==0): print mip, "Nije ucitan niti jedan neparan broj!"
else:print mip, mxn |
Znam da je vjerojatno problem u inicijalizaciji varijable ili tom dijelu programa, ali ne znam kako promijeniti
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 23:42 ned, 4. 11. 2012 Naslov: Re: Prošlogodišnji kolokvij |
|
|
[quote="lost_soul"]Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije?[/quote]
Pa isto kao s normalnim brojevima. Npr. prva grupa: (101.1101)_2 =
1*2^2 + 1*2^0 prije točke, a iza nje 1*2^-1 + 1*2^-2 + 1*2^-4, ili vam je lakše razumijeti da ćete ovo iza decimalne točke gledati kao normalni binarni broj (1101)_2 pa to podijeliti sa 2^4.
[quote="lost_soul"]2. U trećoj grupi sedmi zadatak glasi:
[quote]Napišite program koji učitava cijele brojeve sve dok se ne učita nula.
Program treba ispisati najmanji parni i najveći neparni od učitanih brojeva
(osim nule). Ako nije učitan niti jedan parni ili neparni broj, treba ispisati
poruku o tome.[/quote]
Imam problem jer ne znam kako dobiti najmanji parni. Dobro mi ispisuje za najveći neparni i slučajeve kad nisu učitani ni neparni ni parni pa čak i za neke slučajeve najmanjeg parnog. No uvijek se nađe neki primjer kad ne ispisuje dobro. Npr. za ulaz: 1 8 11 4 13 16 8 10 7 85 0, ispisuje: 1 i 85. Ovdje je i moj kod:
[code:1]n=input()
brp=0
brn=0
mip=n
mxn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(n<mip): mip=n
else:
brn=brn+1
if(n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!", mxn
elif(brn==0): print mip, "Nije ucitan niti jedan neparan broj!"
else:print mip, mxn[/code:1]
Znam da je vjerojatno problem u inicijalizaciji varijable ili tom dijelu programa, ali ne znam kako promijeniti :?[/quote]
Pa imate više grešaka, za poečtak, niste dobro inicijalizirali varijable za najmanju i najveću, a i ispis na kraju ne pokriva sve moguće slučajeve, ostalo je manje-više OK. Ja bih to napisao ovako:
[code:1]n=input()
brp=0
brn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(brp==1 or n<mip): mip=n
else:
brn=brn+1
if(brn==1 or n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!"
else: print "Najmanji paran je ", mip
if(brn==0): print "Nije ucitan niti jedan neparan broj!"
else: print "Najveci neparni je ", mxn[/code:1]
lost_soul (napisa): | Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije? |
Pa isto kao s normalnim brojevima. Npr. prva grupa: (101.1101)_2 =
1*2^2 + 1*2^0 prije točke, a iza nje 1*2^-1 + 1*2^-2 + 1*2^-4, ili vam je lakše razumijeti da ćete ovo iza decimalne točke gledati kao normalni binarni broj (1101)_2 pa to podijeliti sa 2^4.
lost_soul (napisa): | 2. U trećoj grupi sedmi zadatak glasi:
Citat: | Napišite program koji učitava cijele brojeve sve dok se ne učita nula.
Program treba ispisati najmanji parni i najveći neparni od učitanih brojeva
(osim nule). Ako nije učitan niti jedan parni ili neparni broj, treba ispisati
poruku o tome. |
Imam problem jer ne znam kako dobiti najmanji parni. Dobro mi ispisuje za najveći neparni i slučajeve kad nisu učitani ni neparni ni parni pa čak i za neke slučajeve najmanjeg parnog. No uvijek se nađe neki primjer kad ne ispisuje dobro. Npr. za ulaz: 1 8 11 4 13 16 8 10 7 85 0, ispisuje: 1 i 85. Ovdje je i moj kod:
Kod: | n=input()
brp=0
brn=0
mip=n
mxn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(n<mip): mip=n
else:
brn=brn+1
if(n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!", mxn
elif(brn==0): print mip, "Nije ucitan niti jedan neparan broj!"
else:print mip, mxn |
Znam da je vjerojatno problem u inicijalizaciji varijable ili tom dijelu programa, ali ne znam kako promijeniti |
Pa imate više grešaka, za poečtak, niste dobro inicijalizirali varijable za najmanju i najveću, a i ispis na kraju ne pokriva sve moguće slučajeve, ostalo je manje-više OK. Ja bih to napisao ovako:
Kod: | n=input()
brp=0
brn=0
while(n!=0):
if(n%2==0):
brp=brp+1
if(brp==1 or n<mip): mip=n
else:
brn=brn+1
if(brn==1 or n>mxn): mxn=n
n=input()
if(brp==0): print "Nije ucitan niti jedan paran broj!"
else: print "Najmanji paran je ", mip
if(brn==0): print "Nije ucitan niti jedan neparan broj!"
else: print "Najveci neparni je ", mxn |
|
|
[Vrh] |
|
goransta Forumaš(ica)
Pridružen/a: 02. 05. 2011. (18:23:29) Postovi: (D)16
Spol:
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 14:53 pon, 5. 11. 2012 Naslov: Re: Prošlogodišnji kolokvij |
|
|
[quote="goransta"][quote="vinko"][quote="lost_soul"]Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije?[/quote]
Pa isto kao s normalnim brojevima. Npr. prva grupa: (101.1101)_2 =
1*2^2 + 1*2^0 prije točke, a iza nje 1*2^-1 + 1*2^-2 + 1*2^-4, ili vam je lakše razumijeti da ćete ovo iza decimalne točke gledati kao normalni binarni broj (1101)_2 pa to podijeliti sa 2^4.
Da li to znači da je rješenje tog zadatka 80/13 u bazi 10 za jednu grupu odnosno 96/11 u bazi 10 za drugu grupu?? Ili sam ja to nešto krivo izračunao?
Hvala.[/quote]
Ne. Pa ono prije decimalne točke je 5, a iza 13/16, znači ukupno bi bilo 93/16.
[quote="goransta"] vinko (napisa): | lost_soul (napisa): | Imam dva pitanja vezana uz prošlogodišnji kolokvij:
1. U prvom zadatku, pod c) treba zapisati binarni "decimalni" broj kao razlomak. Da li se to radi obrnutim postupkom od onog opisanog u skripti (razlomak smo pretvarali u binarni decimalni) ili nekako drugačije? |
Pa isto kao s normalnim brojevima. Npr. prva grupa: (101.1101)_2 =
1*2^2 + 1*2^0 prije točke, a iza nje 1*2^-1 + 1*2^-2 + 1*2^-4, ili vam je lakše razumijeti da ćete ovo iza decimalne točke gledati kao normalni binarni broj (1101)_2 pa to podijeliti sa 2^4.
Da li to znači da je rješenje tog zadatka 80/13 u bazi 10 za jednu grupu odnosno 96/11 u bazi 10 za drugu grupu?? Ili sam ja to nešto krivo izračunao?
Hvala. |
Ne. Pa ono prije decimalne točke je 5, a iza 13/16, znači ukupno bi bilo 93/16.
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
Postano: 20:51 uto, 13. 11. 2012 Naslov: |
|
|
Može pomoć oko 7. zadatka iz prve grupe prošlogodišnjeg kolokvija?
Napišite program koji učitava realne brojeve sve dok se ne učita nula. Program treba ispisati najmanji pozitivni i najveći negativni od učitanih brojeva. Ako nije učitan niti jedan pozitivni ili negativni broj, treba ispisati poruku o tome.
Moje rješenje je:
[code:1]učitaj x
poz <- 999999999999
neg <- -999999999999
ako je x>0 onda
poz <- x
ako je x<0 onda
neg <- x
dok je x!=0 radi
ako je (x>0) i (x<poz) onda
poz <- x
ako je (x<0) i (x>neg) onda
neg <- x
učitaj x
ako je poz=999999999999 onda
ispiši "Nije učitan niti jedan pozitivan broj."
inače
ispiši "Najmanji učitani pozitivni broj je poz."
ako je neg=-999999999999 onda
ispiši "Nije učitan niti jedan negativan broj."
inače
ispiši "Najveći učitani negativni broj je neg."[/code:1]
Problem je, očito, u inicijalizaciji varijabli poz (najmanji pozitivini) i neg (najveći negativni). Kako bi se ovaj zadatak mogao riješiti na elegantniji način, no bez dodavanja dodatnih provjera u glavnoj petlji?
Može pomoć oko 7. zadatka iz prve grupe prošlogodišnjeg kolokvija?
Napišite program koji učitava realne brojeve sve dok se ne učita nula. Program treba ispisati najmanji pozitivni i najveći negativni od učitanih brojeva. Ako nije učitan niti jedan pozitivni ili negativni broj, treba ispisati poruku o tome.
Moje rješenje je:
Kod: | učitaj x
poz <- 999999999999
neg <- -999999999999
ako je x>0 onda
poz <- x
ako je x<0 onda
neg <- x
dok je x!=0 radi
ako je (x>0) i (x<poz) onda
poz <- x
ako je (x<0) i (x>neg) onda
neg <- x
učitaj x
ako je poz=999999999999 onda
ispiši "Nije učitan niti jedan pozitivan broj."
inače
ispiši "Najmanji učitani pozitivni broj je poz."
ako je neg=-999999999999 onda
ispiši "Nije učitan niti jedan negativan broj."
inače
ispiši "Najveći učitani negativni broj je neg." |
Problem je, očito, u inicijalizaciji varijabli poz (najmanji pozitivini) i neg (najveći negativni). Kako bi se ovaj zadatak mogao riješiti na elegantniji način, no bez dodavanja dodatnih provjera u glavnoj petlji?
_________________ Cry havoc, and let loose the dogs of war!
|
|
[Vrh] |
|
krcko Forumaš nagrađen za životno djelo
Pridružen/a: 07. 10. 2002. (15:57:59) Postovi: (18B3)16
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
Principessa Forumaš(ica)
Pridružen/a: 24. 10. 2010. (15:18:58) Postovi: (26)16
Spol:
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
Principessa Forumaš(ica)
Pridružen/a: 24. 10. 2010. (15:18:58) Postovi: (26)16
Spol:
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
|
[Vrh] |
|
lost_soul Forumaš(ica)
Pridružen/a: 18. 10. 2009. (17:38:41) Postovi: (133)16
|
Postano: 14:27 čet, 15. 11. 2012 Naslov: |
|
|
[quote="Spectre"]Možda se radilo o previdu ili trik pitanju pa su studenti morali shvatiti da uvijek moraju ispisati 1. :?
Jer, po mom shvaćanju ovog zadatka, ne postoji slučaj kada ne postoji takav djelitelj.[/quote]
Da, tak sam i ja shvatila.. A dobro, za takve stvari se može pitati asistenta ili profesora na kolokviju..
Nego imam još jedno pitanje vezano uz 4. zadatak:
[quote]4. Napišite program koji učitava prirodan broj n i ispisuje znamenke od n u sustavu s bazom 5. Opišite rad programa za ulaz n = 190. [/quote]
Da li je uredu ako ispisuje 0 3 2 1 ili treba ispisivati baš točno od prve znamenke, znači 1 2 3 0? :?
Spectre (napisa): | Možda se radilo o previdu ili trik pitanju pa su studenti morali shvatiti da uvijek moraju ispisati 1.
Jer, po mom shvaćanju ovog zadatka, ne postoji slučaj kada ne postoji takav djelitelj. |
Da, tak sam i ja shvatila.. A dobro, za takve stvari se može pitati asistenta ili profesora na kolokviju..
Nego imam još jedno pitanje vezano uz 4. zadatak:
Citat: | 4. Napišite program koji učitava prirodan broj n i ispisuje znamenke od n u sustavu s bazom 5. Opišite rad programa za ulaz n = 190. |
Da li je uredu ako ispisuje 0 3 2 1 ili treba ispisivati baš točno od prve znamenke, znači 1 2 3 0?
|
|
[Vrh] |
|
sys_ Forumaš(ica)
Pridružen/a: 01. 11. 2011. (11:19:00) Postovi: (20)16
|
Postano: 15:23 čet, 15. 11. 2012 Naslov: |
|
|
imam pitanje što se tiče pisanja programa, da li je sljedeće napisano isto:
(evo ispravljeno, greške kod pisanja, hvala na primjedbi)
1. :
[code:1]učitaj n
s← 0
za i = 1,...,n radi
učitaj k
ako je (k mod 2) = 0 onda
s <-- s+k
ispiši s[/code:1]
2:
[code:1]učitaj n
s← 0
za i = 1,...,n radi
učitaj k
ako je (k mod 2) = 0 onda s<-- s+k
ispiši s[/code:1]
imam pitanje što se tiče pisanja programa, da li je sljedeće napisano isto:
(evo ispravljeno, greške kod pisanja, hvala na primjedbi)
1. :
Kod: | učitaj n
s← 0
za i = 1,...,n radi
učitaj k
ako je (k mod 2) = 0 onda
s <-- s+k
ispiši s |
2:
Kod: | učitaj n
s← 0
za i = 1,...,n radi
učitaj k
ako je (k mod 2) = 0 onda s<-- s+k
ispiši s |
Zadnja promjena: sys_; 15:36 čet, 15. 11. 2012; ukupno mijenjano 3 put/a.
|
|
[Vrh] |
|
Spectre Forumaš(ica)
Pridružen/a: 02. 10. 2006. (16:58:05) Postovi: (167)16
Spol:
|
Postano: 15:26 čet, 15. 11. 2012 Naslov: |
|
|
Koji je tekst zadatka? Učitaj n, pa potom učitaj n brojeva te ispiši zbroj parnih?
P.S. Za pisanje kôda koristi Code taggove, tj. na početak kôda napiši [ code ], a na kraj kôda stavi [ /code ]. Naravno, bez razmaka unutar [zagrada].
Koji je tekst zadatka? Učitaj n, pa potom učitaj n brojeva te ispiši zbroj parnih?
P.S. Za pisanje kôda koristi Code taggove, tj. na početak kôda napiši [ code ], a na kraj kôda stavi [ /code ]. Naravno, bez razmaka unutar [zagrada].
_________________ Cry havoc, and let loose the dogs of war!
|
|
[Vrh] |
|
sys_ Forumaš(ica)
Pridružen/a: 01. 11. 2011. (11:19:00) Postovi: (20)16
|
|
[Vrh] |
|
|