| Prethodna tema :: Sljedeća tema | 
	
	
		| Autor/ica | Poruka | 
	
		| ON Forumaš(ica)
 
  
 
 Pridružen/a: 09. 02. 2010. (19:31:10)
 Postovi: (D)16
 Spol:
  
 
 | 
			
				|  Postano: 23:34 sub, 29. 1. 2011    Naslov: |         |  
				| 
 |  
				| da da , nije neki problem uvrstiti sve u formulu makar imaš razlomke i ostalo ako imaš sređen hornerov argoritam, ali je bar meni problem sređivanje dobivenog algoritma, pošto toliko nisam bar još radio s matematičke strane, gledao sam po internetu i nigdje pa me čisto zanima gdje mogu naučiti sređivati te algoritme budući da mi oni iz skripte neće puno pomoći kad dobijem neku kobasicu od hornerovog algoritma u popravnom, i čini mi se svake godine sve teži i teži zadatci i na kolokvijima i na popravnima, mislim nismo svi programirali u srednjoj i mislim da treba puno više od tri mjeseca da pohvataš sve ovo uzevši u obzir da nam Programiranje 1 nije jedini kolegij u semestru!da da , nije neki problem uvrstiti sve u formulu makar imaš razlomke i ostalo ako imaš sređen hornerov argoritam, ali je bar meni problem sređivanje dobivenog algoritma, pošto toliko nisam bar još radio s matematičke strane, gledao sam po internetu i nigdje pa me čisto zanima gdje mogu naučiti sređivati te algoritme budući da mi oni iz skripte neće puno pomoći kad dobijem neku kobasicu od hornerovog algoritma u popravnom, i čini mi se svake godine sve teži i teži zadatci i na kolokvijima i na popravnima, mislim nismo svi programirali u srednjoj i mislim da treba puno više od tri mjeseca da pohvataš sve ovo uzevši u obzir da nam Programiranje 1 nije jedini kolegij u semestru! 
 
 |  | 
	
		| [Vrh] |  | 
	
		| matea007 Forumaš(ica)
 
  
 
 Pridružen/a: 16. 01. 2011. (14:01:32)
 Postovi: (9)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| frutabella Forumaš(ica)
 
  
 
 Pridružen/a: 09. 10. 2010. (16:35:36)
 Postovi: (24E)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 | 
			
				|  Postano: 0:44 čet, 5. 1. 2012    Naslov: |         |  
				| 
 |  
				| "Proslogodisnji  zadatak" bas i nije jednoznacan opis, ali nekako sumnjam da je [tt]p=p*x*x[color=red]^[/color]i;[/tt] tocno u bilo kojem zadatku s Hornerom kojeg smo ikad zadali.
"Proslogodisnji  zadatak" bas i nije jednoznacan opis, ali nekako sumnjam da je p=p*x*x^i; tocno u bilo kojem zadatku s Hornerom kojeg smo ikad zadali.
 Inace, ako je s kolokvija, rjesenja su na webu. Izvedes oba programa (svoj i sluzbeni) na par primjera, pa vidis je l' vracaju iste rezultate (ovo tvoje gotovo sigurno ne vraca isto sto i sluzbeno rjesenje).
 
 Inace, ako je s kolokvija, rjesenja su na webu. Izvedes oba programa (svoj i sluzbeni) na par primjera, pa vidis je l' vracaju iste rezultate (ovo tvoje gotovo sigurno ne vraca isto sto i sluzbeno rjesenje).
 _________________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] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 | 
			
				|  Postano: 12:16 uto, 10. 1. 2012    Naslov: |         |  
				| 
 |  
				| [code:1]#include <stdio.h>
 
 double horner2(double element,double q[],double u,int n) {
 int j;
 double p = 0.0;
 for (j = n-1; j >= 0; j--)p=p*u +(element/q[n-j-1]);
 
 return p;
 
 }
 
 double horner1(double p[],double q[],double u,int n) {
 int i;
 double suma=0.0, upot = u * u;
 for (i = 1; i <= n; ++i) {
 
 suma=suma+upot*horner2(p[n-i],q,u,n);
 upot=upot*u;
 
 }
 return suma;
 }
 int main(void) {
 int n,i;
 double p[12],q[12],u;
 printf("unesite n= ");
 scanf("%d",&n);
 printf("unesite koeficijente:  \n");
 
 for(i=0;i<n;i++){ printf("p[%d]= ",i);
 
 scanf("%lf",&p[i]);
 }
 
 for(i=0;i<n;i++){ printf("q[%d]= ",i);
 
 scanf("%lf",&q[i]);
 }
 
 
 printf("unesite u= ");
 scanf("%lf",&u);
 printf("rezultat je %lf\n",horner1(p,q,u,n));
 
 return 0;
 }[/code:1]
 jel treba pazit da drugi niz ima sve elemente 0 pa djelimo s nula?
 
 i još jedno pitanj..dal možemo koristit npr."unesite prirodan broj n >0" petlju if(n<=0)exit(1) umjesto unsigned int n ili možemo stavit i unsigned int n pa stavimo samo if(n==0)exit(1)??malo sam spetljala sad.ugl jel možemo koristit exit(1)?fala..
  	  | Kod: |  	  | #include <stdio.h> 
 
 double horner2(double element,double q[],double u,int n) {
 int j;
 double p = 0.0;
 for (j = n-1; j >= 0; j--)p=p*u +(element/q[n-j-1]);
 
 return p;
 
 }
 
 double horner1(double p[],double q[],double u,int n) {
 int i;
 double suma=0.0, upot = u * u;
 for (i = 1; i <= n; ++i) {
 
 suma=suma+upot*horner2(p[n-i],q,u,n);
 upot=upot*u;
 
 }
 return suma;
 }
 int main(void) {
 int n,i;
 double p[12],q[12],u;
 printf("unesite n= ");
 scanf("%d",&n);
 printf("unesite koeficijente:  \n");
 
 for(i=0;i<n;i++){ printf("p[%d]= ",i);
 
 scanf("%lf",&p[i]);
 }
 
 for(i=0;i<n;i++){ printf("q[%d]= ",i);
 
 scanf("%lf",&q[i]);
 }
 
 
 printf("unesite u= ");
 scanf("%lf",&u);
 printf("rezultat je %lf\n",horner1(p,q,u,n));
 
 return 0;
 }
 | 
 jel treba pazit da drugi niz ima sve elemente 0 pa djelimo s nula?
 
 i još jedno pitanj..dal možemo koristit npr."unesite prirodan broj n >0" petlju if(n⇐0)exit(1) umjesto unsigned int n ili možemo stavit i unsigned int n pa stavimo samo if(n==0)exit(1)??malo sam spetljala sad.ugl jel možemo koristit exit(1)?fala..
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 | 
			
				|  Postano: 13:04 uto, 10. 1. 2012    Naslov: |         |  
				| 
 |  
				| [quote="štrumfeta"]i još jedno pitanj..dal možemo koristit npr."unesite prirodan broj n >0" petlju if(n<=0)exit(1) umjesto unsigned int n ili možemo stavit i unsigned int n pa stavimo samo if(n==0)exit(1)??malo sam spetljala sad.ugl jel možemo koristit exit(1)?fala..[/quote]
 "Unesite prirodan broj n > 0" [tex]\equiv[/tex] "korisnik unosi prirodan broj n > 0 i za njega program mora raditi korektno". U praksi trebate provjeravati je li broj stvarno kakav se trazi, no na kolokviju to nije potrebno. Dakle, [tt]int n; scanf("%d", &n);[/tt] je sasvim dovoljno.
 
 Prvi dio posta uopce nisam razumio sto se hoce, pa ne mogu niti odgovoriti.
  	  | štrumfeta (napisa): |  	  | i još jedno pitanj..dal možemo koristit npr."unesite prirodan broj n >0" petlju if(n⇐0)exit(1) umjesto unsigned int n ili možemo stavit i unsigned int n pa stavimo samo if(n==0)exit(1)??malo sam spetljala sad.ugl jel možemo koristit exit(1)?fala.. | 
 
 "Unesite prirodan broj n > 0" [tex]\equiv[/tex] "korisnik unosi prirodan broj n > 0 i za njega program mora raditi korektno". U praksi trebate provjeravati je li broj stvarno kakav se trazi, no na kolokviju to nije potrebno. Dakle, int n; scanf("%d", &n); je sasvim dovoljno.
 
 Prvi dio posta uopce nisam razumio sto se hoce, pa ne mogu niti odgovoriti.
 _________________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] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 | 
			
				|  Postano: 19:23 uto, 10. 1. 2012    Naslov: |         |  
				| 
 |  
				| [code:1]#include <stdio.h>
