Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Errori di compilazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    12

    Errori di compilazione

    Salve,nella mia classe mi vengono segnalati degli errori di compilazione ,ma non riesco a capire dove stiano gli errori ...
    riporto il codice e gli errori segnalati:

    import prog.io.*;

    public class GrandiIntPositivi{

    private final static int MAX = 20;
    private int [] array = new int [MAX];

    public GrandiIntPositivi() {

    for (int i=0;i<MAX;i++){
    array[i]=0;
    }

    }

    public GrandiIntPositivi(String s){
    //controllo che la stringa sia formata solo da numeri
    for (int i=0;i<MAX;i++){
    char c =s.charAt(i);
    boolean b = Character.isDigit(c);
    if (b== false)
    throw new RuntimeException("hai inserito un carattere,mentre sono richiesti solo numeri");
    }


    //se la stringa è lunga più di 20 devo tagliare la parte in più

    int maxtmp = (MAX-1);

    //-------------------------

    if (s.length()<=MAX){
    //in questo modo metto nell'array il contenuto della stringa partendo dal fondo dell'array arrivando alla fine della stringa

    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){

    array[maxtmp]=Integer.parseInt(s.substring(j,i));
    maxtmp--;
    }

    if (maxtmp>0){ //nel caso in cui la stringa non fosse lunga 20 aggiungo degli zeri davanti

    for (int i=maxtmp; maxtmp>=0 ; maxtmp--){

    array[maxtmp]=0;
    }
    }
    }

    //se s.length()>MAX (cioè è più lungo di 20) faccio s.length()-MAX per riempire fino a lì

    else {

    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){

    array[maxtmp]=Integer.parseInt(s.substring(j,i));
    maxtmp--;

    }

    }
    }



    public GrandiIntPositivi piu(GrandiIntPositivi g){

    int [] k = new int [MAX];
    int tmp=0;
    String str="",cifra1,cifra0;


    for (int i=MAX-1; i>=0 ; i--){

    k[i]= array[i]+g.array[i]+tmp;

    if (k[i]>9){

    str=""+k[i];

    //la stringa quindi sara' formata da due cifre;divido la stringa in due parti corrispondenti alle due cifre


    cifra1 = str.substring(0,1);
    cifra0 = str.substring(1,2);//questa e' da memorizzare in k[i]

    k[i] = Integer.parseInt(cifra0);//la prima cifra va in k

    tmp = Integer.parseInt(cifra1);//il riporto va in tmp,che sara' sempre sommato fino alla fine del ciclo

    }
    }

    //ora ho l'array,devo tramutarlo in stringa

    String risultato="";

    for (i=0;i<MAX;i++){
    risultato=risultato+k[i];
    }
    return new GrandiIntPositivi(risultato);

    }



    public String toString(){

    String risultato="";

    for (i=0;i<MAX;i++){
    risultato=risultato+this.array[i];
    }

    return risultato;

    }

    public boolean equals(GrandiIntPositivi g){

    boolean b=true;

    for (i=0;i<MAX;i++){

    if (this.array[i]!=g.array[i])
    boolean b=false;

    }

    return b;

    }



    public static void main (String [] args){
    ConsoleInputManager in = new ConsoleInputManager();

    try{
    GrandiIntPositivi a= in.readLine("inserire l'intero 1 di non piu' di 20 caratteri: ");
    GrandiIntPositivi b= in.readLine("inserire l'intero 2 di non piu' di 20 caratteri: ");

    GrandiIntPositivi ris= a.piu(b);
    boolean prova = a.equals(b);

    System.out.println("risultato della somma dei due: "+ris);
    System.out.println("il metodo equals ha restituito: "+prova);

    }

    catch (RuntimeException r){

    System.out.println(r);
    }



    }

    }


    mentre gli errori segnalati sono :

    GrandiIntPositivi.java:53: <identifier> expected
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    ^
    GrandiIntPositivi.java:53: not a statement
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    ^
    GrandiIntPositivi.java:53: ')' expected
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    ^
    GrandiIntPositivi.java:53: ';' expected
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    ^
    GrandiIntPositivi.java:53: ';' expected
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    ^
    GrandiIntPositivi.java:72: <identifier> expected
    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){
    ^
    GrandiIntPositivi.java:72: not a statement
    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){
    ^
    GrandiIntPositivi.java:72: ')' expected
    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){
    ^
    GrandiIntPositivi.java:72: ';' expected
    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){
    ^
    GrandiIntPositivi.java:72: ';' expected
    for (int i=s.length(),int j=i-1 ; i>=(s.length()-MAX) ;i--,j--){
    ^
    GrandiIntPositivi.java:144: '.class' expected
    boolean b=false;
    ^
    GrandiIntPositivi.java:144: not a statement
    boolean b=false;
    ^
    GrandiIntPositivi.java:144: illegal start of expression
    boolean b=false;
    ^
    GrandiIntPositivi.java:144: ';' expected
    boolean b=false;
    ^
    14 errors


    Se ho fatto qualche errore grossolano perdonatemi,sono alle prime armi

  2. #2
    Ciao...

    Ho dato un'ochiata veloce... Sono appena tornato a casa e ora vado a letto... Cmq:

    GrandiIntPositivi.java:53: <identifier> expected
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){


    Nelle intestazioni dei For... Le istruzioni vanno staccate con il punto e virgola... Sicuramente uno o più problemi te li da questo. Prova a fare un check up.

    Poi cmq il compilatore ti segnala sempre nello stack degli errori la riga dove lui si blocca...


    Mirko

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    12
    in teoria il for dovrebbe essere fatto così for ( 1-istruzione ; 2-condizione ; 3-istruzione incrementale) 4- blocco

    e quindi nelle varie parti dovrebbe essere possibile mettere delle istruzioni separate da virgola ...oltretutto ho sempre fatto così,usando spessissimo il for,e ha sempre compilato...cmq riproverò per scrupolo grazie mille intanto!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    12
    Di fatti ho riprovato e gli errori sono aumentati...

  5. #5

    Re: Errori di compilazione

    Originariamente inviato da Kusan
    for (int i=s.length(),int j=i-1 ; i>=0 ; i--,j--){
    Il secondo int (cioè j) non necessita di specificare il tipo:
    codice:
          for (int i=s.length(), j=i-1 ; i>=0 ; i--,j--){
    for (i=0;i<MAX;i++){
    Manca la definizione del tipo di i (sia qui che in altri punti del codice)

    if (this.array[i]!=g.array[i])
    boolean b=false;
    Il tipo boolean non deve essere spcificato (ed è buona norma includere anche una sola riga tra parentesi graffe)

    codice:
    if (this.array[i]!=g.array[i]){
         b=false;
    }
    Al mio segnale... scatenate l'inferno!

  6. #6
    Si... scusa per la fesseria scritta ieri notte, ma vista l'ora non avevo guardato perfettamente il codice...

    Cmq... ti è stata già data qlk dritta... prova così e dicci come va...

    Mirko

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    12
    tutto a posto grazie,non mi ero accorto di quegli stupidi errori :rollo:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.