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

Pascal Discussion :

Compter les occurences dans un tableau trié


Sujet :

Pascal

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut Compter les occurences dans un tableau trié
    hep salut a tous

    j'ai fais un petit programme qui trie les lettres dans une chaine string

    comment faire pour que celui ci compte les occurences dans la chaine celle-ci un fois trié ??

    merci d'avance... ps c'est pour mon examen de demain alors aidez moi

    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
    42
    43
    44
    program Sceance7ChaineCaractere;
     
    {scéance 7.F - Chaine caractère}
     
    {réalisation Sebastien Degreve - http://online.freezee.org}
     
     
    {-------------DECLARATION-----------------}
    var
        mot: string;
        lengths,pos,i,j: integer;
        t : array [1..26] of char;
        tampon : char;
     
    {---------------PROGRAMME-------------------}
     
    begin
      writeln('entrez une chaine de caracteres');
      readln(mot);
      lengths := length(mot);
      for i:=1 to lengths do
       begin
         t[i] := upcase(mot[i]);
       end;
     for i:=1 to lengths-1 do
      begin
       pos:=i;
       for j:=i+1 to lengths do
        if t[j]<t[pos] then pos:=j;
         if pos<>i
         then
         begin
         tampon:=t[i];
         t[i]:=t[pos];
         t[pos]:=tampon;
         end;
        end;
       for i:=1 to lengths do
        begin
        write(t[i]);
        write(' ');
        end;
     readln;
    end.

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Citation Envoyé par degseb
    comment faire pour que celui ci compte les occurences dans la chaine celle-ci un fois trié ??
    Je crois cette genre de question à été deja traité sur le forum peut etre une recherche te le dira.
    Sinon tu peux faire une tableau des 26 lettres de l'aphabet et dont tu mettras à chaque correspondance une incrementation suivant son occurence dans la chaine.
    Mais avec ta chaine triée ça devrait etre plus facile à realiser.
    Penses un petit algo et on vera ce que ça donne
    @+
    ps c'est pour mon examen de demain alors aidez moi
    Tu n'avais pas besion de le preciser , alors plus vite tu montrera tes efforts plus vite tu auras de reponses

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 951
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 951
    Points : 5 671
    Points
    5 671
    Par défaut
    Gio,

    Il faudrait éclater ton code en différentes fonctions, ça le rendra plus clair et plus facile à faire pour toi.

    Pour ton problème, au lieu d'un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var
    ...
        t : array [1..26] of char;
    il vaudrait mieux :
    - déclarer un type pour ce tableau, ça permettra de le passer plus facilement à une fonction.
    - que ce tableau soit pour des Integer, plutôt que des Char, puisqu'on s'attend à faire des additions.
    - Que ce tableau soit indicé directement par les caractères, puisque Pascal le permet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Type
      tableChar = Array ['A'..'Z'] of Integer;
    ...
     
    Var
      t : tableChar;
    - Il faut initialiser tout le tableau à 0 (zéro)
    - Puis, en lisant chaque caractère de ta chaine, tu incrémentes la case correspondant au caractère en cours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
      For i:=1 to Length(chaine) do
      Begin
        Inc[chaine[i]];
      End;
    Voilà, ça devrait aller.

    (Le tout avec des fonctions/procédures, chacune son travail précis à faire)

Discussions similaires

  1. [DeskI V5-V6] Compter les doublons dans un tableau
    Par limouzin dans le forum Débuter
    Réponses: 4
    Dernier message: 25/02/2009, 13h34
  2. Compter les occurences dans une chaîne
    Par AuBozon dans le forum Débuter
    Réponses: 3
    Dernier message: 27/04/2008, 11h17
  3. compter les occurences dans un fichier avec fgetc
    Par deathsurfer dans le forum C
    Réponses: 21
    Dernier message: 21/01/2007, 13h44
  4. Compter les occurences dans relation "n vers n"
    Par yamayo dans le forum Access
    Réponses: 3
    Dernier message: 02/10/2006, 18h54
  5. Réponses: 10
    Dernier message: 27/03/2006, 18h38

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