[prog C] expliquez moi ça


dPm

Messages recommandés

[cpp]/*

void AjouterElement(Element *, Liste*);

{

}

*/[/cpp]

Tu déclares la fonction dans ton .h par :

void AjouterElement(Element *, Liste*);

Mais tu ne l'as pas réellement déclaré... même si elle est vide tu dois avoir au minimum (dans un .cpp) :

[cpp]void AjouterElement(Element *, Liste*)

{

}

[/cpp]

Un conseil, les fonctions que tu mets en haut (et dans les .h) doivent être précédées du mot clef "extern", donc :

extern void AjouterElement(Element *, Liste*);

Sinon, c'est quand même mieux de mettre ce genre de pré-déclaration dans des .h...

Lien vers le commentaire
Partager sur d’autres sites

C'est tres classique comme probleme :

* Soit tu as oublie de coder les fonctions en question,

* Soit tu ne compiles pas les fichiers qui les contiennent.

* Soit tu ne lies pas ton executable avec la bibliotheque qui les contient.

PS : c'est qui votre prof de C a l'IPSE ?[/quotemsg]

IPSA :o ^^

ca doit pas être un prof de chez vous... c'est Evelin

EDIT: c'est un .c pas .cpp

ensuite, je viens de marquer extern devant les fonctions, ça marche pas mieux. J'ai tapé ça a la fin du headerM

[cpp]void AjouterElement(Element *,Liste *)

{

printf("KRUT"); //rien pour le moment

}

void EditerListe(Liste *)

{

printf("KRUT"); //rien pour le moment

}

Liste * SupprimerListe(Liste *)

{

printf("KRUT"); //rien pour le moment

}[/cpp]

et ça marche pas plus

Lien vers le commentaire
Partager sur d’autres sites

beh hélas c'est pas si simple...

j'ai l'impression d'un foutage de gueule...

je fais du pas a pas en mettant en quote les fonctions et en les dequotant sur besoin...

jai plus le meme probleme...

Compiling...

TDProg.c

d:\progz\ipsa\tptdinfo\tdprogc\tdliste.h(121) : error C2055: expected formal parameter list, not a type list

Error executing cl.exe.

[cpp]void AjouterElement(Element *,Liste *)

{

printf("TUX"); //rien pour le moment

}[/cpp]

ligne 2 me montre visual c

Lien vers le commentaire
Partager sur d’autres sites

sans la virgule:

Compiling...

TDProg.c

d:\progz\ipsa\tptdinfo\tdprogc\tdliste.h(120) : error C2143: syntax error : missing ')' before '*'

d:\progz\ipsa\tptdinfo\tdprogc\tdliste.h(120) : error C2143: syntax error : missing '{' before '*'

d:\progz\ipsa\tptdinfo\tdprogc\tdliste.h(120) : error C2059: syntax error : ')'

d:\progz\ipsa\tptdinfo\tdprogc\tdliste.h(121) : error C2059: syntax error : '{'

Error executing cl.exe.

Lien vers le commentaire
Partager sur d’autres sites

Bah ouais, faut bien qu'elles aient un nom tes variables... [:darck][/quotemsg]

ben ça te semble logique mais pour moi ça l'est pas forcément hien....

c'est comme la remarque de soldium, c'est ptet trivial pour lui ("pas difficile à comprendre bordel") mais le niveau du cours par rapport au niveau de ce qu'on nous demande là c'est 1 pour 10 quoi...

je sais pas... la prog c'est pas inné [:spamafote]

Lien vers le commentaire
Partager sur d’autres sites

J'préfère des trucs courts, comme ça:

#include //bibliothèques utilisées.

#include

using namespace std;

ifstream fichier("meta1.in"); //ouvre le fichier meta1.in

void lecture (int &H,int &L,double &T) //lit le début du fichier pour connaitre

{ //les dimensions de la matrice d'affichage et le niveau de seuil.

fichier>>H>>L>>T;

cout<<"Hauteur de la matrice :"<

cout<<"Largeur de la matrice :"<

cout<<"Niveau de seuil :"<

}

void vecteur (int &k, double vect[100]) //inscrit les données des charges ponctuelles dans le vecteur vect.

{

for (k=0;k<100 && !fichier.eof(); k++)

fichier>>vect[k];

}

void calcul (int H,int L,double T, int k, double vect[100]) //calcule la charge en chaque point

{ //et s'occupe d'afficher les * ou les blancs.

double a,b,c;

double save;

vecteur (k,vect);

for (double y=0;y

{ //de la matrice.

for (double x=0;x

{

save=0; //on réinitialise save pour chaque point.

for (int i=0;i

{ a=vect; //calcule la charge en chaque point.

b=vect[i+1];

c=vect[i+2];

save=save + c/((x-a)*(x-a) + (y-B)*(y-B));

}

if (save >= T) //compare à T et affiche une étoile si nécessaire.

cout<<"*";

else cout<<" ";

}

cout<

}

}

int main() //corps du programme appellant les fonctions.

{

int H,L,k;

double T,vect[100];

lecture (H,L,T);

calcul (H,L,T,k,vect);

}

Au moins c'est pas casse tête :P

EDIT: fock le passage Scite => dev c++ qui fait buguer les accents et qques trucs dans l'allignement :P

Lien vers le commentaire
Partager sur d’autres sites

ben ça te semble logique mais pour moi ça l'est pas forcément hien....

c'est comme la remarque de soldium, c'est ptet trivial pour lui ("pas difficile à comprendre bordel") mais le niveau du cours par rapport au niveau de ce qu'on nous demande là c'est 1 pour 10 quoi...

je sais pas... la prog c'est pas inné [:spamafote][/quotemsg]

si si.. Chu allé à mon partiel de pascal les mains dans les poches et chu ressorti 20 minutes plus tard mort de rire ^^

Bon par contre les maths hier soir je rigolais beaucoup moins

Lien vers le commentaire
Partager sur d’autres sites

J'préfère des trucs courts, comme ça:

#include //bibliothèques utilisées.

#include

using namespace std;

ifstream fichier("meta1.in"); //ouvre le fichier meta1.in

EDIT: fock le passage Scite => dev c++ qui fait buguer les accents et qques trucs dans l'allignement :P[/quotemsg]

Ca plus la gueule du C que du C++

En C++ tu n'utilises généralement pas les ifstream pour la gestion des fichiers...

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement