Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

zadatak s prošlogodišnjeg kolokvija
WWW:
Idite na Prethodno  1, 2, 3, 4  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
quark
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 10. 2011. (16:47:39)
Postovi: (DA)16
Spol: muško
Sarma = la pohva - posuda
20 = 26 - 6

PostPostano: 3:51 sub, 24. 3. 2012    Naslov: Citirajte i odgovorite

Zar zadatak nije s pismenog ispita 1.9.2004. koji ima službeno rješenje na stranicama prog2? :D



[code:1]int skokovi(int n, int list, int skok) {
int cnt = 0;
if (list == n) return 1;
if (skok >= 17) return 0;
skok++;
if (list > 1) cnt += skokovi(n, list - 2, skok);
if (list < n - 1) cnt += skokovi(n, list + 2, skok);
if (list > 2) cnt += skokovi(n, list - 3, skok);
if (list < n - 2) cnt += skokovi(n, list + 3, skok);
return cnt;
}

int main() {
int n;

printf("Upisite n: ");
scanf("%d", &n);

printf("Broj mogucih skokova: %d\n", skokovi(n, 0, 0));
}[/code:1]
Zar zadatak nije s pismenog ispita 1.9.2004. koji ima službeno rješenje na stranicama prog2? Very Happy



Kod:
int skokovi(int n, int list, int skok) {
  int cnt = 0;
  if (list == n) return 1;
  if (skok >= 17) return 0;
  skok++;
  if (list > 1) cnt += skokovi(n, list - 2, skok);
  if (list < n - 1) cnt += skokovi(n, list + 2, skok);
  if (list > 2) cnt += skokovi(n, list - 3, skok);
  if (list < n - 2) cnt += skokovi(n, list + 3, skok);
  return cnt;
}

int main() {
  int n;

  printf("Upisite n: ");
  scanf("%d", &n);

  printf("Broj mogucih skokova: %d\n", skokovi(n, 0, 0));
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 4:09 sub, 24. 3. 2012    Naslov: Citirajte i odgovorite

[quote="quark"]Zar zadatak nije s pismenog ispita 1.9.2004. koji ima službeno rješenje na stranicama prog2? :D[/quote]

Eh, sad bi ti da se ja sjetim da negdje ima rjesenje od ispita prije 7.5 godina. :lol:

Dakle, to rjesenje dozvoljava skok na zemlju:

[code:1] if (list > 1) cnt += skokovi(n, list - 2, skok);
if (list > 2) cnt += skokovi(n, list - 3, skok);[/code:1]

Uvjeti u [tt]if()[/tt]-ovima trebaju biti za 1 veci ako ne damo zabi na zemlju.

Koliko se sjecam, zadatak tada nitko nije rijesio, a kasnije nitko nije pitao, pa je i logicno da nisam uocio gresku u rjesenju. Evo, sad je ispravljeno i na webu.
quark (napisa):
Zar zadatak nije s pismenog ispita 1.9.2004. koji ima službeno rješenje na stranicama prog2? Very Happy


Eh, sad bi ti da se ja sjetim da negdje ima rjesenje od ispita prije 7.5 godina. Laughing

Dakle, to rjesenje dozvoljava skok na zemlju:

Kod:
  if (list > 1) cnt += skokovi(n, list - 2, skok);
  if (list > 2) cnt += skokovi(n, list - 3, skok);


Uvjeti u if()-ovima trebaju biti za 1 veci ako ne damo zabi na zemlju.

Koliko se sjecam, zadatak tada nitko nije rijesio, a kasnije nitko nije pitao, pa je i logicno da nisam uocio gresku u rjesenju. Evo, sad je ispravljeno i na webu.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
quark
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 10. 2011. (16:47:39)
Postovi: (DA)16
Spol: muško
Sarma = la pohva - posuda
20 = 26 - 6

PostPostano: 4:28 sub, 24. 3. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]
Koliko se sjecam, zadatak tada nitko nije rijesio, a kasnije nitko nije pitao, pa je i logicno da nisam uocio gresku u rjesenju. Evo, sad je ispravljeno i na webu.
[/quote]

Hvala puno za trud i angažman, stvarno nam to mnogo znači :wink:

