Problème de non-compilation

Problème de non-compilation - Java - Programmation

Marsh Posté le 20-04-2015 à 09:29:23    

Bonjour,
 
Dans le cadre d'un projet scolaire nous devons réaliser l'étude de l'impact du déplacement d'une source chauffante sur un corps. Nous avons écrit le programme, et nous voulons sortir comme résultat un tableau. Cependant, la compilation est défaillante (pas de bug detecté mais aucun résultat ne s'affiche) et nous ne comprenons pas pourquoi.
 
Voici le code :
 

Code :
  1. package calcnum;
  2. /**
  3. *
  4. * @author ELEVE
  5. */
  6. public class CalcNum {
  7.     public static float[][] calculTemperature(float distance,float epaisseur, float rau, float lambda, float capaciteCalo, float hConduction, float tempAmbiant, float fluxChaleur)
  8. {
  9. float deltaT=0.2f; float deltaX=1/5000f; float deltaY=1/1000f; float vitesse=0.005f;
  10. float rX=lambda*deltaT/(rau*capaciteCalo*deltaX*deltaX);  float rY=lambda*deltaT/(rau*capaciteCalo*deltaY*deltaY);
  11. int ligneT = (int)(distance/deltaX);
  12. int colonneT = (int)(epaisseur/deltaY);
  13. float[][] T=new float[ligneT][colonneT];
  14. float[][] Tn=new float[ligneT][colonneT];
  15. float temps=0;
  16. for(int i=0; i<ligneT;i++){
  17.    
  18.     for(int j=0;j<colonneT;j++){
  19.         T[i][j]=tempAmbiant;
  20.         Tn[i][j]=tempAmbiant;
  21.     }
  22. }
  23. while(temps<=140){
  24.    
  25.     Tn[0][0]=T[0][0]+rX*(2*T[1][0]-2*T[0][0]-hConduction*2*deltaX*(T[0][0]-tempAmbiant)/lambda)+rY*(2*T[0][1]-2*T[0][0]-hConduction*2*deltaY*(T[0][0]-tempAmbiant)/lambda);
  26.     Tn[ligneT-1][0]=T[ligneT-1][0]+rX*(2*T[ligneT-2][0]-2*T[ligneT-1][0]-hConduction*2*deltaX*(T[ligneT-1][0]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][1]-2*T[ligneT-1][0]-hConduction*2*deltaY*(T[ligneT-1][0]-tempAmbiant)/lambda);
  27.     if(temps>20){      //zone 8 sans chauffage
  28.                 Tn[0][colonneT-1]=T[0][colonneT-1]+rX*(2*T[1][colonneT-1]-2*T[0][colonneT-1]-hConduction*2*deltaX*(T[0][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[0][colonneT-2]-2*T[0][colonneT-1]-hConduction*2*deltaY*(T[0][colonneT-1]-tempAmbiant)/lambda);
  29.             }
  30.     else if (temps<=20){        //zone 8 avec chauffage
  31.                 Tn[0][colonneT-1]=T[0][colonneT-1]+rX*(2*T[1][colonneT-1]-2*T[0][colonneT-1]-hConduction*2*deltaX*(T[0][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[0][colonneT-2]-2*T[0][colonneT-1]+2*deltaY*fluxChaleur/lambda);
  32.             }
  33.    
  34.     if ( temps<120){      //zone 9 sans chauffage
  35.                 Tn[ligneT-1][colonneT-1]=T[ligneT-1][colonneT-1]+rX*(2*T[ligneT-2][colonneT-1]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaX*(T[ligneT-1][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][colonneT-2]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaY*(T[ligneT-1][colonneT-1])/lambda);             
  36.             }
  37.    
  38.      else if (temps>=120){         //zone 9 avec chauffage
  39.                 Tn[ligneT-1][colonneT-1]=T[ligneT-1][colonneT-1]+rX*(2*T[ligneT-2][colonneT-1]-2*T[ligneT-1][colonneT-1]-hConduction*2*deltaX*(T[ligneT-1][colonneT-1]-tempAmbiant)/lambda)+rY*(2*T[ligneT-1][colonneT-2]-2*T[ligneT-1][colonneT-1]+2*deltaY*fluxChaleur/lambda);
  40.             }
  41.    
  42.     for(int i=0; i<ligneT;i++){
  43.         if(i<ligneT-1 && i>=1){     //zone3
  44.                
  45.                 Tn[i][0]=T[i][0]+rX*(T[i-1][0]+T[i+1][0]-2*T[i][0])+rY*(2*T[i][1]-2*T[i][0]-(hConduction*2*deltaY*(T[i][0]-tempAmbiant))/lambda);
  46.             }
  47.     else if( i>=(vitesse*temps+epaisseur)/deltaX && i<=(vitesse*temps+2*epaisseur)/deltaX){      // zone 7 avec chauffage
  48.                 Tn[i][colonneT-1]=T[i][colonneT-1]+rX*(T[i-1][colonneT-1]+T[i+1][colonneT-1]-2*T[i][colonneT-1])+rY*(2*T[i][colonneT-2]-2*T[i][colonneT-1]+2*deltaY*fluxChaleur/lambda);
  49.             }
  50.     else if(i<(vitesse*temps+epaisseur)/deltaX && i>(vitesse*temps+2*epaisseur)/deltaX){       //zone 7 sans chauffage
  51.                 Tn[i][colonneT-1]=T[i][colonneT-1]+rX*(T[i-1][colonneT-1]+T[i+1][colonneT-1]-2*T[i][colonneT-1])+rY*(2*T[i][colonneT-2]-2*T[i][colonneT-1]-hConduction*2*deltaY*(T[i][colonneT-1]-tempAmbiant)/lambda);
  52.             }
  53.     for(int j=0;j<colonneT;j++){
  54.            
  55.              if( j<colonneT-1 && j>=1){     //zone2
  56.                 Tn[0][j]=T[0][j]+rX*(2*T[1][j]-2*T[0][j]-hConduction*2*deltaX*(T[0][j]-tempAmbiant)/lambda)+rY*(T[0][j-1]+T[0][j+1]-2*T[0][j]);
  57.             }
  58.             else if(j<colonneT-1 && j>=1){    //zone 4
  59.                 Tn[ligneT-1][j]=T[ligneT-1][j]+rX*(2*T[ligneT-2][j]-2*T[ligneT-1][j]-hConduction*2*deltaX*(T[ligneT-1][j]-tempAmbiant)/lambda)+rY*(T[ligneT-1][j+1]+T[ligneT-1][j-1]-2*T[ligneT-1][j]);
  60.             }
  61.          
  62.             else if(i>=1 && i<= ligneT-2 && j>=1 && j<=colonneT-2){      //zone 1
  63.                 Tn[i][j]=T[i][j]+rX*(T[i-1][j]+T[i+1][j]-2*T[i][j])+rY*(T[i][j-1]+T[i][j+1]-2*T[i][j]);
  64.             }
  65.          
  66.            
  67.          
  68.            
  69.            
  70.            
  71.     }
  72.  
  73. }
  74. temps= temps+deltaT;
  75. for(int i=0; i<ligneT;i++){
  76.    
  77.     for(int j=0;j<colonneT;j++){
  78.         T[i][j]=Tn[i][j];
  79.        
  80.     }
  81. }
  82. }
  83. return T;
  84. }
  85.     /**
  86.      * @param args the command line arguments
  87.      */
  88.     public static void main(String[] args) {
  89.         for(int i=0;i<calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000).length;i++){
  90.             for(int j=0;j<calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000)[i].length; j++){
  91.              System.out.print(" "+calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000)[i][j]); 
  92.         }
  93.             System.out.print("\n" );
  94.         }
  95.      
  96.                
  97.                 // TODO code application logic here
  98.     }
  99. }


 
 
Merci d'avance pour votre aide,

Reply

Marsh Posté le 20-04-2015 à 09:29:23   

Reply

Marsh Posté le 20-04-2015 à 12:58:23    

Tu ne sais pas executer une seul fois ton calcul : calculTemperature(0.7f,0.1f,1000,10,5000,5,20,1000)
 
Stocker son résultat et ensuite afficher ce que tu as stocké?
 
Pcq de ma compréhension, pour afficher la première valeur, il faut déjà que le calcul soit fait 3 fois :/
 
Edit : Après pour rentrer dans vos éléments, sans voir le problème et les équations écrites, c'est un peu compliqué. :/


Message édité par Arl Guhr le 20-04-2015 à 13:02:31

---------------
il s'appel le ronge me doute
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed