0% ont trouvé ce document utile (0 vote)
69 vues31 pages

Algorithme Et Programmation - Structure

Transféré par

tematique
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
69 vues31 pages

Algorithme Et Programmation - Structure

Transféré par

tematique
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

- Algorithme et programmation -

- La programmation structurée - les séquences -

Rappel : la PROGRAMMATION STRUCTURÉE

VOCABULAIRES

Les ELEMENTS ALGORITHMIQUES de BASE


Le LEXIQUE
Les constantes
Les variables
Les opérations spéciales
Les fonctions (ou procédure) intrinsèques
La DESCRIPTION des TRAITEMENTS
La procédure d'acquisition de données
La procédure de restitution des résultats
L'affectation

La DÉMARCHE de CONCEPTION
ILLUSTRATIONS 1
Phase 0 : spécifications (énoncé du problème)
Phase 1 : conception abstraite (étape de réflexion)
Phase 2 : conception concrète (algorithme)
Phase 3 : codification (programmation dans un langage informatique)
Phase 4 : Tests (utilisation de jeux d’essai pour valider l'application)
ILLUSTRATIONS 2
Phase 0 : Énoncé (spécifications).
Phase 1 : Étape de réflexion (conception abstraite).
Phase 2 : L'algorithme (lexique, code) (conception concrète).
Phase 3 : Programmation (codification).
maquette WINDOWS
code Pascal pour DELPHI 5
code VBA pour ACCESS2003
maquette WWW
code VBScript pour Internet Explorer
Phase 4 : jeux d’essai (tests)

RÉGLES à OBSERVER

Un PEU de VOCABULAIRE.

Rappel : la programmation structurée

Le cycle de vie des logiciels repose sur une démarche méthodologique, qui doit
répondre aux besoins des utilisateurs, en partant de l'abstraction du problème vers la
réalisation de l’application informatique qui va y répondre.

De façon à faciliter le développement et la maintenance des logiciels ; la


« programmation structurée » a proposé aux informaticiens une approche
méthodologique reposant sur le concept que tout programme peut être développé
uniquement à partir de trois constructeurs :

 La séquence (enchaînement séquentiel de traitements ou instructions),

 La sélection (alternative ou instruction conditionnelle : traitement permettant


d'effectuer un choix),

 La répétition (itération ou boucle : traitement pouvant être reproduit plusieurs


fois).
VOCABULAIRES

L’informatique est du point de vue de son utilisation (exécution d’un programme sur
un ordinateur par un utilisateur) un système de communication entre l’utilisateur et
l’ordinateur (dialogue homme/machine).

Schéma de communication Utilisateur/Ordinateur

Quel est le vocabulaire associé en fonction des acteurs ?

 Algorithme

DONNEES TRAITEMENTS RESULTATS

En français  On traite les données d’un problème pour en fournir les résultats.
 Utilisateur

ENTREES TRAITEMENTS SORTIES

En français  L’utilisateur entre des informations à l’ordinateur pour traitements, et


récupère en sortie les résultats.

 Ordinateur

LECTURES TRAITEMENTS ECRITURES

En français  L’ordinateur effectue des lectures d’informations en provenance des


périphériques d’entrées, les traite, et fournit l’écriture des résultats aux
périphériques de sorties.

 Langages de programmation (en mode console)

READ (PASCAL) WRITE

SCANF (C) PRINTF

CIN (C++) COUT

ACCEPT (COBOL) DISPLAY

INPUT (Quick BASIC) PRINT


… Les ELEMENTS ALGORITHMIQUES de BASE

Remarque : dans notre démarche algorithmique, on choisira de se placer sous


l’angle de vue de l’ordinateur.

Le lexique

Le lexique d’un algorithme, consiste en la description des éléments constitutifs


permettant de répondre aux besoins d’une application informatique (constante, type,
variable, opération spéciale, fonction ou procédure intrinsèque…), qui seront utilisés
dans la description des traitements algorithmiques.

Les constantes

Une constante est une information, qui quelque soit l’exécution du programme n’a
pas vocation à changer de valeur.

Exemple : On calcule le montant toutes taxes d’une facture à partir du montant net
commercial et du taux de TVA de 20%.

Description :

Lexique

Constante

TxTVA = 20% {le taux de TVA}


Les variables

Une variable est une information qui comme son nom l’indique à vocation à prendre
des valeurs différentes en fonction des exécutions d’un programme.

Exemple : On calcule le montant toutes taxes d’une facture à partir du montant


net commercial et du taux de TVA de 20%.

Description :

Lexique

Variable

MONTTC (réel) {le montant toutes taxes}

NETCOM (réel) {le montant net commercial}

Pour travailler l’ordinateur à besoin de manipuler des informations, il doit donc avoir
des endroits pour les stocker (la mémoire vive de l’unité centrale).

Chaque information traitée par l’ordinateur est rangée à une place déterminée (son
adresse) d’une taille déterminée (nombre d’octet).

La traduction logique est que chaque variable ( information susceptible d’être


modifier par un traitement) va avoir un nom (nom de la variable car il serait trop
difficile de manipuler l’adresse physique d’implantation dans la mémoire), et un type
informatique (réservation d’un nombre déterminé d’octets en mémoire).
Exemple

Définition nom de variable type exemple de valeur

Le solde initial d’un compte bancaire SOLDE réel 895.25

Le nombre de personnes d’une enquête NBPERS entier 1022

Une phrase à analyser PHRASE chaîne de caractère C’est une


phrase !

Une lettre à rechercher LETTR caractère e

L’état d’une comparaison (A=B) COMPAR booléen vrai

...

Les opérations spéciales

Une opération spéciale est une opération non implicite. Ce qui n’est pas le cas pour
les opérations arithmétiques (+, -, *, /) que tous informaticiens et utilisateurs vont
comprendre sans explication.

Une opération spéciale nécessite d’être décrite dans le lexique de l’algorithme.

Exemple : Un code est construit à partir des valeurs du prénom et du nom d’une
personne.

Description :

Lexique
Variable

NOM (Chaîne) {le nom de la personne}

PRENOM (Chaîne) {le prénom de la personne}

CODE (Chaîne) {le code de la personne}

Opération

+ Concaténation de 2 chaînes de caractères

Début

CODE  PRENOM + NOM

Fin

En programmation

Visual basic CODE = PRENOM & NOM

C CODE = concat(PRENOM,NOM) ;

Pascal CODE = PRENOM + NOM ;

Les fonctions (ou procédure) intrinsèques

Une fonction (ou procédure) intrinsèque est une fonction définie au préalable par les
auteurs des environnements de développement, et inclut d'office ou dans des
bibliothèques, pour être mise automatiquement à la disposition des développeurs.
On parle aussi dans le langage algorithmique de fonction (ou procédure) prédéfinies.

Les fonctions intrinsèques peuvent donc être utilisées directement par le


développeur, sans que celui-ci soit obligé d'en développer les traitements.

Les fonctions intrinsèques sont décrites dans le lexique de l'algorithme.

Exemple : on veut résoudre l'équation Y = 2X5 – X3 + 1.

Description :

Lexique

Variable

X (réel)

Y (réel)

Fonction intrinsèque

Fonction puissance (données N (réel), P (entier)) résultat (réel)

 retourne l'élévation de N à la puissance P

Début

Y  2 * puissance (X,5) - puissance (X,3) + 1

Fin
…Les ELEMENTS ALGORITHMIQUES de BASE

La description des traitements

La description des traitements représente la partie active du futur programme ; est


habituellement délimité dans l'algorithme par les mots-clés : « début ...fin ».

Les traitements sont ordonnancés (définition de l'ordre des instructions du futur


programme) et décrites en « pseudo code », de façon à garder la notion
d'indépendance entre la conception algorithmique, et la codification dans un langage
de programmation.

Remarque : les traitements seront assurés par l'unité centrale (association :


processeur/mémoire vive/système d'exportation) de l'ordinateur. Les traitements
algorithmiques se placeront donc sous l'angle de vue de l'ordinateur.

Exemple :

L'ordinateur lit la valeur de X provenant du périphérique d'entrée Lire (X)


clavier
À partir de la valeur de X l'ordinateur calcule la valeur de Y Y2*X-3
L'ordinateur écrit la valeur de Y en direction du périphérique de sortie Ecrire (Y)
écran

La procédure d'acquisition de données

La procédure Lire() est la primitive qui va permettre aux traitements d'acquérir les
informations données qui seront fournies par l'utilisateur (gestion des flux entrant).
Exemple :

Acquisition de la valeur de X à partir du clavier Lire (X)


Acquisition de la valeur NOM et PRENOM à partir du clavier Lire (NOM,
PRENOM)

Attention : on peut trouver dans la littérature parlant de l' « algorithmie » d'autres


primitives permettant l'acquisition de données Entrée(), voir plus particulièrement à
partir du clavier Saisir().

La procédure de restitution des résultats

La procédure Ecrire() est la primitive qui va permettre aux traitements de restituer les
résultats à l'utilisateur (gestion des flux sortants).

Exemple :

Restitution de la valeur de Y à l'écran Écrire (X)


Restitution de la valeur de NOM et PRENOM à l'écran Écrire (NOM,
PRENOM)

Attention : on peut trouver dans la littérature parlant de l' « algorithmie » d'autres


primitives permettant la restitution de résultats Sortie(), voir plus particulièrement en
direction de l'écran Afficher().
L'affectation

L'affectation permet la gestion d'un traitement et l'affectation de son résultat à une


variable

Exemple :

A prend la valeur 12,5 A  12,5


Transfert de la valeur NOM1 vers NOM2 NOM2  NOM1
Y prend la valeur du calcul 2X - 3 Y2*X–3
Z prend la valeur du calcul 3X5 Z  3 * puissance (X,5)
On ajoute 1 à C CC+1

Attention : on n’utilise pas que le signe = (égal) pour représenter l'affectation mais le
signe  (flèche) pour éviter certaines ambiguïtés de notation.

exemple

C=C+1 n'a aucun sens mathématique

CC+1 indique bien que l'on prend la valeur précédente de C et que


l'on y ajoute 1

Ou encore dans le cas d'une instruction conditionnelle

Si A = B

Alors A  B + 2

sinon AB
Fin si

la notation n'est pas ambiguë

La DÉMARCHE de CONCEPTION

ILLUSTRATIONS 1

Phase 0 : spécifications (énoncé du problème)

On souhaite calculer la surface d’un champ rectangulaire.

Phase 1 : conception abstraite (étape de réflexion)

Noms des variables

Données du problème

La longueur du champ LONG

La largeur du champ LARG

Résultat du problème

La surface du champ SURF

Traitement

SURF = LONG x LARG


Phase 2 : conception concrète (algorithme)

Lexique Algorithme logique


LONG (réel) lire (LONG)
LARG (réel) lire (LARG)
SURF (réel) SURF  LONG * LARG
écrire (SURF)

On peut transformer cet Algorithme logique associé à son lexique en un Algorithme


de programmation.

 C’est à dire que l’on inclut au précédent Algorithme logique des préoccupations de
programmation et/ou de présentation.

exemple

Lexique Algorithme de programmation


écrire (‘entrer la longueur du champ’)
LONG (réel) lire (LONG)
écrire (‘entrer la largeur du champ’)
LARG (réel) lire (LARG)
SURF (réel) SURF  LONG x LARG
écrire (‘la surface est égale à ‘ , SURF)

Règle

On ne choisira pas la solution de l’algorithme de programmation.

On procédera uniquement à l’écriture d’algorithmes logiques.


La DÉMARCHE de CONCEPTION

ILLUSTRATIONS 1

Phase 3 : codification (programmation dans un langage informatique)

 en Basic

10 rem PROGRAMME EXERCICE-1 en Basic

20 rem déclaration des variables

30 rem programme principal

40 rem saisie des données

50 print ²entrer la longueur du champ²

60 input LONG

70 print ²entrer la largeur du champ²

80 input LARG

90 rem calcul

100 SURF = LONG * LARG

110 rem affichage du résultat

120 print ²la surface est égale ಠSURF

 en Cobol
identification division.

program-id. EXERCICE-1.

environment division.

configuration section.

input-output section.

data division.

file section.

* déclaration des variables

working-storage section.

77 LONG pic 9(5)v999.

77 LARG pic 9(5)v999.

77 SURF pic 9(7)v999.

77 ESURF pic 9(7).999.

* programme principal

procedure division.

debut.

* saisie des données

display ²entrer la longueur du champ²


accept LONG

display ² entrer la largeur du champ ²

accept LARG

* calcul

compute SURF = LONG * LARG

* affichage du résultat

move SURF to ESURF

display ²la surface est égale à ² ESURF.

stop-run.

 en DBase

* PROGRAMME EXERCICE-1 en Dbase

* déclaration des variables

store 0.0 to LONG,LARG,SURF

* programme principal

* saisie des données

input ²entrer la longueur du champ² LONG

input ²entrer la largeur du champ² LARG

* calcul
SURF = LONG * LARG

* affichage du résultat

? ²la surface est égale à ² SURF


 en Pascal

(*PROGRAMME EXERCICE-1 en Pascal *)

Program EXERCICE_1;

(* déclaration des variables *)

var LONG,LARG,SURF : real;

(* programme principal *)

BEGIN

(* saisie des données *)

write (‘entrer la longueur du champ ‘);

readln(LONG);

write (‘entrer la largeur du champ ‘);

readln(LARG);

(* calcul *)

SURF := LONG * LARG;

(* affichage du résultat *)

writeln (‘la surface est égale à ‘,SURF);

END.
 en C

/* PROGRAMME EXERCICE-1 en C */

#include <stdio.h>

/* déclaration des variables */

float LONG,LARG,SURF;

/* programme principal */

/* saisie des données */

printf (²\n entrer la longueur du champ ²);

scanf(²%d²,&LONG);

printf (²\n entrer la largeur du champ ²);

scanf(²%d²,&LARG);

/* calcul */

SURF = LONG * LARG;

/* affichage du résultat */

printf (²\n la surface est égale à %d²,SURF);

 en EXCEL
Feuille de calcul EXERCICE-1 en
EXCEL
saisie des données
Entrer la longueur du champ LONG mètres
Entrer la largeur du champ LARG mètres

calcul et

affichage du résultat
La surface est égale à =LONG * LARG mètres carrés

et bien d’autres encore ...

Quelles sont les observations de base, que l’on peut formuler ?

 Les syntaxes des langages sont toutes différentes.

 Certains langages demandent la déclaration des variables d’autres non.

 L’algorithme reste le même pour tous les langages.

 Acquisition des données

 Calcul des résultats à partir des données

 Restitution des résultats

Phase 4 : Tests (utilisation de jeux d’essai pour valider l'application)

Il est indispensable que chaque programme soit validé par une série de jeux d'essai
caractéristique de la réalité dans son utilisation.
La DÉMARCHE de CONCEPTION

ILLUSTRATIONS 2

Phase 0 : Énoncé (spécifications).

On veut calculer le montant toutes taxes d’une facture à partir du montant net
commercial et du taux de TVA de 20%

Phase 1 : Étape de réflexion (conception abstraite).

A partir de l'énoncé on doit définir les flux entrants (les données du problème), les
flux sortants (les résultats du problème), et le moyen de passer des uns aux autres.

On veut calculer le montant toutes taxes d’une facture à partir du montant net
commercial et du taux de TVA de 20%

Résultat

Le montant toutes taxes de la facture MONTTC

Données

Le montant net commercial NETCOM

Constantes

Le taux de TVA TxTVA = 20%

Traitement

MONTTC = NETCOM + TAXE


 TAXE le montant de la taxe sur la facture

TAXE = NETCOM * TxTVA

Soit

MONTTC = NETCOM + NETCOM * TxTVA

MONTTC = NETCOM * (1 + TxTVA)

Phase 2 : L'algorithme (lexique, code) (conception concrète).

A partir de l’étape précédente on va devoir définir le lexique.

Lexique

Constante

TxTVA = 20% le taux de TVA

Variable

MONTTC (réel) le montant toutes taxes de la facture

NETCOM (réel) le montant net commercial

Début

Lire(NETCOM)

MONTTC  NETCOM * (1 + TxTVA)

Ecrire(MONTTC)

Fin

La DÉMARCHE de CONCEPTION
ILLUSTRATIONS 2

Phase 3 : Programmation (codification).

On peut désormais choisir un langage de programmation cible, et traduire le


précédent algorithme pour en obtenir le programme correspondant …

La maquette

Le Code de la procédure événementielle en Pascal dans un formulaire Delphi.

{déclaration de la constante taux de taxe}

const TxTAXE = 0.2;

procedure TForm1.btCALCULClick(Sender: TObject);

{déclaration des variables (locales)}

var NETCOM, MONTTC : real;

begin

{récupération des données}


NETCOM := strtofloat(textNETCOM.text);

{traitement}

MONTTC := NETCOM * (1 + TxTAXE);

{restitution du résultat}

textMONTTC.text := floattostr(MONTTC);

end;

Le Code de la procédure événementielle en VBA dans un formulaire Access


2003.

'clause de demande de déclaration de variables

Option Explicit

'déclaration de la constante taux de taxe

Const TxTAXE = 0.2

Private Sub BtCalcul_Enter()

'déclaration des variables (locales)

Dim NETCOM As Double

Dim MONTTC As Double


'récupération des données

NETCOM = CDbl(TextNETCOM.Value) 'lire(MONTHT)

'traitement

MONTTC = NETCOM * (1 + TxTAXE)

'restitution du résultat

TextMONTTC.Value = CStr(MONTTC) 'écrire(MONTTC)

End Sub

La DÉMARCHE de CONCEPTION

ILLUSTRATIONS 2

Phase 3 : Programmation (codification).

VBScript dans une page HTML pour le Web.

La maquette

Le Code VBSCRIPT

<!-- DATE DE CREATION: 19/07/2006 -->


<HTML>
<HEAD>
<TITLE>Calculer le montant hors taxe d'un produit avec VBSCRIPT</TITLE>
<META NAME="Description" CONTENT="Calculer le montant hors taxe d'un produit
avec VBSCRIPT de l'algorithme au programme">
<META NAME="Keywords"
CONTENT="programmation,VBScript,visual,basic,application,internet,explorer,HTML
,algorithme,structurée,séquence">
<META NAME="Author" CONTENT="Eric CREPIN">
<META NAME="Generator" CONTENT="WebExpert">
<!-- zone de déclaration des traitements du client Web en VBScript -->
<SCRIPT LANGUAGE="VBScript">
'clause d'obligation de déclaration des variables
option explicit
const TxTAXE = 0.2
' fonction événementielle exécutée à la validation du formulaire
Function FORM_TTC_onSubmit()
' déclaration des variables de travail (non typées)
Dim NETCOM, MONTTC
' récupération des données
' correspondant à lire(NETCOM)
NETCOM = CDbl(FORM_TTC.textNETCOM.Value)
' traitement
MONTTC = NETCOM * (1 + TxTAXE)
' restitution du résultat
' correspondant à écrire(MONTHT)
FORM_TTC.TextMONTTC.Value = cstr(MONTTC)

'une fonction se doit de renvoyer un résultat


'mène s'y en l'occurrence il ne sert pas
FORM_TTC_onSubmit = false
end function
</SCRIPT>
<!-fin de zone des traitements du client Web en VBScript -->
</HEAD>

<BODY>
<!-- en tête du formulaire -->
<FORM NAME="FORM_TTC" METHOD=POST>
<TABLE BORDER=1>
<TR><!-- première ligne -->
<TD><FONT COLOR="#008000">le montant net commercial</FONT></TD>
<TD><!-- seconde colonne de la ligne 1 -->
<!-- zone texte : TextNETCOM -->
<INPUT TYPE="text" NAME="TextNETCOM" SIZE=10 MAXLENGTH=10>
</TD>
</TR>
<TR><!-- seconde ligne -->
<TD>&nbsp;</TD>
<TD><!-- seconde colonne de la ligne 2 -->
<!-- bouton de validation du formulaire -->
<INPUT TYPE="submit" VALUE="Calcul">
</TD>
</TR>
<TR><!-- troisième ligne -->
<TD><FONT COLOR="#FF0000">le montant toutes taxes </FONT></TD>
<TD><!-- seconde colonne de la ligne 3 -->
<!-- zone texte : TextMONTTC en lecture seule-->
<INPUT TYPE="text" NAME="TextMONTTC" SIZE=10 MAXLENGTH=10
READONLY>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>

Phase 4 : jeux d’essai (tests)

Rappel : Une application n'est définitivement valide qu'après avoir subi une phase de
tests par l'intermédiaire d'un choix judicieux de jeux d’essai (échantillon de données
correspondants à la réalité du problème à traiter).
RÉGLES à OBSERVER

LOIS Algorithmiques. en Génie logiciel

Tout problème doit résolu par la réflexion spécification.

Tout algorithme doit être élaboré à partir d’une réflexion conception.

Tout programme doit découler d’un algorithme codification.

Tout programme doit subir une phase représentative de jeux d’essai tests.

Un PEU de VOCABULAIRE.

 La séquence est une instruction simple d'un programme comme :

o un calcul : Y  2 * X - 3,

o l'acquisition d'une donnée : Lire(X),

o la restitution d'un résultat : Ecrire(Y),

o ou l'utilisation d'une fonction intrinsèque : Y  puissance(X,2).

 Un type informatique permet de définir une variable dans son domaine de


valeur. Les types informatiques standards sont : réel, entier, chaîne de caractères,
caractère, booléen ; mais aussi structures, tableau, fichier, liste, objet ...
 Une variable est une information (donnée, résultat, variable de travail) dont la
valeur change en fonction de l'exécution du programme. Une variable se doit
d'être typée en fonction du type informatique proposé par les langages de
programmation comme : X (réel), CODE(chaîne), ERREUR (booléen).

 Une constante est un élément non variable (on connaît toujours sa valeur)
comme : TxTVA = 19.6%

La définition de constantes nommées permet de faciliter la maintenance.

 L'ordonnancement des instructions d'un programme consiste en


l'organisation logique de l'ordre d’exécution des différentes instructions comme :
acquérir les données du problème, poser les conditions du calcul des résultats,
calculer les résultats et restituer les résultats.

 La maquette constitue l'interface homme machine d'une application ou d'un


logiciel. La maquette d'une application correspond à l'ensemble des formulaires
qui seront nécessaires pour l'application. Chaque formulaire est construit à partir
de composants (ou contrôles) graphiques qui pourront renfermer des procédures
événementielles.

 Une procédure événementielle correspond au traitement (ensemble des


instructions d'une partie du programme) qui seront activées par une action
événementielle (habituellement par l'utilisateur grâce à un événement, le plus
souvent un clic de souris).
 Le commentaire est un élément indispensable d'un programme (bien que
facultatif) qui permet d'apporter des informations (documentation technique) ayant
vocation à en faciliter la maintenance, en le rendant plus lisible aux développeurs.

Vous aimerez peut-être aussi