int polinom1(int x, int n)
 {
 int k, temp=0;
 for (k = n; k >= 0; k--){
 temp = temp*x+((k % 2) ? -1:1)*(n*n*n+2*n-k);
 }
 return temp;
 }
 
 int main(){
 int niz[2011], i, nered, temp, n,kraj;
 
 scanf("%d", &n);
 for(i=0; i<n; i++){
 scanf("%d", &niz[i]);
 }
 kraj=n-1;
 nered=1;
 while(nered){
 nered = 0;
 for (i = 0; i<kraj; i++)
 if (polinom1(niz[i],3) > polinom1(niz[i+1],3)){
 nered = 1;
 
 temp = niz[i];
 niz[i] = niz[i+1];
 niz[i+1] = temp;
 }
 --kraj;
 }
 
 for (i = 0; i < n; i++) printf("%d ",niz[i]);
 return 0;
 }[/code:1]
 3 zadatak ,kolokvij2011!jel mi netko može reć što krivo radim jer mi program ne ispisuje dobro(provjeravala sam sa službenim rješenjem)i molim vas..
  	  | Kod: |  	  | #include <stdio.h> int polinom1(int x, int n)
 {
 int k, temp=0;
 for (k = n; k >= 0; k--){
 temp = temp*x+((k % 2) ? -1:1)*(n*n*n+2*n-k);
 }
 return temp;
 }
 
 int main(){
 int niz[2011], i, nered, temp, n,kraj;
 
 scanf("%d", &n);
 for(i=0; i<n; i++){
 scanf("%d", &niz[i]);
 }
 kraj=n-1;
 nered=1;
 while(nered){
 nered = 0;
 for (i = 0; i<kraj; i++)
 if (polinom1(niz[i],3) > polinom1(niz[i+1],3)){
 nered = 1;
 
 temp = niz[i];
 niz[i] = niz[i+1];
 niz[i+1] = temp;
 }
 --kraj;
 }
 
 for (i = 0; i < n; i++) printf("%d ",niz[i]);
 return 0;
 }
 | 
 3 zadatak ,kolokvij2011!jel mi netko može reć što krivo radim jer mi program ne ispisuje dobro(provjeravala sam sa službenim rješenjem)i molim vas..
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 |  | 
	
		| [Vrh] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 |  | 
	
		| [Vrh] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 | 
			
				|  Postano: 0:57 sri, 11. 1. 2012    Naslov: |         |  
				| 
 |  
				| Ajde u oba programa -- svoj i sluzbeni -- stavi ovaj ispis:
Ajde u oba programa – svoj i sluzbeni – stavi ovaj ispis:[tt]for (i = 0; i < n; i++) printf("%ld (%ld)\n",niz[i],polinom1(niz[i],3));[/tt]
 pa mi javi sto koji ispisuje na ovom racunalu za koje kazes da vraca krivo (tj. da programi ispisuju razlicito). Bas me zanima sto se zbiva i zasto.
 
 Jos ako znas napisati koji je to hardware, bilo bi lijepo, no mogu prezivjeti i bez toga. :)
 for (i = 0; i < n; i++) printf("%ld (%ld)\n",niz[i],polinom1(niz[i],3));
 pa mi javi sto koji ispisuje na ovom racunalu za koje kazes da vraca krivo (tj. da programi ispisuju razlicito). Bas me zanima sto se zbiva i zasto.
 
 Jos ako znas napisati koji je to hardware, bilo bi lijepo, no mogu prezivjeti i bez toga.
   _________________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] |  | 
	
		| štrumfeta Forumaš(ica)
 
  
 
 Pridružen/a: 02. 11. 2011. (19:36:55)
 Postovi: (36)16
 
 
 |  | 
	
		| [Vrh] |  | 
	
		| vsego Site Admin
 
  
  
 Pridružen/a: 06. 10. 2002. (22:07:09)
 Postovi: (3562)16
 Spol:
  Lokacija: /sbin/init
 
 | 
			
				|  Postano: 10:06 sri, 11. 1. 2012    Naslov: |         |  
				| 
 |  
				| Ok, no probs. Ali, jedno malo upozorenje: [b]pazite kad testirate programe da uneseni brojevi imaju smisla![/b]
