Exam d'info, Help

Exam d'info, Help - C - Programmation

Marsh Posté le 18-06-2007 à 14:27:43    

Salut ! désolé du dérangement, mais j'ai eu un exam a la fac, et en fait, on as pas eu la lecon dessus :(
c'est sur les Listes en "C".
Donc si quelqun pouvais m'expliquer un peut ou m'aider vite fait a faire l'exo, ça me permetrait de bien le capter pour la repeche (saletée xD)
 
Voila l'exam :
 
Questions :

Citation :


Implémentez la fonction initListe qui initialise la liste à NULL ;
Implémentez la fonction afficheListe qui affiche les éléments de la liste;
Ecrire la fonction ajouteDebut qui ajoute un élément en début de la liste;


 
Code :

Citation :


typedef struct ptelement
{ int             valeur ;
  ptelement    *suivant ; } element ;
 
typedef struct
{ element      *debut ; } Liste ;
 
void initListe (Liste * MaListe) { . . . };
void afficheListe (Liste * MaListe) { . . . };
void ajouteDebut (Liste * MaListe, int val) { . . . };
 
int main
{ Liste            MaListe ;
   initListe (&MaListe) ;
   ajouteDebut (&MaListe, 6) ; ajouteDebut (&MaListe, 4) ;
   afficheListe (&MaListe); } ;


 
 
 
 
 
Merci d'avance !
 
PoPoV

Reply

Marsh Posté le 18-06-2007 à 14:27:43   

Reply

Marsh Posté le 18-06-2007 à 14:28:51    

ben vas y, fait :)


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 18-06-2007 à 14:30:29    

Google/Listes chainées


---------------
Töp of the plöp
Reply

Marsh Posté le 18-06-2007 à 14:33:36    

salut !
 
@zecrazytux : pas comprit xD
@_darkalt3_ : j'ai déja regarder, et je doit avouer, c'est assé flou :(
 
si je demande une petite correction c'est pour permetre de bien comprendre sur cet exemple auquel j'ai été confronter en exam
 
Merci d'avoir répondu vite
 
PoPoV

Reply

Marsh Posté le 18-06-2007 à 14:35:30    

marcuspopov a écrit :

salut !
 
@zecrazytux : pas comprit xD
@_darkalt3_ : j'ai déja regarder, et je doit avouer, c'est assé flou :(
 
si je demande une petite correction c'est pour permetre de bien comprendre sur cet exemple auquel j'ai été confronter en exam
 
Merci d'avoir répondu vite
 
PoPoV


Correction implique que tu proposes une solution qui sera corrigée.


---------------
Töp of the plöp
Reply

Marsh Posté le 18-06-2007 à 14:38:13    

je vai essayer de poster un truc mais bon, ça va pas aller loin ^^
si quelqun a une reponse au probleme ça peut aider, merci !
 
PoPoV (mode completement a l'ouest sur ce cour)

Reply

Marsh Posté le 18-06-2007 à 14:48:08    

Nan mais c'est écrit dans les règles, personne fera ton exo à ta place, mais il sera corrigé si tu fais une proposition et que tu y mets du tiens.


---------------
Töp of the plöp
Reply

Marsh Posté le 18-06-2007 à 14:53:00    

initListe (Liste * MaListe) {
ptelement=debut;
 
return NULL;
}
 
afficheListe (aucune idee)
 
ajouteDebut (Liste *MaListe, int val) {
 
nouveau =  (element*) malloc (sizeof (element) ) ;
 
if ( nouveau !=NULL){
nouveau->suivant=debut;
nouveau->debut=val;
}
 return debut;
}
 
edit : voila mon code, j'ai essayer avec un tuto que jai trouver sur le net , je sait, ça donne pas grand chose
 
@_darkalt3_ : pas de soucis :) de toute facon, il faut que je comprenne donc autant marquer tout mon possible


Message édité par marcuspopov le 18-06-2007 à 14:54:07
Reply

Marsh Posté le 18-06-2007 à 14:58:21    

Compile et teste ça.


---------------
Töp of the plöp
Reply

Marsh Posté le 18-06-2007 à 15:13:21    

tout bug :(

Reply

Marsh Posté le 18-06-2007 à 15:13:21   

Reply

Marsh Posté le 18-06-2007 à 15:54:51    

Messages d'erreur ?
Arme toi de la doc pour tenter de les comprendre.


---------------
Töp of the plöp
Reply

Marsh Posté le 18-06-2007 à 16:20:55    

@_darkalt3_ :
voila ce que ça donne :
 

Citation :


Compilateur: Default compiler
Exécution de  gcc.exe...
gcc.exe "C:\Dev-Cpp\main.c" -o "C:\Dev-Cpp\main.exe"    -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"  
C:\Dev-Cpp\main.c:6: error: syntax error before "ptelement"
C:\Dev-Cpp\main.c:6: warning: no semicolon at end of struct or union
C:\Dev-Cpp\main.c:6: warning: data definition has no type or storage class
C:\Dev-Cpp\main.c:9: error: syntax error before "element"
C:\Dev-Cpp\main.c:9: warning: no semicolon at end of struct or union
 
C:\Dev-Cpp\main.c:9: warning: data definition has no type or storage class
C:\Dev-Cpp\main.c: In function `main':
C:\Dev-Cpp\main.c:15: error: `MaListe' undeclared (first use in this function)
C:\Dev-Cpp\main.c:15: error: (Each undeclared identifier is reported only once
C:\Dev-Cpp\main.c:15: error: for each function it appears in.)
 
C:\Dev-Cpp\main.c: At top level:
C:\Dev-Cpp\main.c:23: error: syntax error before '*' token
C:\Dev-Cpp\main.c: In function `initListe':
C:\Dev-Cpp\main.c:24: error: `ptelement' undeclared (first use in this function)
C:\Dev-Cpp\main.c:24: error: `debut' undeclared (first use in this function)
C:\Dev-Cpp\main.c:26: warning: return makes integer from pointer without a cast
C:\Dev-Cpp\main.c: At top level:
C:\Dev-Cpp\main.c:30: error: syntax error before '*' token
 
C:\Dev-Cpp\main.c: In function `ajouteDebut':
C:\Dev-Cpp\main.c:32: error: `nouveau' undeclared (first use in this function)
C:\Dev-Cpp\main.c:32: error: syntax error before ')' token
C:\Dev-Cpp\main.c:35: error: `debut' undeclared (first use in this function)
 
Exécution terminée
 


 
Donc j'en déduit sertaines variables pas déclaré, mais appart ça, je ne voi aucune erreur :s
dailleur, comment faire pour que ces variables qui sont pourtant déclaré avant, soit reconnue?
 
exemple ici :
 
typedef struct ptelement  
{ int  valeur ;
  ptelement    *suivant ; }element ;
 
jai ce message d'erreur :  

Citation :


C:\Dev-Cpp\main.c:6: error: syntax error before "ptelement"
C:\Dev-Cpp\main.c:6: warning: no semicolon at end of struct or union
C:\Dev-Cpp\main.c:6: warning: data definition has no type or storage class
C:\Dev-Cpp\main.c:9: error: syntax error before "element"
C:\Dev-Cpp\main.c:9: warning: no semicolon at end of struct or union
 
C:\Dev-Cpp\main.c:9: warning: data definition has no type or storage class


 
voila :(
j'ai vraiment l'air d'un con mdr ça m'énerve, en plus faudrais que je comprenne bien pour ma repeche...
 
PoPoV

Reply

Marsh Posté le 18-06-2007 à 17:10:24    

Arme-toi également d'un dictionnaire d'anglais.

Reply

Marsh Posté le 18-06-2007 à 21:27:25    

je comprend ce que ça veu dire, mais je trouve pas les erreur, par exemple : erreur avant tel truc...probleme, je trouve pas le probleme :(
 
voila :(

Reply

Marsh Posté le 18-06-2007 à 21:49:39    

marcuspopov a écrit :

je comprend ce que ça veu dire, mais je trouve pas les erreur, par exemple : erreur avant tel truc...probleme, je trouve pas le probleme :(
 
voila :(


 
Le problème d'une erreur de syntaxe, c'est que si tu fais une erreur en ligne 12, le compilo ne la comprned pas, il croit que la ligne n° 13 sera la suite et comme il ne pipe plus rien il s'arrête et te met "erreur ligne 13" alors qu'il faut aller regarder ligne 12.
 
De plus, si une ligne importante (par exemple une définition de fonction) est pas comprise, la fonction n'est pas définie et le compilo ne pipe plus rien aux 40 lignes suivantes. Tout ça pour dire que quand tu as une tétra chiée d'erreurs, regarde la PREMIERE, corrige-la et recompile. Ca peut te libérer d'un coup une grosse partie des suivantes...
 
Voici ton code. Regarde mes commentaires

initListe (Liste * MaListe) {
    ptelement=debut;
    return NULL;
}
// Erreur => Ta fonction n'a pas de type - D'où sort cette variable "ptelement" ???
 
afficheListe (aucune idee)
// Tu initialises une boucle avec un pointeur sur le premier élément
// Tu affiches cet élément et si cet élément n'est pas le dernier (pt->suivant != NULL), alors tu places ton pointeur sur le suivant et redo
 
ajouteDebut (Liste *MaListe, int val) {
 
     nouveau =  (element*) malloc (sizeof (element) ) ;
 
     if ( nouveau !=NULL){
        nouveau->suivant=debut;
        nouveau->debut=val;
    }
     return debut;
}
// Ici aussi faut un type à ta fonction - Accessoirement déclarer ses variables serait un plus...


 
PS: On ne se met pas au C la veille d'un exam...


Message édité par Sve@r le 18-06-2007 à 21:52:15

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 19-06-2007 à 13:24:57    

marcuspopov a écrit :

Salut ! désolé du dérangement, mais j'ai eu un exam a la fac, et en fait, on as pas eu la lecon dessus , c'est sur les Listes en "C".


http://www.siteduzero.com/tuto-3-9 [...] inees.html

 

Message cité 1 fois
Message édité par _Reggae_ le 19-06-2007 à 13:25:14
Reply

Marsh Posté le 20-06-2007 à 22:01:30    


 
 
+1 très bon tuto, jlai suivi en début d'année ça m'a donné un avantage certain en cours de C niveau liste (files, piles, arbres).

Reply

Marsh Posté le 20-06-2007 à 22:05:27    

Reply

Marsh Posté le 21-06-2007 à 13:17:55    


Ah tien, j'avais pas vu que Emmanuel avais terminer sa page sur les listes chainees ...
 

Reply

Marsh Posté le 02-08-2007 à 15:28:13    

merci beaucoup, désolé du retard de votre message !
merci ça ma bc aider pour les exams !

Reply

Marsh Posté le 02-08-2007 à 18:06:06    

marcuspopov a écrit :

merci beaucoup, désolé du retard de votre message !
merci ça ma bc aider pour les exams !


Tiens ? Un revenant...  :bounce:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed