|
|
|
![]() |
|
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: 23:24.