Erreur en Java ;(
Résolu
Kvirus
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
Kvirus Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Kvirus Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je viens de terminer une traduction d'un algorithme en Java: le problème constitue de faire une simulation d'un traitement de processus dans FIFO.
Lors de l'exécution je reçois un message que j'ai pas pu résoudre(pas faute d'avoir essayer :( ).
Je vous expose mes class et ma class test:
/////////////////////////////////////////////////// Class processus ///////////////////////////////////////////////////
public class Proc
{ public String nom;
public int Tarr,Texe;
Proc(String nom,int Tarr,int Texe)
{this.nom=nom;
nom="";
this.Tarr=Tarr;
Tarr=0;
this.Texe=Texe;
Texe=0;}
void set_nom()
{System.out.print("donnez SVP le nom de processus");
String P=Clavier.lireString();
nom=P;
}
void set_Tarr()
{System.out.print("donnez SVP le temps d'arrivé de processus");
int P=Clavier.lireInt();
Tarr=P;
}
void set_Texe()
{System.out.print("donnez SVP la durée de processus");
int P=Clavier.lireInt();
Texe=P;
}
void Affiche_nom()
{System.out.print("Le nom est:"+nom);}
void Affiche_Tarr()
{System.out.print("Le temps d'arrivé est:"+Tarr);}
void Affiche_Texe()
{System.out.print("La durée est:"+Texe);}
}
///////////////////////////////////////// class de tableau de processus ////////////////////////////////////////////
public class Tab_Proc extends Proc
{Proc T[];
public int nbr_proc=0,i;
Tab_Proc(String nom,int Tarr,int Texe)
{super(nom,Tarr,Texe);
}
public void Remplissage()
{
int x;
System.out.print("donner SVP le nembre des processus");
x=Clavier.lireInt();
for(i=0;i<x;i++)
{
Proc P= new Proc (null,0,0);
P.set_nom();
P.set_Tarr();
P.set_Texe();
T[i]=P;
nbr_proc++;
}
}
public void Trie()
{for(int x=0;x<nbr_proc-1;x++)
{Proc m =T[x];
for (int y=x+1;y<nbr_proc;y++)
{if(T[y].Tarr<m.Tarr)
{m=T[y];
T[y]=T[x];
T[x]=m;
}
}
}
}
public void Affiche_Tab_Tri()
{for(i=0;i<nbr_proc;i++)
{T[i].Affiche_nom();
T[i].Affiche_Tarr();
T[i].Affiche_Texe();
System.out.print("Le nom est:"+nom);
System.out.print("Le temps d'arrivé est:"+Tarr);
System.out.print("La durée est:"+Texe);
System.out.print("========================");
}
}
public void calculer_FIFO()
{ int Ta,Tatt,Te,Tex,Ts,Tsej,cdebut,cfin;
cdebut=T[0].Tarr;
Ta=0;
Te=0;
Ts=0;
for(i=0;i<nbr_proc;i++)
{Tatt=0; Tex=0; Tsej=0;
cfin=cdebut+T[i].Tarr;
System.out.print(T[i].nom+"est en cours");
System.out.print("De"+cdebut+"jusqu'à"+cfin);
Tatt=cdebut-T[i].Tarr;
Tsej=cfin-T[i].Tarr;
Tex=Tsej-Tatt;
System.out.print("Son temps d'attente actuel est:"+Tatt);
System.out.print("Son temps d'execution actuel est:"+Tex);
System.out.print("Son temps de séjour actuel est:"+Tsej);
Ta=Ta+Tatt;
Ts=Ts+Tsej;
Te=Te+Tex;
}
System.out.print("Son temps d'attente moyen est:"+Ta/nbr_proc);
System.out.print("Son temps de sejour moyen est:"+Ts/nbr_proc);
System.out.print("Son temps d'exécution moyen est:"+Te/nbr_proc);
}
}
////////////////////////////////////////////////// Class test ///////////////////////////////////////////////////
public class Test
{
public static void main(String[] args)
{Tab_Proc Pr=new Tab_Proc(null,0,0);
Pr.Remplissage();
Pr.calculer_FIFO();
Pr.Trie();
Pr.Affiche_Tab_Tri();
}
}
==========> je reçois ce message aprés la saisit du 1er processus:
donner SVP le nembre des processus2
donnez SVP le nom de processusa
donnez SVP le temps d'arrivé de processus0
donnez SVP la durée de processus3
Exception in thread "main" java.lang.NullPointerException
at Tab_Proc.Remplissage(Tab_Proc.java:21)
at Test.main(Test.java:7)
SVP aider moi ou donner des suggestions pour améliorer mon projet.
Merci d'avance.
je viens de terminer une traduction d'un algorithme en Java: le problème constitue de faire une simulation d'un traitement de processus dans FIFO.
Lors de l'exécution je reçois un message que j'ai pas pu résoudre(pas faute d'avoir essayer :( ).
Je vous expose mes class et ma class test:
/////////////////////////////////////////////////// Class processus ///////////////////////////////////////////////////
public class Proc
{ public String nom;
public int Tarr,Texe;
Proc(String nom,int Tarr,int Texe)
{this.nom=nom;
nom="";
this.Tarr=Tarr;
Tarr=0;
this.Texe=Texe;
Texe=0;}
void set_nom()
{System.out.print("donnez SVP le nom de processus");
String P=Clavier.lireString();
nom=P;
}
void set_Tarr()
{System.out.print("donnez SVP le temps d'arrivé de processus");
int P=Clavier.lireInt();
Tarr=P;
}
void set_Texe()
{System.out.print("donnez SVP la durée de processus");
int P=Clavier.lireInt();
Texe=P;
}
void Affiche_nom()
{System.out.print("Le nom est:"+nom);}
void Affiche_Tarr()
{System.out.print("Le temps d'arrivé est:"+Tarr);}
void Affiche_Texe()
{System.out.print("La durée est:"+Texe);}
}
///////////////////////////////////////// class de tableau de processus ////////////////////////////////////////////
public class Tab_Proc extends Proc
{Proc T[];
public int nbr_proc=0,i;
Tab_Proc(String nom,int Tarr,int Texe)
{super(nom,Tarr,Texe);
}
public void Remplissage()
{
int x;
System.out.print("donner SVP le nembre des processus");
x=Clavier.lireInt();
for(i=0;i<x;i++)
{
Proc P= new Proc (null,0,0);
P.set_nom();
P.set_Tarr();
P.set_Texe();
T[i]=P;
nbr_proc++;
}
}
public void Trie()
{for(int x=0;x<nbr_proc-1;x++)
{Proc m =T[x];
for (int y=x+1;y<nbr_proc;y++)
{if(T[y].Tarr<m.Tarr)
{m=T[y];
T[y]=T[x];
T[x]=m;
}
}
}
}
public void Affiche_Tab_Tri()
{for(i=0;i<nbr_proc;i++)
{T[i].Affiche_nom();
T[i].Affiche_Tarr();
T[i].Affiche_Texe();
System.out.print("Le nom est:"+nom);
System.out.print("Le temps d'arrivé est:"+Tarr);
System.out.print("La durée est:"+Texe);
System.out.print("========================");
}
}
public void calculer_FIFO()
{ int Ta,Tatt,Te,Tex,Ts,Tsej,cdebut,cfin;
cdebut=T[0].Tarr;
Ta=0;
Te=0;
Ts=0;
for(i=0;i<nbr_proc;i++)
{Tatt=0; Tex=0; Tsej=0;
cfin=cdebut+T[i].Tarr;
System.out.print(T[i].nom+"est en cours");
System.out.print("De"+cdebut+"jusqu'à"+cfin);
Tatt=cdebut-T[i].Tarr;
Tsej=cfin-T[i].Tarr;
Tex=Tsej-Tatt;
System.out.print("Son temps d'attente actuel est:"+Tatt);
System.out.print("Son temps d'execution actuel est:"+Tex);
System.out.print("Son temps de séjour actuel est:"+Tsej);
Ta=Ta+Tatt;
Ts=Ts+Tsej;
Te=Te+Tex;
}
System.out.print("Son temps d'attente moyen est:"+Ta/nbr_proc);
System.out.print("Son temps de sejour moyen est:"+Ts/nbr_proc);
System.out.print("Son temps d'exécution moyen est:"+Te/nbr_proc);
}
}
////////////////////////////////////////////////// Class test ///////////////////////////////////////////////////
public class Test
{
public static void main(String[] args)
{Tab_Proc Pr=new Tab_Proc(null,0,0);
Pr.Remplissage();
Pr.calculer_FIFO();
Pr.Trie();
Pr.Affiche_Tab_Tri();
}
}
==========> je reçois ce message aprés la saisit du 1er processus:
donner SVP le nembre des processus2
donnez SVP le nom de processusa
donnez SVP le temps d'arrivé de processus0
donnez SVP la durée de processus3
Exception in thread "main" java.lang.NullPointerException
at Tab_Proc.Remplissage(Tab_Proc.java:21)
at Test.main(Test.java:7)
SVP aider moi ou donner des suggestions pour améliorer mon projet.
Merci d'avance.
A voir également:
- Erreur en Java ;(
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
12 réponses
ça serait bien de nous dire a quel ligne se trouve ton erreur car nous on a pas les numero de ligne ;)
Bonjour
est ce que tu peux nous dire a quel niveau exactement tu as le probleme et aussi le message d'erreur que tu reçoi
et dis nous aussi si tu as des ligne souligné en rouge dans tes classe et les quelles
bonne chance
est ce que tu peux nous dire a quel niveau exactement tu as le probleme et aussi le message d'erreur que tu reçoi
et dis nous aussi si tu as des ligne souligné en rouge dans tes classe et les quelles
bonne chance
Merci de me répondre,
J'en ai aucune ligne soulignée ni aucunes fautes lors de la compilation de la class test sauf que en introduisant les valeur de 2eme processus (nom,Tar,Texe) je reçoit ce message
Exception in thread "main" java.lang.NullPointerException
at Tab_Proc.Remplissage(Tab_Proc.java:21)
at Test.main(Test.java:7)
J'en ai aucune ligne soulignée ni aucunes fautes lors de la compilation de la class test sauf que en introduisant les valeur de 2eme processus (nom,Tar,Texe) je reçoit ce message
Exception in thread "main" java.lang.NullPointerException
at Tab_Proc.Remplissage(Tab_Proc.java:21)
at Test.main(Test.java:7)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tab_proc c'est une deuxième class et test c'est le class main ( je les ai déja écris dans mon premier message).
on se comprend pas ;)
precise quel est la ligne 21 de Tab_proc.java et aussi la ligne 7 Test.java car visiblement c'est sur ces lignes que ce trouve l'erreur...
precise quel est la ligne 21 de Tab_proc.java et aussi la ligne 7 Test.java car visiblement c'est sur ces lignes que ce trouve l'erreur...
pour la class test.java c'est la ligne: Pr.Remplissage();
pour la class tab_proc c'est la ligne: T[i]=P;
PS: désolé pour le retard :)
pour la class tab_proc c'est la ligne: T[i]=P;
PS: désolé pour le retard :)
je pense que c'est parce que tu n'as pas instancier T
tu peux essayer de l'instancier au debut de ta methode remplissage
tu peux essayer de l'instancier au debut de ta methode remplissage
public void Remplissage() { int x; T= new Proc[20]; System.out.print("donner SVP le nembre des processus"); x=Clavier.lireInt(); for(i=0;i<x;i++) { Proc P= new Proc (null,0,0); P.set_nom(); P.set_Tarr(); P.set_Texe(); T[i]=P; nbr_proc++; } }
merci pour l'aide il y a plus de message d'erreu.
Juste une autre question comment faire un retour a la ligne aprés chaque phrase?
Juste une autre question comment faire un retour a la ligne aprés chaque phrase?