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).
Retours : à la page (gH) à la page ALS
Retours : à la page (gH) à la page ALS
Retours : à la page (gH) à la page ALS
Retours : à la page (gH) à la page ALS
Retours : à la page (gH) à la page ALS
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 ALSEtapes 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 ALSStructuration
actions répétitives et actions élémentaires
une action = un verbe = un module
Exemple : "afficher la moyenne d'une liste de nombres"
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 ALSRé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 ALSEcriture 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 ALSModularité fonctionnelle et concision en Apl
ou même en détaillant comme pour l'algorithme
Retours : à la page (gH) à la page ALSMode 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 ALSEquivalence 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 ALSModularité 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 ALSModularité fonctionnelle sous Lisp
(PRESENTER (MOYENNER (OBTENIR )))
OU(SETQ LST (OBTENIR ))
(SETQ MOY (MOYENNER LST))
(PRESENTER MOY)
Retours : à la page (gH) à la page ALS