Probleme déclaration de fonction

developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 5 avril 2006 à 10:36
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 7 avril 2006 à 21:00
Bonjour tout le monde

J'ai un probleme pour la réalisation d'une fonction.

Voici le code.

public instruct()


{
if(c.bcaf.equals("café") && sr==0) ||(c.bcafl.equals("café au lait") && sr==0)||(c.bcho.equals("chocolat") && sr==0)||(c.bth.equals("the") && sr==0)


{


c.Textmessage="Somme insuffisante";



}



else
{
sar = sr-cout;


sar = sar*10;
}


}

Voici le message d'erreur.

.\Monnayeur.java:29: illegal start of expression
public instruct()

Pouriez vous me dire comment régler ce probleme.

J'ai regardé dans mon livre comment bien déclarer les fonctions, mais je ne vois pas où j'ai fais l'erreur dans mon code.

Merci

Cordialement

A bientôt

31 réponses

bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
5 avril 2006 à 11:02
coucou,

en en mettant ca :

public void instruct(){...}
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
5 avril 2006 à 11:15
Bonjour tout le monde

Ca ne passe pas, je vais mettre tout le code de ma class, le probleme vient peut être de le là..

La voici.

import java.awt.*;
import java.awt.event.*;

public class Monnayeur


{



int rendcinqc, renddixc, rendvingtc, rendcinquc, renduneurro,sr, sar, cout;


Coeurmc c = new Coeurmc();


Stockpiece p = new Stockpiece(c);

public Monnayeur()
{





public void instruct()


{



if((c.bcaf.equals("café") && sr==0) ||(c.bcafl.equals("café au lait") && sr==0)||(c.bcho.equals("chocolat") && sr==0)||(c.bth.equals("the") && sr==0))


{


c.Textmessage="Somme insuffisante";



}



else
{
sar = sr-cout;


sar = sar*10;



}


}


public static void main (String [] args)


{

}


}

Pourriez vous me dir, où sont mes erreurs.

Merci.

Cordialement

A bientôt
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
5 avril 2006 à 11:39
il manque une accolade fermante après
public Monnayeur()
{
}
0
cs_valckar Messages postés 34 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 30 juin 2006
5 avril 2006 à 11:39
Salut,



Il manque une acolade :



public Monnayeur()
{

}





A+

Laurent
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
5 avril 2006 à 11:44
tu as mis ta fonction instruct() dans le constructeur, essaye d'organiser ta classe comme ca :

import java.awt.*;
import java.awt.event.*;

public class Monnayeur {

int rendcinqc, renddixc, rendvingtc, rendcinquc, renduneurro,sr, sar, cout;
Coeurmc c = new Coeurmc();
Stockpiece p = new Stockpiece(c);

public static void main (String [] args){
//point d'entrée du programme
//new Monnayeur() ;
//ligne du dessus à decommenter pour instancier ta classe
}

public Monnayeur(){

//constructeur
//la tu peux executer ta fonction instruct() ;
}

public void instruct(){
if((c.bcaf.equals("café")
&& sr==0) ||(c.bcafl.equals("café au lait") &&
sr==0)||(c.bcho.equals("chocolat") &&
sr==0)||(c.bth.equals("the") && sr==0))
{
c.Textmessage="Somme insuffisante";
}
else
{
sar = sr-cout;
sar = sar*10;
}
}//fin de instruct()

}//fin de classe
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 10:22
Bonjour tout le monde

J'ai des probleme avec ma class Stockpiece

Voici le code de ma class stockpiece.

import java.awt.*;
import java.awt.event.*;



public class Stockpiece implements ActionListener


{



Monnayeur m = new Monnayeur();
ElementParam ep = new ElementParam(m);


int insertpiece,nb5c, nb10c, nb20c, nb50c, nb1e;


public static void main (String [] args)


{



}


public Stockpiece(int somme, Monnayeur m)


{



insertpiece=somme;
this.m=m;





public void actionPerformed(ActionEvent e)


{


switch (insertpiece) {


case 5 :

nb5c = 0 ;

String texteDansCinpc = Integer.toString(ep.cinpc);
if ( texteDansCinpc != null && texteDansCinpc.length() > 0 )
{
nb5c = Integer.parseInt( texteDansCinpc );
}



break;





case 4 :



nb10c = 0 ;
String texteDansDixc = Integer.toString(ep.dixc);
if ( texteDansDixc != null && texteDansDixc.length() > 0 )
{
nb10c = Integer.parseInt( texteDansDixc );
}



break;



case 3 :


nb20c = 0 ;
String texteDansvingtc = Integer.toString(ep.vingtc);
if ( texteDansvingtc != null && texteDansvingtc.length() > 0 )
{
nb20c = Integer.parseInt( texteDansvingtc );
}



break;



case 2 :


nb50c = 0 ;
String texteDanscinquc = Integer.toString(ep.cinquc);
if ( texteDanscinquc != null && texteDanscinquc.length() > 0 )
{
nb50c = Integer.parseInt( texteDanscinquc );
}






break;


case 1 :


nb1e = 0 ;
String texteDansuneurro = Integer.toString(ep.uneurro);
if ( texteDansuneurro != null && texteDansuneurro.length() > 0 )
{
nb1e = Integer.parseInt( texteDansuneurro );
}

break;


}

}


}

Voici l'erreur qu'il me sort

.\Stockpiece.java:8: Stockpiece is not abstract and does not override abstract m
ethod actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListen
er
public class Stockpiece implements ActionListener
^

De plus, dans mon livre il n'explique pas clairement ce qu'est un constructeur.

Pourriez vous m'expliquer un peu.

Merci

Cordialement

A bientôt
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 10:40
coucou,



alors tu as effectivement 2 erreurs (au moin, j'ai pas tout regardé)

tu as encore oublié une accolade a la fin de ton constructeur


public Stockpiece(int somme, Monnayeur m)



{

insertpiece=somme;
this.m=m;

}



ensuite
tu as mis "implements ActionListener", quand tu met ca, ca veut dire
que tu implemente une interface et que tu dois donc en redefinir toutes
les méthodes, en l'occurence la methode "actionPerformed", dans to ncas
il faut que tu rajoute :



public void actionPerformed(ActionEvent e){



}



un constructeur permet d'instancier une classe, par exemple si tu as une classe Choucroute, quand tu fait :

Choucroute c = new Choucroute() ;

ca appelle le constructeur :

public Choucroute(){ ... } qui est dans la classe Choucroute

le consctruteur doit porter le meme nom que la classe.



en esperant avoir ete assez clair :)

0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 11:20
Me revoilà

J'ai encore certaine erreur que je ne comprend pas dans la classe monnayeur.

Voici le code

import java.awt.*;
import java.awt.event.*;

public class Monnayeur


{
int rendcinqc, renddixc, rendvingtc, rendcinquc, renduneurro,sr, sar, cout;


Coeurmc c = new Coeurmc();


Stockpiece p = new Stockpiece(c);



public static void main (String [] args)


{


new Monnayeur();

}


public Monnayeur()


{



instruct();


rendmonnaie();


}
public void instruct()


{



if((c.bcaf.equals("café") && sr==0) ||(c.bcafl.equals("café au lait") && sr==0)||(c.bchoc.equals("chocolat") && sr==0)||(c.bth.equals("the") && sr==0))


{


c.Textmessage="Somme insuffisante";



}
else
{
sar = sr-cout;


sar = sar*10;



}


}


public void rendmonnaie()
{


int cinqc, dixc, vingtc, cinquantec, unerros;


int rendmonnaie;



do
{





if(sar<=200)


{


p.nb1e=-1;



}


else if(sar>=50)


{


p.nb50c=-1;






}


else if(sar>=20)


{


p.nb20c=-1;



}



else if(sar>=10)


{


p.nb10c=-1;



}


else if(sar>=5)


{


p.nb5c=-1;



}


else
{
return(0);
}



} while(sar==sr);



}


}



Voici les erreur qu'il rest a la class monnayeur.

Monnayeur.java:17: cannot find symbol
symbol : constructor Coeurmc()
location: class Coeurmc
Coeurmc c = new Coeurmc();
^
Monnayeur.java:19: cannot find symbol
symbol : constructor Stockpiece(Coeurmc)
location: class Stockpiece
Stockpiece p = new Stockpiece(c);
^
Monnayeur.java:152: cannot return a value from method whose result type is void
return(0);
^
3 errors

Merci

Cordialement

A bientôt
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 11:20
Me revoilà

J'ai encore certaine erreur que je ne comprend pas dans la classe monnayeur.

Voici le code

import java.awt.*;
import java.awt.event.*;

public class Monnayeur


{
int rendcinqc, renddixc, rendvingtc, rendcinquc, renduneurro,sr, sar, cout;


Coeurmc c = new Coeurmc();


Stockpiece p = new Stockpiece(c);



public static void main (String [] args)


{


new Monnayeur();

}


public Monnayeur()


{



instruct();


rendmonnaie();


}
public void instruct()


{



if((c.bcaf.equals("café") && sr==0) ||(c.bcafl.equals("café au lait") && sr==0)||(c.bchoc.equals("chocolat") && sr==0)||(c.bth.equals("the") && sr==0))


{


c.Textmessage="Somme insuffisante";



}
else
{
sar = sr-cout;


sar = sar*10;



}


}


public void rendmonnaie()
{


int cinqc, dixc, vingtc, cinquantec, unerros;


int rendmonnaie;



do
{





if(sar<=200)


{


p.nb1e=-1;



}


else if(sar>=50)


{


p.nb50c=-1;






}


else if(sar>=20)


{


p.nb20c=-1;



}



else if(sar>=10)


{


p.nb10c=-1;



}


else if(sar>=5)


{


p.nb5c=-1;



}


else
{
return(0);
}



} while(sar==sr);



}


}



Voici les erreur qu'il rest a la class monnayeur.

Monnayeur.java:17: cannot find symbol
symbol : constructor Coeurmc()
location: class Coeurmc
Coeurmc c = new Coeurmc();
^
Monnayeur.java:19: cannot find symbol
symbol : constructor Stockpiece(Coeurmc)
location: class Stockpiece
Stockpiece p = new Stockpiece(c);
^
Monnayeur.java:152: cannot return a value from method whose result type is void
return(0);
^
3 errors

Merci

Cordialement

A bientôt
0
cs_valckar Messages postés 34 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 30 juin 2006
6 avril 2006 à 11:23
Salut.



Un conseil : Utilise eclipse la complétion, et autres aides à la correction te permette de corriger les erreurs automatiquement.



Laurent
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 20:32
Bonsoir tout le monde

Notre enseignant nous interdit d'utiliser eclipse ou autre pour développer en java.

Cordialement

A bientôt
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 20:38
et pourquoi ?
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 20:45
Rebonsoir

Ca politique est de développer sans facitilité, donc en java on doit tout faire sans facilité.

A+
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 20:54
ca me parait contradictoire de programmer sans facilité en Java...
en plus, je suis sur qu'il a deja eu recours a ce genre d'outil...
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 21:07
Re

Pourtant c'est vrai, c'est ca methode pour enseigner.

Pourriez vous me dire ce que je dois faire pour corriger mes erreurs.

Merci

A+
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 21:15
la classe Coeurmc se trouve dans le meme package que Monnayeur ?
si ce n'est pas le cas, il faut soit que tu ajoute l'import :
import package.package.package.Classe ;
ou alors faire :
package.package.Coeurmc mc = new package.package.Coeurmc()

je te conseille la premiere solution ^^
0
bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
6 avril 2006 à 21:18
Tiens j'ai oublié de dire, je suis sur que l'autocompletion (et autres aides) d'eclipse aurait une bien meilleure pédagogie que celle de ton prof :D
m'enfin jvai pas m'engager dans ce genre de conversation, ca ne respecterai plus le reglement du forum ^^
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 21:24
Re

Toute les class sont dans le même dossier, si c'est ce que tu veux dire par package.

Merci

A+
0
frank_sauvage Messages postés 56 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 9 avril 2006
6 avril 2006 à 21:29
hum hum..bloofi qui critique les profs..bon à savoir ca ;)..



plus serieusement question pedagogie il est indeniable qu'il est
neccessaire pour les etudiants de commencer l'apprentissage de java
sans IDE.

et ce pour les raisons suivantes :

- apprentissage des differents outils liés a java : javac, java etc..

- apprentissage de l'arborescence normalisée java src, class..ainsi que de l'arborescence des packages.

- et pour finir, simplement pour forcer à ecrire le minimum :

package, import, class, public void main, etc..



en dehors de cela, il me semble que c'est quelque peu une perte de
temps à la fois pour l'enseignant et pour l'apprenant que de continuer
a la main passées les 10 premieres heures.



des notions telles que la programation orientée objet, et non
uniquement quelques classes mais bel et bien une application, avec du
polymorphisme sont certainement plus importantes.



il va sans dire que chaque enseignant posséde ses methodes, mais au
dela de cela il convient aux etudiants de s'adapter au mieux. si un
enseignant doit faire face à une centaine d'eleves il n'est pas
possible d'avoir une pedagogie universelle, ou alors si il y'avait un
prix nobel d'enseignement, il faudrait l'attribuer a la personne
l'ayant decouverte.



maintenant, tout depends comment ton enseignant note et ce que tu
cherches, mais dans une entreprise je ne pense pas que l'on te demander
de programmer sous bloc note, mais bel et bien sous eclipse.



et la, le fait d'etre capable d'ecrire 10000 lignes sans erreur à la
main ne servira pas a grand chose. ce qui comptera c'est ta capacité à
analyser un probléme et à le resoudre.



tout est question d'equilibre. donc oui il a raison..mais jusqu'à un certain point :)



Cdlt;

FSA;
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
6 avril 2006 à 21:42
Re

Ca ne me dit pas, se qu'est exactement un package.

J'ai regardé dans mon livre, il ne donne pas de définition claire.

A+
0
Rejoignez-nous