Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 11. 2012 18:13

Spown3
Příspěvky: 38
Reputace:   
 

Prvocisla cez Eratoshenovo sito v jave

Zdravim, mam za ulohu spravit program, ktory bude hladat prvocisla cez Eratoshenovo sito a to tak ze zadam maximalne cislo po ktore sa maju vybrat prvocisla napr. 100 a vypise to prvocisla, mozem pouzit cykli (for, while a dowhile), polia a podmienky. Na zaciatku som vytvoril

public void Prvocisla ()
    {
        System.out.println ("Zadaje cislo po ktore chcete vycislit prvocisla: ");
        int cislo = s.nextInt();
       
        int[] Pole = new int[cislo];

ale potom by som potreboval priradit pre kazde pole hodnotu to som chcel spravit takto

while ( i != cislo)
        {
            Pole[i] = i+1;
        }
ale to je nezmysel, lebo i by malo byt o jedno cislo nizsie ako cislo ktore si urcim ako interval, a rozpisovat

Pole [0] = 1;
Pole [1] = 2; atd. to je nezmyselne a zdlhujuce

a potom som chcel spravit

for (int a = Pole[k]; a <= cislo; k++)
       {
           if (Pole[k] % 2 != 0)
           Sito[j] = Pole[k];
           

           System.out.print (Sito[j] + " ");
        }

v Sito [j] by boli vsetky neparne cisla z Pole [k] ale hned mi to vylucilo 2 z prvocisel a to je uz chyba, a celkovo postup je dost blby malo by to pocitat 2+2+2+2+2..... a vylucit vsetku nasobky 2, a potom by to pokracovalo od 3 a ostatnych cisel ktore ostali.

Ak ma niekto radu, postup, alebo napad bol by som Vam velmi vdacny, mam cas do pondelka.

Vopred dakujem za kazdu radu

Offline

 

#2 02. 11. 2012 19:04

skoroakvarista
Místo: Praha
Příspěvky: 299
Škola: FJFI ČVUT - ASI
Pozice: Student
Reputace:   20 
 

Re: Prvocisla cez Eratoshenovo sito v jave

↑ Spown3:
Zdravím, koukám na ty útržky kódu a moc to nestíhám...
Ten tvůj while cyklus dělá to, že odněkud (odkud?) vezme hodnotu i a porovná ji s číslem cislo. Pokud podmínka projde, tak buď přiřadí do Pole[i] hodnotu i+1, nebo skončí chybou, protože lezeš mimo indexy pole. Vzhledem k tomu, že dál s i nic neděláš, tak to poběží donekonečna (pořád ukládá tu samou hodnotu na to samé místo). Navrhuju použít raději for cyklus.
A ten for cyklus je taky vyvedený. 3 indexy, deklarovaný jenom jeden. Pokud by k byl int z množiny {0,...,cislo-1}, a se přiřadí nějaká hodnota, ale nebude se měnit, tedy pokus o nekonečný cyklus. k se ale inkrementuje, takže to zase spadne na přístupu mimo indexy pole, jestli ne už někde dřív.

Offline

 

#3 02. 11. 2012 19:17 — Editoval Spown3 (02. 11. 2012 19:26)

Spown3
Příspěvky: 38
Reputace:   
 

Re: Prvocisla cez Eratoshenovo sito v jave

na zaciatku som si dal atribut int i = 0 pre ten cyklus while chcel som to spravit tak aby som kazdemu polu nemusel pridelovat hodnotu tak prvy krat da Pole[0] = 1 podla toho cyklu az kym i nebude i == cislu, teraz pozeram ze som tam nedal i++ aby sa cyklus zastavil a ten for pre int k = 0; a int a = 0; ale ten cyklus vyberie neparne cisla ale to nieje podla Eratoshenovoho sita a to by som potreboval nahradit nejakym cyklom a podmienkami ktore by vybrali prvocisla, a este ak dam cislo narp 20 tak mi vyberie vsetky neparne cisla do Sito[j] ale napise mi ich
1 1 3 3 5 5 7 7 9 9 11 11 13 13 15 15 17 17 19 19

Offline

 

#4 02. 11. 2012 19:32

skoroakvarista
Místo: Praha
Příspěvky: 299
Škola: FJFI ČVUT - ASI
Pozice: Student
Reputace:   20 
 

Re: Prvocisla cez Eratoshenovo sito v jave

↑ Spown3:
Jak jsem říkal, ten while nahraď forem. Bude to jasné a čitelné.
for(int i = 0; i < cislo; i++)
    Pole[i] = i + 1;

Dál se zkus inspirovat na internetech, takový kód už určitě řešilo milion lidí před tebou. Já narazil na docela slušně popsaný a smysl dávající návod.

Offline

 

#5 02. 11. 2012 19:56

Spown3
Příspěvky: 38
Reputace:   
 

Re: Prvocisla cez Eratoshenovo sito v jave

Dik uz to ide, vdaka za navod.

Problem vyrieseny

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson