Algo en C
johan
-
emmanuelP Messages postés 137 Date d'inscription Statut Contributeur Dernière intervention -
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 .
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
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
Si tu sais faire du c++, en utilisant des std::vector et la méthode push_back, ce problème est transparent.
Bonne chance
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
si (Mon truc) alors
faire ca
sinon
compter jusqu'a 10
finsi
par exemple, c'est plus court, plus visuel, plus mieux quoi ,op
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
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