I još ako bi mogao hint za ovaj zadatak:

[quote]Napisite rekurzivnu funkciju koja uzima barem
jedan argument x ∈ N. Funkcija treba vratiti broj na koliko razlicitih nacina se x moze
prikazati kao umnozak prirodnih brojeva vecih od 1. Na primjer, za x = 12, funkcija treba
vratiti 4 (2 · 2 · 3, 2 · 6, 3 · 4 i 12), za x = 30 treba vratiti 5 (2 · 3 · 5, 2 · 15, 3 · 10, 5 · 6, 30)[/quote]

Hvala unaprijed :)
vsego (napisa):

Koliko se sjecam, zadatak tada nitko nije rijesio, a kasnije nitko nije pitao, pa je i logicno da nisam uocio gresku u rjesenju. Evo, sad je ispravljeno i na webu.


Hvala puno za trud i angažman, stvarno nam to mnogo znači Wink

I još ako bi mogao hint za ovaj zadatak:

Citat:
Napisite rekurzivnu funkciju koja uzima barem
jedan argument x ∈ N. Funkcija treba vratiti broj na koliko razlicitih nacina se x moze
prikazati kao umnozak prirodnih brojeva vecih od 1. Na primjer, za x = 12, funkcija treba
vratiti 4 (2 · 2 · 3, 2 · 6, 3 · 4 i 12), za x = 30 treba vratiti 5 (2 · 3 · 5, 2 · 15, 3 · 10, 5 · 6, 30)


Hvala unaprijed Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 4:39 sub, 24. 3. 2012    Naslov: Citirajte i odgovorite

Isto kao particija broja, samo sto imas mnozenje, sto znaci da trebas paziti na djeljivost.
Isto kao particija broja, samo sto imas mnozenje, sto znaci da trebas paziti na djeljivost.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
dalmatinčica
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:46:54)
Postovi: (AC)16
Sarma = la pohva - posuda
= 10 - 4

PostPostano: 20:32 ned, 25. 3. 2012    Naslov: Citirajte i odgovorite

[quote="dalmatinčica"]Zadan je prirodni broj n. Nadite na koliko se razliˇcitih naˇcina broj n moˇze prikazati kao
zbroj pribrojnika (koji su, takoder, prirodni brojevi), uz uvjete da u zbroju bude barem
3 pribrojnika i da je razlika susjednih pribrojnika barem 2. Poredak pribrojnika u zbroju
nije bitan, tj. moˇzete smatrati da pribrojnici ne padaju (ili ne rastu). Problem rijeˇsite
rekurzivnom funkcijom. Obavezno napiˇsite kako izgleda poziv te funkcije za zadani n.
Napomena: Funkcija, uz argument n, smije primati i dodatne argumente. Nije dozvoljeno
koriˇstenje polja, lista, te globalnih i static varijabli.

uputa za zad molim
kako da uvrstim ovaj uvjet min 3 pribrojnika?[/quote]

može par primjera da znam provjeriti jel mi radi dobro, budući da nema rješenja na netu?
dalmatinčica (napisa):
Zadan je prirodni broj n. Nadite na koliko se razliˇcitih naˇcina broj n moˇze prikazati kao
zbroj pribrojnika (koji su, takoder, prirodni brojevi), uz uvjete da u zbroju bude barem
3 pribrojnika i da je razlika susjednih pribrojnika barem 2. Poredak pribrojnika u zbroju
nije bitan, tj. moˇzete smatrati da pribrojnici ne padaju (ili ne rastu). Problem rijeˇsite
rekurzivnom funkcijom. Obavezno napiˇsite kako izgleda poziv te funkcije za zadani n.
Napomena: Funkcija, uz argument n, smije primati i dodatne argumente. Nije dozvoljeno
koriˇstenje polja, lista, te globalnih i static varijabli.

uputa za zad molim
kako da uvrstim ovaj uvjet min 3 pribrojnika?


može par primjera da znam provjeriti jel mi radi dobro, budući da nema rješenja na netu?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 21:10 ned, 25. 3. 2012    Naslov: Citirajte i odgovorite

Par primjera izracunas lako na prste (tj. na papiru). :)
Par primjera izracunas lako na prste (tj. na papiru). Smile



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
dalmatinčica
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:46:54)
Postovi: (AC)16
Sarma = la pohva - posuda
= 10 - 4

