bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009
-
9 juin 2009 à 17:32
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 2011
-
4 juil. 2009 à 00:40
bonjour, voilà mon pb:
je dois créer une matrice de traffic avec java: cette matrice calcule la somme de duréé de l'appel entre l'appelant et l'appelé.j'ai des fichiers text dans lesquels il y a les différents données sur l'appelant et l'appelé et la durée de leurs appels, c pourquoi dans un premier temps, faudra que j'extrait les données dont g besoin et les mettre dans cette matrice puis cette matrice doit calculer la durée entre l'appelant et l'appelé.
merci de bien vouloir m'aider, c urgent.
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 13 juin 2009 à 12:43
bonjour,
depuis hier que j'essaye de faire ce que vous m'avez dit dans le dernier poste de la page1, mais justement l'idée je l'ai dans ma tête mais je sais pas comment la traduire en java, si c'est possible de me dire comment je vais procéder techniquement et non pas théoriquement. merci encore pour l'aide, et désolé pour le dérangement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 13 juin 2009 à 19:01
salut,
alors vu comment je vois les choses je dirais que les données que tu extrais du fichier CAA tu les mets dans un tableau de long ou double (ex: double [] tab).
Ton fichier avec les ura tu fais pareil mais avec un tableau de string (ex string [] ura).
après tu fais quelque chose du genre :
i =0;
while(tab[numero_indice] < double.parsedouble(ura[i][2]))
i++;
de cette façon lorsque tu sors de la boucle, ton numéro appartiendra à l'ura ura[i][0]
PS : n'oublie pas d'initialiser i à chaque fois pour bien parcourir toute les ura en partant de la première
The possible meet the impossible to become the possimpible !!
1/ comment déclarer un tableau de dimensions inconnues autrement dit un tableau dynamique.
2/ il faudra que je fasse des exceptions avant de replire mon tabeau vu que dans mon fichier URA : y'a des fois des vides dans chaque champs.
3/ est ce que c'est possible de me corriger mon code.
}
System.out.println(t[39][2]);
for (int j = 1; j <= i; j++) {
//System.out.println(j);
if ((nombre <= Integer.parseInt(t[j][1]))
&& (Integer.parseInt(t[j][0]) <= nombre)) {
System.out.println(" mon ura est" + t[j][2]);
}
}
}
}
le problème c'est que :
je sais pas comment généraliser ce code , çàd, dans ce cas j'ai travaillé sur un num et il m'a donnée son ura, or j'ai besoin qu'il identifie le numéro appelant ou le numéro appelé et le test automatiquement dans quelle plage il setrouve.
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 15 juin 2009 à 17:39
Salut,
eh bien je ne vois pas ton problème!
Tes premières étapes sont de lire les fichiers contenant les ura ( n'oublie pas d'utiliser les tableaux dynamiques, c'est plus pratique dans ton cas)
Par la suite tu effectues l'opération :
for (int j = 1; j <= i; j++)
{
if ((nombre <= Integer.parseInt(t[j][1])) && (Integer.parseInt(t[j][0]) <= nombre))
System.out.println(" mon ura est" + t[j][2]);
}
Dans ce cas là, normalement tu devrais pouvoir traiter toutes tes données.
Peut être ai-je mal compris ta question? Au fait, qu'entends tu par "généraliser ton code"?
The possible meet the impossible to become the possimpible !!
ura_orig= URA.getUraOrig(tab1[0]);
System.out.println(ura_orig +" ; "+ ura_dest+" ; " +tab1[6]);
str = fichier.readLine( );
}
}
}
et ça me donne ceci:
id_orig; id_dest ; durée
UR013 ; Mobile IAM ; 36
UR013 ; MEDITEL ; 17
UR514 ; Mobile IAM ; 14
UR479 ; MEDITEL ; 1
UR479 ; UR405 ; 101
UR479 ; MEDITEL ; 87
UR338 ; Mobile IAM ; 67
UR074 ; MEDITEL ; 72
UR074 ; Mobile IAM ; 15
maintenant le problème c'est que il peut y avoir des ligne qui se répéte par exemple:
A appelle B pour une durée de 21min
A appelle B pour une durée de 12min
A appelle B pour une durée de 30 min
il va afficher:
A B 21min
A B 12min
A B 30min
alors que je veux quand il trouvera comme cela , il affiche:
A B 21min+12min+30min
ou
A B 65 min
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 15 juin 2009 à 18:45
Sa marche mais tu accèdes à ton fichier ura à chaque fois que tu veux connaître la plage d'un numéro, ça peut s'avérer très long si tu as un nombre de numéro important. C'est pour cela que je te conseille de lire ton fichier ura une seule et unique fois et de stocker les données dans ton application, puis tu effectues tes recherches dans tes données stockées.
En ce qui concerne ton dernier soucis d'optimisation je vais y réfléchir mais j'ai déjà une piste
The possible meet the impossible to become the possimpible !!
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 15 juin 2009 à 22:23
myList représente un tableau dynamique !! une liste tu n'as qu'à taper "list java" dans google et tu trouveras
mytab représente ton tableau statique contenant num_orig et autres...
The possible meet the impossible to become the possimpible !!
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 15 juin 2009 à 22:55
tab[0] et tab[1] et tab[2]représente respectivement seuil min et seuil max et ura.
le principe est tjs le meme tester le numéro dans quel plage et afficher son ura.
désolé j'ai vraiment pas compris, ça vous derrange de me dire excatement comment s'il vous plait.
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 18 juin 2009 à 11:27
bonjour,voilà, j'ai un problème dans la partie en rouge, on me dit l'erreur que j'ai écrit en marron, sachant que j'ai déclaré ura comme un int et le centre comme un int et que dans le fichier, j'ai par exemple: ura UR001 et centre agadir :
Multiple markers at this line
- line breakpoint:centre[line:49] - getcentre(String)
-the left_hand side of an assignment must be a variable
public static String getcentre (String URA_URA) {
try
{
BufferedReader fichier = new BufferedReader(new FileReader("D://MAroc telecom//centre.CSV"));
String str;
int i = 0;
str = fichier.readLine();
int ura;
while (str != null ) {
String tab2[] = str.split(";");
if ((tab2[0] != null) & (tab2[1] != null)) {
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 19 juin 2009 à 04:51
Salut,
alors déjà pour tester une égalité utilise "==" et non "=" seulement.
Ensuite je t'avais dis d'utiliser des double et non des int car un numéro de téléphone contient 10 numéros et cela dépasse la capacité d'un int codé sur un octet. Mais bon tant que sa marche pourquoi pas !
De plus, ta condition dans ton if, tu devrais plutôt la placé au niveau de ton while (question de clarté).
Pourquoi ton ura et ton centre sont des int alors que ce sont des chaînes de caractères ???
The possible meet the impossible to become the possimpible !!
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 19 juin 2009 à 10:42
bonjour,
bah en travaillant avec des string ça m'a donnée beaucoup d'erreurs c'est pourquoi, j'ai travaillé avec des int meme si mon ura et centre sont des chaines de caractère, mais bon je sais que ça n'a pas de logique, je vais travailler avec des string.
pour mon if, il est dans la boucle while,
s'il vous plait si je veux appelé deux methode que j'ai fait dans une meme classe comment faire? sachant que pour appelé ma methode j'ai fait un while.