Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: classe piramide

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43

    classe piramide

    qualcuno saprebbe dirmi perchè non funziona questa classe?
    codice:
    import java.Math.pow;
    public class piramide{
    	private double lato;
    	private double altezza;
    	private double numerofisso;
    	
    		
    	public piramide(double _lato,double _altezza,double _numerofisso)
    	{
    		lato=_lato;
    		altezza=_altezza;
    		numerofisso=_numerofisso;
    	}
    	
    	public double getAreaBase()
    	{       if (numerofisso==0.688)
    			{		
    				double area=Math.pow(lato,2)*0.688*5/2;
    			}else if (numerofisso==0.866)
    			{
    				double area=Math.pow(lato,2)*0,866*6/2;
    			}else if (numerofisso==0.289)
    			{
    				double area=Math.pow(lato,2)*0,289*3/2;
    			}else if (numerofisso==0.5)
    			{
    				double area=Math.pow(lato,2);
    			}
    				return area;
    	}
    }
    il compilatore mi da questi errori:
    codice:
    piramide.java:21: <identifier> expected
    				double area=Math.pow(lato,2)*0,866*6/2;
    				                               ^
    piramide.java:21: illegal start of expression
    				double area=Math.pow(lato,2)*0,866*6/2;
    				                                  ^
    piramide.java:21: ';' expected
    				double area=Math.pow(lato,2)*0,866*6/2;
    				                                   ^
    piramide.java:21: illegal start of expression
    				double area=Math.pow(lato,2)*0,866*6/2;
    				                                    ^
    piramide.java:21: ';' expected
    				double area=Math.pow(lato,2)*0,866*6/2;
    				                                     ^
    piramide.java:24: <identifier> expected
    				double area=Math.pow(lato,2)*0,289*3/2;
    				                               ^
    piramide.java:24: illegal start of expression
    				double area=Math.pow(lato,2)*0,289*3/2;
    				                                  ^
    piramide.java:24: ';' expected
    				double area=Math.pow(lato,2)*0,289*3/2;
    				                                   ^
    piramide.java:24: illegal start of expression
    				double area=Math.pow(lato,2)*0,289*3/2;
    				                                    ^
    piramide.java:24: ';' expected
    				double area=Math.pow(lato,2)*0,289*3/2;
    				                                     ^
    10 errors
    cosa devo fare per risolvere il problema?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Puoi cominciare a scrivere i numeri utilizzando il punto al posto della virgola... in informatica il separatore decimale è il punto, nelle costanti (come hai correttamente fatto nella prima istruzione).
    codice:
    double area=Math.pow(lato,2)*0,688*5/2;  <-- 0.688
    E poi, dovresti cominciare ad utilizzare i tag CODE per postare il codice... risulta particolarmente fastidioso dover leggere del codice non indentato e formattato... (ho corretto io)

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Mi permetto un suggerimento:


    codice:
    public piramide(double _lato,double _altezza,double _numerofisso)
    {
    	lato=_lato;
    	altezza=_altezza;
    	numerofisso=_numerofisso;
    }
    è più bellino così:

    codice:
    public piramide(double lato, double altezza, double numeroFisso)
    {
    	this.lato = lato;
    	this.altezza = altezza;
    	this.numeroFisso = numeroFisso;
    }
    Nota: La parola chiave this consente di distinguere il campo della classe dall'omonimo parametro del metodo (costruttore). Questo, come il dare nomi cammellati a metodi e a campi è uno standard in java. E anche questo rende più facile leggere il codice.

    Ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    non so come si fa a utilizzare i tag code!
    cmq anche facendo come dici tu mi da' questo errore:
    piramide.java:29: cannot find symbol
    symbol : variable area
    location: class piramide
    return area;
    ^
    leggendo il codice sembra tutto giusto allora perchè non mi fa la return di area?

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    perchè:

    codice:
    classe
    {
      metodo 
      {
        if
        {
          double area; 
        } 
      
        return area;
      }
    }
    la variabile area è visibile solo all'interno del blocco in cui viene dichiarata, cioè tra le parentesi rosse. Perché sia visibile quando fai return deve essere dichiarata nello stesso blocco, ecco perchè l'indentazione è importante:

    codice:
    classe
    {
      metodo 
      {
        doble area = -1;
        if
        {
          area = ; 
        } 
      
        return area;
      }
    }
    Riguardo al tag code, o php scrivi:

    [ c o d e ]
    il tuo codice
    [/ c o d e ]

    senza gli spazi nel tag

    oppure
    [ p h p ]
    il tuo codice
    [/ p h p ]

    che è più colorato.

    Ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    ok grazie era funziona !

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    codice:
    //si vuole trovare la posizione che occupa la z nell'array
    public class trovaz{
    	public static void main (String args[]){
    		 
    		char []a=new char [10];
    		
    		
    		
    		
    		
    		int i;
    		
    		for( i=0;i<a.length ;i++)
    		{
    			
    				a[i]=(char )(26*Math.random()+97);
    			System.out.println(a[i]);
    			
    		}
    		
    	         for ( i=0;i<a.length;i++)
    		{             if (a[i]==z)
    			{
    			System.out.println(i);
    		}
    			
    		}
    		
    	}
    }
    perchè non funziona?
    in output mi escono solo i valori dell'array!

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    1. Sei sicuro di aver copiato il codice correttamente? A me

    Codice PHP:
    if (a[i]==z)
    {
          
    System.out.println(i);

    non compila. A logica, dovrebbe essere:

    Codice PHP:
    if (a[i]=='z')
    {
          
    System.out.println(i);

    2. Forse era meglio creare un altro thread?

    Ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  9. #9
    decisamente non può compilare, non troverebbe z nella tabella dei nomi e il compilatore comincerebbe sicuramente a bestemmiare

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    ok ho capito l'errore grazie per la correzione.alla fine faccio sempre errori di distrazione.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.