PostPostano: 21:40 ned, 25. 3. 2012    Naslov: Citirajte i odgovorite

ok
http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-p.pdf
4. zadatak
jel fali tu nekakvo ograničenje ili slično?
ok
http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-p.pdf
4. zadatak
jel fali tu nekakvo ograničenje ili slično?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 22:03 ned, 25. 3. 2012    Naslov: Citirajte i odgovorite

[quote="dalmatinčica"]ok
http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-p.pdf
4. zadatak
jel fali tu nekakvo ograničenje ili slično?[/quote]
Da, fali. :oops:

Ograničite maksimalni broj poteza.
dalmatinčica (napisa):
ok
http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-p.pdf
4. zadatak
jel fali tu nekakvo ograničenje ili slično?

Da, fali. Embarassed

Ograničite maksimalni broj poteza.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:06 ned, 25. 3. 2012    Naslov: Citirajte i odgovorite

[quote="dalmatinčica"]jel fali tu nekakvo ograničenje ili slično?[/quote]

Rekao bih da da, no nisam bio na tom kolokviju, pa ne znam kako je to rijeseno (u smislu sto je studentima receno kao ispravni zadatak). Mozes, na primjer, staviti da broj koraka bude ogranicen parametrom funkcije ili zabraniti da se dva puta stane na isto polje (za ovo ce ti trebati 2D polje).
dalmatinčica (napisa):
jel fali tu nekakvo ograničenje ili slično?


Rekao bih da da, no nisam bio na tom kolokviju, pa ne znam kako je to rijeseno (u smislu sto je studentima receno kao ispravni zadatak). Mozes, na primjer, staviti da broj koraka bude ogranicen parametrom funkcije ili zabraniti da se dva puta stane na isto polje (za ovo ce ti trebati 2D polje).



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
PermutiranoPrase
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 09. 2011. (16:08:19)
Postovi: (F4)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
10 = 17 - 7

PostPostano: 14:53 uto, 10. 4. 2012    Naslov: Citirajte i odgovorite

Nije zadatak s prošlogodišnjeg kolokvija, nego malo stariji... [url=http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-0708-1.pdf]2008, 1., treća grupa.[/url].

Imam definiranu funkciju f(x), klasična rekurzivna lagana (ne da mi se sad u latexu sve raspisivati). U jednom slučaju vraćam f(izraz1), u trećem slučaju vraćam x, ali u drugom slučaju moram vratiti f(izraz2) + 1. Nije mi jasno što ću točno s ovom jedinicom, gdje ju moram staviti. Može pomoć?

Ovo ok?
[code:1]return f(izraz2) + 1; [/code:1]

Edit:
I drugo, 2011. [url=http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-1.pdf]prvi[/url]. Tu moram poslati funkcije g i h funkciji f?

Dakle, ja normalno napišem funkcije g i h, a onda napravim pointere na te funkcije:
[code:1]int (*h) (int n, int max);
int (*g) (int n, int broj);[/code:1]

A funkciju f definiram ovako?
[code:1]int f (int n, int (*h) (int), int (*g) (int))
{
kooooood
} [/code:1]
Ili?

Edit edita: Istestirala sam i verziju s pointerima na funkciju i bez pointera na funkciju (3 "normalno" definirane i napisane funkcije, funkcija f pozvana identično kao što piše u zadatku), obe radile identično... I sporo. :D
Kada je x<10 rade dobro, za ove druge slučajeve ne bih znala reći je l vraćaju dobru vrijednost ili ne.
Nije zadatak s prošlogodišnjeg kolokvija, nego malo stariji... 2008, 1., treća grupa..

Imam definiranu funkciju f(x), klasična rekurzivna lagana (ne da mi se sad u latexu sve raspisivati). U jednom slučaju vraćam f(izraz1), u trećem slučaju vraćam x, ali u drugom slučaju moram vratiti f(izraz2) + 1. Nije mi jasno što ću točno s ovom jedinicom, gdje ju moram staviti. Može pomoć?

Ovo ok?
Kod:
return f(izraz2) + 1;


