|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Crivello di Eratosten [JAVA] ..non va!!
Codice:
import GraphicIO.*;
public class crivello{
public static void main(String args[]){
GraphicConsole.showWindow();
crivi();
}
public static void crivi(){
boolean v[]=new boolean [1001];
v[0]=false;
v[1]=false;
for(int i=2;i<v.length;i++)
v[i]=true;
minprimo=2;
do{
for(int i=3;i<v.length;i++)
if(v[i]%minprimo==0)v[i]=false;
minprimo++;
while(minprimo<v.length && minprimo==false)
minprimo++;
}while(minprimo<v.length)
for(int i=0;i<v.length;i++){
if(v[i]==true)
GraphicConsole.println(i);
}
}
}
crivello.java:22: ';' expected for (int i=0;i<v.length;i++){ 1 error come se mancasse un punto e virgola.. ma io nn lo riesco a vedere dove andrebbe messo! chi mi aiuta a capire?
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
|
if(v[i]%minprimo==0)
ma fai un boolean % un integer !!?!??? forse ho letto male il codice |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
|
minprimo++;
while(minprimo<v.length && minprimo==false) nella riga prima incrementi minprimo e poi ti chiedi se e' uguale a false?? ma sto minprimo cos'e'?? un boolean o un numero?? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
if(v[i]%minprimo==0)
corretto con if(i%minprimo==0) e correto anche minprimo++; while(minprimo<v.length && minprimo==false) con minprimo++; while(minprimo<v.length && v[minprimo]==false) ma nn va ancora :\
__________________
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
|
dunque ho fatto un file che compila, poi tu modificalo come vuoi. Soprattutto minprimo che nel tuo sorgente non era dichiarato da nessuna parte:
public class Crivello{ private static int minprimo; public static void main(String args[]){ GraphicConsole.showWindow(); crivi(); } public static void crivi(){ boolean v[]=new boolean [1001]; v[0]=false; v[1]=false; for(int i=2;i<v.length;i++){ v[i]=true; } minprimo=2; do{ for(int i=3;i<v.length;i++){ if(i%minprimo==0){ v[i]=false; } minprimo++; } while(minprimo<v.length && v[minprimo]==false) { minprimo++; } } while(minprimo<v.length); for(int i=0;i<v.length;i++){ if(v[i]==true) { GraphicConsole.println(i); } } } } p.s. il tuo sorgente e' difficile da comprendere e considera che sono solo pochissime righe... ti consiglio di cambiare un po' lo stile di programmazione soprattutto quando scrivi while o if che devono eseguire una sola riga if() istruzione; scivila if(){ istruzione; } ti richiede di scrivere comunque le due graffe ma il codice e' 10 volte + leggibile! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:42.



















