Poslao: 02 Nov 2014 16:29
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Može, ali u tom slučaju moraš da implementiraš funkciju koja određuje da li je broj prost. Ta funkcija hteo - ne hteo mora da sadrži petlju. Petlja u petlji = dve ugnježdene petlje.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 02 Nov 2014 19:33
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Hajde vrati se na moje poruke koje se tiču tog zadatka i isčitaj ih pažljivo. Videćeš da sam ti dao potpuno jasne smernice. Nije korektno da tražiš da ti stalno ponavljam objašnjenja sve dok ne dođeš do krajnjeg rešenja. Sve ti je dato, samo sada treba da sedneš, isčitaš sve lepo i povežeš zajedno.
|
|
|
|
Poslao: 02 Nov 2014 19:38
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
vasa.93 ::a unutrašnja se pokreće za svaku iteraciju spoljne
nisam siguran šta znači ovo, pa zbog toga ne znam šta da radim
|
|
|
|
Poslao: 02 Nov 2014 19:58
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Napisano: 02 Nov 2014 19:52
To znači da imaš petlju u petlji. Za svaki prolaz kroz spoljnu petlju ti imaš unutrašnju petlju. Ako spoljna petlja ima recimo 10 prolaza, unutrašnja petlja će da se izvršava 10 puta.
Dopuna: 02 Nov 2014 19:58
Hajde da pojednostavimo malo. Samo uredi sledeći kod prema datim uputstvima: #include <stdio.h>
main()
{
int N, i;
i=1;
printf("Unesi broj: ");
scanf("%d",&N);
while(i<N)
{
if(i_je_prost_broj) //potrebno je ovo implementirati, funkciju za proveru da li je i prost broj
printf("%d",i); //a i ne mora da bude funkcija, možeš i u telu same petlje da proveriš to :D
}
}
|
|
|
|
Poslao: 02 Nov 2014 20:05
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
vasa.93 ::U petlji od 1 do N samo izbrojiš sa koliko brojeva je deljiv broj N, i ukoliko je taj broj veći od 2, broj je prost.
Po ovim riječima, to bi trebalo da bude ovako
#include <stdio.h>
main()
{
int N, i;
i=1;
printf("Unesi broj: ");
scanf("%d",&N);
while(i<N)
{
if(i>2) //potrebno je ovo implementirati, funkciju za proveru da li je i prost broj
printf("%d",i); //a i ne mora da bude funkcija, možeš i u telu same petlje da proveriš to :D
}
}
|
|
|
|
Poslao: 02 Nov 2014 20:27
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Ne. Rečenica ima drugi kontekst. Akcenat je na "izbrojiš": vasa.93 ::U petlji od 1 do N samo izbrojiš sa koliko brojeva je deljiv broj N, i ukoliko je taj broj veći od 2, broj je prost.Ukoliko je to što brojiš veće od 2, broj nije prost. Ukoliko je jednako 2, broj je prost.
EDIT: Sad tek videh da sam ranije napisao "ukoliko je taj broj veći od 2, broj je prost". E pa, obrnuto je, tj. važi ovo iz ove poruke: "Ukoliko je to što brojiš veće od 2, broj nije prost. Ukoliko je jednako 2, broj je prost."
Od svih mogućih rešenja ti si si odabrao ono najneoptimalnije. No dobro, ajde da rešimo to, pa ćeš videti već kako može da se optimizuje to.
Elem, hajmo malo ozbiljnije. Za početak bih ponovio ovo: vasa.93 ::Nemoj samo da pišeš kod bez ikakve veze, već dobro razmisli o onome što treba da uradiš o onome šta treba da postigneš.A tu je upravo ono što ti radiš, pišeš kod bez da imalo razmisliš o onome šta ti zapravo treba da uradiš. Tako ne ide! Okej, sastavićeš ti kod, ali ti taj kod ništa ne vredi ukoliko ti ne razumeš logiku (algoritam) istog. Kada shvatiš algoritam, pisanje koda je rutinski posao koji traje svega par minuta sa sve testiranjem.
Prokomentarišimo prvo kod koji si naveo iznad. Evo bitnog dela: if(i>2) //potrebno je ovo implementirati, funkciju za proveru da li je i prost broj
printf("%d",i); Šta zapravo radi ovaj kod? Da li je broj prost ukoliko je veći od 2? 3 je veće od 2. Da li je 3 prost broj? Nije. 5 je veće od 2. Da li je 5 prost broj? Nije. Dakle, da li je broj prost ukoliko je veći od 2? Nije! I to je trebalo sam da zaključiš tako što sam proveriš, bez obzira što je moja izjava zvučala konfuzno. Pored toga, u komentaru nedvosmisleno piše da je neophodna implementacija funkcije za proveru da li je broj prost. Bila to tzv. inline funkcija (o tome drugom prilikom) ili ne, implementacija je potpuno ista.
Hajmo sada da promenimo pristup. Zaboravi ovaj zadatak koji imaš, i usredsredi se na pisanje zadatka (još jednom, može i kao zasebna funkcija) koji proverava da li je broj K prost broj. To je srž zadatka koji treba da uradiš. Kada to uradiš, zadatak koji imaš rešava se vrlo jednostavno (rešenje prektično već imaš). Imaš i uputstvo kako da proveriš da li je broj prost. Ukoliko ima nešto nejasno, slobodno pitaj. No, verujem da sam dao dovoljno informacija, i verujem da dosta toga možeš da nađeš i koristeći pretragu, pa bi bilo jako lepo kada bi sledeći kod koji objaviš bila funkcija koja proverava da li je zadati broj K prost broj.
|
|
|
|
Poslao: 02 Nov 2014 20:57
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
Evo da pitam, je li potrebna petlja za provjeravanje K broja, pošto ne treba ništa da se radi dok neki uslov ne bude zadovoljen?
|
|
|
|
Poslao: 02 Nov 2014 21:37
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Pa šta misliš, koja je to druga petlja o kojoj govorimo?
|
|
|
|
Poslao: 02 Nov 2014 21:46
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
vasa.93 ::Pa šta misliš, koja je to druga petlja o kojoj govorimo?
Ako korisnik unese broj, kako petlja može da provjeri je li on prost? Zar nije logičnije if uslov da ide samo?
|
|
|
|