Table des matières

Après QuadAleas vient

QuadDble

… une classe avec quatre fils de type Object, … une méthode setValue (ou metsValeur pour faire plus français) qui modifie la valeur d'un fils pour voir si c'est possible ou s'il faut remplacer l'objet fils.

En fait, je ne vois pas comment faire cette méthode metsValeur pour la rendre generique, applicable à chacun des quartiers. Peut être faut-il dériver une classe Feuille ou MatElem de la classe Double et doter cette nouvelle classe d'une méthode metsValeur? A essayer...

J'ai donc fait une méthode par quartier : lourd, pas élégant, mais ça marche :

Class

import java.math.*;
import java.io.*;

public class QuadDble {
  
		Object NW, NE, SE,SW;
		int niveau=1;
		double x;
		
public void NWmetsValeur(double x)
{
  	System.out.println("valeur "+x+"recue");
  	this.NW = new Double(x);
}
public void NEmetsValeur(double x)
{
	System.out.println("valeur "+x+"recue");
	this.NE = new Double(x);
}
public void SWmetsValeur(double x)
{
	System.out.println("valeur "+x+"recue");
	this.SW = new Double(x);
}
public void SEmetsValeur(double x)
{
	System.out.println("valeur "+x+"recue");
	this.SE = new Double(x);
}
}

Testeur

Programme testeur (avec possibilité d'abandonner à deux ou trois endroits):

import java.math.*;
import java.io.*;

public class TestQuadDble {
public static void main(String args[])
{
String lect=null;
int n;
double x,dv;
QuadDble q;
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
System.out.print("continuer? 0=non, 1=oui");
try{lect=console.readLine();}
catch (IOException e){}
n = Integer.valueOf(lect).intValue();
if (n==1){
	q = new QuadDble();
	System.out.println("Debut injection des valeurs");
	x=Math.random();
	System.out.println("NW="+x);
	q.NWmetsValeur(x);
	x=Math.random();
	System.out.println("NE="+x);
	q.NEmetsValeur(x);
	x=Math.random();
	System.out.println("SE="+x);
	q.SEmetsValeur(x);
	x=Math.random();
	System.out.println("SW="+x);
	q.SWmetsValeur(x);
System.out.print("continuer? 0=non, 1=oui");
try{lect=console.readLine();}
catch (IOException e){}
n = Integer.valueOf(lect).intValue();
if (n==1){
	System.out.print("que vaut q.NE?  ");
	System.out.println(((Double) q.NE).doubleValue());
	System.out.print("que vaut q.NW?  ");
	dv=((Double) q.NW).doubleValue();
	System.out.println(dv);
	System.out.print("que vaut q.SW?  ");
	System.out.println(((Double) q.SW).doubleValue());
	System.out.print("que vaut q.SE?  ");
	System.out.println(((Double) q.SE).doubleValue());
}
System.out.print("essayer de modifier une valeur? 0=non, 1=oui");
try{lect=console.readLine();}
catch (IOException e){}
n = Integer.valueOf(lect).intValue();
if (n==1){
	x=Math.random();
	System.out.println("SW="+x);
	q.SWmetsValeur(x);
	System.out.print("que vaut q.SW?  ");
	System.out.println(((Double) q.SW).doubleValue());
}
}
}
}

Résultat Console

continuer? 0=non, 1=oui1
Debut injection des valeurs
NW=0.47048642429862775
valeur 0.47048642429862775recue
NE=0.1843730858126701
valeur 0.1843730858126701recue
SE=0.3580267550720042
valeur 0.3580267550720042recue
SW=0.946249162804506
valeur 0.946249162804506recue
continuer? 0=non, 1=oui1
que vaut q.NE?  0.1843730858126701
que vaut q.NW?  0.47048642429862775
que vaut q.SW?  0.946249162804506
que vaut q.SE?  0.3580267550720042
essayer de modifier une valeur? 0=non, 1=oui1
SW=0.8723256037955097
valeur 0.8723256037955097recue
que vaut q.SW?  0.8723256037955097
 
java/quad_dble.txt · Dernière modification: 2009/08/06 20:45 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki