Accueil > Forum > > > > Parametres=> Variables
Parametres=> Variables
mercredi 5 décembre 2007 à 19:38:51 |
Parametres=> Variables

Math1004
|
En bref je voudrais pouvoir me servir d un parametre de variable en tant que variable , ou je ne sais trop quel solution :
Exemple : Je possede une structure ou il y a le nom et le prenom . Je souhaite effectué un affichage par ordre alphabetique soit par nom soit par prenom . Etant donné que l algo a effectué est le meme je voudrais pouvoir avoir une fonction "generique" . ( je sais pas trop comment m expliqué :s )
je voudrais obtnir quelque chose du type :
void affichageTrié( Personne , Mot ) { printf("%s", Personne[1].Mot); // Selon le mot il accede a MaStructure[i].Nom ou MaStructure[i].Prenom }
int main( ) {
affichageTrié(MaStructure , "Nom" ) // pour faire un affichage trié par Nom affichageTrié(MaStrucutre, "Prenom") // pour faire un affichage trié par Prenom avec la meme fonction
}
Voila j espere que c est plus clair avec ca . Je veux pas d explication pour faire l algorithme de tri ( globalement je vois comment faire sans trop de probleme ). Merci pour votre aide :)
|
|
mercredi 5 décembre 2007 à 19:42:23 |
Re : Parametres=> Variables

Math1004
|
Bon je trouve pas comment edité donc bon ^^ dans le main ( ) c est pas vraiment MaStructure c est plutot MonTableauDeStructure . ( Ptite precision pour essayé de rendre comprehensible au maximum ce que je veux ^^ )
|
|
mercredi 5 décembre 2007 à 19:54:09 |
Re : Parametres=> Variables

Neo_Fr
|
C'est impossible de faire ce que tu fais..
Fait plutot comme ca:
#define NOM 1
#define PRENOM 2
typedef struct _mastruct
{
char* Nom;
char* Prenom;
}MASTRUCT, *LPMASTRUCT;
void affichageTrie(LPMASTRUCT lpMaStruct, int Membre)
{
switch(Membre)
{
case NOM:
printf("%s", lpMaStruct->Nom);
break;
case PRENOM:
printf("%s", lpMaStruct->Prenom);
break;
}
}
int main(void)
{
MASTRUCT MaStruct;
MaStruct.Nom = "Mon Nom\0";
MaStruct.Prenom = "Mon Prenom\0";
affichageTrie(&MaStruct, NOM);
affichageTrie(&MaStruct, PRENOM);
system("PAUSE");
return 0;
}
Neo_Fr
|
|
mercredi 5 décembre 2007 à 20:09:33 |
Re : Parametres=> Variables

Math1004
|
oui je c est que ca ne marche pas ce que j ai ecrit. C'etait pour essayer d explique ce que je veux faire .
En gros j ai fait une fonction qui tri tous les gens de mon tableau de structure par nom et qui m affiche par ordre alphabetique de nom la strucutre entiere . Puis une seconde fonction qui affiche mon tableau de structure par ordre alphabetique de prenom de la strucutre entiere .
En gros si j ai la 1ere personne qui s appelle Pierre Aad et la 2eme personne qui s appelle Paul Brrih.
Quand j appel ma fonction qui tri par nom elle va m ecrire Pierre Aad puis Paul Brrih . Et si j appelle ma fonction qui tri par prenom elle va m ecrire Paul Brrih puis Pierre Aad . Le truc c que l algorithme c est exactement le meme pour le nom et le prenom . La seul chose qui change c est que mes conditions sur la 1ere fonction porte sur MaStructure.Nom et la 2eme sur MaStrucutre.Prenom . Donc je cherche un moyen pour passé un parametre a la fonction et que ma fonction travaille sur MaStructure.X ou X serait le parametre que je lui donne . Voila j essaye d etre clair mais c pas facil :s
|
|
mercredi 5 décembre 2007 à 20:13:59 |
Re : Parametres=> Variables

Neo_Fr
|
Je comprend pas ou est ton pb, tu as juste a passer un pointeur a ta fonction, ainsi tu pourras acceder a tt les membres de ta structure depuis ta fonction.
Neo_Fr
|
|
mercredi 5 décembre 2007 à 20:59:10 |
Re : Parametres=> Variables

Math1004
|
Non mais le probleme n est pas pour accedé a ma structure . En gros pour le moment j ai une fonction qui s appelle affichageTriNom et une fonction affichageTriPrenom. La premiere fais des tris selon les valeurs de MaStruct[i].Nom et la 2eme selon les valeurs de MaStruct[i].Prenom . Mais effectué un tri alphabetique que se soit pour le nom ou le prenom c exactement le meme algorithme en faite c est juste le champ de ma structure qui est different . Donc ce que je voudrais faire pour allegé mon code c de reussir a faire passé un parametre qui indique si je fais mon tri sur le nom ou prenom du genre je te passe X et tu travail sur MaStruct[i].X où X est soit le nom si je lui ai fourni le nom soit le prenom si je lui fourni le prenom en parametre . Voila j espere etre clair cette fois ci
|
|
mercredi 5 décembre 2007 à 23:54:44 |
Re : Parametres=> Variables

julienbj
|
Regarde du côté de offsetof. C'est une macro qui te donne l'offset d'un membre de ta structure. Tu pourrais faire un truc du genre (dans l'idée): typedef struct { char *nom; char *prenom; } PERSONNE; void display(PERSONNE *pers, int offset) { char *item; item = *((char**) (((int) pers) + offset)); printf("%s\n", item); } void main(void) { PERSONNE foo = {"Test", "Un Deux Trois"}; display(&foo, offsetof(PERSONNE, nom); display(&foo, offsetof(PERSONNE, prenom); } Pour la fonction de tri, ben c'est la même chose. --Vive le CDéveloppeur hard/soft pour AGILiCOM Savon
|
|
jeudi 6 décembre 2007 à 19:28:22 |
Re : Parametres=> Variables

Math1004
|
__offsetof__ was not declared in this scop :s j ai recopier ce que tu a mis en incluant #include <stddef.h> #include <stdio.h> et cela ne marche pas :-( deja que je n ai jamais fait/utilisé de macro :s la me sors une erreur que je ne comprend meme pas :(
|
|
jeudi 6 décembre 2007 à 22:08:45 |
Re : Parametres=> Variables

julienbj
|
#define offsetof(s,m) (size_t)&(((s *)0)->m) Sinon, peux-tu me dire sous quel environnement tu travailles. --Vive le CDéveloppeur hard/soft pour AGILiCOM Savon
|
|
jeudi 6 décembre 2007 à 22:40:56 |
Re : Parametres=> Variables

julienbj
|
Oups... Il y a une erreur dans le code que je t'ai mis ci-dessus: void main(void) { PERSONNE foo = {"Test", "Un Deux Trois"}; display(&foo, offsetof(PERSONNE, nom)); //Manquait une ) display(&foo, offsetof(PERSONNE, prenom)); //Manquait une ) }
Testé sous VS2005 express, et VS6, pas de problème --Vive le CDéveloppeur hard/soft chez AGILiCOM Savon
|
|
Cette discussion est classée dans : mot, affichage, trop, prenom, affichagetrié
Répondre à ce message
Sujets en rapport avec ce message
Affichage trop rapide [ par malik7934 ]
Hello,Je reviens à la charge avec une question que j'ai déjà posé mais pour laquelle j'ai pas eu de réponse qui me permette de progresser...Mon prog f
trop besoin d'aide ! je ny arrive pas [ par flowneo ]
bonjour, pouvez vous m'aider ? en faite j'ai un programme à faire, un programme qui doit dire si les lettres d'un mot sont bien placé ou pas par rapp
jeu motus: affichage du mot tapé [ par janyoura ]
J'ai besoin de faire l'affichage du mot tapé par l'utilisateur dans les cases correspondantes, chaque lettre dans une case de la matrice. j'ai pris ex
affichage trop rapide [ par malik7934 ]
Hello,J'ai un prog qui affiche dans une editbox les calculs qu'il fait (verbose). J'emploie la méthode suivante: strcat((char*)verboseText,"TEXTE A A
display font / affichage de font [ par buno ]
Hello!I'm a developper in a software kernel team and I have to display Unicode character on a mobile screen using font file.How do to this properly?Th
Pb d'affichage de bitmap avec Visual C++ 6.0 [ par nick92 ]
Bonjour,J'ai un petit soucis, je crée une fenêtre de login avec sur la gauche un dessin bitmap, dans la partie creation des ressources du compilateur,
programme curseur [ par bassemamara1984 ]
bonjour dans mon programme je veut afficher des image alors j'ai charger 4 image pour faire apparaitre un carré sur mon programme vous saver que pour
analyseur lexical en C [ par janyoura ]
salut je suis chargée de faire un analyseur lexical développé en langage C, j'arrive pas à faire un plan pour mon travail, les principaux structures
exercice d'algo [ par Mjblue ]
int chainehsrd( int i; int N; char Mot=''; char Mot[255]; int E=97; char L=(char)E) { for (i=0; i< char Mot[255]-1; i++)
Affichage de temperature par 16F877 [ par hasnipsr700 ]
Salut, je veux afficher(par PIC 16F877) la température de 4 sondes LM35 sur un afficheur lcd, la premiere ligne indique la sonde et la deuxieme ligne
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|