Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
551 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Souci avec un code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Souci avec un code

n°1466794
Zoltan87
Posté le 29-10-2006 à 10:55:55  profilanswer
 

Bonjour a tous,
j'ai un petit souci avec ce code; je vous explique:
j'aimerais avec le code suivant inscrire des candidats d'une epreuve sportive avec leur performance, j'ai donc creer une structure candi pour le candidat avec le nom et le numero de dossard et un structure Arrive qui rentre les performance (numero de dossard avec le temps realise). Concernant cette organisation, ce n'est surement pas la meilleure mais elle fonctione :).La ou cela coince c'est a l'invite d'un numero de dossard, j'entre le n° puis jai une invite pour entrer un temps, le seul hic c'est que je voudrais que lorsque j'entre un numero de dossard ui a deja ete classé (dans Arrive[i].doss) et bien que ca me dise DEJA INSCRIT.. et ca j'y arrive pas.
A propose des variables, nbp est le nombre de candidat au total (a savoir 20 maximum), et nbs est le nombre de personnes deja classées dans Arrive.
 
 
 do
 {
   
  if(dossardlu > nbp || dossardlu<1)
  {
   printf("AUCUN INSCRIT\n" );
   system("pause" );
  }
  else
  {
   j=0;
   for(i=0 ; i<=nbs ; i=i+1)
   {
    if(dossardlu==Arrive[i].doss)
    j=1;  
   }
   if (j == 0)
   {
    printf("ENTREZ LE TEMPS REALISE\n" );
    scanf("%f",&tpslu);
    Arrive[nbs].tps=tpslu;
    nbs=nbs+1;
    if(tpslu == 0)
     printf("%d %s %s DISQUALIFIE\n",dossardlu,Candi[dossardlu-1].nom,Candi[dossardlu-1].nat);
    else
     printf("%d %s %s %.2f\n",dossardlu,Candi[dossardlu-1].nom,Candi[dossardlu-1].nat,tpslu);
   }
   else
   {
    printf("DEJA INSCRIT\n" );
    system("pause" );
   }  
   
   
  }
 printf("ENTREZ LE NUMERO DE DOSSARD\n" );
 scanf("%d",&dossardlu);
 }
 
Merci de votre aide

Message cité 1 fois
Message édité par Zoltan87 le 29-10-2006 à 11:03:18
mood
Publicité
Posté le 29-10-2006 à 10:55:55  profilanswer
 

n°1466802
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-10-2006 à 11:12:18  profilanswer
 

[Merci de lire les règles du forum et d'apprendre à utiliser les balises code.]

Zoltan87 a écrit :

j'aimerais avec le code suivant inscrire des candidats d'une epreuve sportive avec leur performance, j'ai donc creer une structure candi pour le candidat avec le nom et le numero de dossard et un structure Arrive qui rentre les performance (numero de dossard avec le temps realise). Concernant cette organisation, ce n'est surement pas la meilleure mais elle fonctione :).La ou cela coince c'est a l'invite d'un numero de dossard, j'entre le n° puis jai une invite pour entrer un temps, le seul hic c'est que je voudrais que lorsque j'entre un numero de dossard ui a deja ete classé (dans Arrive[i].doss) et bien que ca me dise DEJA INSCRIT.. et ca j'y arrive pas.


Ca ne me parait pas très difficile.
 
C'est une simple recherche de doublon.
 
Ce qu'il faut faire, c'est une saisie 'provisoire' des données (qui ne modifie pas la base), puis une vérification de l'existence (il suffit de parcourir les données existantes dans la base), puis, selon le résultat, une confirmation des données en les ajoutant à la base, sinon l'affichage du message d'erreur "Dejà inscrit".
 
Ces quelques lignes s'appellent "algorithme textuel". Elles sont la base de l'organisation de ton code.
 
On peut maintenant traduire en pseudo-code de la façon suivante :  


BEGIN
; saisie 'provisoire' des données (qui ne modifie pas la base),  
 
   saisie(data)
 
; vérification de l'existence (il suffit de parcourir les données existantes dans la base),  
 
   IF is_in (base, data.element)
; selon le résultat, une confirmation des données en les ajoutant à la base,  
 
      ajoute (base, data)
 
   ELSE
; sinon l'affichage du message d'erreur "Déjà inscrit".
 
    affiche ("Déjà inscrit" )
 
   ENDIF
END


etc. En raffinant on fini par arriver au code C...


Message édité par Emmanuel Delahaye le 29-10-2006 à 11:14:15

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1466807
Zoltan87
Posté le 29-10-2006 à 11:36:01  profilanswer
 

Merci beaucoup !
Mais pouvez-vous m'expliquer ce que vous entendez par saisie 'provisoire' des données ?
Est-que cela pourrait aller ?
 
for(i = 0; i < nbs && (dossardlu - 1 < nbp) && (Arrive[i].pers != dossardlu -1); i = i + 1); // dossard déjà inscrit ou inexistant ?  
if(i == nbs) enregistrement
sinon "deja inscrit"  

n°1466809
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-10-2006 à 11:45:43  profilanswer
 

Zoltan87 a écrit :

Mais pouvez-vous m'expliquer ce que vous entendez par saisie 'provisoire' des données ?


Dans une variable locale.

Citation :


Est-que cela pourrait aller ?
 
for(i = 0; i < nbs && (dossardlu - 1 < nbp) && (Arrive[i].pers != dossardlu -1); i = i + 1); // dossard déjà inscrit ou inexistant ?  
if(i == nbs) enregistrement
sinon "deja inscrit"

C'est pas hyper clair comme présentation...


   for (i = 0; i < nbs  
            && (dossardlu - 1 < nbp)  
            && (Arrive[i].pers != dossardlu -1);  
            i = i + 1) // dossard déjà inscrit ou inexistant ?  
      if (i == nbs)  
         enregistrement
      sinon  
         "deja inscrit"


Pour éviter ce genre d'écriture gore, j'avais suggéré d'écrire une fonction de recherche...
 
J'ai l'impression de parler dans le vide...


Message édité par Emmanuel Delahaye le 29-10-2006 à 11:46:20

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Souci avec un code

 

Sujets relatifs
Probleme avec un code....WHERE '20710012541' LIKE concat(code,'%')
appel d'une fonction dans un lien html dans un code phpsouci exel 2002
pb pseudo frame depuis code php[Résolu]Activer le code html sur un forum ? (et le desactiver ici lol)
message d'alerte depuis code php[C] Lecture du code d'une touche appuyée
Je ne comprend pas ce code....[Visual Studio] Ré-indenter le code
Plus de sujets relatifs à : Souci avec un code


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR