– Conception d’un programme –
[2.3]
1. L’algorithmique – concepts de base
{p193/194}
1.1 Qu’est ce qu’un
algorithme
Définition : L’algorithme est l’énoncé, dans une syntaxe particulière, de la décomposition en différentes étapes élémentaires d’un problème à résoudre.
Syntaxe générale d’un algorithme :
ALGO nom de l’algorithme
CONSTANTES
Liste des constantes
VARIABLES
Liste des variables
DEBUT
Liste des instructions
FIN
1.2 Les variables et les
types
Définition : Les variable sont les données nécessaires à l’algorithme
Les Types des variables :
o REEL
o ENTIER
o CHAINE DE CARACTERES
o CARACTERE
Syntaxe de déclaration d’une variable :
VARIABLES
Nom-de-variable :
type-de-variable
Nom-de-variable1, Nom-de-variable2 : type-de-ces-deux-variables
Exemples :
VARIABLES
PRIX, MONTANT : REEL
QUANTITE : ENTIER
NOM : CHAINE DE CARACTERES
1.3 Quelques
instructions élémentaires
§
AFFICHER
"Message-qui-doit-s’afficher-à-l’écran"
{affichage d’un message}
§
AFFICHER
Nom-de-variable
{affichage d’une variable}
§
SAISIR
Nom-de-variable
{saisie d’une
variable}
§
Nom-de-variable ß Valeur-ou-bien-calcul
{affectation d’un
variable}
Existe aussi les combinaisons suivantes :
§
AFFICHER
"Message-qui-doit-s’afficher-à-l’écran", Nom-de-variable
§
SAISIR "Message-qui-doit-s’afficher-à-l’écran",
Nom-de-variable
1.4 Exemple
récapitulatif :
Exemple :
ALGO Calcul du montant TTC (avec réduction commerciale et financière)
CONSTANTES
TVA = 1.196
VARIABLES
MONTANT : REEL
TAUX_RC
: ENTIER
TAUX_RF
: ENTIER
NET_COM : REEL
NET_FIN :
REEL
TOTAL_TTC :
REEL
DEBUT
AFFICHER "Entrez le Montant brut"
SAISIR MONTANT
AFFICHER "ENTREZ LE TAUX DE LA REDUCTION COMMERCIALE EN %"
SAISIR TAUX_RC
AFFICHER "ENTREZ LE TAUX DE LA REDUCTION FINACIERE EN %"
SAISIR TAUX_RF
NET_COM ß MONTANT * ( 100 – TAUX_RC ) / 100
NET_FIN ß NET_COM * ( 100 – TAUX_RF ) / 100
TOTAL_TTC ß NET_FIN * TVA
AFFICHER "Le prix TTC est de :", TOTAL_TTC
FIN
La structure
générale d’un algorithme se compose en général de 3
parties :
Remarque : Il faut bien faire la différence entre l’instruction AFFICHER qui permet d’afficher à l’écran la valeur d’une variable et l’instruction SAISIR qui permet de saisir au clavier une valeur que l’on désire donner à une variable.
L’instruction AFFICHER concerne les variables de sorties alors que SAISIR concerne les variables d’entrées.
La moulinette algorithmique
2. L’algorithmique – Structure alternative
{p197/199}
2.1 Syntaxe de
la structure alternative : (le « SI »)
(1)
avec une
clause « SINON »
SI test
instructions-à-executer-si-test-vrai
SINON
instructions-à-executer-si-test-faux
FIN SI
(2)
sans clause
« SINON »
la clause « SINON » est
facultative et ne doit être utilisée que si elle est
utile :
SI test
ALORS
instructions-à-executer-si-test-vrai
FIN SI
Exemple :
Calculer
le montant TTC d’une facture avec
remise commerciale de 5% si le montant brut est supérieur à 2000 €. La TVA est
de 19,6%. Vous afficherez le montant de la remise HT et le net à payer TTC.
ALGO Calcul du montant TTC avec remise de 5% si montant brut > 2000 € HT
CONSTANTES
TVA = 1.196
TAUX_RC = 0.05
VARIABLES
MONTANT
: REEL
{ le montant brut à saisir }
REM_COM : REEL { le montant de la remise }
NET_COM : REEL
{ le net commercial }
TOTAL_TTC : REEL
{ le net à payer }
DEBUT
AFFICHER "Entrez le Montant brut"
SAISIR MONTANT
SI MONTANT > 2000
ALORS
REM_COM ß MONTANT * TAUX_RC
SINON
REM_COM ß 0
FIN SI
NET_COM ß MONTANT – REM_COM
TOTAL_TTC ß NET_COM * TVA
AFFICHER "Le montant de la remise HT est de :", REM_COM
AFFICHER "Le Net à payer TTC est de :", TOTAL_TTC
FIN
2.2 Structure
alternative imbriquée : le cas du « ou bien » (forme
« SINON SI »)
SI premier-test
instructions-à-executer-si-le-premier-test-est-vrai
SINON
SI deuxième-test
instructions-à-executer-si-le-deuxième-test-est-vrai
SINON
instructions-à-executer-si-les-deux-tests-sont-faux
FIN SI
FIN SI
Exemple :
Calculer le montant TTC d’une facture avec remise commerciale de 5% si le montant brut est supérieur à 2000 € ou bien remise commerciale de 2% si le montant brut est supérieur à 1000 €. La TVA est de 19,6%. Vous afficherez le montant de la remise HT et le net à payer TTC.
ALGO Calcul du montant TTC (remise 5% si montant > 2000 ou 2% si montant > 1000)
CONSTANTES
TVA = 1.196
TAUX_RC1 = 0.05 { taux remise si montant > 2000 }
TAUX_RC2 = 0.02 { taux remise si montant > 1000 }
VARIABLES
MONTANT
: REEL
{ le montant brut à saisir }
REM_COM : REEL { le montant de la remise }
NET_COM : REEL
{ le net commercial }
TOTAL_TTC : REEL
{ le net à payer }
DEBUT
AFFICHER "Entrez le Montant brut"
SAISIR MONTANT
SI MONTANT > 2000
ALORS
REM_COM ß MONTANT * TAUX_RC1
SINON
SI MONTANT > 1000
ALORS
REM_COM ß MONTANT * TAUX_RC2
SINON
REM_COM ß 0
FIN SI
FIN SI
NET_COM ß MONTANT – REM_COM
TOTAL_TTC ß NET_COM * TVA
AFFICHER "Le montant de la remise HT est de :", REM_COM
AFFICHER "Le Net à payer TTC est de :", TOTAL_TTC
FIN
2.3 Structure
alternative imbriquée : le cas du « et » (forme
« ALORS SI ») :
SI premier-test
SI deuxième-test
instructions-à-executer-si-les-deux-tests-sont-vrais
SINON
instructions-à-executer-si-premier-test-vrai-et-deuxième-test-faux
FIN SI
SINON
instructions-à-executer-si-le-premier-test-est-faux
FIN SI
Exemple :
Calculer le montant TTC d’une facture avec remise commerciale de 5% si le montant brut est supérieur à 2000 € et si le délai de règlement prévu est inférieur à 30 jours. La TVA est de 19,6%. Vous afficherez le montant de la remise HT et le net à payer TTC.
ALGO Calcul du montant TTC (remise 5% si montant > 2000 et délai de règlement < 30)
CONSTANTES
TVA = 1.196
TAUX_RC = 0.05 { taux remise si montant > 2000 }
VARIABLES
MONTANT : REEL { le montant brut à saisir }
DELAI
: ENTIER
{ délai de règlement prévu }
REM_COM : REEL { le montant de la remise }
NET_COM : REEL
{ le net commercial }
TOTAL_TTC : REEL
{ le net à payer }
DEBUT
AFFICHER "Entrez le Montant brut"
SAISIR MONTANT
AFFICHER "Entrez le Délai de règlement "
SAISIR DELAI
SI MONTANT > 2000
ALORS
SI DELAI < 30
ALORS
REM_COM ß MONTANT * TAUX_RC
SINON
REM_COM ß 0
FIN SI
SINON
REM_COM ß
0
FIN SI
NET_COM ß MONTANT – REM_COM
TOTAL_TTC ß NET_COM * TVA
AFFICHER "Le montant de la remise HT est de :", REM_COM
AFFICHER "Le Net à payer TTC est de :", TOTAL_TTC
FIN
3. L’algorithmique – Structure Itératives et
tableaux {p203/204} et
{p213/214}
3.1 Syntaxe de
trois structures itératives (boucles de répétition) :
(1)
La boucle
« TANT QUE … FIN TANT QUE »
Les instructions contenues dans la boucle
sont répétées 0 ou plusieurs fois tant que le test est vrai (donc jusqu'à
ce que le test soit faux)
TANT QUE test
instructions-à-répeter-tant-que-le-test-est-vrai
FIN TANT QUE
(2)
La Boucle
« REPETER … JUSQU'A » :
Les instructions contenues dans la boucle
sont répétées 1 ou plusieurs fois jusqu’à ce que le test soit vrai (donc
tant que le test est faux)
REPETER
instructions-à-répeter-jusqu’à-ce-que-le-test-soit-vrai
JUSQU'A test
(3)
La Boucle
« POUR … FIN POUR » :
La variable débute à la valeur de départ et
est incrémentée à chaque nouveau tour de boucle jusqu'à ce qu’elle atteigne la
valeur d’arrivée.
POUR variable DE valeur-départ
A valeur-arrivée
instructions-à-répeter
FIN POUR
3.2 Les tableaux
de données :
Un tableau est une organisation de données qui permet de créer une série de variables de même type auxquelles on accédera grâce à un numéro appelé indice (ou index)
(1) Syntaxe de la déclaration d’un
tableau
Nom-du-tableau[ taille-du-tableau ] :
Tableau de type
Exemple : déclaration d’un tableau de 10 entiers dénommé « Table » :
Table[ 10 ] : Tableau d’
ENTIER
(2) Accès aux éléments contenus dans
les cases du tableau
On utilise un indice pour indiquer entre les deux crochets du tableau le numéro de la case à laquelle on désire accéder. Par exemple, l’instruction :
Table[ 1 ] ß 15
permet de « remplir » la première case du tableau avec la valeur 15.
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
Table[ 1 ]
Table[ 2 ]
Table[ 10 ]
Exemples :
Calculer
la somme des 20 premiers nombres : 1 + 2 + 3 + 4 + 5 + … + 20
ALGO Somme des 20 premiers nombres avec un TANT QUE
VARIABLES
SOMME
: ENTIER
{ pour calculer la somme }
CPT : ENTIER { pour compter de 1 à 20 }
DEBUT
SOMME ß 0
CPT ß 1
TANT QUE CPT <= 20
SOMME ß SOMME + CPT
CPT ß CPT + 1
FIN TANT QUE
AFFICHER "Résultat = ", SOMME
FIN
ALGO Somme des 20 premiers nombres avec un POUR
VARIABLES
SOMME
: ENTIER
{ pour calculer la somme }
CPT : ENTIER { pour compter de 1 à 20 }
DEBUT
SOMME ß 0
POUR CPT DE 1 A 20
SOMME ß SOMME + CPT
FIN POUR
AFFICHER "Résultat = ", SOMME
FIN
Exemple :
Entrez
une série de notes sur 20 jusqu'à une valeur égale à -1 qui servira de test
d’arrêt et afficher la moyenne des notes saisies
ALGO Calcul de la moyenne
VARIABLES
NOTE : ENTIER { pour saisir les notes }
SOMME
: ENTIER
{ pour sommer les notes }
CPT : ENTIER { pour compter les notes saisies }
DEBUT
SOMME ß 0
CPT ß 0
AFFICHER "Entrez une note ( entrez –1 pour arrêter )"
SAISIR NOTE
TANT QUE NOTE ≠ -1
SOMME ß SOMME + NOTE
CPT ß CPT + 1
AFFICHER "Entrez une note ( entrez –1 pour arrêter )"
SAISIR NOTE
FIN TANT QUE
SI CPT ≠ 0
ALORS
AFFICHER "La moyenne des ", CPT, " notes est : ", SOMME / CPT
FIN SI
FIN
Exemple :
Entrez
dans un tableau une série de notes sur 20 jusqu'à une valeur égale à -1 qui
servira de test d’arrêt puis calculer la somme, la moyenne, le maximum et le
minimum des notes saisies. On considère qu’il y a forcement moins de 100 notes
en tout.
ALGO Calcul de la somme, moyenne, maximum, minimum
VARIABLES
NOTE : ENTIER { pour saisir les notes une à une }
Table[ 100 ] : Tableau d’ENTIER { pour ranger les notes saisies }
CPT : ENTIER { pour compter les notes saisies }
N : ENTIER { pour parcourir le tableau }
SOMME
: ENTIER
{ pour sommer les notes }
MIN : ENTIER { pour stocker le minimum }
MAX : ENTIER { pour stocker le maximum }
DEBUT
CPT ß 0
N ß 1
AFFICHER "Entrez une note ( entrez –1 pour arrêter )"
SAISIR NOTE
TANT QUE NOTE ≠ -1
Table[ N ] ß NOTE
CPT ß CPT + 1
N ß N + 1
AFFICHER "Entrez une note ( entrez –1 pour arrêter )"
SAISIR NOTE
FIN TANT QUE
SOMME ß Table[ 1 ]
MAX ß Table[ 1 ]
MIN ß Table[ 1 ]
POUR N DE 2 A
CPT
SOMME ß
SOMME + Table[ N ]
SI MAX < Table[ N
]
ALORS
MAX ß
Table[ N ]
FIN SI
SI MIN > Table[ N
]
ALORS
MIN ß
Table[ N ]
FIN SI
FIN
POUR
AFFICHER "La somme des ", CPT, " notes est : ", SOMME
AFFICHER
"Le maximum des ", CPT, " notes est : ", MAX
AFFICHER
"Le minimum des ", CPT, " notes est : ", MIN
SI CPT ≠ 0
ALORS
AFFICHER "La moyenne des ", CPT, " notes est : ", SOMME / CPT
FIN SI
FIN