fibonacijev niz

Teme vezane za console/GUI programiranje u C/C++ jeziku
16 post(ov)a • Stranica: 2/2.1, 2

Re: fibonacijev niz

PostPostao/la tomRiddle » 31 srp 2013, 11:33

nemesis je napisao/la:kolege, sta mislite o mom kodu, ovo sam sinoc napravio dok sam vam pisao da mi treba pomoc, mislim da sam uspio napokon, a sad vidim da ste se i vi potrudili maksimalno, svaka cast :)

c code
#include <stdio.h>
#include <stdlib.h>
main()
{
int A,B,n,f1,f2,f3,i=0;
printf("unesi interval od A do B: ");
scanf("%d %d",&A,&B);
f1=1;
f2=1;
if (A<2 || B<2)
printf("interval mora biti veci ili jednak 2");
for(n=A;n<B;n++){

f3=f1+f2;
if(A<f3 && B>f3){


printf("%d\n",f3);
i++;}

f1=f2;
f2=f3;}

printf("%d",i);
system("pause");
}


Ne shvatam jednu stvar... Zašto for petlja koja se obavlja onoliko puta koliko je B-A ?? Zašto n koje ide jedan po jedan i sve to vrijeme se računaju fibonacijevi brojevi, koji možda i nisu potrebni jer su izašli iz intervala (A,B). To je još i OK, ali šta ako ti unesem A=12, B=14...
Želim odgovor: Broj 13 je jedini Fibonacijev broj u ovom intervalu, a dobiću: Da je brojeva niza 0.

Pogledaj to malo bolje i isprobaj kod prije nego ga napišeš bilo gdje (prijatelju, na forum, u svesku kao domaću zadaću :D )

Pozdrav

Re: fibonacijev niz

PostPostao/la HepeK » 31 srp 2013, 11:53

Naravno da brzina nije najmjerodavnija jer tu je i zauzeće memorije, broj računskih operacija, broj uslova koji direktno utiču na opterećenje cpu-a...po meni preglednost koda je zadnje na sto treba obraćati pažnju jer to ovisi o programeru tj. hocu reci da je kod pregledan onoliko koliko ga programer uljepsa (unutar tijela nečega uvlači kod, komentariše linije koda etc...).

Ako gledamo php programiranje sve je podjednako važno jer je vrlo bitno kolikom se brzinom nešto isporuči korisniku, bitno je da zauzima sto manje memorije pri izvodjenju (jer može biti 1000 posjetilaca istovremeno)...

Da li si slušao algoritme i strukture podataka?
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: fibonacijev niz

PostPostao/la tomRiddle » 31 srp 2013, 12:08

HepeK je napisao/la:Naravno da brzina nije najmjerodavnija jer tu je i zauzeće memorije, broj računskih operacija, broj uslova koji direktno utiču na opterećenje cpu-a...po meni preglednost koda je zadnje na sto treba obraćati pažnju jer to ovisi o programeru tj. hocu reci da je kod pregledan onoliko koliko ga programer uljepsa (unutar tijela nečega uvlači kod, komentariše linije koda etc...).

Ako gledamo php programiranje sve je podjednako važno jer je vrlo bitno kolikom se brzinom nešto isporuči korisniku, bitno je da zauzima sto manje memorije pri izvodjenju (jer može biti 1000 posjetilaca istovremeno)...

Da li si slušao algoritme i strukture podataka?


Dobro, dobro, pod preglednost sam mislio više na modularnost i praktičnost pojedinih komandi. Ovo bih napisao još urednije, ali čovjek je naglasio da ne smije biti nizova, funkcija i ostalih "naprednih" stvari. Pretpostavimo da želimo izmjeniti program na način da se uzima svaki drugi fibonacijev broj u razmatranje, dakle, u svakoj iteraciji treba uzeti dva iduća broja, pa drugi uporediti sa uslovom, tj. intervalom (karikiram, naravno). U implementaciji sa dvije petlje moram u obe petlje napraviti tu promjenu, umjesto što računam slijedeći broj da računam još jedan, a u implementaciji sa jednom petljom, promjena je na jednom mjestu... :-)

Ovo je jednostavan primjer, a zamisli kod on nekoliko stotina hiljada linija. Modularnost, a samim tim i urednost, je mnogo bitnija od brzine (pod ovim mislim na situacije kada se brzina osjeti na 100 000 000 proračuna, što je slučaj sa ovim kodom, a niko nikada neće tražiti 100 000 000-ti broj fibonacijevog niza :-) ) Ipak, sada razmišljam, kada bi pisali php skriptu koja ovo radi (karikiram i dalje :D ), na 100 000 000 korisnika bi bilo poželjno da je algoritam brži... Dakle, sve po potrebi...

Da, slušao sam Algoritme i strukture podataka... :D

Re: fibonacijev niz

PostPostao/la HepeK » 31 srp 2013, 12:23

Da se primjetiti da si slušao AiSP :D

Dijelimo mišljenje, da ne kažem da se slažemo :)
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: fibonacijev niz

PostPostao/la SideSh0wB0B » 05 ruj 2013, 12:16

Za specifikaciju, odnosno zahtev iz zadatka "n" je apsolutno nebitna. I ne kontam sto je ovaj dao primer koda sa nizom kad je autor rekao da ne treba da ima nizove ,funkcije... Manje vise sam stavljao komentare u kod, ako ima pitanja i ili sugestija i ispravki slobodno. :)

c code
#include <stdio.h>

main ()
{

int pretposlednji=0, poslednji=1; /* Zamislimo fibonacijev niz i svaka dva sabirka nazovemo "pretposlednji" i "poslednji" (ili prvi i drugi) a zbir recimo "rezultat" :P */
int rezultat=0;
int fibBrojeva=1; /*promenljiva koja broji koliko imam fib brojeva u intervalu*/
int a,b;

printf ("Unesite A:");
scanf ("%d", &a);

printf ("Unesite B:");
scanf ("%d", &b);


printf ("Brojevi Fibonacijevog niza izmedju datog intervala od %d do %d: { ", a,b);

while (rezultat<b) /* Uslov izlaska iz petlje je kada relzultat predje gornju granicu intervala tj. "b" */
{
rezultat = pretposlednji + poslednji;

if (rezultat > a && rezultat <b )
{
printf ("%d ", rezultat);
fibBrojeva++;
}


pretposlednji = poslednji;
poslednji = rezultat;

}

printf("}");
printf ("\n\nU datom intervalu ima %d fibNo.\n", fibBrojeva-1);

system ("PAUSE");
}
Zadnja izmjena: SideSh0wB0B; 07 ruj 2013, 12:42; ukupno mijenjano 1 put/a.
Pseudorandom logovanje u zivot.

Re: fibonacijev niz

PostPostao/la Armin » 05 ruj 2013, 13:14

Jedan od načina da ispitate brzinu izrade programa je da prevedete vaš C kod u neki od Assembly jezika. Tako ćete znati tačan broj naredbi koje procesor mora zadovoljiti da bi se program izvršio.
"Ne žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje"
Nikola Tesla


16 post(ov)a • Stranica: 2/2.1, 2

Na mreži

Trenutno korisnika/ca: / i 1 gost.