begin process at 2012 02 12 19:38:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

conversion de type de donnee


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

conversion de type de donnee

jeudi 21 juillet 2005 à 18:16:04 | conversion de type de donnee

romca

Voilà, je n'arrive pas a compilé une unité (energie.cpp) sous Borland Builder 6. Le debugger m'indique plusieurs erreurs de "symbole non defini" sur 2 variables dans un méthode, pourtant j'ai bien déclaré les variables auparavant et j'ai pas d'erreurs de syntaxe.
Je pense que c'est du a ce que dans les expressions, 2 types de donnees sont utilisees, "float" et "int". Est cela le pbm? Si oui comment pourrais je faire pour le regler en convertissant le type de variable. Voici le prog .
Il y a deux fiches "energie.h"(Declaration de la classe) et energie.cpp(les methodes). J'ai mis en rouge les lignes de codes ou il y a une erreur. Merci a vous.

//--------------------Déclaration de classe Energie------------------------------------------------------
#ifndef EnergieH
#define EnergieH
//--------------------------------------------------------------------------

#include "coeur.h"

//---------------------------------------------------------------------------
const int MaxDispo=1000;
const int apportMaxPulse=150;
const int puissFVitales=100;

const int limStresser=30;  // Joules non consommées
const int limCalmer=60;

const int pourcentStresser=-10; //actions de regulation
const int pourcentCalmer=2;

const float rendementMuscles=0.5;

//--------------------------------------------------------

class coeur;  //declaration incomplete.
              //On est oblige car il existe un pointeur
              //de la classe Energie vers la classe coeur (monCeour). Donc on est
              //obligé de declarer la classe coeur avant la classe energie

class Energie
{
        private:
                coeur *monCoeur; //Pointeur sur la classeCoeur
                int dispo;     //Joules.Energie immediatemment dispo
                int PuissanceDemandee;  //Watts
                int PuisssanceFournie;  //Watts

        public:
                __fastcall Energie(coeur*); // ?
                void __fastcall majPuissanceDemandee(int puiss);
                int __fastcall lectPuissanceFournie();
                void apportPulse(int duree);
};




//------------------Methodes de Energie-----------------------------------------------

#endif
#pragma hdrstop
#include <iostream.h> //Pour fonction "cout "

#include "Energie.h"

#pragma package(smart_init)

//-----------Constructeur Energie-----------------------------------------

__fastcall Energie::Energie(coeur* pc)
{
        monCoeur=pc;
        dispo=MaxDispo;
        PuissanceDemandee=0;  //Watts
        PuisssanceFournie=0;
      
}

//---------Methode majPuissanceDemandee--------------------------------------

void __fastcall Energie::majPuissanceDemandee(int puiss)
{
        PuissanceDemandee=puiss;
}

//-------------Methode apportPulse--------------------------------------------

void __fastcall apportPulse(float duree)
{
        int surplusApport;
       
 //retrait de la consommation durant la duree (en ms)

        dispo=dispo-(duree*puissFVitales); //erreur 2451 symbole "dispo" non defini
   //J'ai essayé avec dispo=dispo-(duree*(float)puissFVitales) mais idem. "duree" est une variable de type float.    

if (dispo>(duree*PuissanceDemandee)/rendementMuscles)erreur 2451 symbole "PuissanceDemandee" non defini

        {
                //On dispose de suffisamment d'energie
                dispo=dispo-(duree*PuissanceDemandee/rendementMuscles);
                PuissanceFournie=PuissanceDemandee;////Symbole PuissanceFournie non defini
        }
        else
        {
                //On ne dispose pas de suffisamment d'energie
                PuissanceFournie=dispo*rendementMuscles/duree;                 
               dispo=0;
        }

 //Ajout de l'energie apportee dans la limite de maxDispo

 if((dispo+apportMaxPulse)<MaxDispo)
        {
        dispo=dispo+apportMaxPulse;
        surplusApport=0;
        }
        else
        {
        dispo=MaxDispo;
        surplusApport=dispo+apportMaxPulse-MaxDispo;
        }

 //Regulation

 if(surplusApport<limStresser) monCoeur->MajTempo(pourcentStresser);//Symbole monCoeur non defini
 if(surplusApport>limCalmer) monCoeur->MajTempo(pourcentCalmer);

 //Ecriture temporaire

 cout<<"Puissance Fournie: "<<PuissanceFournie<<"Energie dispo: "<<dispo<<endl;

}

jeudi 21 juillet 2005 à 19:10:05 | Re : conversion de type de donnee

D1m3x

Salut,
le problème vient tout simplement parce que tu implémentes mal la fonction apportPulse ...

apportPulse étant déclaré dans la classe Energie, mais lors de l'implémentation tu ne le spécifie pas ! :
void __fastcall apportPulse( float duree )
{

Doit être remplacer par:
void __fastcall Energie::apportPulse( float duree )
{
 // ...
}

Etant donné que dispo est déclaré dans Energie et que tu n'as pas spécifié la class Energie c'est normal que le compilateur ne connaisse pas dispo vu qu'il ne cherche pas dans espace de déclaration de la classe :)

:.: [DmXx] [#eX-Concept @ QNet] :.:
jeudi 21 juillet 2005 à 19:31:27 | Re : conversion de type de donnee

romca

Ok merci beaucoup j'ai vu, je suis resté 1 heure la dessus...J'ai même pas vu.......je me suis obstiné sur les variables...vraiment degouté!
Par contre etant donne que la variable "duree" est de type "float" et que la variable dispo est de type "int", comment est ce possible de faire des calculs avec 2 types differents de variables sans les convertir?
Il me reste l'erreur de compil à la ligne PuissanceFournie=PuissanceDemandee;////Symbole PuissanceFournie non defini.
J'ai cherché..je vois encore pas?
Aurais tu une idée?
Merci.
jeudi 21 juillet 2005 à 23:05:37 | Resolu : conversion de type de donnee

romca

Encore désolé, j'ai mis 3 "s" dans la déclaration de "PuissanceFournie".
Merci.
A+


Cette discussion est classée dans : int, dispo, coeur, duree, energie


Répondre à ce message

Sujets en rapport avec ce message

Aide pour mega debutant [ par C++ ] Salut, bon alors je vien d ouvrir c++ mais comment mettre un code sur un boutton ???par exemple ce code comment je doits le mettre sur un bouton :int Problème de "pression de touches" [ par Quiske ] Bonjour tout le monde , je suis un programmeur débutant jeune 14 - 15 ans qui a un problème :Je voudrais dire a l'ordinateur que j'appuie sur une tou Help Debutant [ par Kaouane ] Salut,je voudrais juste savoir les erreurs qu'il y'a dans ce programme qui vam e servir a retenir les syntaxe d'une classe:#include class addition{int Heeeelp .... [ par Guillaume ] J'ai ca : (programme tres simplifié ... bien sur ...)#include #include class TMAC { public: void getVAR();};void TMAC::getVAR() { printf("%d\n",Ai); Pourquoi ca marche pas, c'est tout bete pourtant ! [ par Coyito ] SalutQuand je fais avec VC6:int *b;b= 7992060;(je veux que b pointe sur l'adresse mémoire 7992060)J'ai une erreur : error C2440: '=' : cannot convert [debutant] Simple mais comment faire [ par Coyito ] bonjourj'ai dans mon prgint *b;b est un pointeur vers un int, comment puis connaitre la valeur de cet int sans modifier le programme en amont ???Merci int to char ! [ par nullspace ] Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6 Variable int sur le disque... [ par nullspace ] Je cherche à enregistrer et lire sur le disque par ofstream et ifstream à partir de variables de type int.Seulement il m'écrit sous format texte.En vb Liste des propriétés/fonctions d'une librairie disponible???? [ par nullspace ] Oui je voulais savoir s'il y avait un moyen de connaitre toutes les propriétés et fonction disponible d'une librairie, genre un utilitaire...Par exemp gestion energie. [ par ZOPIO ] Salut à tousJ'aimerais savoir si il est possible en C++ de récuperer l'état de de charge de la batterie d'un portable! ou mieux avoir la possibilité d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,900 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales