Besoin d'aide pour programmer en java

Signaler
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006
-
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
-
Je dois ecrire un programme en java mais je ne sais pas trop comment ca marche, comment encoder. (c'est assez urgent)

Le but est de calculer le plus court chemin pour aller d'une ville a une autre.

explication de l'algorithme
En gros, on a un premier fichier texte contenant:
numeroville nomville abscisse ordonnée

ensuite, un deuxieme fichier texte qui dit si telle et telle villes sont liées ou non.
v1 v2 v3 v4
v1 ... 1 1 0
v2 1 ... 0 1
v3 1 0 ... 1
v4 1 1 1 ...

1 si les villes sont reliées et 0 si non.

Le programme en lui même:
il faut une classe Ville avec les champs:
numeroville (integer)
nomville (string)
abscisse (integer)
ordonnee (integer)

ensuite une fonction de creation:
ville.creer (la ligne en string)
(pour ca, je sais qu il faut se servir de tokenizer, le séparateur étant un espace)
puis d'après ce que j'ai compris, ranger les sorties du tokenizer:
ville new= new ville(;)
ville new.numeroville=(1)
ville new.nomville=(2)
ville new.abscisse=(3)
ville new.ordonnée=(4)
(ou quelque chose comme ca)

maintenant on fait une fonction de lecture de fichier:
lecture(chemin d'accès){remplir un string avec buffered reader}

et une fonction tableau de liaison:
tabliaison{remplir un tableau en lisant dans le fichier chaque ligne que l'on découpe avec tokenizer}

ensuite, on va rechercher le trajet:
search(tabliaison, villedepart, villearrivee, distance)
{tester chaque ville pour aller de départ a arrivée avec une boucle for (i=0,i<nb de ville,i++)
on regarde si il y a une liaison avec une ville, si oui, on relance un tour, si non, on s'arrete, avec un if.
}

a chaque fois qu'on trouve un chemin possible, on enregistre les distances.

voila, il n'y a plus qu'a encoder, ou presque.

16 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Salut,

Oui et ? Tu veux quand même pas qu'on fasse tout le projet à ta place quand même ?

Nous ne sommes pas là pour faire le travail des autres, mais aider sur des problèmes précis de programmation. C'est comme si tu expliquait à un mécanicien comme changer la courrois de distribution et tu lui dit : bon j'ai besoin de ma voiture demain, alors je repasserai la chercher... Ca m'étonnerai qu'il le fasse sans que tu le paye...

Donc évite de dire : "il n'y a plus qu'a encoder", et surtout : "(c'est assez urgent)", si tu dois écrire un programme, alors écrit le, et ne vient pas nous demander de le faire à ta place. Et si tu rencontre un problème lors de ton développement, alors là oui, on pourra t'aider, mais nous te ferons pas tout le soft à ta place !

_____________________________________________________________________
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

ok, pardon, je suis allée un peu vite.
sincèrement désolée.

c'est un ami qui m'a donné cette adresse en me disant que il y avait des gens qui savaient programmer, que j'avais qu'a proposer un algorithme et que il y aurait bien quelqu'un pour m'aider. (ce qui explique le "il n'y a plus qu'a encoder")
figurez vous, monsieur Darksidious, que je fais justement de la mecanique. si j'etais sur un forum de meca et que quelqu un qui n'y connait pas grand chose dans ce domaine me demandait de l'aider a faire des calculs pour dimensionner je ne sais quoi ou autre chose, si je sais faire ce qu il demande, je l'aiderais.

sinon, "urgent" tout est relatif, j'ai mis ca pour attirer le regard surtout. je ne crois pas etre la seule a utiliser ce mot pour que son appel au secours soit au moins lu.

en conclusion, y'a t il qu'un qui peut et veut m'aider?
ou quelqu un qui a deja eu un programme similaire a realiser?

sinon, excusez moi de m'etre égarée sur ce site, promis, je n'y remettrais plus les pieds.
merci pour l'accueil.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Alors tu serais prête à travailler pour les autres sans rien demander ? Mais dis donc, comment fais-tu pour vivre alors ?

Ici, c'est un site ou l'on partage ses connaissances, on dépose des sources, les autres les commente, et on essaie de progresser tous ensemble. Ce n'est point un site ou tu arrive, tu demande ce que tu veux, on te le fait, et tu disparait. (d'ailleurs, ca m'étonnerai beaucoup qu'il en existe sur le net...).

Tu n'as pas l'air d'avoir compris mon image du mécano : le gars te demande pas de l'aider, mais de lui faire tout, il y a une grande nuance : un gars qui essaye par lui même d'arriver à quelque chose, et pose des questions sur des problèmes précis, je comprends que tu veuille bien l'aider (c'est ce que je fais sur Javafr, et sur pas mal d'autres site cela dit en passant), mais quand le gars te demande de tout faire pour lui, là par contre, cà fait abusé !

On est une communauté de programmeur. Si quelqu'un a un problème, et qu'il le demande gentilement, on l'aidera, par contre, quand je vois quelqu'un qui arrive, qui ne sais pas programmer, et qui demande qu'on lui fasse un prog tout fait, je me pose de grosse question : que deviendras le super programme que je vais faire pour lui ? Il va le vendre, et ce faire des sous sur mon dos ?

Cet acceuil peut te paraître très froid, mais c'est ma façon de te montrer ton erreur : n'essaye pas de trouver quelqu'un qui te fera un prog pour toi (tu en trouvera peut-être, mais j'en doûte), et essaye plutôt de le développer toi même, puis reviens nous voir une fois que tu buttera sur une difficulté.

_____________________________________________________________________
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Allez, je ne suis pas un ingrat, je te mets sur une piste :
http://www.javafr.com/code.aspx?id=30362

autre remarque : pour quasiment la totalité des problèmes, il existe des sources qui y réponde, parfois il faut composer plusieurs sources pour arriver à son but, mais on y arrive presque toujours.

_____________________________________________________________________
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

ok, message compris.
je t'explique
je suis en ecole d'ingénieur en mecanique.
on a un cours d'informatique.
moi les ordi, a part windows et excel et encore, si peu, j'y connais rien.
le prof nous a expliqué vaguement que il existe des tokenizer et des buffered reader et il nous donne un projet. "voila, debrouillez vous les jeunes, vous allez etre ingénieur, vous devez savoir ca".
sauf que je suis en meca, pas en informatique. le prof il a pas compris ca.
alors ceux qui ont des amis qui programment, hop, ils leur demandent un coup de main.
perso, je connais personne qui programme.
donc voila mon probleme.

Pour en revenir a ton histoire de mecano, ca s'appelle du bénévolat.
c'est tres honorable d'ailleurs je trouve.
aider les autres, c'est beau.
mais tout le monde ne sait pas aider ceux qui en ont besoin.

sinon, je ne connaissais pas du tout le milieu de la programmation. je découvre que c'est un monde vraiment fermé.
je ne savais pas non plus que les programmes se vendaient.
meme si je ne pense pas qu'un programme pour calculer la plus courte distance d'une ville a l'autre coute bien cher.
enfin, si des gens gagnent leur pain avec des programmes, ok, c'est cool pour eux qu'ils sachent faire ca.
moi je ne sais pas, je le reconnais.

bon, master, je vais m'atteler a ma meca.
si quelqu un me répond, tant mieux.
sinon, tant pis, je ne rendrais rien et j'aurais une bulle.
tant pis pour moi. j'avais qu'a savoir programmer. manque de pot, c'est pas inné chez moi.

les informaticiens, j'espere que j'aurai pas a bosser avec eux en tout cas, c'est ce que je retiens de mon bref passage ici.
bonne continuation pour ton deug.
et merci pour l'accueil.
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

oh!!! merci, je répondais en meme temps.
je regarde ca.
merci beaucoup pour la piste.
meme si c'est que une piste.
ca me fera peut etre changer d'avis sur les informaticiens.
je vais regreter d'avoir ecrit tout ca...
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

ca compile bien mais a chaque fois que je lance le programme (pour voir ce que ca donne) ca me dit ca:

exception in thread "main" java.lang.NoSuchMethodError: main.

forcément, vu que je suis une tare de la nature, je ne parle pas plus anglais que "java".

j'imagine que ca veut dire quelquechose de précis pour toi?
est ce que tu sais d'ou ca vient? ce qu'il faut faire?
c'est peut etre du a la version de java non?
(tu vois, j'essaye de réfléchir aussi, mais j'y connais rien!)
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

bon ,il est temps pour moi de partir.
merci encore pour le coup de pouce, je vais essayer de me débrouiller pour comprendre ca.
j'ai vu que t'es "admin"... si tu peux et veux enlever ce sujet du forum, n'hésite pas...
merci
j'aurai encore un programme au deuxieme semestre alors je viendrais peut etre poser des questions.
a un de ces quatre peut etre!
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

et j'espere que mon pamphlet ne t'as pas vexé.
c'est juste que je suis hyper fatiguée, sur les nerfs, ca va pas top avec mon gars pour en rajouter, et je risque de retaper cette année.
tu vois, toi au moins tu sais programmer.
sinon, si vous cherchez a vous faire connaitre, je peux toujours vous faire de la pub dans l'ecole (je ne suis pas la seule a galérer avec java...)
v'la.
je file
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
130
Lol, la société secrète des informaticiens n'est pas si fermée que cà, je te rassure ;) Nous sommes très communautaires bien au contraire !

Je ne vois pas pourquoi je supprimerai ce topic.

Tu utilise quoi pour programmer en Java ? Il faut définir la fonction "main" de ton programme pour pouvoir le lancer, c'est-à-dire la fonction qui s'éxécute dès le lancement du programme. Sous Eclipse par exemple, cette fonction main t'es demandé dès que tu essaie d'éxécuter ton prog.

_____________________________________________________________________
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,





ralala après une journée de boulot ca fait du bien de rire un peux.........

laura juste pour que tu évite de t'égarer les soft ca se vend même les
pire soft peuvent couter les yeux de la tête(comme ce bon vieux
windaube qui fait la fortune de microchiotte).....





fin bon je rejoint completement Darksidious qui nous pousse un ptit
coups de gueule (faut comprendre que tu n'est pas la seul qui arrive
ici en donnant son projet et nous sort bon allé les geek faites mon
boulot)





bref, pour le liens qu'il t'as donné ce n'est pas une source qui
s'execute mais comme mentionné dans les commentaires ce n'est pas une
application mais juste un librairie, le seul moyen pour toi d'utiliser
cette source reste de comprendre soit à 100% java soit de comprendre
l'algorithme de Dijkstra pour ce faire tu peux matter ce liens :



http://www.nimbustier.net/publications/djikstra/djikstra.html





Sinon pour toutes autres question sur le langage java tu peux voir la javadocs

http://java.sun.com/j2se/1.5.0/docs/api/index.html



ou encore les tutos java de sun

http://java.sun.com/docs/books/tutorial/index.html





dsl pour l'anglais mais sun=100% pas français


WORA
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

ok merci les gars.
alors on a editplus comme logiciel.
j'ai pas tout compris pour le probleme du "main", en plus, je suis chez moi et je bosse a l'ecole d'habitude.
je regarderai lundi ou mardi.
je suis contente pour toi, euh... twinuts! que ca t'ait fait rire,
moi, ca m'a pas dutout fait rire.
je ne connais pas dutout le monde informatique, c'est comme si vous me parliez un vieu patois d'une contrée perdue et innaccessible d'afrique centrale. quoique j'arriverai peut etre mieux a apprendre ca que la java!
nan je rigole, je suis consciente que l'informatique, ca nous entour de partout, aujourd hui. et j'aimerai bien comprendre mais c'est pas evident.
meme de demander de l'aide, je sais pas trop quoi demander.
bon week end!
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,



déjà lance toi dans le developpement ensuite tu verras les questions vont venir toutes seule,

et la on sera la pour t'aider, et résoudre tes problèmes....



bon week à toi aussi


WORA
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Juste pour corriger ton premier message et te donner un premier coups de pouce



Ville.java :



import java.util.StringTokenizer;



public class Ville{

private int numVille;

private String nomVille;

private int abscisse;

private int ordonnee;



public Ville(){
numVille = 0;


nomVille = "";


abscisse = 0;


ordonnee = 0;
}



public int getAbscisse() {

return abscisse;

}



public void setAbscisse(int abscisse) {

this.abscisse = abscisse;

}



public String getNomVille() {

return nomVille;

}



public void setNomVille(String nomVille) {

this.nomVille = nomVille;

}



public int getNumVille() {

return numVille;

}



public void setNumVille(int numVille) {

this.numVille = numVille;

}



public int getOrdonnee() {

return ordonnee;

}

public void setOrdonnee(int ordonnee) {

this.ordonnee = ordonnee;

}



/*

* Pour exemple dutilisation du tokenizer

* creer("numVille nomVille abscisse ordonnee", " ");

*/

public void creer(String str, String delimiteur){

StringTokenizer token = new StringTokenizer(str, delimiteur);

try{

StringTokenizer token = new StringTokenizer(str, delimiteur);

try{

numVille = Integer.parseInt(token.nextToken());

}catch(NumberFormatException e){

numVille = 0;//si le champs n'est pas un nombre

}

nomVille = token.nextToken();

try{


abscisse; = Integer.parseInt(token.nextToken());


}catch(NumberFormatException e){


abscisse; = 0;//si le champs n'est pas un nombre


}

try{



ordonnee; = Integer.parseInt(token.nextToken());



}catch(NumberFormatException e){



ordonnee; = 0;//si le champs n'est pas un nombre



}

}catch(NoSuchElementException e){//si token déclenche une erreur

numVille = 0;



nomVille = "";



abscisse = 0;



ordonnee = 0;

}

}

}






......

Pour l'utilisation tu peux faire comme suit

Ville v1 = new Ville();

v1.setNumVille(1);

v1.setNomVille("Toulouse");

v1.setAbscisse(1);

v1.setOrdonnee(1);



Ville v2 = new Ville();


v1.setNumVille(1);


v1.setNomVille("Paris");


v1.setAbscisse(1);


v1.setOrdonnee(1);

sinon tu peux creer comme ca

Ville v1 = new Ville();

v1.creer("1 Toulouse 1 1", " ");

Ville v2 = new Ville();


v2.creer("1 Paris 1 1", " ");









WORA
Messages postés
9
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
30 janvier 2006

waouwww!
la tu viens de m'aider a faire un grand pas.
j'avoue que je comprends pas tout encore mais en regardant bien, je pense que je vais y arriver.
par contre, en ce moment, j'ai un projet de méca a rendre, ca devient urgent donc, je m'y attelle et ensuite je me mets a l'info.

en tout cas, merci les gars, avec tout ca, je vais y arriver.
et puis si il m'en manque encore, je reviens vous voir!
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,





oki pas de problème bonne chance pour la meca :)

WORA