e-Babillard - plateforme pédagogique interactive

Ressources pédagogiques communes concernant... => Algorithmique et Structures de Données => Sujet démarré par: jacobseb sur 24 Septembre 2007 à 18:59:20



Titre: [Algorithmique] Définition de termes
Posté par: jacobseb sur 24 Septembre 2007 à 18:59:20
Bonjour  :),

Pouvez-vous nous apporter quelques précisions sur les principaux termes que vous employez et que vous nous avez présenté lors de notre premier cours.

D'avance merci


Titre: Définition de termes
Posté par: jpdelx sur 24 Septembre 2007 à 19:11:15
Sébastien

Lesquels et dans quels domaines ?

@lpf


Titre: Définition de termes
Posté par: jacobseb sur 24 Septembre 2007 à 19:35:41
Le premier concerne "les arbres programmatiques".

Avant de demander la définition j'ai fais une recherche (peu fructueuse) sur Internet. Je n'ai trouvé qu'un petit exemple d'arbre mais à mon avis pas suffisant pour ce qui va nous être demandé. Même sur Wikipedia le terme n'est pas connu  :(
Les autres termes me reviendront par la suite.

Merci d'avance


Titre: Définition de termes
Posté par: jpdelx sur 24 Septembre 2007 à 19:50:54
Message édité par jpdelx

Sébastien

Les arbres programmatiques encore appelés schémas arborescents appartiennent
à la famille des représentations graphiques des algorithmes et des Structures de
Données (SD).

Il sont mis en oeuvre pour la programmation systématique = programmation
structurée + programmation modulaire ( cf. travaux de Niklaus WIRTH ).

Tu trouveras quelques exemples typiques via ce polycopié (http://jpdelx.club.fr/poly8algo.pdf).

Cette méthode de codication graphique est à opposer aux organigrammes
qui reposent surtout sur le retour en arrière ( méthode spaghettis utilisant la
notion de branchement codifié par un GOTO...  :o ).

Elle est basée sur l'anticipation en fonction des résultats voulus. Elle doit être
utilisée en parallèle avec la théorie des preuves algorithmiques ( axiomatique de
Hoare ).

Elle repose sur un alphabet de symboles simples ( rond ou boite arrondie, rectangle,
losange ou boite pointue, segment ) et d'une grammaire permettant d'agencer ces
symboles. Celle ci travaille sur la décomposition d'un problème en sous problèmes
avec des niveaux explicatifs ( programmation descendante ).

C'est la position des différents symboles entre eux qui induit le sens de lecture ( donc
de compréhension ) d'un arbre programmatique. Il n'y a donc jamais de flêche comme
pour un organigamme.

@lpf

Message édité par jpdelx


Titre: Définition de termes
Posté par: M!ck@L sur 24 Septembre 2007 à 19:55:40
Bonsoir,

Les arbres programmatiques sont (si mes souvenirs sont bons) censés etre ce que tu fais en tout premier avant meme le codage.
Il y a une certaine légende qui te permet de visualiser quelle type de boucle (je me souviens plus de l'autre façon de les appeler... "iteration"???::) ) tu utiliseras lors du codage.
Maintenant je ne les ai vu qu'avec Turbo Pascal comme langage...  Ca doit probablement varier quelque peu d'un langage à l'autre.

Je suis sûr que jpdelx t'en dira bien plus que moi...  ;)


Titre: Définition de termes
Posté par: satanas313 sur 24 Septembre 2007 à 19:58:57
Ha quand même!.....    ;)

Merci pour ces explications qui vont néanmoins nécessiter l'utilisation de google.....    ;D


Bonne soirée


Titre: Définition de termes
Posté par: jpdelx sur 24 Septembre 2007 à 20:09:39
Stéphane
Citation de: satanas313
Ha quand même!.....    ;)


Bienvenue dans le club de ceux qui savent  :)

L'agorithmique est une science. Je connais même quelqu'un ( suivez mon regard )
qui dit que c'est un art  ;)
Citation:
Merci pour ces explications qui vont néanmoins nécessiter l'utilisation de google.....    ;D
...


Je crois que je l'ai fait un peu exprès et j'ai vérifié que les termes sont trouvables sur le Net (http://jpdelx.free.fr/siffle.gif)

@lpf


Titre: Définition de termes
Posté par: jpdelx sur 24 Septembre 2007 à 20:14:18
Mickaël
Citation de: M!ck@L
...
Les arbres programmatiques sont (si mes souvenirs sont bons) censés etre ce que tu fais en tout premier avant meme le codage.
Il y a une certaine légende qui te permet de visualiser quelle type de boucle (je me souviens plus de l'autre façon de les appeler... "iteration"???::) ) tu utiliseras lors du codage.
Maintenant je ne les ai vu qu'avec Turbo Pascal comme langage...  Ca doit probablement varier quelque peu d'un langage à l'autre.


???

Dans une formation de type licence ( bac+3 ) informatique et dans une Faculté scientifique il vaut mieux ne pas
tenir ce genre de discours plus qu'approximatif  :-[

Confondre par exemple codage et codification dans un langage.

Les algoritmes sont indépendants du langage de programmation utilisé pour la codification. C'est au programmeur
de s'adapter à l'analyste et non pas le contraire  ::)
Citation:
Je suis sûr que jpdelx t'en dira bien plus que moi...  ;)


C'est fait et tu as dû avoir un message en rouge t'indiquant qu'une réponse était postée...

@lpf


Titre: Définition de termes
Posté par: jacobseb sur 24 Septembre 2007 à 20:19:13
Citation de: jpdelx sur 24 Septembre 2007 à 19:50:54
Elle repose sur un alphabet de symboles simples ( rond ou boite arrondie, rectangle,
losange ou boite pointue, segment ) et d'une grammaire permettant d'agencer ces
symboles. Celle ci travaille sur la décomposition d'un problème en sous problèmes
avec des niveaux explicatifs ( programmation descendante ).


A bien y réfléchir, je me demande si c'est pas beaucoup plus clair que le "pseudo-langage" et ses "Si - Alors"... La représentation graphique apporte une dimension temporelle (enfin je trouve  ::)) qui permet de mieux saisir le déroulement de l'algorithme.

Merci pour ces informations et ses exemples.

En revanche, on ne dit pas :
- Boucle mais (Itération ?)
- Condition (Test) mais (??)


Il semble que nous ayons de sérieux progres à faire dans le choix du vocabulaire...  ??? Dommage que ne nous ai pas déjà formé ainsi auparavant :(


Titre: Définition de termes
Posté par: jpdelx sur 24 Septembre 2007 à 20:32:25
Message édité par jpdelx

Sébastien
Citation de: jacobseb
A bien y réfléchir, je me demande si c'est pas beaucoup plus clair que le "pseudo-langage" et ses "Si - Alors"... La représentation graphique apporte une dimension temporelle (enfin je trouve  ::)) qui permet de mieux saisir le déroulement de l'algorithme.


La réflexion doit être à la base de tout le travail d'analyse. Ce n'est pas pour rien qu'il existe des méthodes normalisées de conception !

C'est le but avouable et avoué de toute représentation graphique normalisée. Elle permet de mieux "visualiser" la réalisation
d'un problème et permet de meilleurs choix au niveau des solutions posibles ( plan d'architecte, schéma de cablage électrique,
plan de ville, etc. ).
Citation:
Merci pour ces informations et ses exemples.


Parfaitement normal de mon point de vue. Je suis là surtout pour vous aider au maximum à condition que vous soyez demandeurs ;)

Je pense que ce n'est jamais une perte de temps que d'expliquer à quelqu'un les éléments lui permettant de trouver une
solution. C'est pour cela que je suis contre le fait de fournir des solutions toutes faites dès le départ. C'est en cherchant que
l'on trouve et c'est en se trompant que l'on apprend de ses erreurs... c'était la pensée philosophique du jour de jpdelx  ;)

C'est la base même de toute ma pédagogie... ce qui va en dérouter plus d'un au fur et à mesure de l'évolution des séances  :-\
Citation:
En revanche, on ne dit pas :
- Boucle mais (Itération ?)


(http://jpdelx.free.fr/non.gif) En algorithmique il ne faut jamais utiliser le terme de boucle (http://jpdelx.free.fr/siffle.gif).
Il y a plusieurs structures qui permettent de répeter une séquence d'instructions.


  • Les répétitives : à utiliser lorsque l'on ne connait pas à l'avance le nombre de répétitions

  • L'itérative : à utiliser lorsqu'on connait à l'avance le nombre de répétitions ( i.e. itérations )



Dans le premier cas, il y a 2 possibilités.
Soit l'utilisation d'un Tant Que ( TQ ). Il se traduit pas "TQ condition vraie FAIRE séquence".
Soit l'utilisation d'un Jusqu'à ( JQ ). Il se traduit par "REPETER séquence JQ condition vraie".

La diférence majeure entre les 2 est le simple fait qu'on peut ignorer un TQ si la condition
est fausse alors qu'il est obligatoire de passer au moins 1 fois dans un JQ.

En sortie d'un TQ, la condition est fausse.
En sortie d'un JQ, elle est vraie.

Pour l'itérative, il s'agit du POUR ( PR+ ou PR- ) qui gère un indice variant d'une valeur de début jusqu'à
une valeur de fin en utilisant un pas ( i.e. incrément ) positif ou négatif.
Citation:
- Condition (Test) mais (??)


Prédicat... qui est la mise en forme d'une condition logique servant pour une option, une alternative ou une sélection multiple.
Citation:
Il semble que nous ayons de sérieux progres à faire dans le choix du vocabulaire...  ??? Dommage que ne nous ai pas déjà formé ainsi auparavant :(


Le vocabulaire n'est rien si tu ne maitrises les notions qui vont avec. Vous avez tellement l'habitude de travailler directement sur un micro-ordinateur
que la méthode empirique ( i.e. "bricolage" ) vous parait une méthode valable de conception de programme  :-[ et pourtant la plupart du temps
ce n'est qu'une énorme perte de temps  :P

Malheureusement, les développeurs, les analystes, les programmeurs... les informaticiens (?) sont de plus en plus attirés par les solutions de facilité
du syle "yakakliquer" ou du "copier-coller"...  :-[

@lpf

Message édité par jpdelx


Titre: Définition de termes -> les arbres programmatiques ?
Posté par: jpdelx sur 25 Septembre 2007 à 08:17:46
Bonjour

Je viens d'ouvrir un nouveau fil de discussion ICI (http://jpdelx.free.fr/smf/index.php?topic=1867.0) concernant les arbres programmatiques.

@lpf


Titre: [Algorithmique] Définition de termes
Posté par: jpdelx sur 20 Janvier 2012 à 17:05:41
(http://jpdelx.free.fr/maj.gif)


e-Babillard - plateforme pédagogique interactive | Propulsé par SMF 1.0.6 modifié par jpdelx.
© 2001-2005, Lewis Media. Tous droits réservés.