Algorthme nombres Occurence

Fermé
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 - 15 avril 2008 à 18:28
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 15 avril 2008 à 20:20
Bonjour,
Voici un exercice dont je ne vois pas la fin bien que j'ai commencé les commandes
Si qqun pouvait m'aider
Merci

Exercice 13 - Nombre d'occurrences
La variables Occurrences un tableau d’entiers. Le rôle de ce tableau est de contenir le nombre
d’occurrences de chacun des caractères présents dans une chaîne saisie par l’utilisateur (on suppose
que celui-ci ne saisit que des lettres minuscules non accentuées).

Ecrire l’algorithme dont le rôle est
de calculer le nombre d’occurrences de chaque caractère de la chaîne et de mémorise chaque
occurrence dans le tableau Occurrences. L'indice d'un élément du tableau correspond au "numéro
d'ordre" de la lettre dans l'ordre alphabétique.

Exemple : Etat du tableau Occurrences après recherche du nombre d'occurrences des caractères
présents dans la chaîne "baobab".
2 3 0 0 0 0 1 0 0 0
1 2 3 4 5 14 15 16 25 26
Occurrences[1] correspond au nombre d'occurrences du caractère "a" (c.à.d. 2).
Occurrences[2] correspond au nombre d'occurrences du caractère "b" (c.à.d. 3).
Occurrences[3] correspond au nombre d'occurrences du caractère "c" (c.à.d. 0).
... et ainsi de suite.


J'utilise le tableau ASCII des leetres miniscules qui commence a 97 et finissent a 122

Voici mon debut

Variables: phrase,first_letter: chaine
i,j : entier


DEBUT
Afficher ("Ecrire une chaine")
Saisir( phrase)
long<- LONGUEUR(phrase)
Pour i de 1 a 26
Tab[i] <- car(96+i)
Pour j de 1 à long
fisrt_letter<- sschaine(phrase,long,1)
Si Tab[i]=first_letter
Tab[i]......

La je m'embrouille
Merci de m'aider

Merci bcp




1 réponse

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 avril 2008 à 20:20
Salut,

voici un exemple en C
lami20j@debian:~$ cat occurence.c
#include<stdio.h>
#define TAILLE 26

int main ()
{
  char s[30];
  int histo[TAILLE];
  int i, c;

  for (i = 0; i < TAILLE; ++i)
    histo[i] = 0;
  printf ("Chaine ? ");
  fgets (s, 30, stdin);

  i = 0;
  while ((c = s[i]) != '\0') {
    histo[c - 97]++;
    ++i;
  }
  for (i = 0; i < TAILLE; ++i)
    printf ("%c - %d\n",i+97, histo[i]);
  printf("Appuyez sur une touche pour continuer ...");
  getchar();
  return 0;
}
lami20j@debian:~$ ./a.out
Chaine ? baobab
a - 2
b - 3
c - 0
d - 0
e - 0
f - 0
g - 0
h - 0
i - 0
j - 0
k - 0
l - 0
m - 0
n - 0
o - 1
p - 0
q - 0
r - 0
s - 0
t - 0
u - 0
v - 0
w - 0
x - 0
y - 0
z - 0
Appuyez sur une touche pour continuer ...
lami20j@debian:~$
4