C jezik - problem sa petljama

7

C jezik - problem sa petljama

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • 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.
offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Ne znam kako, šta da stavim u spoljnu a šta u unutrašnju petlju??



offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • 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. Wink Sve ti je dato, samo sada treba da sedneš, isčitaš sve lepo i povežeš zajedno.

offline
  • Miloš
  • 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 Very Happy

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Napisano: 02 Nov 2014 19:52

To znači da imaš petlju u petlji. Very Happy 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    } }

offline
  • Miloš
  • 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 Very Happy

#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    }   }

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • 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. Mr. Green No dobro, ajde da rešimo to, pa ćeš videti već kako može da se optimizuje to. Very Happy

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. Wink 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. Very Happy

offline
  • Miloš
  • 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? Smile

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • Gde živiš: Niš

Pa šta misliš, koja je to druga petlja o kojoj govorimo? Very Happy

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

vasa.93 ::Pa šta misliš, koja je to druga petlja o kojoj govorimo? Very Happy

Ako korisnik unese broj, kako petlja može da provjeri je li on prost? Zar nije logičnije if uslov da ide samo? Very Happy

Ko je trenutno na forumu
 

Ukupno su 841 korisnika na forumu :: 48 registrovanih, 3 sakrivenih i 790 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aleksmajstor, Atomski čoban, babaroga, Bobrock1, bokisha253, BORUTUS, dehhhhi, dragoljub11987, DragoslavS, Frunze, hooraay, hyla, kikisp, kolle.the.kid, Koridor, krkalon, Kubovac, kybonacci, laurusri, Luka1998, Marko Marković, mercedesamg, Mi lao shu, milenko crazy north, MiroslavD, mrav pesadinac, MrNo, Oscar, procesor, raptorsi, rodoljub, S1Mk3, Shinobi, Smajser, Srle993, theNedjeljko, VJ, vladetije, vrag81, wizzardone, YU-UKI, zillbg, Zoca, zziko, |_MeD_|, 125, 223223