Piles en Java - Java - Programmation
Marsh Posté le 02-10-2005 à 12:10:32
Pas de reponse? ;-( S'il vous plait c'est très important!
Marsh Posté le 02-10-2005 à 12:22:41
Tu peux eviter de jeter une exception ? Crée une nouvelle exceptiopn pour exprimer le fait qu'une pile soit pleine.
C'est pas une interface, c'est une classe, elle a du code dedans
Ta table est purement interne à la pile, met la en privée.
Implémente une seule fois taille, pas la peine de le dupliquer dans toutes les méthodes.
\\ ne veut rien dire, utilise des commentaires javadoc pour commenter un élément /** ..... */
euuuuhhhhhhhh, tu peux pas le compiler avec le JDK, parce que là, c'est catastrophique en fait ....
Marsh Posté le 02-10-2005 à 12:25:59
tu reviens quand t'as un truc qui compile, on discutera TAD après
Marsh Posté le 02-10-2005 à 12:32:45
merci pour ta franchise mais ce n'est que mon troisieme cours en java donc dsl!
Mais j'ai vu un exemple d'impementation de pile ou on jeté les exceptions et on declarait la pile comme une interface. Ca faisait ca:
public interface Pile{
public int taille();
public boolean estVide();
public Object haut();
throws ExceptionPileVide;
public void empiler(Object o);
public Oject dépiler();
throws ExceptionPileVide;
}
Marsh Posté le 02-10-2005 à 12:40:31
Comme tu as pas encore vu une interface, on va faire court, ce n'est pas un exemple d'implémentation de pile, c'est un exemple de publication de type abstrait.
Et ça lève ExceptionPileVide, pas Exception. Le type de l'exception levée définie quel est le problème.
Marsh Posté le 02-10-2005 à 15:23:29
resalut!
J'ai compilé et effectivement pleins d'erreurs mais yen a que je ne comprend pas.
Il me marque qu'il manque <identifier> a chaque fois que je met public int ou public void...
C'est quoi le probleme?
Marsh Posté le 02-10-2005 à 15:56:38
c'est bon j'ai rectifié mais ya tjs un probleme.
Il me marque que "public int empiler(element) {"
est un debut d'expression illegal!!!!!!!
Pk?
Marsh Posté le 02-10-2005 à 16:02:41
Ca veut rien dire "public int empiler(element)" faut pas confondre declaration et appel.
balance plus de code ...
Marsh Posté le 02-10-2005 à 16:16:07
en fait je veux creer une fonction empiler qui retournera un entier.
dans le cours on peut voir:
public chaine (String A){
...
}
En plus je veux declarer privé mon tableau nommé table: je tape : private int table[];
et ca ne prend pas non plus!
Marsh Posté le 02-10-2005 à 16:17:57
Stormy7391 a écrit : en fait je veux creer une fonction empiler qui retournera un entier. |
Ca, c'est un constructeur de la classe chaine. Une méthode retourne un type. Une méthode qui s'appelle chaine donne :
public String chaine (String A){
Stormy7391 a écrit : En plus je veux declarer privé mon tableau nommé table: je tape : private table[]; |
Et le type des éléments du tableau, oukilé ?
Marsh Posté le 02-10-2005 à 16:30:50
Meme avec int (car finallement je veux faire une pile d'entier):
public int table[]
ca marche pas et tjs le meme message!
¨Pour ce qui est de "empiler", c'est justement une methode de la classe Pile que je souhaite construire. Que faut-il que je marque alors!!!!!
Marsh Posté le 02-10-2005 à 16:33:29
Code :
|
???
Marsh Posté le 02-10-2005 à 16:47:01
J'ai pas tres bien compris le dernier message!!! et j'ai modifier mon premier poste.
Je n'ai plus de probleme avec table mais toujours avec empiler.
Marsh Posté le 02-10-2005 à 20:24:54
Quelqu'un peut m'aider SVP!!!!!!!
J'ai galéré toute la journée dessus et j'ai toujours pas fini :-(
Marsh Posté le 02-10-2005 à 20:38:32
Code :
|
Je crois que tu vas y passer la nuit là ... Ce code ne compile même pas
COmmence déjà par bien indenter ton code pour voir les limites de chaque méthodes.
Marsh Posté le 02-10-2005 à 20:46:02
Hum, c'est moi ou à aucun moment il ne crée son array? (genre pour placer des données dedans quoi)
Parce que je vois la déclaration, mais pas la création de l'espace (ou alors... faut créer un array et le filer en paramètre au constructeur? )
Marsh Posté le 02-10-2005 à 21:01:22
t'as rien compris là : l'exception tu dois la lancer, pas l'attraper.
Marsh Posté le 02-10-2005 à 21:02:28
Enfin techniquement c'est plus un problème d'algo que de java là
Marsh Posté le 02-10-2005 à 22:18:14
dsl de vous demander ca mais quelqu'un serait motivé pour modifier mon algo et donc me le corriger car comme on me l'a dit, ca va me prendre la nuit? Ca serait cool si quelqu'un pouvait faire ca
Marsh Posté le 02-10-2005 à 22:21:40
3 questions:
Questions complémentaires:
Marsh Posté le 02-10-2005 à 22:33:53
je me suis deja posé ces questions mais je crois qu'avec les quelques notions que j'ai je ne peux pas gerer le probleme meme avec votre aide
1) Pour faire fonctionner la pile, il me faut un tableau ou rentrer des données arbitraires
2) On peut ajouter un element a la pile (empiler) ou en elever un seul (depiler)
3) on peut lui demander si elle est vide
quel est son element du haut
sa taille
4) On peut avoir des erreurs si on depile alors qu'elle est vide: c'est impossible
Si on empile alors qu'elleest pleine
5) Je pense que la pile doit avoir une taille.
Marsh Posté le 02-10-2005 à 22:36:55
Stormy7391 a écrit : 1) Pour faire fonctionner la pile, il me faut un tableau ou rentrer des données arbitraires |
C'était pas la question
Citation : 2) On peut ajouter un element a la pile (empiler) ou en elever un seul (depiler) |
oui
Citation : 3) on peut lui demander si elle est vide |
oui (isEmpty, peek et size), et on peut également lui demander si elle est pleine (isFull) si elle a une taille
Citation : 4) On peut avoir des erreurs si on depile alors qu'elle est vide: c'est impossible |
oui
Citation : 5) Je pense que la pile doit avoir une taille. |
Une pile a une capacité (le nombre de valeurs qu'elle peut stocker à un moment "n" ), mais rien n'empêche de la faire grandir quand elle atteint et dépasse cette capacité (avec ou sans capacité maximal au delà de laquelle on ne peut aller)
Marsh Posté le 02-10-2005 à 22:40:42
oui mais je ne sais pas coder ces instructions! J'ai fat que trois cours d'ago en JAVA
Marsh Posté le 02-10-2005 à 22:41:18
On en est à l'implémentation, arrête de mettre la charrue avant les boeufs et réponds aux questions
Marsh Posté le 02-10-2005 à 22:43:20
ben j'ai deja repondu!
Pour la premiereje vois pas ce ke tu veux
Marsh Posté le 02-10-2005 à 22:43:51
On met quoi dans une pile?
Marsh Posté le 02-10-2005 à 22:44:37
des objets arbitraires! On peut mettre des entiers, des chars, les flottants!!!
Marsh Posté le 02-10-2005 à 22:49:23
non, des données
Bon, donne moi les prototypes de chacune des méthodes définies (opérations et questions) sur une pile: entrées et sorties typées quand on crée une pile d'entiers (int).
Et n'oublie pas le ou les constructeur(s)
Marsh Posté le 02-10-2005 à 22:59:24
???? je sais pas comment faire la!!!!!
quand tu dis prototype tu veux dire en langage parlé!
Bon ben:
1°on declare un tableau
2°on rentre des entiers dans ce tableau
3° on construit la pile a partir de ce tableau
1° on declare la fonction empiler
2° on cherche le dernier element du tableau
3° on declare l'element a empiler
4°on ajoute cet element dans le tableau si celui ci n'est pas plein
Marsh Posté le 02-10-2005 à 23:01:25
Stormy7391 a écrit : ???? je sais pas comment faire la!!!!! |
Non, c'est pas ça un prototype de fonction, le prototype c'est simplement donner:
Exemple:
Moo foobar(Foo, Bar) |
Pour une fonction demandant en entrée deux objets de type Foo et Bar et sortant un objet de type Moo
Marsh Posté le 02-10-2005 à 23:04:13
public int empiler(32,int table[]); un truc comme ca?
BOn de toute facon je dois partir on m'attend pour finaliser cet exposer avec autres!
Merci encore de m'avoir aidé!
Marsh Posté le 02-10-2005 à 23:06:36
Stormy7391 a écrit : public int empiler(32,int table[]); un truc comme ca? |
non, je me fous éperdument de ton "32" et que le tableau d'entiers du 2e argument s'appelle table
Marsh Posté le 02-10-2005 à 11:21:49
Salut à tous!
Je suis nouveau sur HArdware.fr!
Voila mon probleme:
J'ai un exposé à faire pour lundi sur les types de données usuels.
En fait il s'agit de types abstraits de données ce que mon prof a oublié de preciser et qu'il nous a revelé simplement Jeudi donc je suis tres en retard pour cet exposé!
Surles TAD j'ai préféré traité des piles.
J'ai voulu creer un programme d'implementation d'une pile par un tableau et j'aimerai que vous le voyez pour me dire mes erreurs et s'il est bien comme il faut.
Merci d'avance:
J'ai fait ca:
public class Pile{
private int table [];
public Pile (int pile []){
table=pile;
int i;
while (table[i]!=0){
i++;
}
//Empiler
public int empiler( int élément){
// on voit quand est ce que le tableau nest plus rempli
// on teste la taille du tableau
try{
int table[i+1]=new int (élement);
throws ExceptionPilePleine;
}
catch (ExceptionPilePleine e){
System.out.println("La pile est pleine" );
}
}
//Depiler
public int dépiler(){
try{
int table[i]= new int (O);
throws ExceptionPileVide;
}
catch (ExceptionPileVide e){
System.out.println("La pile est deja vide" );
}
}
//Taille
public int taille(){
System.out.println("la taille est"+i+);
}
//Haut
public int haut(){
System.out.println("lélément du haut est"+[i]+);
}
//EstVide
public boolean EstVide(){
if i=0
System.out.println("La pile est vide" );
else
System.out.println("La pile nest pas vide" );
};
};
}
Est-ce que c'est juste?
Pouvez vous me corriger mes erreurs? car je suis vraiment debutant en info.
Message édité par Stormy7391 le 02-10-2005 à 20:23:14