Ok, no probs. Ali, jedno malo upozorenje: pazite kad testirate programe da uneseni brojevi imaju smisla!
 Onih 988 s kojim testiras je pomalo veliko, pa dobijes [tex]P(988,3) = -28902679279[/tex] sto ne stane u obicni [tt]int[/tt] od 4 bytea. Ovisno o arhitekturi racunala i compileru, moguce je da se drugacije ponasa (standard kaze samo da [tt]int[/tt] mora biti 4 bytea, ne i da mora biti tocno toliko), no ne vjerujem da se tebi tu nesto potrgalo, jer ne vidim bitnu razliku izmedju tvog i sluzbenog rjesenja.
 
 Primijeti da i sluzbeno rjesenje gura -988 na zadnje mjesto, a trebao bi biti prvi (ima najmanju vrijednost polinoma). To je upravo zbog ovewflowa kod racunanja rjesenja.
 
 Uz izmijenjeni ispis, ovo je sluzbeno rjesenje za tvoje brojeve (u zagradi su vrijednosti polinoma po kojima se sortira):
 [code:1]$ gcc zad3A.c && echo 10 34 35 32 38 39 21 988 -321 219 34 | ./a.out
 219 (-313623954)
 39 (-1733634)
 38 (-1602579)
 35 (-1249362)
 34 (-1144339)
 34 (-1144339)
 32 (-952287)
 21 (-264798)
 -321 (995489406)
 988 (1162091793)[/code:1]
 
 Ovo ti daje isti program kad sve [tt]int[/tt] (osim onog ispred [tt]main[/tt]) zamijenis s [tt]long[/tt] i sredis formate za unos i ispis:
 [code:1]$ gcc zad3A.c && echo 10 34 35 32 38 39 21 988 -321 219 34 | ./a.out
 988 (-28902679279)
 219 (-313623954)
 39 (-1733634)
 38 (-1602579)
 35 (-1249362)
 34 (-1144339)
 34 (-1144339)
 32 (-952287)
 21 (-264798)
 -321 (995489406)[/code:1]
 Identicno se ponasa i tvoj program.
 
 Da rezimiram: ako unosite podatke ciji rezultat nije prikaziv, moze doci do raznih problema. At minimum, diskrepancija s ocekivanim rezultatom (npr. ako ga racunate na ruke ili usporedjujete s bitno drugacije implementiranim sluzbenim rjesenjem).
 
 Onih 988 s kojim testiras je pomalo veliko, pa dobijes [tex]P(988,3) = -28902679279[/tex] sto ne stane u obicni int od 4 bytea. Ovisno o arhitekturi racunala i compileru, moguce je da se drugacije ponasa (standard kaze samo da int mora biti 4 bytea, ne i da mora biti tocno toliko), no ne vjerujem da se tebi tu nesto potrgalo, jer ne vidim bitnu razliku izmedju tvog i sluzbenog rjesenja.
 
 Primijeti da i sluzbeno rjesenje gura -988 na zadnje mjesto, a trebao bi biti prvi (ima najmanju vrijednost polinoma). To je upravo zbog ovewflowa kod racunanja rjesenja.
 
 Uz izmijenjeni ispis, ovo je sluzbeno rjesenje za tvoje brojeve (u zagradi su vrijednosti polinoma po kojima se sortira):
 
  	  | Kod: |  	  | $ gcc zad3A.c && echo 10 34 35 32 38 39 21 988 -321 219 34 | ./a.out 219 (-313623954)
 39 (-1733634)
 38 (-1602579)
 35 (-1249362)
 34 (-1144339)
 34 (-1144339)
 32 (-952287)
 21 (-264798)
 -321 (995489406)
 988 (1162091793)
 | 
 
 Ovo ti daje isti program kad sve int (osim onog ispred main) zamijenis s long i sredis formate za unos i ispis:
 
  	  | Kod: |  	  | $ gcc zad3A.c && echo 10 34 35 32 38 39 21 988 -321 219 34 | ./a.out 988 (-28902679279)
 219 (-313623954)
 39 (-1733634)
 38 (-1602579)
 35 (-1249362)
 34 (-1144339)
 34 (-1144339)
 32 (-952287)
 21 (-264798)
 -321 (995489406)
 | 
 Identicno se ponasa i tvoj program.
 
 Da rezimiram: ako unosite podatke ciji rezultat nije prikaziv, moze doci do raznih problema. At minimum, diskrepancija s ocekivanim rezultatom (npr. ako ga racunate na ruke ili usporedjujete s bitno drugacije implementiranim sluzbenim rjesenjem).
 _________________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] |  | 
	
		|  |