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

  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;
    }
    
    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