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 27. 10. 2011 16:15

0manrike
Příspěvky: 29
Reputace:   
 

Java-Hledání prvočísel podle Erast.síta

Ahojte můžete se někdo podívat, jestli mám tenhle program správně? Nevím proč nefunguje. Píše to že tam chybí hlavní třída HelloWorld, přitom tu jsem si vytvorila já, nebyla součástí, a nemá s tímhle prográmkem nic společného. Nevím..


class Prvocisla{
int N = 1000;
boolean[] pole = new boolean[N];
for (int i=2; i<pole.Lenght; i++){
    pole[i] = true;
}
for (int i=2; i*i<pole.Lenght; i++){
    pole[i]=true;
}
for (int i=2; i*i<pole.Lenght; i++){
    if(pole[i]){
        for (int j=i; j*i<pole.Lenght; i++){
            pole[i*j]=false;
        }
    }
}
for (int i=2; i<pole.Lenght; i++){
    if(pole[i]){
        stringResult.Text += i.ToString()+ ",";
   
    }
}
}

Offline

  • (téma jako vyřešené označil(a) 0manrike)

#2 28. 10. 2011 17:17

Johny
Příspěvky: 213
Reputace:   
 

Re: Java-Hledání prvočísel podle Erast.síta

Ahoj
a kde mas metodu main? Pokud ji mas v jine tride je treba vytvorit v tride Prvocisla nejaky konstruktor a kod dat do metody.

Offline

 

#3 28. 10. 2011 21:18 — Editoval 0manrike (28. 10. 2011 21:18)

0manrike
Příspěvky: 29
Reputace:   
 

Re: Java-Hledání prvočísel podle Erast.síta

↑ Johny:

Ahoj,
můžeš mi to více přiblížit, mám vytvořit konstruktor a dát ho tam kde je metoda main? A proč? Jsem začátečník..

Offline

 

#4 30. 10. 2011 15:52 — Editoval RePRO (30. 10. 2011 15:56)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Java-Hledání prvočísel podle Erast.síta

Zdravím,
je i dobré si dělat komentáře. Jinak, nekompiloval jsem to a dělal jsem to rychle.
Mohlo by to vypadat nějak takhle:

Code:

package program;
 
 import java.awt.*;
 
 class Program {
    
    public static void main(String[] args) {             
       Prvocisla p = new Prvocisla(1000);
       System.out.println("Prvocisla: " + p.write());
    }
 } 

 class Prvocisla {
    
    boolean[] pole;

    // konstruktor
    Prvocisla(int N) {
        pole = new boolean[N];
    }

    // metoda pro výpis
    public void write() { 
      // od čísla 2 označíme všechny prvočísla na true
      for (int i = 2; i < pole.Lenght; i++) {
          pole[i] = true;
      }
      
      // označíme násobky
      for (int i = 2; i*i < pole.Lenght; i++) {
          pole[i] = true;
      }
      
      
      for (int i = 2; i*i < pole.Lenght; i++) {
          if (pole[i]) {
              for (int j = i; j*i < pole.Lenght; i++) {
                  pole[i*j] = false;
              }
          }
      }
      
      // a projdeme pole a tam kde je true v poli (prvočíslo), tak to vypíšeme
      for (int i = 2; i < pole.Lenght; i++) {
          if (pole[i]) {
              stringResult.Text += i.ToString()+ ",";
          }
      }
    }
 }

Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson