(gH) : Transparents pour

pour l'Algorithmique, les Langages

et les Styles de Programmation



Voir aussi des parties sélectionnées du cours complet...

Qui n'a pas lu le miniprojet 98 sur les adressages d'arbres ? ( en dvi).

On récupère ici la version libre d'apl (aplfree).




Liste des Langages présentés

les Aphorismes de l'algorithmicien

Quelques thèmes abordés

Plan des cours

partie 1 : Analyse algorithmique

partie 2 : Algorithmes et programmes

partie 3 : Programmes opérationnels

Etapes d'un développement logiciel

Structuration

"Moyenner" !

Rédiger

Ecriture d'un Module

Modularité fonctionnelle et concision en Apl

Mode direct et modularité en Dbase

Equivalence des boucles Pour et Tant_Que

Modularité et fichiers en Pascal

Modularité fonctionnelle sous Lisp



Exemples en :


  • Ada
  • Apl
  • AWK
  • C
  • Cobol
  • CAML
  • DBASE
  • Lisp
  • MAPLE
  • MATHEMATICA
  • Pascal
  • Prolog
  • REXX
  • Smalltalk
  • WinBatch
  • Retours :  à la page (gH)
               à la page ALS
    
    
    
    

    Plan des Cours

    1. Savoir Effectuer une Analyse Algorithmique
    2. Voir, Comprendre des Algorithmes & programmes
    3. Réaliser, Optimiser des Programmes Opérationnels
    Retours :  à la page (gH)
               à la page ALS
    
    
    
    

    Analyse Algorithmique

    
    

    1. Présentation générale
    2. Analyse, Structuration, Modularité
    3. Le problème de Comar
    4. Les langages d'analyse algorithmique
      Retours :  à la page (gH)
                 à la page ALS
      
      
      
      

      Exemples d'Algorithmes & programmes

      
      
    5. Traduction des algorithmes dans un langage
    6. Exemples élémentaires de programmation
    7. Exemples spécifiques de programmation
    8. Algorithmes classiques et Styles de programmation
      
      Retours :  à la page (gH)
                 à la page ALS
      
      
      
      

      Programmes Opérationnels

      
      
    9. Maquettage, Interfaçage et Exploitation
    10. Exemple 1 : Classifications taxonomiques
    11. Exemple 2 : Edition de graphes hiérarchiques
    
    Retours :  à la page (gH)
               à la page ALS
    
    
    
    

    les Aphorismes de l'algorithmicien

    un algorithme sans programme est inutile, un programme sans algorithme ni documentation est inutilisable

    vocabulaire, syntaxe, sémantique sont indissociables

    programmer est facile, bien programmer est un art

    un commentaire est comme un ascenseur, non obligatoire, mais si pratique !

    
    Retours :  à la page (gH)
               à la page ALS
    
    
    
    

    Quelques thèmes abordés

    quel langage choisir ? comment mieux programmer ?

    gérer la cohérence du tout et la perfection des parties

    maquettage et automatisation, mise au point et exploitation

    décomposer, structurer ; traduire, s'adapter

    LE langage idéal ne peut pas exister

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Etapes d'un développement logiciel

    analyse et m.e.p. du cahier des charges fonctionnels

    écriture de la méthode, des étapes de résolution

    rédaction des algorithmes et de la documentation

    traduction dans un langage de programmation

    mise au point et vérification sur jeux d'essais

    maintenance

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Structuration

    actions répétitives et actions élémentaires

    une action = un verbe = un module

    Exemple : "afficher la moyenne d'une liste de nombres"

    CE N'EST SURTOUT PAS :

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    "Moyenner" !

    1. Lecture :Obtenir la liste

    2. Calcul :"Moyenner" la liste

    3. Ecriture :Présenter le résultat

    Découpage et Nommage des étapes

    Lisibilité des identificateurs

    1.a) Lire au clavier NbElt et Lst

    ou1.b) Lire Lst sur fichier et en déduire NbElt

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Rédiger

    { #1. Saisie du nombre Nbelt de valeurs et } { de la liste Lst des valeurs } appeler le module Obtenir(Nbelt,Lst,) { #2. Calcul de la moyenne dans Moy } appeler le module Myenne(Nbelt,Lst,Moy) { #3. Affichage des résultats } appeler le module Prsent(Nbelt,Lst,Moy)

    Retours :
    à la page (gH) à la page ALS

    Ecriture d'un module

    module Moyenner

    paramètres NbT par valeur { nb de termes } Lis { liste } par valeur Moy réel par adresse {moyenne } globales (aucune) locales Som { somme des termes } ... { autres variables locales } début du module Moyenner/em> ... { instructions du module Moyenner} fin du module Moyenner
    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Modularité fonctionnelle et concision en Apl

    ou même en détaillant comme pour l'algorithme

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Mode direct et modularité en Dbase

    AVERAGE LST TO MOY

    ? MOY

    public Nbelt, Moy, Lst... DO obtenir DO menne with Lst DO prsnter with Nbelt,Moy STORE 0 TO SUM STORE 1 TO I DO WHILE I <= N STORE I+1 TO I ... ENDDO

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Equivalence des boucles Pour et Tant_Que

    SOM <-- 0 POUR I DE1A NBELT SOM <-- SOM + ... FIN POUR I DE1A NBELT MOY <-- SOM / NBELT

    {boucle POUR réécrite en TANT QUE }

    SOM <-- 0 I <-- 1 TANT QUE I <= NBELT SOM <-- SOM + ... I <-- I + 1 FIN TANT QUE I MOY <-- SOM / NBELT
    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Modularité et fichiers en Pascal

    PROGRAM ObtenirMoyennerPresenter ;

    
    

    Const NbMax=1000;

    Type Entier=integer; Reel=real;

    Liste= Array[1..NbMax] of Entier ;

    Var Nbelt:entier; List:Liste; Moy:reel;

    (*$I SousProg.Pas*)

    BEGIN

    Obtenir(Nbelt,List);

    Moyenner(List,Nbelt,Moy);

    Presenter(Moy)

    END.

    
    Retours :  à la page (gH)
               à la page ALS
    
    

    Modularité fonctionnelle sous Lisp

    (PRESENTER (MOYENNER (OBTENIR )))

                     OU
    

    (SETQ LST (OBTENIR ))

    (SETQ MOY (MOYENNER LST))

    (PRESENTER MOY)

    
    Retours :  à la page (gH)
               à la page ALS