IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Gestion des ex-aecos


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 108
    Par défaut Gestion des ex-aecos
    Bonjour

    Bon voila mon dernier soucit (enfin normalement mon dernier)

    c'est pour la gestion des execos

    en effet si 2 ou plus eleves on la même moyenne pour ne pas en pénaliser 1 on lui le même numéro de places

    donc se que j'ai fait :
    ps: dsl cl@udius j'ai touché à ton si beau code pardonneeeeee moiiiiii ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i :integer;
      cal1,cal2,cal3,resul: double;
      NbNotes: Integer;
    const
      COL_N1 = 5;
      COL_N2 = 6;
      COL_N3 = 7;
      COL_TOT = 9;
      COL_MOY = 11;
    begin
      with TEleve do
      begin
        for i := 1 to RowCount-1 do
        begin
          // Nombre de notes de l'élève
          NbNotes := 0; cal1 := 0; cal2 := 0; cal3 := 0;
          if TryStrToFloat(Cells[COL_N1, i], cal1) then Inc(NbNotes);
          if TryStrToFloat(Cells[COL_N2, i], cal2) then Inc(NbNotes);
          if TryStrToFloat(Cells[COL_N3, i], cal3) then Inc(NbNotes);
     
          // Si NbNotes alors elève 'absent'
          if (NbNotes < 3) then
            begin
              televe.Cells[9,i]:= 'abs';
              televe.Cells[11,i] := '0';
            end
          else
            begin
              resul := cal1+cal2+cal3;
              televe.Cells[COL_TOT,i]:=  Format('%2.2f', [resul]);
              televe.Cells[COL_MOY,i] := Format('%2.2f', [resul/NbNotes]);
     
              if televe.Cells[COL_TOT,i] = televe.Cells[COL_TOT,i +1] then
              televe.Cells[1,i] := inttostr (i - 1);
            end;
        end;
      end;
    end;
    j'ai juste rajouté le if tout en bas.
    et donc ca me le fait bien met seulement pour 2 personnes si j'ai 4 execos ca me le fait pour les 2 premiers seulement.

    donc moi je voudré si on a 1,2,3,4,4,4,4,5,6,7,8,8,9,10

    4 = 4 execo et 8 =2 exocos
    que ca ce met dans ma colonne ou je met les places.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if (Cells[COL_TOT,i] = Cells[COL_TOT,i +1]) or
         (Cells[COL_TOT,i] = Cells[COL_TOT,i - 1]) then
    Pas testé !

    [edit] ex-æquo: c'est plus mieux. [/edit]

    @+ Claudius

  3. #3
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Ou alors un truc avec une variable qui compte tes exaequo, du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Var : nombre_exeaquo :integer;
     
    nombre_exaequo :=0;
    ...
      begin
        for i := 1 to RowCount-1 do
    ...
         if televe.Cells[COL_TOT,i] = televe.Cells[COL_TOT,i +1] then
              televe.Cells[1,i] := inttostr (i - nombre_exaequo);
    nombre_exaequo := nombre_exaequo+1
        else nombre_exaequo :=0;
    end;
    Pas tester...

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Re,

    Ta première colonne (Cells[1, i]) représente le classement ou rang de l'élève, c'est ça ?

    Dans la mesure où tes élèves sont triés du 1° au dernier, tu peux faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      for i := 1 to RowCount - 1 do
      begin
        // ...
          if (i = 1) then
            Cells[1,i] := '1'
          else if (Cells[COL_TOT,i] = Cells[COL_TOT, i-1]) then
             Cells[1,i] := Cells[1, i-1]
          else
            Cells[1,i] := IntToStr(i);
        end;
      end;
    Tu obtiendras par exemple: 1, 2, 3, 3, 5, 6, 6, 6, 9, 10, ...

    @+ Claudius

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 108
    Par défaut
    Oui c'est sque j'ai fait a partir du code de padawan

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for inter := 1 to televe.RowCount-1 do
              if televe.Cells[COL_TOT,inter] = televe.Cells[COL_TOT,inter -1] then
              begin
              televe.Cells[1,inter] := inttostr (inter - nombre_exeaquo);
              televe.Cells[1,inter -1] := inttostr (inter - nombre_exeaquo);
              nombre_exeaquo := nombre_exeaquo+1;
              end
              else nombre_exeaquo :=0;
    et ca fonctionne!!

    Merci beaucoup a vous deux.
    programme normalement fini
    je ferais certainement un programme pour les épreuve commune pendant les vacances. malgrés que je ne suis plus en stage
    ma bonté me perdra xD
    encore merci a tous pour m'avoir aidé

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par care
    encore merci a tous pour m'avoir aidé
    Il n'y a pas de quoi. @+ et bon dev
    Claudius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01
  2. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo