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

Turbo Pascal Discussion :

Afficher le nombre d'occurences de caractère


Sujet :

Turbo Pascal

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut Afficher le nombre d'occurences de caractère
    J'ai besoin d'un programme Pascal qui lit une chaîne et affiche le nombre de répétitions de chaque caractère de la chaîne.
    Il lit
    jaeajj
    Il écrit
    j=3
    a=2
    e=1
    J'ai essayé mais le mien donne comme résultat
    j=3
    a=2
    e=1
    a=2
    j=3
    j=3
    Mon essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    program jbvfr;
    uses wincrt;
    var ch: string;
    i,j,r: integer;
    begin
    readln(ch);
    for i:=1 to length(ch) do
    begin
    r:=0;
    repeat
    if ch[i]=ch[j] then r:=r+1;
    writeln(ch[i],'=',r);until(;
    end;
    end.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Voe,

    Retour du leitmotiv : papier + crayon, et résous le problème manuellement, en notant bien comment tu fais.

    Tu verras que ton programme ne marche pas, et tu devrais voir également pourquoi il ne marche pas.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    si il marche mais de la façon notée au dessus (déja c'est pas ma solution ) mais j'ai vu qu'il vaut mieux introduire un tableau dont les indices sont des lettres [a..z] :ça sera une solution trè facile( aussi celle la n'est pas la mienne :d'après bac théorik sc exp de l'année précédente nr)

  4. #4
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Citation Envoyé par miliassouma6600 Voir le message
    si il marche mais de la façon notée au dessus (déja c'est pas ma solution )
    Deja que ce code ne peut pas compiler a vu d'oeil mais en plus il est loin de sortir ce que tu presente comme sortie ,
    Ou alors tu as dû mal recopier le code

    Citation Envoyé par miliassouma6600 Voir le message
    mais j'ai vu qu'il vaut mieux introduire un tableau dont les indices sont des lettres [a..z] :ça sera une solution très facile( aussi celle la n'est pas la mienne :d'après bac théorik sc exp de l'année précédente nr)
    Alors quelle solution est la tienne? tu peux soit tester les solutions dont tu parles et voir si ça marche ou etablir toi même un algorithme, dans tous les cas ça reste du classique, et même un recherche sur le forum devrait te donner des idées aussi

  5. #5
    Membre éclairé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Par défaut copy
    Tu peux te servir de copy :

    par exemple :

    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
    program chaine;
    uses crt;
    var b,c :integer;
    a:string;
    d:array[1..30] of string;
     
    begin
    writeln('Rentrez un mot');
    readln(a);
    b := length(a);
     
    for b := 1 to length(a) do begin
    d[b] := copy(a,b,1); {Tu copy dans la chaine 'a' le 'b' caractere et tu le met dans un tableau}
     
    writeln(d[b]);
     
    end;
    readln;
    end.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Dai,
    Citation Envoyé par titeeee Voir le message
    Tu peux te servir de copy :

    par exemple :

    program chaine;
    uses crt;
    var b,c :integer;
    a:string;
    d:array[1..30] of string;

    begin
    writeln('Rentrez un mot');
    readln(a);
    b := length(a);

    for b := 1 to length(a) do begin
    d[b] := copy(a,b,1); {Tu copy dans la chaine 'a' le 'b' caractere et tu le met dans un tableau}

    writeln(d[b]);

    end;
    readln;
    end.
    Et ça te conduit où ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/02/2013, 11h01
  2. Réponses: 3
    Dernier message: 27/07/2012, 12h25
  3. Réponses: 26
    Dernier message: 07/06/2006, 00h15
  4. Réponses: 6
    Dernier message: 20/02/2006, 23h13
  5. Réponses: 4
    Dernier message: 16/12/2005, 20h36

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