Lien entre algorithme et language C

Lien entre algorithme et language C - C - Programmation

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
Reply

Marsh Posté le 04-01-2010 à 12:30:09   

Reply

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.

Reply

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 »
 Age : entier
Debut
 afficher « saisir age »
 saisir Age
 Si (Age < 18) alors
  afficher « MINEUR »
 Sinon
  afficher « MAJEUR »
 Fsi
Fin

Message cité 1 fois
Message édité par supalex06 le 04-01-2010 à 12:36:56

---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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 ?!
 
Existe t'il plusieurs façon d'écrire un algorithmique ou uniquement de cette façon (c'est un exemple) :
 

Programme  « majeur »
 Age : entier
Debut
 afficher « saisir age »
 saisir Age
 Si (Age < 18) alors
  afficher « MINEUR »
 Sinon
  afficher « MAJEUR »
 Fsi
Fin



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 :o


---------------
Retraité de discussions
Reply

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 ?


Message édité par supalex06 le 04-01-2010 à 13:58:48

---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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ï.

Reply

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 ?
 
http://static.intellego.fr/uploads/1/0/1024/media/Sans-titre-1.jpg


Message édité par supalex06 le 04-01-2010 à 14:04:31

---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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.


Message édité par MagicBuzz le 04-01-2010 à 14:08:44
Reply

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 ?


---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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.

Reply

Marsh Posté le 04-01-2010 à 14:31:44   

Reply

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 ?


Message édité par supalex06 le 04-01-2010 à 14:34:11

---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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.

Reply

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 ...  :sweat:


---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

Marsh Posté le 04-01-2010 à 14:48:57    

supalex06 a écrit :


J'ai pas trop compris ...  :sweat:

 

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
Tant qu'il y a des valeurs à parcourir dans A et dans B
   Si la ligne courante de A est égale à celle de B, alors
      écrire à l'écran la ligne courante
      Passer à la valeur suivante de A et de B
   Sinon si valeur de A est < à celle de B, alors
      passer à la valeur suivante de A
   Sinon
      passer à la valeur suivante de B
   Fin Si  
Fin Tant que.

 

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.


Message édité par Elmoricq le 04-01-2010 à 14:52:27
Reply

Marsh Posté le 04-01-2010 à 15:48:01    

Ok d'accord


---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

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 ?

Reply

Marsh Posté le 04-01-2010 à 17:26:32    


 
que ce soit pour du prolog ou du C, un algo est un algo. Que prolog te fasse prendre le problème différemment ne change rien au fait que l'algo décrit un processus à suivre pour le résoudre


---------------
last.fm
Reply

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 ?

Message cité 2 fois
Message édité par supalex06 le 04-01-2010 à 17:28:04

---------------
☼ [Feed Back] Supalex06 ☼  http://forum.hardware.fr/hfr/Achat [...] 7029_1.htm
Reply

Marsh Posté le 04-01-2010 à 17:31:03    

supalex06 a écrit :


 
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 ?


 
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.


---------------
last.fm
Reply

Marsh Posté le 04-01-2010 à 17:34:48    

supalex06 a écrit :


 
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 ?


 
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.

Reply

Marsh Posté le 04-01-2010 à 18:20:50    

stop la branlette hein.
 
Algorithme: http://fr.wikipedia.org/wiki/Algorithmique


Un algorithme est un processus systématique de résolution, par le calcul, d'un problème permettant de présenter les étapes vers le résultat à une autre personne physique (un autre humain) ou virtuelle (un calculateur). En d'autres termes, un algorithme est un énoncé d’une suite finie et non-ambiguë d’opérations permettant de donner la réponse à un problème.


 
Pseudo-code : http://fr.wikipedia.org/wiki/Pseudo-code


En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un langage de programmation en particulier.


 
Y a pas ambiguité

Reply

Marsh Posté le 04-01-2010 à 18:35:07    

Joel F a écrit :

stop la branlette hein.
 
Algorithme: http://fr.wikipedia.org/wiki/Algorithmique

Citation :


Un algorithme est un processus systématique de résolution, par le calcul, d'un problème permettant de présenter les étapes vers le résultat à une autre personne physique (un autre humain) ou virtuelle (un calculateur). En d'autres termes, un algorithme est un énoncé d’une suite finie et non-ambiguë d’opérations permettant de donner la réponse à un problème.


 
Pseudo-code : http://fr.wikipedia.org/wiki/Pseudo-code

Citation :


En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un langage de programmation en particulier.


Y a pas ambiguité


 
Faut comprendre quoi là ?
 
 :D  


Message édité par Profil supprimé le 04-01-2010 à 18:35:42
Reply

Marsh Posté le 04-01-2010 à 18:37:10    

Ce qui est écrit.

Reply

Marsh Posté le 04-01-2010 à 18:38:21    

Elmoricq a écrit :

Ce qui est écrit.


Ben c'est caca.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed