Algorithme

Bonjour,
please ,aidez moi à résoudre cet exercice qui m'as cassé la tête.
voici l'énoncé:
écrire un algorithme qui demande une phrase à l'utilisateur et qui affiche le nombre de mot de cette phrase,il peut y avoir plusieurs éspaces.

voici la solution que j'ai pu faire:
debut
var i ,Nm :entier
T(i) ,'-':caractére
répéter lire (T(i))
jusqu'à i='.'
pour i=0 à n-1 faire
répéter
si T(i)='-' alors
i reçoit i+1
fin si
jusqu'à (T(i)<>0) ou (i=n-1)
Nm reçoit Nm+1
fin pour
afficher("le nombre de mot est" ,Nm)
fin
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Ben, c'est un algorithme, sauf qu'il est écrit en C
    Voici la traduction
    Tant Que Le caractère n'est pas la fin de la ligne
       Si le caractère est espace ou tabulation
          Je ne suis pas dans un mot
       Si je ne suis pas dans un mot et je tape un caractère 
          Alors je suis au début d'un mot
          et je compte le mot
    
    Affiche le nombre de mots


    1. Modérateur
      Salut,

      voici un exemple en C
      #include<stdio.h>
      
      #define DEDANS 1
      #define DEHORS 0
      
      int
      main ()
      {
        int c, test, nb_mots;
        test = DEHORS;
        nb_mots = 0;
      
        while ((c = getchar ()) != '\n')
          {
            if (c == ' ' || c == '\t')
              test = DEHORS;
            else if (test == DEHORS)
              {
                test = DEDANS;
                ++nb_mots;
              }
          }
        printf ("Vous avez %d mot(s).\n", nb_mots);
        return 0;
      }