Edit:
I drugo, 2011. prvi. Tu moram poslati funkcije g i h funkciji f?

Dakle, ja normalno napišem funkcije g i h, a onda napravim pointere na te funkcije:
Kod:
int (*h) (int n, int max);
int (*g) (int n, int broj);


A funkciju f definiram ovako?
Kod:
int f (int n, int (*h) (int), int (*g) (int))
{
      kooooood
}

Ili?

Edit edita: Istestirala sam i verziju s pointerima na funkciju i bez pointera na funkciju (3 "normalno" definirane i napisane funkcije, funkcija f pozvana identično kao što piše u zadatku), obe radile identično... I sporo. Very Happy
Kada je x<10 rade dobro, za ove druge slučajeve ne bih znala reći je l vraćaju dobru vrijednost ili ne.



_________________
With great power comes great electricity bill.
n!!!!
Theorem 2: Alexander the Great did not exist and he had an infinite number of limbs.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 17:01 uto, 10. 4. 2012    Naslov: Citirajte i odgovorite

[quote="PermutiranoPrase"]
Ovo ok?
[code:1]return f(izraz2) + 1; [/code:1]
[/quote]
Jasno da je ok.

[quote][url=http://degiorgi.math.hr/prog2/kolokviji/p2-kolokvij-1011-1.pdf]prvi[/url]. Tu moram poslati funkcije g i h funkciji f?

Dakle, ja normalno napišem funkcije g i h, a onda napravim pointere na te funkcije:
[code:1]int (*h) (int n, int max);
int (*g) (int n, int broj);[/code:1]

A funkciju f definiram ovako?
[code:1]int f (int n, int (*h) (int), int (*g) (int))
{
kooooood
} [/code:1]
[/quote]
Ma ne. Kakvi pointeri na funkcije... Samo lijepo napišete funkcije [tt]g[/tt] i [tt]h[/tt] i onda ih najnormalnije pozivate unutar funkcije [tt]f[/tt].
PermutiranoPrase (napisa):

Ovo ok?
Kod:
return f(izraz2) + 1;


Jasno da je ok.

Citat:
prvi. Tu moram poslati funkcije g i h funkciji f?

Dakle, ja normalno napišem funkcije g i h, a onda napravim pointere na te funkcije:
Kod:
int (*h) (int n, int max);
int (*g) (int n, int broj);


A funkciju f definiram ovako?
Kod:
int f (int n, int (*h) (int), int (*g) (int))
{
      kooooood
}


Ma ne. Kakvi pointeri na funkcije... Samo lijepo napišete funkcije g i h i onda ih najnormalnije pozivate unutar funkcije f.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
slonic~tonic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2011. (14:16:34)
Postovi: (84)16
Spol: žensko
Sarma = la pohva - posuda
= 5 - 4

PostPostano: 17:57 uto, 10. 4. 2012    Naslov: Citirajte i odgovorite

moze mi netko reci di grijesim...naime, preko var.argumenta mi vraca 0 muha, umjesto max vrijednost :S

#include <stdio.h>
int index_redka (int x[][1719], int m, int n, int *muhe) {
int max, maxi=-1, i, j, uvjet, sum;
for(i=0;i<m;i++) {
uvjet=0;
sum=x[i][0];
for(j=1;j<n;j++) {
if(x[i][j-1]==0 && x[i][j]==0) {
uvjet=1;
break;
}
sum += x[i][j];
}
if(uvjet) {
printf("Zaba ne moze proci u retku s indeksom %d.\n", i);
}
else
printf("U retku s indeksom %d zaba ce sakupiti %d muha\n", i, sum);
if(maxi==-1 || sum>max) {
max = sum;
maxi = i;
}
}
*muhe = max;
return maxi;
}
int main(void) {
int m, n, i, j, a[100][1719], indeks, muhe;
printf("m = "); scanf("%d", &m);
printf("n = "); scanf("%d", &n);
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("%3d", a[i][j]);
printf("\n");
}
printf("Indeks = %d;\nBroj muha = %d\n", index_redka(a, m, n, &muhe), muhe);
return 0;
}
moze mi netko reci di grijesim...naime, preko var.argumenta mi vraca 0 muha, umjesto max vrijednost :S

#include <stdio.h>
int index_redka (int x[][1719], int m, int n, int *muhe) {
int max, maxi=-1, i, j, uvjet, sum;
for(i=0;i<m;i++) {
uvjet=0;
sum=x[i][0];
for(j=1;j<n;j++) {
if(x[i][j-1]==0 && x[i][j]==0) {
uvjet=1;
break;
}
sum += x[i][j];
}
if(uvjet) {
printf("Zaba ne moze proci u retku s indeksom %d.\n", i);
}
else
printf("U retku s indeksom %d zaba ce sakupiti %d muha\n", i, sum);
if(maxi==-1 || sum>max) {
max = sum;
maxi = i;
}
}
*muhe = max;
return maxi;
}
int main(void) {
int m, n, i, j, a[100][1719], indeks, muhe;
printf("m = "); scanf("%d", &m);
printf("n = "); scanf("%d", &n);
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("%3d", a[i][j]);
printf("\n");
}
printf("Indeks = %d;\nBroj muha = %d\n", index_redka(a, m, n, &muhe), muhe);
return 0;
}



_________________
Lakše je naučiti matematiku nego raditi bez nje.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zenon
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43)
Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]

PostPostano: 18:24 uto, 10. 4. 2012    Naslov: Citirajte i odgovorite

Pa daj stavi svoj kod u [code:1]...[/code:1]
Ne znam kakav bi mazohist išao pregledavati takav kod i trošiti vrijeme samo da ga pripremi za početak analiziranja, a tek onda analizirati ga.
Pa daj stavi svoj kod u
Kod:
...

Ne znam kakav bi mazohist išao pregledavati takav kod i trošiti vrijeme samo da ga pripremi za početak analiziranja, a tek onda analizirati ga.



_________________
It's a wonderful, wonderful life!
[tex]\heartsuit \ \mathcal{PMF-MO} \ \heartsuit[/tex]
[tex]\mathbb Z\Sigma\mathbb N\emptyset\mathbb N[/tex]
[Vrh]
Korisnički profil Pošaljite privatnu poruku
PermutiranoPrase
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 10. 09. 2011. (16:08:19)
Postovi: (F4)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
10 = 17 - 7

PostPostano: 19:16 uto, 10. 4. 2012    Naslov: Citirajte i odgovorite

[quote="mdoko"]
Ma ne. Kakvi pointeri na funkcije... Samo lijepo napišete funkcije [tt]g[/tt] i [tt]h[/tt] i onda ih najnormalnije pozivate unutar funkcije [tt]f[/tt].[/quote]
Hvala za oboje!
Taman se maloprije sjetih na večeri da smo dosad svako malo na vježbama normalno koristili funkcije u funkciji. :P
mdoko (napisa):

Ma ne. Kakvi pointeri na funkcije... Samo lijepo napišete funkcije g i h i onda ih najnormalnije pozivate unutar funkcije f.

Hvala za oboje!
Taman se maloprije sjetih na večeri da smo dosad svako malo na vježbama normalno koristili funkcije u funkciji. Razz



_________________
With great power comes great electricity bill.
n!!!!
Theorem 2: Alexander the Great did not exist and he had an infinite number of limbs.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
student_92
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2011. (16:31:46)
Postovi: (B9)16
Sarma = la pohva - posuda
10 = 16 - 6

PostPostano: 13:03 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

Moze li mi netko reci sto je krivo u ovoj funkciji, osim sto ima povecu slozenost?
Treba vratiti na koliko se mjesta u stringu s pojavljuju znakovi iz stringa t. Ostatak programa mi je korektno napisan, gotovo identičan kao neki prošli programi, tako da nije u tome problem.

[code:1]int count_in(const char *s, const char *t) {
int br = 0, i, j;
for (i=0; s[i]; ++i)
for (j=0; t[j]; ++j)
if (s[i] == t[j]) br++;
return br;
}[/code:1]
Moze li mi netko reci sto je krivo u ovoj funkciji, osim sto ima povecu slozenost?
Treba vratiti na koliko se mjesta u stringu s pojavljuju znakovi iz stringa t. Ostatak programa mi je korektno napisan, gotovo identičan kao neki prošli programi, tako da nije u tome problem.

