<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.dsy.it/index.php?action=history&amp;feed=atom&amp;title=Programmazione%2FProgetti%2FArchitettura3D%2FStesura_I</id>
	<title>Programmazione/Progetti/Architettura3D/Stesura I - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dsy.it/index.php?action=history&amp;feed=atom&amp;title=Programmazione%2FProgetti%2FArchitettura3D%2FStesura_I"/>
	<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione/Progetti/Architettura3D/Stesura_I&amp;action=history"/>
	<updated>2026-05-25T00:29:59Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.dsy.it/index.php?title=Programmazione/Progetti/Architettura3D/Stesura_I&amp;diff=11707&amp;oldid=prev</id>
		<title>Yoruno il 09:12, 3 feb 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.dsy.it/index.php?title=Programmazione/Progetti/Architettura3D/Stesura_I&amp;diff=11707&amp;oldid=prev"/>
		<updated>2006-02-03T09:12:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;   //Gioe&lt;br /&gt;
   import prog.utili.Sequenza;&lt;br /&gt;
   import java.lang.Math;&lt;br /&gt;
   &lt;br /&gt;
   class Sfera extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[1];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto Sfera di raggio pari a quello fornito come argomento.&amp;quot;&lt;br /&gt;
   		@param raggio il raggio della sfera.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore del raggio è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/ &amp;quot;&lt;br /&gt;
   	public Sfera(double raggio){&amp;quot;&lt;br /&gt;
   		parametri[0] = raggio;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Sfera: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono la sfera.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono la sfera.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Sfera: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce il volume della sfera.&lt;br /&gt;
     */&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return 4*Math.PI*Math.pow(parametri[0], 3)/3;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce la superficie della figura 3D.&lt;br /&gt;
     */&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return 4*Math.PI*Math.pow(parametri[0], 2);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è una sfera&amp;quot;&lt;br /&gt;
   	 ed ha raggio uguale alla sfera che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof Sfera){&amp;quot;&lt;br /&gt;
   			Sfera sf = (Sfera) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == sf.parametri[0];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è una sfera&amp;quot;&lt;br /&gt;
   	 ed ha raggio uguale alla sfera che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce una stringa che descrive la sfera.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Sfera: raggio = &amp;quot;&amp;quot; + parametri[0];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class Cilindro extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[2];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto cilindro con parametri pari a quelli forniti come argomento.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore di almeno uno dei parametri&amp;quot;&lt;br /&gt;
   		è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/ &amp;quot;&lt;br /&gt;
   	public Cilindro(double raggio, double altezza){&amp;quot;&lt;br /&gt;
   		parametri[0] = raggio;&amp;quot;&lt;br /&gt;
   		parametri[1] = altezza;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0 || parametri[1] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cilindro: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono il cilindro.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono il cilindro.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0 &amp;amp;&amp;amp; param[1] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cilindro: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/** Restituisce il volume del cilindro.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return Math.PI*Math.pow(parametri[0], 2)*parametri[1];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/** Restituisce la superficie del cilindro */&amp;quot;&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return 2*Math.PI*parametri[0]*parametri[1];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è un cilindro&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cilindro che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof Cilindro){&amp;quot;&lt;br /&gt;
   			Cilindro cil = (Cilindro) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == cil.parametri[0] &amp;amp;&amp;amp; this.parametri[1] == cil.parametri[1];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è un cilindro&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cilindro che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/** Restituisce una stringa che descrive il cilindro */&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Cilindro: raggio = &amp;quot;&amp;quot; + parametri[0] + &amp;quot;&amp;quot;, altezza = &amp;quot;&amp;quot; + parametri[1];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class Parallelepipedo extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[3];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto parallelepipedo con parametri pari a quelli forniti come argomento.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore di almeno uno dei parametri&amp;quot;&lt;br /&gt;
   		è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/&amp;quot;&lt;br /&gt;
   	public Parallelepipedo(double base, double spessore, double altezza){&amp;quot;&lt;br /&gt;
   		parametri[0] = base;&amp;quot;&lt;br /&gt;
   		parametri[1] = spessore;&amp;quot;&lt;br /&gt;
   		parametri[2] = altezza;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0 || parametri[1] &amp;lt;= 0.0 || parametri[2] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Parallelepipedo: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono il parallelepipedo.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono il parallelepipedo.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0 &amp;amp;&amp;amp; param[1] &amp;gt; 0.0 &amp;amp;&amp;amp; param[2] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Parallelepipedo: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce il volume del parallelepipedo.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return parametri[0]*parametri[1]*parametri[2];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la superficie del parallelepipedo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return 2*(parametri[2]*(parametri[0]+parametri[1])+parametri[0]*parametri[1]);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è un parallelepipedo&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al parallelepipedo che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof Parallelepipedo){&amp;quot;&lt;br /&gt;
   			Parallelepipedo par = (Parallelepipedo) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == par.parametri[0] &amp;amp;&amp;amp; this.parametri[1] == par.parametri[1] &amp;amp;&amp;amp; this.parametri[2] == par.parametri[2];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è un parallelepipedo&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al parallelepipedo che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restistuisce una stringa che descrive il parallelepipedo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Parallelepipedo: latoA = &amp;quot;&amp;quot; + parametri[0] + &amp;quot;&amp;quot;, latoB= &amp;quot;&amp;quot; + parametri[1] + &amp;quot;&amp;quot;, altezza= &amp;quot;&amp;quot; + parametri[2];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class Cubo extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[1];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto cubo con parametri pari a quelli forniti come argomento.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore di almeno uno dei parametri&amp;quot;&lt;br /&gt;
   		è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/&amp;quot;&lt;br /&gt;
   	public Cubo(double lato){&amp;quot;&lt;br /&gt;
   		parametri[0] = lato;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cubo: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono il cubo.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono il cubo.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cubo: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce il volume del cubo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return Math.pow(parametri[0], 3);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la superficie del cubo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return 6*Math.pow(parametri[0], 2);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è un cubo&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cubo che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof Cubo){&amp;quot;&lt;br /&gt;
   			Cubo cub = (Cubo) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == cub.parametri[0];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è un cubo&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cubo che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce una stringa che descrive il cubo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Cubo: lato = &amp;quot;&amp;quot; + parametri[0];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class Cono extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[2];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto cono con parametri pari a quelli forniti come argomento.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore di almeno uno dei parametri&amp;quot;&lt;br /&gt;
   		è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/&amp;quot;&lt;br /&gt;
   	public Cono(double raggio, double altezza){&amp;quot;&lt;br /&gt;
   		parametri[0] = raggio;&amp;quot;&lt;br /&gt;
   		parametri[1] = altezza;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0 || parametri[1] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cono: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono il cono.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono il cono.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0 &amp;amp;&amp;amp; parametri[1] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Cono: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce il volume del cubo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return Math.PI*Math.pow(parametri[0], 2)*parametri[1]/3;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la superficie del cubo.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return Math.PI*parametri[0]*Math.sqrt(Math.pow(parametri[0], 2)+Math.pow(parametri[1], 2));&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è un cono&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cono che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof Cono){&amp;quot;&lt;br /&gt;
   			Cono con = (Cono) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == con.parametri[0] &amp;amp;&amp;amp; this.parametri[1] == con.parametri[1];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è un cono&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al cono che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce una stringa che descrive il cono.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Cono: raggio = &amp;quot;&amp;quot; + parametri[0] + &amp;quot;&amp;quot;, altezza= &amp;quot;&amp;quot; + parametri[1];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class TroncoDiCono extends Figura3D{&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private double[] parametri = new double[3];&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   		Costruisce un oggetto tronco di cono con parametri pari a quelli forniti come argomento.&amp;quot;&lt;br /&gt;
   		@throws Figura3DException quando il valore di almeno uno dei parametri&amp;quot;&lt;br /&gt;
   		è negativo o zero.&amp;quot;&lt;br /&gt;
   		*/&amp;quot;&lt;br /&gt;
   	public TroncoDiCono(double grande, double piccolo, double altezza){&amp;quot;&lt;br /&gt;
   		parametri[0] = grande;&amp;quot;&lt;br /&gt;
   		parametri[1] = piccolo;&amp;quot;&lt;br /&gt;
   		parametri[2] = altezza;&amp;quot;&lt;br /&gt;
   		if(parametri[0] &amp;lt;= 0.0 || parametri[1] &amp;lt;= 0.0 || parametri[2] &amp;lt;= 0.0)&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Tronco di cono: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Restituisce i parametri dimensionali che definicono il tronco di cono.&lt;br /&gt;
        &lt;br /&gt;
        @return un array contenente il valore dei parametri&lt;br /&gt;
        dimensionali.&lt;br /&gt;
     */&lt;br /&gt;
   	public double[] getParametri(){&amp;quot;&lt;br /&gt;
   		return parametri;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
        Modifica i parametri dimensionali che definicono il tronco di cono.&lt;br /&gt;
        &lt;br /&gt;
        @param param un array contenente i valori dei nuovi parametri.&lt;br /&gt;
        @throws Figura3DException quando il valore di almeno uno dei&lt;br /&gt;
        parmetri è negativo o zero.&lt;br /&gt;
     */&lt;br /&gt;
   	public void setParametri(double[] param){&amp;quot;&lt;br /&gt;
   		if(param[0] &amp;gt; 0.0 &amp;amp;&amp;amp; param[1] &amp;gt; 0.0 &amp;amp;&amp;amp; param[2] &amp;gt; 0.0)&amp;quot;&lt;br /&gt;
   			parametri = param;&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			throw new Figura3DException(&amp;quot;&amp;quot;Tronco di cono: parametro errato!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce il volume del tronco di cono.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getVolume(){&amp;quot;&lt;br /&gt;
   		return Math.PI/3*(parametri[0]*parametri[1]+Math.pow(parametri[0], 2)+Math.pow(parametri[1], 2))*parametri[2];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la superficie del tronco di cono.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getSuperficie(){&amp;quot;&lt;br /&gt;
   		return Math.PI*(parametri[0]+parametri[1])*Math.sqrt(Math.pow(parametri[0]-parametri[1], 2)+Math.pow(parametri[2], 2));&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se la figura 3D fornita come argomento è un tronco di cono&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al tronco di cono che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Figura3D altra){&amp;quot;&lt;br /&gt;
   		if(altra instanceof TroncoDiCono){&amp;quot;&lt;br /&gt;
   			TroncoDiCono tdc = (TroncoDiCono) altra;&amp;quot;&lt;br /&gt;
   			return this.parametri[0] == tdc.parametri[0] &amp;amp;&amp;amp; this.parametri[1] == tdc.parametri[1] &amp;amp;&amp;amp; this.parametri[2] == tdc.parametri[2];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce true se l'oggetto fornito come argomento è un tronco di cono&amp;quot;&lt;br /&gt;
   	 ed ha i parametri uguali al tronco di cono che esegue il metodo, false altrimenti&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public boolean equals(Object o){&amp;quot;&lt;br /&gt;
   		if(o instanceof Figura3D)&amp;quot;&lt;br /&gt;
   			return this.equals((Figura3D) o);&amp;quot;&lt;br /&gt;
   		else&amp;quot;&lt;br /&gt;
   			return false;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce una stringa che descrive il tronco di cono.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public String toString(){&amp;quot;&lt;br /&gt;
   		return &amp;quot;&amp;quot;Tronco di cono: raggio grande= &amp;quot;&amp;quot; + parametri[0] + &amp;quot;&amp;quot;, raggio piccolo= &amp;quot;&amp;quot; + parametri[1] + &amp;quot;&amp;quot;, altezza= &amp;quot;&amp;quot; + parametri[2];&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   /**&lt;br /&gt;
    Segnala una figura 3d contenenteparametri minori o uguali a zero.&lt;br /&gt;
    */&lt;br /&gt;
   class Figura3DException extends RuntimeException{&lt;br /&gt;
   	public Figura3DException(){&amp;quot;&lt;br /&gt;
   		super();&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	public Figura3DException(String messaggio){&amp;quot;&lt;br /&gt;
   		super(messaggio);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   class Architettura3D{&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//CAMPI&amp;quot;&lt;br /&gt;
   	private Sequenza seq;&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//COSTRUTTORI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Costruisce un'Architettura 3d vuota.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public Architettura3D(){&amp;quot;&lt;br /&gt;
   		seq = new Sequenza();&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	//METODI&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Aggiunge la figura 3D fornita come argomento in un insieme.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public void addFigura3D(Figura3D figura){&amp;quot;&lt;br /&gt;
   		seq.add(figura);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce un array contenente le figure 3D inserite dal metodo&amp;quot;&lt;br /&gt;
   	 &amp;lt;code&amp;gt; addFigura3D(Figura3D figura) &amp;lt;/code&amp;gt;.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public Figura3D[] getFigure3D(){&amp;quot;&lt;br /&gt;
   		Object[] array = seq.toArray();&amp;quot;&lt;br /&gt;
   		Figura3D[] fig = new Figura3D[array.length];&amp;quot;&lt;br /&gt;
   		for(int i = 0; i &amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   			fig[i] = (Figura3D) array[i];&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		return fig;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la somma dei volumi di tutte le figure 3D del tipo specificato come argomento:&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;SC&amp;quot;&amp;quot; per Sfere e cilindri.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;PC&amp;quot;&amp;quot; per Parallelepipedi e cubi.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;TC&amp;quot;&amp;quot; per Coni e Tronchi di cono.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot; per tutti i tipi di figure 3D.&amp;quot;&lt;br /&gt;
   	 @throws TipoNonPrevistoException quando l'argomento è diverso dalle stringhe sopracitate.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public double getVolume(String tipoFigura) throws TipoNonPrevistoException{&amp;quot;&lt;br /&gt;
   		double volumi = 0.0;&amp;quot;&lt;br /&gt;
   		if(tipoFigura.equals(&amp;quot;&amp;quot;SC&amp;quot;&amp;quot;)){ //Sfere e Cilindri&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof Sfera){&amp;quot;&lt;br /&gt;
   					Sfera sfera = (Sfera) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + sfera.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cilindro){&amp;quot;&lt;br /&gt;
   					Cilindro cilindro = (Cilindro) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + cilindro.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;PC&amp;quot;&amp;quot;)){ //Parallelepipedi e Cubi&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof Parallelepipedo){&amp;quot;&lt;br /&gt;
   					Parallelepipedo para = (Parallelepipedo) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + para.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cubo){&amp;quot;&lt;br /&gt;
   					Cubo cubo = (Cubo) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + cubo.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;TC&amp;quot;&amp;quot;)){ //Coni e tronchi di cono&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof TroncoDiCono){&amp;quot;&lt;br /&gt;
   					TroncoDiCono tronco = (TroncoDiCono) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + tronco.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cono){&amp;quot;&lt;br /&gt;
   					Cono cono = (Cono) array[i];&amp;quot;&lt;br /&gt;
   					volumi = volumi + cono.getVolume();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot;)){ //Tutte le figure (riscorsivo)&amp;quot;&lt;br /&gt;
   			volumi = this.getVolume(&amp;quot;&amp;quot;SC&amp;quot;&amp;quot;)+this.getVolume(&amp;quot;&amp;quot;PC&amp;quot;&amp;quot;)+this.getVolume(&amp;quot;&amp;quot;TC&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   			else{&amp;quot;&lt;br /&gt;
   				throw new TipoNonPrevistoException(&amp;quot;&amp;quot;Il tipo &amp;quot;&amp;quot; + tipoFigura + &amp;quot;&amp;quot; non e' previsto!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		return volumi;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la somma delle superficie di tutte le figure 3D del tipo specificato come argomento:&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;SC&amp;quot;&amp;quot; per Sfere e cilindri.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;PC&amp;quot;&amp;quot; per Parallelepipedi e cubi.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;TC&amp;quot;&amp;quot; per Coni e Tronchi di cono.&amp;quot;&lt;br /&gt;
   	  - &amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot; per tutti i tipi di figure 3D.&amp;quot;&lt;br /&gt;
   	 @throws TipoNonPrevistoException quando l'argomento è diverso dalle stringhe sopracitate.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public double getSuperficie(String tipoFigura) throws TipoNonPrevistoException{&amp;quot;&lt;br /&gt;
   		double superficie = 0.0;&amp;quot;&lt;br /&gt;
   		if(tipoFigura.equals(&amp;quot;&amp;quot;SC&amp;quot;&amp;quot;)){ //Sfere e Cilindri&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof Sfera){&amp;quot;&lt;br /&gt;
   					Sfera sfera = (Sfera) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + sfera.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cilindro){&amp;quot;&lt;br /&gt;
   					Cilindro cilindro = (Cilindro) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + cilindro.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;PC&amp;quot;&amp;quot;)){ //Parallelepipedi e Cubi&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof Parallelepipedo){&amp;quot;&lt;br /&gt;
   					Parallelepipedo para = (Parallelepipedo) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + para.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cubo){&amp;quot;&lt;br /&gt;
   					Cubo cubo = (Cubo) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + cubo.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;TC&amp;quot;&amp;quot;)){ //Coni e Trinchi di cono.&amp;quot;&lt;br /&gt;
   			Figura3D[] array = this. getFigure3D();&amp;quot;&lt;br /&gt;
   			for(int i = 0; i&amp;lt; array.length; i++){&amp;quot;&lt;br /&gt;
   				if(array[i] instanceof TroncoDiCono){&amp;quot;&lt;br /&gt;
   					TroncoDiCono tronco = (TroncoDiCono) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + tronco.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   				else if(array[i] instanceof Cono){&amp;quot;&lt;br /&gt;
   					Cono cono = (Cono) array[i];&amp;quot;&lt;br /&gt;
   					superficie = superficie + cono.getSuperficie();&amp;quot;&lt;br /&gt;
   				}&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(tipoFigura.equals(&amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot;)){ //Tutte le figure3d (ricorsivo)&amp;quot;&lt;br /&gt;
   			superficie = this.getSuperficie(&amp;quot;&amp;quot;SC&amp;quot;&amp;quot;)+this.getSuperficie(&amp;quot;&amp;quot;PC&amp;quot;&amp;quot;)+this.getSuperficie(&amp;quot;&amp;quot;TC&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   			else{&amp;quot;&lt;br /&gt;
   				throw new TipoNonPrevistoException(&amp;quot;&amp;quot;Il tipo &amp;quot;&amp;quot; + tipoFigura + &amp;quot;&amp;quot; non e' previsto!&amp;quot;&amp;quot;);&amp;quot;&lt;br /&gt;
   			}&amp;quot;&lt;br /&gt;
   		return superficie;&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce il volume medio di tutte le figure 3D.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public double getVolumeMedio() throws TipoNonPrevistoException{&amp;quot;&lt;br /&gt;
   		return this.getVolume(&amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot;)/seq.size();&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la superficie media di tutte le figure 3D.&amp;quot;&lt;br /&gt;
   	 */&amp;quot;&lt;br /&gt;
   	public double getSuperficieMedia() throws TipoNonPrevistoException{&amp;quot;&lt;br /&gt;
   		return this.getSuperficie(&amp;quot;&amp;quot;TUTTE&amp;quot;&amp;quot;)/seq.size();&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	/**&amp;quot;&lt;br /&gt;
   	 Restituisce la Figura3D fornita come argomento se è presente nell'insieme, null altrimenti.&amp;quot;&lt;br /&gt;
   	*/&amp;quot;&lt;br /&gt;
   	public Figura3D trova(Figura3D fig){&amp;quot;&lt;br /&gt;
   		Figura3D ritorno = null;&amp;quot;&lt;br /&gt;
   		if(fig instanceof Sfera){ //se è una sfera&amp;quot;&lt;br /&gt;
   			ritorno = (Sfera) seq.find((Sfera) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(fig instanceof Cilindro){ //se è un cilindro&amp;quot;&lt;br /&gt;
   			ritorno = (Cilindro) seq.find((Cilindro) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(fig instanceof Parallelepipedo){ //se è un parallelepipedo&amp;quot;&lt;br /&gt;
   			ritorno = (Parallelepipedo) seq.find((Parallelepipedo) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(fig instanceof Cubo){ //se è un cubo&amp;quot;&lt;br /&gt;
   			ritorno = (Cubo) seq.find((Cubo) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(fig instanceof Cono){ //se è un cono&amp;quot;&lt;br /&gt;
   			ritorno = (Cono) seq.find((Cono) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		else if(fig instanceof TroncoDiCono){ //se è un tronco di cono&amp;quot;&lt;br /&gt;
   			ritorno = (TroncoDiCono) seq.find((TroncoDiCono) fig);&amp;quot;&lt;br /&gt;
   		}&amp;quot;&lt;br /&gt;
   		return ritorno; &amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   /**&lt;br /&gt;
    Segnala un tipo di Figura3D non previsto.&lt;br /&gt;
    */&lt;br /&gt;
   class TipoNonPrevistoException extends Exception{&lt;br /&gt;
   	public TipoNonPrevistoException(){&amp;quot;&lt;br /&gt;
   		super();&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   	&amp;quot;&lt;br /&gt;
   	public TipoNonPrevistoException(String messaggio){&amp;quot;&lt;br /&gt;
   		super(messaggio);&amp;quot;&lt;br /&gt;
   	}&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Progetti]]&lt;/div&gt;</summary>
		<author><name>Yoruno</name></author>
		
	</entry>
</feed>