Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Masiela Forumaš(ica)
Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol:
Lokacija: Među bananama
|
Postano: 16:36 čet, 24. 4. 2008 Naslov: Pitanja za koja mislimo da ne treba poseban topic |
|
|
Vidim da se i ekatarini ne otvaraju stalno novi topici, a ni meni se ne da bombardirati jerbo sam tek počela raditi, a mislim da ću imati dosta pitanja koja će zahtjevati relativno kratka objašnjenja i diskusije.
Uglavnom... Zadnji zadatak kod rekurzija:
[quote]Napišite rekurzivnu varijantu algoritma za računanje Fib. brojeva td. neposredno prije izlaska iz fje program ispisuje poruke poput [i]Povratna vrijednost i-tog poziva je...[/i][/quote]
E sad, pošto u napomeni stoji da taj zadatak nije jednostavan te da sitne modifikacije mogu dovesti do toga da se neki koraci ispisuju više puta i/ili se ne ispisuju niti jednom, zanima me je li zadatak tu čisto da vidimo da je to mukotrpno isprogramirati ili da se bolje uvježbamo?
Vidim da se i ekatarini ne otvaraju stalno novi topici, a ni meni se ne da bombardirati jerbo sam tek počela raditi, a mislim da ću imati dosta pitanja koja će zahtjevati relativno kratka objašnjenja i diskusije.
Uglavnom... Zadnji zadatak kod rekurzija:
Citat: | Napišite rekurzivnu varijantu algoritma za računanje Fib. brojeva td. neposredno prije izlaska iz fje program ispisuje poruke poput Povratna vrijednost i-tog poziva je... |
E sad, pošto u napomeni stoji da taj zadatak nije jednostavan te da sitne modifikacije mogu dovesti do toga da se neki koraci ispisuju više puta i/ili se ne ispisuju niti jednom, zanima me je li zadatak tu čisto da vidimo da je to mukotrpno isprogramirati ili da se bolje uvježbamo?
_________________ mladac: e.k.s. je možda 8%, moje znanje ni toliko
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Atomised Forumaš(ica)
Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Masiela Forumaš(ica)
Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol:
Lokacija: Među bananama
|
Postano: 20:41 pet, 25. 4. 2008 Naslov: |
|
|
Tnx.
Evo neuspjeli pokušaj rješavanja ovog zadatka:
[img]http://i31.tinypic.com/2j5nebc.jpg[/img]
[code:1]#include <stdio.h>
#include <stdlib.h>
void horner(int *a, int x, int n){
int suma=0, i;
for(i=n; i>=0; i--) suma+=suma*x+a[i];
printf("%d\n", suma);
}
int main(void){
int n, *a, i;
scanf("%d", &n);
a=(int*)malloc((n+1)*sizeof(int));
if(a==NULL){
printf("Neuspjelo");
exit(1);
}
for(i=0; i<=n; i++) scanf("%d", &a[i]);
for(i=0; i<=n; i++) horner(a, a[i], n);
free(a);
scanf("%%");
return 0;
}[/code:1]
Što moj program zapravo radi?
Tnx.
Evo neuspjeli pokušaj rješavanja ovog zadatka:
Kod: | #include <stdio.h>
#include <stdlib.h>
void horner(int *a, int x, int n){
int suma=0, i;
for(i=n; i>=0; i--) suma+=suma*x+a[i];
printf("%d\n", suma);
}
int main(void){
int n, *a, i;
scanf("%d", &n);
a=(int*)malloc((n+1)*sizeof(int));
if(a==NULL){
printf("Neuspjelo");
exit(1);
}
for(i=0; i<=n; i++) scanf("%d", &a[i]);
for(i=0; i<=n; i++) horner(a, a[i], n);
free(a);
scanf("%%");
return 0;
} |
Što moj program zapravo radi?
_________________ mladac: e.k.s. je možda 8%, moje znanje ni toliko
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:02 pet, 25. 4. 2008 Naslov: |
|
|
Ovako, na prvi pogled, cini mi se ok (osim sto bi bilo lijepo da funkcija racuna i vraca vrijednost, koja se onda ispisuje u [tt]main()[/tt]-u). :)
Sto ne valja? :-k
P.S. Zasto u nizu nisu realni brojevi? :-k Meni se cini da bi to bilo smislenije... :?
Ovako, na prvi pogled, cini mi se ok (osim sto bi bilo lijepo da funkcija racuna i vraca vrijednost, koja se onda ispisuje u main()-u).
Sto ne valja?
P.S. Zasto u nizu nisu realni brojevi? Meni se cini da bi to bilo smislenije...
_________________ 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] |
|
Masiela Forumaš(ica)
Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol:
Lokacija: Među bananama
|
|
[Vrh] |
|
desire Forumaš(ica)
Pridružen/a: 06. 09. 2007. (07:46:21) Postovi: (133)16
Spol:
|
|
[Vrh] |
|
Masiela Forumaš(ica)
Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol:
Lokacija: Među bananama
|
|
[Vrh] |
|
desire Forumaš(ica)
Pridružen/a: 06. 09. 2007. (07:46:21) Postovi: (133)16
Spol:
|
|
[Vrh] |
|
Masiela Forumaš(ica)
Pridružen/a: 11. 09. 2007. (22:28:01) Postovi: (338)16
Spol:
Lokacija: Među bananama
|
|
[Vrh] |
|
ekatarina Forumaš(ica)
Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:28 pon, 28. 4. 2008 Naslov: |
|
|
Pa, formalno matematicki provjeris prvo je l' broj prirodan, a zatim i ima li tocno dva djelitelja. :) Naravno, ovdje je - cini mi se - greska i trebaju biti cjelobrojni koeficijenti. 8)
Pa, formalno matematicki provjeris prvo je l' broj prirodan, a zatim i ima li tocno dva djelitelja. Naravno, ovdje je - cini mi se - greska i trebaju biti cjelobrojni koeficijenti.
_________________ 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] |
|
ekatarina Forumaš(ica)
Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol:
|
Postano: 21:19 pon, 28. 4. 2008 Naslov: |
|
|
Evo kako sam pokušala riješiti gore spomenuti zadatak. Ali, po običaju ne radi.. Izbacila sam ono ograničenje na n kako bi mogla lakše provjeriti na ruke.
[code:1]#include <stdio.h>
#include <stdlib.h>
int prost(int x)
{int k;
if(x<0) x=-x;
if(x==0 || x==1) return 0;
for(k=2; k<x; k++)
if(x%k==0) return 0;
return 1;
}
int main (void){
int n, i, j;
int p, *a;
scanf("%d", &n);
a=(int *)malloc((n+2)* sizeof(int));
for(i=0; i<n+2; i++)
{ printf("Ucitajte a[%d]=", i);
scanf("%d\n", &a[i]);
p=0;
for(j=n; j>=1; j--)
p=p*a[i] +a[j-1]*a[j+1];
if(prost(p)) printf("\nVrijednost polinoma u %d je %d, ona je prosta\n", a[i], p);
}
scanf("%%");
return 0;
}[/code:1]
Edit: popravila sam, opet neće.
Evo kako sam pokušala riješiti gore spomenuti zadatak. Ali, po običaju ne radi.. Izbacila sam ono ograničenje na n kako bi mogla lakše provjeriti na ruke.
Kod: | #include <stdio.h>
#include <stdlib.h>
int prost(int x)
{int k;
if(x<0) x=-x;
if(x==0 || x==1) return 0;
for(k=2; k<x; k++)
if(x%k==0) return 0;
return 1;
}
int main (void){
int n, i, j;
int p, *a;
scanf("%d", &n);
a=(int *)malloc((n+2)* sizeof(int));
for(i=0; i<n+2; i++)
{ printf("Ucitajte a[%d]=", i);
scanf("%d\n", &a[i]);
p=0;
for(j=n; j>=1; j--)
p=p*a[i] +a[j-1]*a[j+1];
if(prost(p)) printf("\nVrijednost polinoma u %d je %d, ona je prosta\n", a[i], p);
}
scanf("%%");
return 0;
} |
Edit: popravila sam, opet neće.
Zadnja promjena: ekatarina; 12:55 uto, 29. 4. 2008; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 0:41 uto, 29. 4. 2008 Naslov: |
|
|
Ovako, na brzinu, ne valja ti funkcija [tt]prost()[/tt]... sto vraca za, recimo, 17? :-k A sto za 4? :-k Vraca ispravno samo za -1, 0 i 1. :?
Ovako, na brzinu, ne valja ti funkcija prost()... sto vraca za, recimo, 17? A sto za 4? Vraca ispravno samo za -1, 0 i 1.
_________________ 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] |
|
ekatarina Forumaš(ica)
Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol:
|
|
[Vrh] |
|
Novi Forumaš(ica)
Pridružen/a: 17. 07. 2007. (12:08:32) Postovi: (11F)16
Spol:
|
|
[Vrh] |
|
Vip Forumaš(ica)
Pridružen/a: 12. 10. 2007. (17:53:31) Postovi: (8E)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
ekatarina Forumaš(ica)
Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol:
|
Postano: 20:42 uto, 29. 4. 2008 Naslov: Re: Novi dan, novi zadatak |
|
|
[quote="Masiela"]
I još nešto.... zadaci s aritmetičkom sredinom intova. Kako da daje as u doublu?
[/quote]
Možda ako prije dijeljenja sa duljinom niza, sumu svih intova konvertiraš u double.
[code:1]
int suma=0;
double dsuma;
for(i=0; i<n; i++)
suma+=a[i];
dsuma = (double) suma;[/code:1]
I onda kada dijelimo to sa duljinom niza - integerom, to više nije cijelobrojno dijeljenje. Nadam se da ti nisam rekla totalnu glupost (ako jesam netko će me ispraviti, pa je valjda opet sve ok), ovo sam negdje čula, pa sam se zato usudila...
@vsego
:lol: :lol: Ali nije ništa čudno, evo već u slijedećoj grupi se stvarno radi s minorama.
Masiela (napisa): |
I još nešto.... zadaci s aritmetičkom sredinom intova. Kako da daje as u doublu?
|
Možda ako prije dijeljenja sa duljinom niza, sumu svih intova konvertiraš u double.
Kod: |
int suma=0;
double dsuma;
for(i=0; i<n; i++)
suma+=a[i];
dsuma = (double) suma; |
I onda kada dijelimo to sa duljinom niza - integerom, to više nije cijelobrojno dijeljenje. Nadam se da ti nisam rekla totalnu glupost (ako jesam netko će me ispraviti, pa je valjda opet sve ok), ovo sam negdje čula, pa sam se zato usudila...
@vsego
Ali nije ništa čudno, evo već u slijedećoj grupi se stvarno radi s minorama.
|
|
[Vrh] |
|
|