Kod:
int count_in(const char *s, const char *t) {
    int br = 0, i, j;
    for (i=0; s[i]; ++i)
        for (j=0; t[j]; ++j)
            if (s[i] == t[j]) br++;
    return br;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:14 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

Do na visestruko brojanje znakova koji se ponavljaju u [tt]t[/tt], ne vidim problem. Mozes navesti primjer za koji lose radi?
Do na visestruko brojanje znakova koji se ponavljaju u t, ne vidim problem. Mozes navesti primjer za koji lose radi?



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
gflegar
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41)
Postovi: (10D)16
Spol: muško
Sarma = la pohva - posuda
68 = 72 - 4

PostPostano: 13:15 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

Recimo da se u stringu [tt]t[/tt] nalazi dva puta znak [tt]'a'[/tt]. Tvoja funkcija ce za svaki znak [tt]'a'[/tt] u stringu [tt]s[/tt] povecati [tt]br[/tt] za 2.
Recimo da se u stringu t nalazi dva puta znak 'a'. Tvoja funkcija ce za svaki znak 'a' u stringu s povecati br za 2.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
student_92
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 09. 2011. (16:31:46)
Postovi: (B9)16
Sarma = la pohva - posuda
10 = 16 - 6

PostPostano: 13:24 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

@gflegar: Program mi se uopće ne izvršava, nije da mi izbaci krivi rezultat. Svejedno hvala na primjedbi.

@vsego: Evo poslat ću Vam kod u inbox da ovdje ne pravim gužvu.
@gflegar: Program mi se uopće ne izvršava, nije da mi izbaci krivi rezultat. Svejedno hvala na primjedbi.

@vsego: Evo poslat ću Vam kod u inbox da ovdje ne pravim gužvu.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
quark
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 10. 2011. (16:47:39)
Postovi: (DA)16
Spol: muško
Sarma = la pohva - posuda
20 = 26 - 6

PostPostano: 16:38 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

Daklem, prošlogodišnji kolokvij, 2a zadatak:
[quote]Zaba se nalazi u cjelobrojnoj mrezi (ZZ), po kojoj se krece tako da u svakom trenutku moze skociti za jedno ili
dva mjesta u bilo kojem smjeru (lijevo, desno, gore ili dolje), osim kada se nalazi na poziciji kojoj su obje koordinate prosti
brojevi i tada uvijek skace za tocno dva mjesta i to samo prema lijevo ili desno. Napisite funkciju koja racuna na koliko
nacina zaba moze, krecuci iz ishodista (0; 0), doci do neke zadane tocke (x0; y0) u ne vise od 17 skokova. Obavezno navedite
primjer poziva te funkcije.[/quote]

Ovako, ja sam malo okrenuo zadatak; ja gledam kako žaba može doći od [tt](x,y)[/tt] do [tt](0,0)[/tt] jer onda u dijelu funkcije koji provjerava je li uspješan skok stoje konstante (0,0) i ne moram slati funkciji četiri plus argumenta.
(Može li se to tako?)

[tt]Cnt[/tt] je globalna varijabla.

Problem mi je što mi compiler vrti program u beskonačno; onda otvorim službeno rješenje i njega isto ne izvrši :shock:
Je li obojica griješimo? :D

Evo kod:

[code:1]int cnt=0;

int prost(int x)
{
int i;
for(i=2;i<x;i++)
{
if(x%i==0) return 0;
}
return 1;
}

void rec(int x, int y, int skok)
{
if(skok>=17) return;
if(skok<17 && x==0 && y==0)
{
cnt++;
return;
}
if(prost(x) && prost(y))
{
rec(x+2,y, skok+1);
rec(x-2,y, skok+1);
}
else
{
rec(x+2,y, skok+1);
rec(x-2,y, skok+1);
rec(x+1,y, skok+1);
rec(x-1,y, skok+1);
rec(x,y+2, skok+1);
rec(x,y+2, skok+1);
rec(x,y+1, skok+1);
rec(x,y-1, skok+1);

}

}[/code:1]

Funkciju pozivam, naravno, ovako:

[code:1]rec(x,y,0)[/code:1]

Hvala unaprijed :)
Daklem, prošlogodišnji kolokvij, 2a zadatak:
Citat:
Zaba se nalazi u cjelobrojnoj mrezi (ZZ), po kojoj se krece tako da u svakom trenutku moze skociti za jedno ili
dva mjesta u bilo kojem smjeru (lijevo, desno, gore ili dolje), osim kada se nalazi na poziciji kojoj su obje koordinate prosti
brojevi i tada uvijek skace za tocno dva mjesta i to samo prema lijevo ili desno. Napisite funkciju koja racuna na koliko
nacina zaba moze, krecuci iz ishodista (0; 0), doci do neke zadane tocke (x0; y0) u ne vise od 17 skokova. Obavezno navedite
primjer poziva te funkcije.


Ovako, ja sam malo okrenuo zadatak; ja gledam kako žaba može doći od (x,y) do (0,0) jer onda u dijelu funkcije koji provjerava je li uspješan skok stoje konstante (0,0) i ne moram slati funkciji četiri plus argumenta.
(Može li se to tako?)

Cnt je globalna varijabla.

Problem mi je što mi compiler vrti program u beskonačno; onda otvorim službeno rješenje i njega isto ne izvrši Shocked
Je li obojica griješimo? Very Happy

Evo kod:

Kod:
int cnt=0;

int prost(int x)
{
    int i;
    for(i=2;i<x;i++)
    {
        if(x%i==0) return 0;
    }
    return 1;
}

void rec(int x, int y, int skok)
{
    if(skok>=17) return;
    if(skok<17 && x==0 && y==0)
    {
        cnt++;
        return;
    }
    if(prost(x) && prost(y))
    {
        rec(x+2,y, skok+1);
        rec(x-2,y, skok+1);
    }
    else
    {
        rec(x+2,y, skok+1);
        rec(x-2,y, skok+1);
        rec(x+1,y, skok+1);
        rec(x-1,y, skok+1);
        rec(x,y+2, skok+1);
        rec(x,y+2, skok+1);
        rec(x,y+1, skok+1);
        rec(x,y-1, skok+1);

    }
   
}


Funkciju pozivam, naravno, ovako:

Kod:
rec(x,y,0)


Hvala unaprijed Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:28 sri, 11. 4. 2012    Naslov: Citirajte i odgovorite

Ne pada, nego se dugo izvrsava. :)

Ti imas sljedece greske:

1. 0, 1 i svi negativni brojevi su ti prosti.

2. funkcija nista ne vraca (globalna varijabla nije nacin vracanja vrijednosti).

3. Imas dva puta [tt]rec(x,y+2, skok+1);[/tt] -- jednom treba biti [tt]rec(x,y[color=red]-[/color]2, skok+1);[/tt].

Simetricno trcanje (od cilja prema startu) je [b]ovdje[/b] ok, ali treba paziti da su i skokovi suprotni. Ovdje se ne osjeca, jer zaba skace u svim smjerovima isto, ali da je bilo -- recimo -- 2 skoka lijevo ili 1 desno, to bi u rjesenju trebalo zamijeniti (moze biti bitno u nekim situacijama). Dakle, opcenito, naopako skakanje ne radi (bez dodatne prilagodbe).

Za potrebe testiranja, smanji limit na broj skokova, recimo na 5 ili 7.
Ne pada, nego se dugo izvrsava. Smile

Ti imas sljedece greske:

1. 0, 1 i svi negativni brojevi su ti prosti.

2. funkcija nista ne vraca (globalna varijabla nije nacin vracanja vrijednosti).

3. Imas dva puta rec(x,y+2, skok+1); – jednom treba biti rec(x,y-2, skok+1);.

Simetricno trcanje (od cilja prema startu) je ovdje ok, ali treba paziti da su i skokovi suprotni. Ovdje se ne osjeca, jer zaba skace u svim smjerovima isto, ali da je bilo – recimo – 2 skoka lijevo ili 1 desno, to bi u rjesenju trebalo zamijeniti (moze biti bitno u nekim situacijama). Dakle, opcenito, naopako skakanje ne radi (bez dodatne prilagodbe).

Za potrebe testiranja, smanji limit na broj skokova, recimo na 5 ili 7.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Idite na Prethodno  1, 2, 3, 4  Sljedeće
Stranica 3 / 4.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan