Algo en C

johan -  
emmanuelP Messages postés 137 Date d'inscription   Statut Contributeur Dernière intervention   -
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

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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
0
scoubidou944 Messages postés 719 Date d'inscription   Statut Membre Dernière intervention   127
 
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
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Ouais, ou direct en C tant qu'on y est ;-)
0
emmanuelP Messages postés 137 Date d'inscription   Statut Contributeur Dernière intervention   161
 
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
0