CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/1.5 - Cours de programmationCoding Classeurs Weka

4/0 - Langages du CPC

4/1 - Locomotive BASIC : Définitions et rappels de base

4/1.5 - Cours de programmation

Cette partie s'adresse à tous les programmeurs, débutants ou confirmés,
qui désirent être plus performants dans la conception puis dans la réalisation de logiciels de tous types en employant une méthode simple et efficace...

Avant de parler de méthodologie, nous pouvons remarquer que l'évolution des langages de programmation a suivi de près l'évolution des ordinateurs. Il y a une vingtaine d'années seulement, les informaticiens ne disposaient que du « langage machine » pour réaliser des programmes de longueur aussi importante que le respect qu'on vouait à leur personne, à juste titre d'ailleurs.

Mais ces temps héroïques sont bien lointains, et le programmeur « moderne » dispose d'outils qui, certes, le ramènent au rang du commun des mortels, mais également, lui facilitent grandement la tâche.

Ces outils sont de deux natures différentes :

  • les méthodologies qui visent à optimiser les temps de conception/réalisation/maintenance des logiciels. Nous allons en présenter une dans ce paragraphe.
  • les langages évolués qui permettent de manipuler des entités complexes à moindres frais. Dans ce qui suit, nous analyserons les possibilités du langage BASIC des CPC.

Comment vous y prenez-vous quand vous décidez d'écrire un programme ?

  • Vous branchez l'ordinateur et vous commencez à taper ?
  • Vous réfléchissez d'abord au problème que vous voulez résoudre, puis vous passez à la programmation ?

La première méthode peut certainement convenir si le programme à écrire est court et/ou manipule peu de concepts différents. Mais, même dans ce cas, nous vous la déconseillons. A moins que vous n'ayez une grande habitude du langage de programmation utilisé et une connaissance a priori du problème que vous voulez résoudre, vous risquez :

  • d'aligner les instructions de manière non optimale et désordonnée,
  • de perdre un temps non négligeable dans la phase de mise au point.

La deuxième méthode est de loin plus sarne. C'est celle dont nous allons parler dans la suite. Elle consiste à diviser la résolution du problème en quatre phases successives :

  1. Analyse du problème,
  2. Recherche d'une structure,
  3. Programmation,
  4. Mise au point.

1)   Analyse du problème

Il est nécessaire de bien définir le problème que vous vous proposez de résoudre avant d'entamer la phase de programmation. C'est même le point le plus important – et souvent le plus négligé – de l'analyse.

En effet, comment prétendre écrire un programme sain si l'on n'a pas, dès le départ, formalisé toutes les données, finalités et traitements ?
Une bonne méthode consiste à définir le problème comme étant une boîte noire dans laquelle entrent et de laquelle sortent des informations. Cette boîte noire contient le traitement nécessaire à appliquer aux entrées (par l'utilisateur, par un port d'entrée, ...) pour les transformer en sorties désirées (affichages, calculs, impressions, ...)

Entrée ->  Traitement  -> Sortie

Posez-vous les questions suivantes :

  • Quelles données dois-je entrer pour obtenir les sorties qui m'intéressent ?
  • Quels traitements appliquer aux entrées pour les transformer en résultats, en sortie du programme ?

2)   Recherche d'une structure

La première phase définie, vous devez en être arrivé au point où vous connaissez la liste

  • des entrées,
  • des traitements,
  • des sorties.

Dans la mesure du possible, essayez de décomposer les traitements en sous-traitements plus élémentaires et indépendants. De même, décomposez les sous-traitements en tâches indépendantes et encore plus élémentaires, et ainsi de suite pour arriver à créer de petits modules qui comportent seulement quelques dizaines d'instructions. Cette manière de décomposer un problème en sous-problèmes porte le nom d'analyse descendante. Cette méthode a pour avantage d'obliger le concepteur/programmeur à se poser les bonnes questions dès le départ de l'analyse : pour arriver à décomposer le problème en tâches de quelques dizaines d'instructions, il est effectivement nécessaire de l'avoir clairement défini.

Le traitement se décompose donc en une série de modules de niveaux hiérarchiques de plus en plus faibles et réalisant de moins en moins d'opérations.

AMSTRAD CPC | CODING : BOOK - Les classeurs Weka 415 | http://cpcrulez.fr

Remarques :

a)   Essayez de limiter la décomposition au niveau 3.

Cette remarque se justifie pour de petits programmes qui logent dans les 64 ou 128 kilo-octets de votre ordinateur. Descendez éventuellement au niveau 4 si le programme est très complexe, mais cela risque d'être inutile et risque de nuire à la bonne compréhension du logiciel.

b)   Essayez de ne pas avoir plus de 5 sous-modules par module.

En effet, il est difficile de mémoriser plus de 5 concepts en même temps. Quand vous êtes à un niveau hiérarchique donné, pour un module donné, vous devez être capable d'avoir en tête les n sous-modules qui vont le composer.
Pour être sûr de ne rien oublier de la décomposition, limitez-vous à 3 ou 4 sous-modules par module et, au besoin, descendez d'un niveau supplémentaire si un ou plusieurs des sous-modules vous semble(nt) trop complexe(s).

3)  Programmation

Cette phase doit être quasi immédiate si vous avez respecté les consignes données dans les deux phases précédentes. A titre indicatif, elle ne devrait pas dépasser 30 % du temps total que vous passerez à la définition, la programmation et le test du programme.
Les modules et sous-modules seront organisés en procédures et/ou fonctions, et le programme principal fera appel aux procédures d'entrée, traitement et sortie.
A titre indicatif, prenons l'exemple suivant : Tracé d'une courbe d'équation Y=f(x).

L'analyse du problème nous montre que les entrées sont :

  • domaine d'étude,
  • équation de la courbe.

La sortie est :

  • affichage de la courbe.


Le traitement est :

  • calcul de Y en fonction de x dans le domaine d'étude,
  • mémorisation du calcul.

Si nous poursuivons l'analyse, le traitement peut se décomposer en

  • recherche de l'échelle en Y,
  • recherche du pas du tracé,
  • calcul et mémorisation des coordonnées y en fonction de x sur le domaine donné.

Ce qui se représente par le graphe structuré suivant :

AMSTRAD CPC | CODING : BOOK - Les classeurs Weka 415 | http://cpcrulez.fr

Le programme qui en résulte a la structure suivante :


4) Mise au point

Cette partie doit être quasi inexistante si vous avez bien suivi les conseils
précédents. Si vous n'obtenez pas les résultats escomptés, déterminez dans quelle branche se trouve le problème et descendez de niveau hiérarchique jusqu'à trouver le module ou sous-module responsable du mauvais fonctionnement.

 

Page précédente : 4/1.4 - Rappel des ordres BASIC et de leur fonction

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 873 millisecondes et consultée 1016 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.