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

Langage Delphi Discussion :

Calculer le nombres de chiffres répétitif


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut Calculer le nombres de chiffres répétitif
    Je tente de trouver la façon de compiler une série de chiffre
    et compter le nombre de chaque chiffre répétitif .
    exemple: 2,2,4,7,6,7 il y a donc 2x le nombre 2, 1 fois le nombre 4, 2x le nombre 7 ect.... je suis un amateur et je ne sais pas comment faire le
    code . pouvez vous m'aidez merci d'avance.

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    C'est une question d'algorithmique, ça. Tu as déjà l'algo et tu veux le transcrire en Delphi, ou tu veux l'algo ? Si tu veux l'algo, cette question est pour le forum Algorithmes, même si c'est pas un algo bien difficile.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    on utilise des FOR ou autre fonction ne ne sais vraiment pas.
    quelqu'un peut t'il m'aider

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par sjrd Voir le message
    Tu as déjà l'algo et tu veux le transcrire en Delphi, ou tu veux l'algo ?
    Tu n'as pas répondu à ma question.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    Oui c'est cela je veut le convertir en delphi, j'ai été dans la recherche et je n'est rien trouver, le but est de faire un programme en delphi pour afficher le nombre de numero gagnant d'une loto sorti depuis 1 ans. Mon tableau est déjà construit , il ne me reste plus qu'a trouver la facon de sortir les numeros gagnant ( par exemple 43 a sorti 6 fois).

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Ben c'eût été bien que tu nous montres l'algo alors. Enfin c'est pas du genre compliqué.

    Puisqu'il y a un nombre limité de nombres qui peuvent sortir (42 en Belgique, je sais pas pour la France), on peut utiliser un tableau indexé de 1 à 42 de Integer, initialisé avec des 0.
    Ensuite, on parcourt la liste des numéros sortis, et on incrémente la case du tableau correspondant. Ca s'écrit en quelques lignes en fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const
      MaxNumber = 42;
    var
      Counters: array[1..MaxNumber] of Integer;
      I: Integer;
    begin
      FillChar(Counters, SizeOf(Counters), 0);
      for I := 0 to Length(NombresSortis[I])-1 do
        Inc(Counters, NombresSortis[I]);
     
      for I := 1 to MaxNumber do
        WriteLn('Nombre de ', I, ' : ', Counters[I]);
    end;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    ca me dit toujours type incompatible sur la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Inc(Counters, NombresSortis[i]);
    !!!!

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut
    tu as fait une petite erreur je pense

    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
    const
      MaxNumber = 42;
    var
      Counters: array[1..MaxNumber] of Integer;
      I: Integer;
    begin
      FillChar(Counters, SizeOf(Counters), 0);
      for I := low(NombresSortis)0 to high(NombresSortis) do
         Inc(Counters[NombresSortis[i]] );// Tu increment le tableau a l'indice
    { si ca ne marche pas directement tu peut utiliser par une variable temporaire 
      exemple :
      Tmp := Counters[NombresSortis[i]];
      inc(Tmp);
      Counters[NombresSortis[i]] := Tmp;
    }
     
    for I := 1 to MaxNumber do
        WriteLn('Nombre de ', I, ' : ', Counters[i]);
    end;
    @+ Phil

    PS : Code modifier il faut preferer low et high pour utilisé les borne d'un tableau
    j'ete surement mal reveiller ce matin
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  9. #9
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Remplace cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      for I := 0 to Length(NombresSortis[i])-1 do
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      for I := 0 to Length(NombresSortis)-1 do
    @+ Claudius

  10. #10
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Ah Deux erreurs dans le même code de 6 lignes !
    Effectivement, le code correct serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const
      MaxNumber = 42;
    var
      Counters: array[1..MaxNumber] of Integer;
      I: Integer;
    begin
      FillChar(Counters, SizeOf(Counters), 0);
      for I := 0 to Length(NombresSortis)-1 do
        Inc(Counters[NombresSortis[i]]);
     
      for I := 1 to MaxNumber do
        WriteLn('Nombre de ', I, ' : ', Counters[i]);
    end;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut


    a nous deux on a donnée la solution
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    J'ai trouver une autre façon de faire ,car mon cerveau a de la difficulter a comprendre votre code ( je suis un amateur) . le problème est que je doit
    affecté 49 variables. y a t'il une façon de raccourcir le nombre de ligne au niveau des variables de sortie ?
    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
    var
       b2,i,n1,n2,n3: Integer;
    begin
      //Label1.caption:=inttostr(30) ;
      n1:=0;n2:=0;n3:=0;
       for i:=1 to 12 do
      begin
       for b2:=1 to 49 do
      if (strtoint(V1[i])=b2) or (strtoint(V2[i])=b2) or (strtoint(V3[i])=b2) or (strtoint(V4[i])=b2) or (strtoint(V5[i])=b2)or (strtoint(V6[i])=b2)then
       begin
       if b2=1 then
       n1:=n1+1;
       if b2=2 then
       n2:=n2+1;
       if b2=3 then
       n3:=n3+1  //j'ai 49 variable a affecter ainsi !!!!!
       end;
      end;
      Label1.caption:=inttostr(n1);
      label2.caption:=inttostr(n2);
      Label3.caption:=inttostr(n3);
      end;

  13. #13
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    Citation Envoyé par cre3000 Voir le message
    le problème est que je doit
    affecté 49 variables. y a t'il une façon de raccourcir le nombre de ligne au niveau des variables de sortie ?
    Les mettres en tableau comme préconisé plus haut par Sjrd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Counters: array[1..MaxNumber] of Integer;
    où chaque élément du tableau représente une des variables,
    Counters[1] = variable chiffre 1
    Counters[2] = variable chiffre 2...

    à plus!

  14. #14
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    avec ça :
    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
     
    procedure TForm1.FormCreate(Sender: TObject);
    var i,j,k,l:integer;
        val,count:array[1..49] of integer;
        sortie: array[1..36] of array[1..6] of integer;  //36 tirages
     
    begin
     
    for i:=1 to 49 do begin
                       val[i]:=i;
                       count[i]:=0;
                       end;
     
    for j:=1 to 36 do   //pour les 36 tirages
    for k:=1 to 6 do  //les 6 valeurs
    for l:=1 to 49 do if sortie[j,k]=val[l] then count[l]:=count[l]+1 ; //les 49 possibilités d'un tirage particulier=>nb de coups pour chaque
    end;
     
    end.
    teste et reposte, ça devrait faire si mes neurones sont pas trop fatigués ce soir. ce qui est fort possible lol.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    Je ne savais pas que l'on pouvais affecter 2 tableau en même temp !!
    Ha la la . un grand merci a tous pour votre précieuse aide. vive le forum

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

Discussions similaires

  1. [Python 3.X] Nombres de chiffres / Précision d'un calcul
    Par HelloThury dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 21/05/2015, 07h59
  2. Réponses: 2
    Dernier message: 12/03/2012, 00h18
  3. Calcul de somme des chiffres de nombre 2^1000
    Par mouradj2006 dans le forum Mathématiques
    Réponses: 12
    Dernier message: 27/02/2012, 11h45
  4. Comment calculer le nombre de chiffres d'un entier ?
    Par fearyourself dans le forum Télécharger
    Réponses: 23
    Dernier message: 10/01/2012, 17h29
  5. template XSL qui calcule la somme des chiffres d'un nombre
    Par thierry_b dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/04/2009, 14h55

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