Lien entre algorithme et language C - C - Programmation
Marsh Posté le 04-01-2010 à 12:33:54
Un algorithme est un moyen de parvenir à un résultat.
Un langage peut coder des algorithmes.
Marsh Posté le 04-01-2010 à 12:36:31
Dan mon école d'info on m'apprends l'algorithme mais je ne vois pas trop pourquoi ?!
Existe t'il plusieurs façon d'écrire un algorithmique ou uniquement de cette façon (c'est un exemple) :
Programme « majeur » |
Marsh Posté le 04-01-2010 à 13:32:10
supalex06 a écrit : Dan mon école d'info on m'apprends l'algorithme mais je ne vois pas trop pourquoi ?!
|
En général un langage algorithmique est enseigné pour apprendre aux élèves à écrire des algos permettant de résoudre des problèmes, sans que ça soit "pollué" par les spécificités du langage utilisé pour l'apprentissage de la programmation -> que les élèves ne se mettent pas à "penser" en C ou autre.
Le mieux aurait pu être de demander aux profs
Marsh Posté le 04-01-2010 à 13:49:16
mais en fait je ne comprends pas plusieurs choses :
- dans l'echelle des niveaux (de bas à haut niveaux) est ce que l'algorithme est au meme niveau que le C ou en dessous ?
- Pourquoi écrit-on en français ? ce n'est pas internationale ?
Marsh Posté le 04-01-2010 à 13:56:23
Il n'y a pas de niveau pour les algorithmes, et ce n'est pas un langage. On l'écrit comme on veut, l'essentiel est de faire passer l'idée de ce qu'on veut coder.
Par exemple, l'algorithme des Tours de Hanoï.
Marsh Posté le 04-01-2010 à 14:02:39
en fait on peut "coder" un peu comme on veut, l'important c'est la compréhension ?
mais je me souvenais d'algorithmes avec des losanges et une série de flèches qui montent et qui descendent, ça n'a rien à voir ?
Marsh Posté le 04-01-2010 à 14:05:26
L'algo, c'est la description de la procédure à effectuer pour parvenir au résultat. Comme le dit Elmoricq, il n'y a pas de langage spécifique, pas de problème de syntaxe ni de langue : le but de l'algo, c'est que ta grand-mère soit capable de comprendre ce que tu fais.
Ensuite, tu peux "traduire" l'algo en C ou tout autre langage (implémenter est plus adapté). L'algo, c'est juste l'étape "papier/crayon" qu'on fait avant de se mettre derrière son PC, histoire d'avoir les idées claires au moment où on se met à coder.
-- Edit : Ton graphique, c'est un moyen visuel de matérialiser un algorithme. Dans mon IUT, on appelait ça un "arbre de programmation". Dans la méthode MERISE, ça peut être normalisé sous forme d'un MCT, même si c'est pas le but premier du MCT. Ca reste au même niveau que l'algo en effet, une étape permettant d'aborder avec les idées claires l'étape de développement.
Marsh Posté le 04-01-2010 à 14:18:42
Donc on peut représenter un algo de façon graphique et textuel c'est bien ça?
Qu'est ce que tu appelles un MCT ?
Marsh Posté le 04-01-2010 à 14:31:44
MCT => Modèle Conceptuel des Traitements. Normalement, c'est pas fait pour faire de l'algorithmique aussi détaillée. C'est plutôt pour dire "bon, quand la secrétaire reçois un document par la poste, elle le scanne, le copie dans la GED, puis envoie un mail au responsable du service concerné". En gros, c'est tout ce qui inter-agit avec le programme qu'on met dans un MCT. Mais la méthode est tout à fait applicable à un algorithme. Ensuite, non, un algorithme sous forme de graphique est bien moins détaillé qu'un algo "écrit". En effet, on masque l'utilisation des variables, les types de boucle sont très simplifiées (pas de notion de "tant que mon test est vrai", ou "x fois de suite", etc.) et beaucoup de notions passent à la trappe (afficher, saisir, etc.) ou ne ressortent pas suffisamment.
Dans tous les cas, une fois dans la vie active, un algo n'est pas un livrable. On échange parfois par mail des bouts d'algo quand on veut se mettre d'accord sur une marche à suivre, ça peut éventuellement apparaître succinctement dans un cahier des charges techniques, mais ça reste marginal. Un algo, c'est avant tout pour que ton prof sâche si t'es nul en C ou si t'as rien compris au problème.
Marsh Posté le 04-01-2010 à 14:34:03
Ah ok
Donc je m'en doutais un peu mais un algo n'est pas du tout compilable ?
Marsh Posté le 04-01-2010 à 14:37:58
Du tout. C'est purement du français, pour que toi tu expliques sans notion technique ce que tu va faire pour résoudre le problème.
Y'a pas de niveau de détail d'un algo non plus. Si on te demande de trier des lignes dans un tableau, tu va détailler l'algo de tri. Mais si on te demande de comparer deux listes d'éléments, tu noteras juste que tu tries les listes avant de comparer, sans détailler comment tu fais ça.
Marsh Posté le 04-01-2010 à 14:40:14
MagicBuzz a écrit : Y'a pas de niveau de détail d'un algo non plus. Si on te demande de trier des lignes dans un tableau, tu va détailler l'algo de tri. Mais si on te demande de comparer deux listes d'éléments, tu noteras juste que tu tries les listes avant de comparer, sans détailler comment tu fais ça. |
J'ai pas trop compris ...
Marsh Posté le 04-01-2010 à 14:48:57
supalex06 a écrit :
|
Un algo qui "compare" deux fichiers A et B (de manière ultra simpliste, c'est juste pour l'exemple) :
Trier les valeurs des fichiers A et B |
Comme tu le vois, on ne détaille pas le tri. C'est nécessaire à l'algo, mais on s'en moque pour le cas étudié, donc on n'en met pas plus.
Marsh Posté le 04-01-2010 à 15:48:01
Ok d'accord
Marsh Posté le 04-01-2010 à 17:19:44
Salut,
Moi je dirais, qu'un algo est une recette de cuisine.
En fonction de ce que tu veux manger, tu préparera les chose de différente manière avec différent ustensile et divers ingrédients.
A part ça, il me semble, qu'un algo de Prologue n'aurais pas la même figure qu'un algo en C.
Me trompe-je ?
Marsh Posté le 04-01-2010 à 17:27:06
Qu'est ce que ça veut dire un algo en C ?
Je croyais que l'algo était diffèrent du C... que ça précédait la conception de n'importe quel langage, je me trompe ?
Marsh Posté le 04-01-2010 à 17:31:03
supalex06 a écrit : |
la plupart des problèmes que l'on résoud peuvent être traités de plusieurs manières. Ces manières vont être exprimées sous forme algorithmique pour être implémentées dans un langage donné. Suivant ton langage et tes contraintes, l'existant auquel tu t'ajoutes, tu vas sélectionner plus ou moins intuitivement l'un de ces algorithmes.
Marsh Posté le 04-01-2010 à 17:34:48
supalex06 a écrit : |
Oui, je pensais que tu avais accepté la distinction entre "pseudo-code" ici pour "algo" et implémentation.
Je voulais dire qu'un pseudo-code écrit en vu d'une programmation avec C ou Ada ou pascal ne sera pas le forcément le même pour un autre langage d'implémentation.
Même si pseudo-code se doit d'être le plus abstrait possible il dépend quand même du langage d'implémentation pour obtenir la même cible.
Marsh Posté le 04-01-2010 à 18:20:50
stop la branlette hein.
Algorithme: http://fr.wikipedia.org/wiki/Algorithmique
|
Pseudo-code : http://fr.wikipedia.org/wiki/Pseudo-code
|
Y a pas ambiguité
Marsh Posté le 04-01-2010 à 18:35:07
Joel F a écrit : stop la branlette hein.
|
Faut comprendre quoi là ?
Marsh Posté le 04-01-2010 à 12:30:09
Bonjour,
J'aimerais savoir quel est le lien entre l'algorithme et le langage C.
Désolé si la question est mal posée mais c'est un peu le foutoir dans ma tête.
---------------
☼ [Feed Back] Supalex06 ☼ http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm