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

Fortran Discussion :

[Débutant] Tableaux et répétitions


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut [Débutant] Tableaux et répétitions
    Bonjour,
    J ai un probleme dont je me bloque la dessus,
    J ai un tableaux integer a rentré et ensuite voire le nombres des repetitions de chque nombres dans ce tableaux
    par exemple A=1,3,4,2,4,5,1
    le nombre 1 se repete 2
    3 se repete 1
    ect..........
    pouvez vous m aider dans ce probleme?
    merci

  2. #2
    Membre confirmé Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Par défaut
    Tu pourrais simplement trier ton tableau et alors compter les occurences successives des nombres.

    Il y a pas une section spéciale algorithmie sur développez.com? http://www.developpez.net/forums/forumdisplay.php?f=60

    Comment ça je chipotte?

  3. #3
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    pour le saisir, tu utilise des read typiquement, moi je le ferai lire un fichier texte contenant tout le contenu

    ensuite vu que tu n'a que des chiffres, (en appelant le tableau de donnée 'tab' et sa taille 'LTab'):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    do i=0,9
      nb=0
      do j=0,LTab
         if (tab(j)=i) then nb=nb+1
      enddo
      write(*,*)'le chiffre ',i,' est présent ',nb,' fois'
    enddo
    biensûr si tu as des nmbres à deux chiffre, il suffit d'augmenter la bouche en i...

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut
    Ok merci genteur slayer, mais pourquoi tu as mit write(*,*) et non pas print*?

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut Tableaux et répetitions
    Salut.

    C'est tout simple:

    Tu définis un tableau A qui contient tes données et un tableau B en réserve.

    Tu parcours le tableau A; pour chaque élément, si la valeur est 1, tu incrémentes le nombre de 1s; sinon, tu la transfère dans B. Quand tu a parcouru tout A, tu as le nombre de 1s.

    Tu recopies B dans A, et tu recommences avec les 2s.

    etc.

    Quand il n'y a plus rien à recopier de B dans A, tu sais que tu as fini.

    Bonne chance
    Jean-Marc Blanc

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    salut,

    si tes entiers sont inférieurs à 1.000.000 (par exemple) tu peux utiliser un vecteur V supplémentaire de taille, le plus grand des entiers et initialement nul.
    Ensuite tu balayes une fois ton vecteur de départ et si tu rencontres un 12, par exemple, tu fais V(12)=V(12)+1.
    A la fin, tu sais que si V(i) est non nul, alors i apparaît V(i) fois dans ton vecteur initial.

  7. #7
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    j'ai mis write(*,*) par habitude, j'aime pas trop utiliser le print *, question de syntaxe cela dit dans le cas présent c'est strictement équivalent!!!

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

Discussions similaires

  1. [Débutant] Tableaux vs table de hash
    Par Rakken dans le forum Langage
    Réponses: 10
    Dernier message: 11/08/2009, 17h57
  2. [Débutant] tableaux multidimension
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 08/12/2007, 19h32
  3. [débutant] Tableaux à doubles entrées
    Par ruby_robber dans le forum BIRT
    Réponses: 4
    Dernier message: 14/08/2007, 15h16
  4. [Débutante] Tableaux et types structurés
    Par manelinfo dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2007, 15h25
  5. [débutant] [Tableaux] un array à partir d'une boucle
    Par denis.ws dans le forum Langage
    Réponses: 3
    Dernier message: 22/11/2006, 23h37

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