Algo en C

Bonsoir , je dois écrire un programme qui prend en entrée des lignes de caractères , qui compte le caractère de toutes les lignes et qui affiche le nombre de caractères pour chaque ligne , alors voici mon algo en français , dites moi si il est bon:

On parcourt la ligne ( qui n'est autre qu'un tableau de caractère ), on compte les caractères avec une fonction déjà programmée . Donc si on a n caractère à la 1ere ligne , j'incrémente la case 0 d'un tableau de n et j'affiche la valeur de la case 0 , si j'ai n caractère à la 2eme ligne , j'incrémente la case 1 n fois ...

A ce stade je veux juste votre avis sur mon algo français , est il programmable en C , juste un oui ou non çà suffira , merci .

PS : si mon algo français n'est pas bon , dites le tt de même , merci .

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Il est bon, sauf sur un point : tu dis que tu veux utiliser un tableau, mais tu ne connais a prioiri pas le nombre de ligne donc tu risque d'avoir un problème pour savoir quelle taille de tableau allouer. Tu risques de devoir utiliser une liste chainée.

    Si tu sais faire du c++, en utilisant des std::vector et la méthode push_back, ce problème est transparent.

    Bonne chance
    1. ecris ton algo de manière plus synthéthique avec des périphrases :

      si (Mon truc) alors
      faire ca
      sinon
      compter jusqu'a 10
      finsi

      par exemple, c'est plus court, plus visuel, plus mieux quoi ,op
      1. Contributeur
        Slt,

        Pour la forme, je dirais que c'est compréhensible. Si tu veux faire une "Spécification externe" de ta fonction, je te conseille de ne pas hésiter à utiliser la méthode indiquée par scoubidou944. Ce qui donnerait:

        préconditions: {chaine de caractères de taille>0}

        actions:
        debut
        num_ligne:=0
        tant que caractère lu!=EOF faire
        num_ligne++
        num_char:=0
        tant que caractere lu!=EOL faire
        num_char++
        fin tant que
        recapitulatif[num_ligne]:=num_char

        fin tant_que
        pour index de 1 à num_ligne
        afficher ("ligne numero %d: %d", num_ligne,recapitulatif[num_ligne])
        fin pour
        fin

        postconditions: {}

        Tu remarqueras que le passage au code est facile et direct.

        Good luck