Académique Documents
Professionnel Documents
Culture Documents
I. L’INSTRUCTION D’AFFECTATION
1. Syntaxe et signification
Ainsi : 24
Y ← 24 ;
Attribue la valeur 24 à la variable Y.
Y
Cela sous-entend impérativement que Y soit une variable de type numérique. Si Y
a été défini dans un autre type, il faut bien comprendre que cette instruction
provoquera une erreur. On peut en revanche sans aucun problème attribuer à une
variable la valeur d’une autre variable, telle quelle ou modifiée.
Par exemple :
T← Y ; Signifie que la valeur de T est maintenant celle de Y.
Notez bien que cette instruction n’a en rien modifié la valeur de Y : une
instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche.
T ← Y + 4 ;
Si Y contenait 12, T vaut maintenant 16. De même que précédemment, Y vaut
toujours 12.
T ← T + 1 ;
Si T valait 6, il vaut maintenant 7. La valeur de T est modifiée, puisque T est la
variable située à gauche de la flèche.
Pour revenir à présent sur le rôle des guillemets dans les chaînes de caractères,
comparons maintenant deux algorithmes suivants :
Exemple 1
Début
Rire ← "Loulou"
beni ← "Rire"
Fin
Exemple 2
Début
Rire ← "Loulou"
beni ← Rire
Fin
La seule différence entre les deux algorithmes consiste dans la présence ou dans
l’absence des guillemets lors de la seconde affectation. Et l'on voit que cela change
tout !
Dans l'exemple 1, ce que l'on affecte à la variable beni, c'est la suite de caractères
R- i -r - e. Et à la fin de l’algorithme, le contenu de la variable beni est donc « Rire ».
Dans l'exemple 2, en revanche, Rire étant dépourvu de guillemets, n'est pas
considéré comme une suite de caractères, mais comme un nom de variable. Le sens
de la ligne devient donc : « affecte à la variable beni le contenu de la variable Rire ».
A la fin de l’algorithme n°2, la valeur de la variable beni est donc « Loulou ». Ici,
l’oubli des guillemets conduit certes à un résultat, mais à un résultat différent.
A noter, car c’est un cas très fréquent, que généralement, lorsqu’on oublie les
guillemets lors d’une affectation de chaîne, ce qui se trouve à droite du signe
d’affectation ne correspond à aucune variable précédemment déclarée et affectée.
Dans ce cas, l’oubli des guillemets se solde immédiatement par une erreur
d’exécution.
Ceci est une simple illustration. Mais elle résume l’ensemble des problèmes qui
surviennent lorsqu’on oublie la règle des guillemets aux chaînes de caractères.
Exemple 2
Variable A en Numérique
Début
A ← 12;
A ← 34 ;
Fin
Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle est
34.
Il n’y a aucun intérêt à affecter une variable pour l’affecter différemment juste après.
En l’occurrence, on aurait tout aussi bien atteint le même résultat en
écrivant simplement :
Exemple 1:
Variable A : Numérique;
Début
A ← 12;
Fin
Exemple 2 :
Variable A en Numérique
Début
A ← 34 ;
Fin
L’incrémentation est l’opération qui consiste à accroitre par addition, la valeur d’une
variable à partir de son ancienne valeur.
Syntaxe : nom_variable1← nom_variable1+α(α réel ou entier positif)
Exemples : b ← b+1 ; Q←Q+2 ;
Explications : b ← b+1 ; signifie « prendre la valeur de la variable b à laquelle il
faudra ajouter 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :
10 11
b b
La décrémentation est l’opération qui consiste à décroitre par soustraction la valeur
d’une variable à partir de sa valeur initiale.
Syntaxe : nom_variable1← nom_variable1- α(α réel ou entier positif)
Exemples : k ← k-1 ; d← d- 3 ;
Explications : k ← k -1 ; signifie « prendre la valeur de la variable k à laquelle il
faudra retrancher 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :
31 30
k k
III. INSTRUCTION D’AFFICHAGE ET DE SAISIE
Pour afficher le contenu d’une cellule mémoire, une variable on met le nom de
la variable simplement sans griffe.
Syntaxe 2 : AFFICHER (nom_variable) ;
Ex. :
VAR x, y : entier ;
x ← 6 ; y ← 4 ;
AFFICHER(x) ; (*on verra 6 afficher à l’écran*)
ECRIRE(y) ; (*on verra 4 afficher à l’écran*)
AFFICHER(x, y) ; (*on verra 6 4 afficher à l’écran*)
Elle permet de ranger ou mémoriser une valeur que l’on vient de saisir pour un
usage ultérieur. On saisi toujours une valeur considérée comme le contenu d’une
variable. Pour cela deux mots clés sont utilisés, ce sont : SAISIR ou LIRE
Syntaxe : SAISIR (nom_variable) ; ou LIRE (nom_variable) ;
Ex. :
VAR x : entier ;
AFFICHER (″Entrer une valeur ″)
SAISIR (x) ;
*Permet de ranger la valeur que l’utilisateur va saisir dans la variable x
Simulation : A l’écran on a
L’utilisateur saisi
Entrer une valeur
24
24 sera rangé dans Ecran
La variable
(Cellule mémoire) x
24 Unité centrale
Cellule mémoire x
EXERCICES D’APPLICATION
Exercice 1 :
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ; CORRECTION
DEBUT
A ← 1 ; A=3 B=4
B ← A + 3 ;
A ← 3 ;
FIN
Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B, C : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 3 ; …………………………………………………………………………………
C ← A + B ; ………………………………………………………………………..
A ← 2 ;
C ← B – A ;
FIN
Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ;
DEBUT
A ← 5 ; …………………………………………………………………………………
…………………………………………………………………………………
B ← A + 4 ;
………………………………………………………………………..
A ← A + 1 ;
B ← A – 4 ;
FIN
Exercice 1.4
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME valeur
Var A, B : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 2 ; …………………………………………………………………………………
A ← B ; ………………………………………………………………………..
B ← A ;
FIN
Moralité : les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il
quelque chose ?
Exercice 1.5
Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et
ce quel que soit leur contenu préalable.
Exercice 1.6
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un
algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C
(toujours quels que soient les contenus préalables de ces variables).
Exercice 1.7
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ;
L’algorithme produit le résultat suivant :
B ← "12" ;
C aura comme contenu ‘’42312’’ car le signe +
C ← A + B ;
permet aussi de concatener deux chaînes.
FIN
Exercice 1.8
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ; …………………………………………………………………………………
B ← "12" ; …………………………………………………………………………………
C ← A & B ; ………………………………………………………………………..
FIN
Exercice 2
Ecrire un algorithme qui permet de calculer la moyenne par matière et la moyenne
générale d’un étudiant selon les règles de gestion suivantes :
*Algorithme : 2 notes coefficient 2, 1 note coefficient 1 ;
*Mathématique : 2 notes coefficient 1, 1 note coefficient 2.
Si la condition est vraie alors l'action est exécutée, sinon elle ne l'est pas.
Syntaxe 1 :
Sélection Si faux
CONDITION
SI Condition ALORS
DSI
ACTION ; Si vrai
FSI
ACTION 1
Si la condition est vraie alors l'action1 est exécutée, sinon c'est l'action 2 qui sera exécutée.
Syntaxe 2
SI (condition1) ALORS CONDITION Si vrai
DEBUTSI
Action1 ;
SINON
Action2 ; Si faux
FSI
ACTION 2 ACTION 1
Lorsque l’on veut envisager un choix parmi n possibilités, il est alors possibles d’utiliser plusieurs
structures Si mais en les imbriquant c’est-à-dire en faisant apparaître des Si à l’intérieur d’autres
comme suit.
Syntaxe 3 :
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINONSI (condition2) ALORS
Action2 ;
FSI
Syntaxe 4 :
Sélection (suite)
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINON
SI (condition2) ALORS
DEBUTSI
Action2 ;
…
SINON
SI (condition N) ALORS
DEBUTSI
Action N ;
FSI
FSI
FSI
Lorsque l’on veut envisager un choix parmi n possibilités, il est également possible d’utiliser la
structure SUIVANT… FAIRE.
Cas ou valeur doivent être un entier, un caractère, une chaîne de caractère ou un
booléen. Ils ne peuvent pas être des réels car les réels sont écrits avec une valeur
approchée…
Cas ou valeur peuvent être une constante, une liste de constante ou un intervalle, de
Syntaxe CAS 1
SELON condition ACTION 1
Cas 1 : action 1 ;
Cas 2 : action 2 ;
……
Cas n : action n ; CAS 2
FINSI ACTION 2
OU
SUIVANT (CHOIX) Faire CAS 3
DEBUTSUIVANT ACTION 3
Valeur 1 : action 1 ;
Valeur 2 : action 2 ;
…
SINON
Action ;
FINSUIVANT
Ex. :
……………………
A, B, C : entier ;
AFFICHER (‘Entrer un nombre’) ;
SAISIR (C) ;
SUIVANT C FAIRE
1 : AFFICHER (‘ le nombre saisi est petit’) ;
2, 3, 4 : AFFICHER (‘ le nombre est juste moyen’) ;
5.. 10 : AFFICHER (‘ le nombre saisi est moyen’) ;
SINON
AFFICHER (‘ le nombre saisi n’est pas autorisé’) ;
FINSUIVANT
EXPLICATION :
Si C vaut 1 alors exécuter le bloc d’instruction : afficher le nombre saisi est petit.
Dans le cas contraire si elle vaut 2 ou 3 ou 4 alors afficher le nombre est juste moyen
Dans le cas contraire si elle est comprise entre 5 et 10 alors exécuter le bloc
d’instruction : afficher le nombre saisi est moyen;
Dans si C ne correspond à aucune des valeurs alors afficher le nombre saisi n’est
pas autorisé.
Cette structure s’utilise de préférence lorsque l’on connaît exactement le nombre d’itérations
c’est-à-dire le nombre de fois que l’on doit répéter le bloc d’instruction.
Syntaxe
NB. :
*L’index est aussi appelé compteur car c’est lui qui compte à chaque fois que
l’on parcourt le bloc d’instruction. Il est généralement de type entier et jamais
réel car avec les réels la boucle ne va jamais s’arrêter parce que par exemple
dans l’intervalle 1..2, il existe une infinité de réels ; cet index prendra
successivement les comprises entre la valeur initiale comprise et la valeur
finale comprise.
Ex. : Action
TANT QUE (a= b) ET (c < 0) FAIRE
DTQ
d a +b+c ;
AFFICHER (‘ La valeur de d est :’, d) ;
FTQ
OU
Compteur Compteur+PAS
Si vrai
Si faux
EX. :
J 1 ;
TANT QUE (J< = 5) FAIRE
DTQ
AFFICHER (‘BONJOUR’) ;
J J+1 ;
FTQ
3. Structure : REPETER….JUSQU’A
Cette structure permet la répétition d’une action jusqu’à ce qu’une condition soit vérifiée. Elle
ressemble à la structure itérative tant que, à cette différence près que la condition exprimée
permet l’arrêt du traitement. De plus, elle n’est testée qu’après la première exécution de l’action
définie. L’action est exécutée au moins une fois avant que l’on vérifie la condition.
Syntaxe
Compteur Compteur+PAS
REPETER
Action ; Compteur > valeur finale
JUSQU'A (condition vraie)
Exemple 1:
S 1;
REPETER
Si Faux
A C+ 4;
B d mod C;
S S + 1; Si Vrai
JUSQU’ A S = 10;
Exemple 2:
Compteur 1 ;
REPETER
L’ART DE LA PROGRAMMATION
Cette partie est très importante dans la réussite de l’élaboration de vos algorithmes.
Certes, nous devons concevoir des algorithmes mais pas n’importe comment.
L’élaboration de l’algorithme suit des directives qui ne sont pas obligatoire mais vous
aidera énormément dans la compréhension et la lisibilité de vos algorithmes. De
surcroît ces directives vous aideront énormément dans la recherche d’erreurs dans
votre algorithme.
Voici quelques démarches à suivre :
2. Faire toujours des décalages vers la droite lorsqu’on débute un traitement lié à
une structure et aligner les instructions liées à un même traitement, sur la
même colonne. Cela permet de mieux structurer l’algorithme et de l’aérer.
3. Avant l’écriture de l’algorithme, il faudra toujours voir s’il n’ya pas de cas
particulier (s). S’il y en a, il faudra gérer ce(s) cas particulier(s) avant de gérer
le cas général (exemple pour la division de a/, le cas particulier est lorsque
b=0).
Exercice 0
Ecrire un programme qui échange la valeur de deux variables.
Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2.
Exercice 1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carrée de ce nombre.
Exercice 2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés
apparaissent clairement.
Exercice 3
Ecrire un algorithme qui après saisi d’un temps en seconde, converti ce temps en
heure(H), minute (mn) et seconde(s). Ex.: 4000s = 1h 06 mn 40 s
Exercice 4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif (on laisse de coté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer le produit des deux nombres.
Exercice 5 :
Un magasin d’impression de document facture 25fcfa les 10 premières impressions,
20fcfa les 30 suivantes, et 10fcfa au-delà .Ecrivez un algorithme qui demande à
l’utilisateur le nombre d’impression à effectuer et qui affiche la facture
correspondante.
Exercice 6
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe
de sa catégorie :
* ”Poussin” de 6 à 7 ans
*”Pupille” de 8 à 9 ans
*”Minime” de 10 à 11 ans
*”Cadet” après 12 ans
Exercice 7
Ecrire un algorithme qui permet de résoudre et afficher les résultats de l’équation du
second degré suivante : ax2+bx+c=0.
Exercice 8
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que
la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre un
message : Plus petit ! , et inversement, Plus grand ! Si le nombre est inférieur à 10.
Exercice 9
Proposer un algorithme qui permet de calculer et afficher le gain de vendeurs de
journaux qui vendent uniquement un et un seul type de journal. Les règles de gestion
sont les suivantes :
- Vendeurs de journaux journaliers : gain d’une commission de 10% par journal ;
- Vendeurs de journaux hebdomadaires : gain d’une commission de 5% par
journal ;
- Vendeurs de journaux mensuels : gain d’une commission de 20% par journal.
Exercice 10
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des
entiers jusqu’`a ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Exercice 11
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Exercice 12
Ecrire un algorithme qui effectue la multiplication de deux (2) nombres entiers positifs
saisis au clavier en utilisant uniquement l’addition. Afficher le résultat du calcul.
Exercice 13
Proposer un algorithme qui à partir d’un réel noté x et d’une valeur entière appelée n,
retourne x à la puissance n en utilisant une boucle répétitive.
I. L’INSTRUCTION D’AFFECTATION
1. Syntaxe et signification
Ainsi : 24
Y ← 24 ;
Attribue la valeur 24 à la variable Y.
Y
Cela sous-entend impérativement que Y soit une variable de type numérique. Si Y
a été défini dans un autre type, il faut bien comprendre que cette instruction
provoquera une erreur. On peut en revanche sans aucun problème attribuer à une
variable la valeur d’une autre variable, telle quelle ou modifiée.
Par exemple :
T← Y ; Signifie que la valeur de T est maintenant celle de Y.
Notez bien que cette instruction n’a en rien modifié la valeur de Y : une
instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche.
T ← Y + 4 ;
Si Y contenait 12, T vaut maintenant 16. De même que précédemment, Y vaut
toujours 12.
T ← T + 1 ;
Si T valait 6, il vaut maintenant 7. La valeur de T est modifiée, puisque T est la
variable située à gauche de la flèche.
Pour revenir à présent sur le rôle des guillemets dans les chaînes de caractères,
comparons maintenant deux algorithmes suivants :
Exemple 1
Début
Rire ← "Loulou"
beni ← "Rire"
Fin
Exemple 2
Début
Rire ← "Loulou"
beni ← Rire
Fin
La seule différence entre les deux algorithmes consiste dans la présence ou dans
l’absence des guillemets lors de la seconde affectation. Et l'on voit que cela change
tout !
Dans l'exemple 1, ce que l'on affecte à la variable beni, c'est la suite de caractères
R- i -r - e. Et à la fin de l’algorithme, le contenu de la variable beni est donc « Rire ».
Dans l'exemple 2, en revanche, Rire étant dépourvu de guillemets, n'est pas
considéré comme une suite de caractères, mais comme un nom de variable. Le sens
de la ligne devient donc : « affecte à la variable beni le contenu de la variable Rire ».
A la fin de l’algorithme n°2, la valeur de la variable beni est donc « Loulou ». Ici,
l’oubli des guillemets conduit certes à un résultat, mais à un résultat différent.
A noter, car c’est un cas très fréquent, que généralement, lorsqu’on oublie les
guillemets lors d’une affectation de chaîne, ce qui se trouve à droite du signe
d’affectation ne correspond à aucune variable précédemment déclarée et affectée.
Dans ce cas, l’oubli des guillemets se solde immédiatement par une erreur
d’exécution.
Ceci est une simple illustration. Mais elle résume l’ensemble des problèmes qui
surviennent lorsqu’on oublie la règle des guillemets aux chaînes de caractères.
Exemple 2
Variable A en Numérique
Début
A ← 12;
A ← 34 ;
Fin
Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle est
34.
Il n’y a aucun intérêt à affecter une variable pour l’affecter différemment juste après.
En l’occurrence, on aurait tout aussi bien atteint le même résultat en
écrivant simplement :
Exemple 1:
Variable A : Numérique;
Début
A ← 12;
Fin
Exemple 2 :
Variable A en Numérique
Début
A ← 34 ;
Fin
L’incrémentation est l’opération qui consiste à accroitre par addition, la valeur d’une
variable à partir de son ancienne valeur.
Syntaxe : nom_variable1← nom_variable1+α(α réel ou entier positif)
Exemples : b ← b+1 ; Q←Q+2 ;
Explications : b ← b+1 ; signifie « prendre la valeur de la variable b à laquelle il
faudra ajouter 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :
10 11
b b
La décrémentation est l’opération qui consiste à décroitre par soustraction la valeur
d’une variable à partir de sa valeur initiale.
Syntaxe : nom_variable1← nom_variable1- α(α réel ou entier positif)
Exemples : k ← k-1 ; d← d- 3 ;
Explications : k ← k -1 ; signifie « prendre la valeur de la variable k à laquelle il
faudra retrancher 1, et le résultat ainsi obtenu sera la nouvelle valeur de b ».
Soit la situation suivante :
31 30
k k
III. INSTRUCTION D’AFFICHAGE ET DE SAISIE
Pour afficher le contenu d’une cellule mémoire, une variable on met le nom de
la variable simplement sans griffe.
Syntaxe 2 : AFFICHER (nom_variable) ;
Ex. :
VAR x, y : entier ;
x ← 6 ; y ← 4 ;
AFFICHER(x) ; (*on verra 6 afficher à l’écran*)
ECRIRE(y) ; (*on verra 4 afficher à l’écran*)
AFFICHER(x, y) ; (*on verra 6 4 afficher à l’écran*)
Elle permet de ranger ou mémoriser une valeur que l’on vient de saisir pour un
usage ultérieur. On saisi toujours une valeur considérée comme le contenu d’une
variable. Pour cela deux mots clés sont utilisés, ce sont : SAISIR ou LIRE
Syntaxe : SAISIR (nom_variable) ; ou LIRE (nom_variable) ;
Ex. :
VAR x : entier ;
AFFICHER (″Entrer une valeur ″)
SAISIR (x) ;
*Permet de ranger la valeur que l’utilisateur va saisir dans la variable x
Simulation : A l’écran on a
L’utilisateur saisi
Entrer une valeur
24
24 sera rangé dans Ecran
La variable
(Cellule mémoire) x
24 Unité centrale
Cellule mémoire x
EXERCICES D’APPLICATION
Exercice 1 :
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ; CORRECTION
DEBUT
A ← 1 ; A=3 B=4
B ← A + 3 ;
A ← 3 ;
FIN
Exercice 1.2
Quelles seront les valeurs des variables A, B et C après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B, C : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 3 ; …………………………………………………………………………………
C ← A + B ; ………………………………………………………………………..
A ← 2 ;
C ← B – A ;
FIN
Exercice 1.3
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME ECHANGE
Var A, B : Entier ;
DEBUT
A ← 5 ; …………………………………………………………………………………
…………………………………………………………………………………
B ← A + 4 ;
………………………………………………………………………..
A ← A + 1 ;
B ← A – 4 ;
FIN
Exercice 1.4
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
ALGORITHME valeur
Var A, B : Entier ;
DEBUT
A ← 5 ;
…………………………………………………………………………………
B ← 2 ; …………………………………………………………………………………
A ← B ; ………………………………………………………………………..
B ← A ;
FIN
Moralité : les deux dernières instructions permettent-elles d’échanger les deux
valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il
quelque chose ?
Exercice 1.5
Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et
ce quel que soit leur contenu préalable.
Exercice 1.6
Une variante du précédent : on dispose de trois variables A, B et C. Ecrivez un
algorithme transférant à B la valeur de A, à C la valeur de B et à A la valeur de C
(toujours quels que soient les contenus préalables de ces variables).
Exercice 1.7
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ;
L’algorithme produit le résultat suivant :
B ← "12" ;
C aura comme contenu ‘’42312’’ car le signe +
C ← A + B ;
permet aussi de concatener deux chaînes.
FIN
Exercice 1.8
Que produit l’algorithme suivant ?
ALGORITHME ECHANGE
Var A, B, C : Caractères ;
DEBUT
A ← "423" ; …………………………………………………………………………………
B ← "12" ; …………………………………………………………………………………
C ← A & B ; ………………………………………………………………………..
FIN
Exercice 2
Ecrire un algorithme qui permet de calculer la moyenne par matière et la moyenne
générale d’un étudiant selon les règles de gestion suivantes :
*Algorithme : 2 notes coefficient 2, 1 note coefficient 1 ;
*Mathématique : 2 notes coefficient 1, 1 note coefficient 2.
Si la condition est vraie alors l'action est exécutée, sinon elle ne l'est pas.
Syntaxe 1 :
Sélection CONDITION Si faux
SI Condition ALORS
DSI
ACTION ; Si vrai
FSI
ACTION 1
Exemple 1 Exemple 2 Exemple 1
A 11 ; A 4 ; A 11 ;B 11 ;
Si A > 9 Alors Si A > 7 Alors Si (A > 9) ET (B< 0) Alors
DEBUTSI DEBUTSI DEBUTSI
F b+ A ; K c * A ; F b+ A ;
FINSI FINSI FINSI
D A * 2 ; D A * 2 ; D A * 2 ;
Commentaires Commentaires Commentaires
Les instructions Les instructions comprises Les instructions
comprises Entre DEBUTSI et FINSI ne comprises
Entre DEBUTSI et FINSI seront Pas exécutées Entre DEBUTSI et FINSI
seront exécutées Car A< 7. Par contre ne seront Pas exécutées
Car A > 9. Et après après avoir sauté Car certes A> 9
cette Exécution, l’on va Tout ce qui est entre Mais B n’est pas <0 ;
exécuter D A * 2 ; DEBUTSI et FINSI ; Par contre, l’on va
car elle n’est pas liée à l’on va exécuter exécuter D A * 2 ;
la condition de Si D A * 2 ; car elle n’est car elle n’est pas liée à
Pas Liée à la condition de la condition de Si
Si
Si la condition est vraie alors l'action1 est exécutée, sinon c'est l'action 2 qui sera exécutée.
Syntaxe 2 CONDITION
SI (condition1) ALORS Si vrai
DEBUTSI
Action1 ;
SINON
Action2 ; Si faux
FSI
ACTION 2 ACTION 1
3. Les imbrications de Si … Alors et Si … Alors …Sinon
Lorsque l’on veut envisager un choix parmi n possibilités, il est alors possibles d’utiliser plusieurs
structures Si mais en les imbriquant c’est-à-dire en faisant apparaître des Si à l’intérieur d’autres
comme suit.
Syntaxe 3 :
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINONSI (condition2) ALORS
Action2 ;
FSI
Syntaxe 4 :
Sélection (suite)
SI (condition1) ALORS
DEBUTSI
Action1 ;
SINON
SI (condition2) ALORS
DEBUTSI
Action2 ;
…
SINON
SI (condition N) ALORS
DEBUTSI
Action N ;
FSI
FSI
FSI
VI. STRUCTURE A CHOIX MULTIPLES
Lorsque l’on veut envisager un choix parmi n possibilités, il est également possible d’utiliser la
structure SUIVANT… FAIRE.
Cas ou valeur doivent être un entier, un caractère, une chaîne de caractère ou un
booléen. Ils ne peuvent pas être des réels car les réels sont écrits avec une valeur
approchée…
Cas ou valeur peuvent être une constante, une liste de constante ou un intervalle, de
même type que la variable condition ou CHOIX pour respecter la compatibilité de
type.
Lorsque la variable CHOIX a son contenu qui correspond à une valeur ou un cas
alors l’instruction en face de ce cas est exécutée. Après cela l’on sort de la structure
SUIVANT … FAIRE. Mais si la variable CHOIX a son contenu qui ne correspond pas
à une valeur ou un cas alors dans ce cas aucune instruction n’est exécutée.
Syntaxe CAS 1
SELON condition ACTION 1
Cas 1 : action 1 ;
Cas 2 : action 2 ;
……
Cas n : action n ; CAS 2
FINSI ACTION 2
OU
SUIVANT (CHOIX) Faire CAS 3
DEBUTSUIVANT ACTION 3
Valeur 1 : action 1 ;
Valeur 2 : action 2 ;
…
SINON
Action ;
FINSUIVANT
Ex. :
……………………
A, B, C : entier ;
AFFICHER (‘Entrer un nombre’) ;
SAISIR (C) ;
SUIVANT C FAIRE
1 : AFFICHER (‘ le nombre saisi est petit’) ;
2, 3, 4 : AFFICHER (‘ le nombre est juste moyen’) ;
5.. 10 : AFFICHER (‘ le nombre saisi est moyen’) ;
SINON
AFFICHER (‘ le nombre saisi n’est pas autorisé’) ;
FINSUIVANT
EXPLICATION :
Si C vaut 1 alors exécuter le bloc d’instruction : afficher le nombre saisi est petit.
Dans le cas contraire si elle vaut 2 ou 3 ou 4 alors afficher le nombre est juste moyen
Dans le cas contraire si elle est comprise entre 5 et 10 alors exécuter le bloc
d’instruction : afficher le nombre saisi est moyen;
Dans si C ne correspond à aucune des valeurs alors afficher le nombre saisi n’est
pas autorisé.
Cette structure s’utilise de préférence lorsque l’on connaît exactement le nombre d’itérations
c’est-à-dire le nombre de fois que l’on doit répéter le bloc d’instruction.
Syntaxe
NB. :
*L’index est aussi appelé compteur car c’est lui qui compte à chaque fois que
l’on parcourt le bloc d’instruction. Il est généralement de type entier et jamais
réel car avec les réels la boucle ne va jamais s’arrêter parce que par exemple
dans l’intervalle 1..2, il existe une infinité de réels ; cet index prendra
successivement les comprises entre la valeur initiale comprise et la valeur
finale comprise.
Cette structure permet la répétition d’une ou plusieurs actions tant qu’une condition est satisfaite.
La condition est testée avant la première exécution de l’action définie. Une boucle TANT QUE
n'est pas exécutée si la condition est fausse au début
Ex. : Action
TANT QUE (a= b) ET (c < 0) FAIRE
DTQ
d a +b+c ;
AFFICHER (‘ La valeur de d est :’, d) ;
FTQ
OU
Si faux
Action
Compteur Compteur+PAS
EX. :
J 1 ;
TANT QUE (J< = 5) FAIRE
DTQ
AFFICHER (‘BONJOUR’) ;
J J+1 ;
FTQ
3. Structure : REPETER….JUSQU’A
Cette structure permet la répétition d’une action jusqu’à ce qu’une condition soit vérifiée. Elle
ressemble à la structure itérative tant que, à cette différence près que la condition exprimée
permet l’arrêt du traitement. De plus, elle n’est testée qu’après la première exécution de l’action
définie. L’action est exécutée au moins une fois avant que l’on vérifie la condition.
Syntaxe
Exemple 1:
S 1; Compteur Compteur+PAS
REPETER
Si Faux
A C+ 4;
B d mod C;
S S + 1; Compteur > valeur finale Si Vrai
JUSQU’ A S = 10;
Exemple 2:
Compteur 1 ;
REPETER
Cette partie est très importante dans la réussite de l’élaboration de vos algorithmes.
Certes, nous devons concevoir des algorithmes mais pas n’importe comment.
L’élaboration de l’algorithme suit des directives qui ne sont pas obligatoire mais vous
aidera énormément dans la compréhension et la lisibilité de vos algorithmes. De
surcroît ces directives vous aideront énormément dans la recherche d’erreurs dans
votre algorithme.
Voici quelques démarches à suivre :
7. Faire toujours des décalages vers la droite lorsqu’on débute un traitement lié à
une structure et aligner les instructions liées à un même traitement, sur la
même colonne. Cela permet de mieux structurer l’algorithme et de l’aérer.
8. Avant l’écriture de l’algorithme, il faudra toujours voir s’il n’ya pas de cas
particulier (s). S’il y en a, il faudra gérer ce(s) cas particulier(s) avant de gérer
le cas général (exemple pour la division de a/, le cas particulier est lorsque
b=0).
Exercice 0
Ecrire un programme qui échange la valeur de deux variables.
Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2.
Exercice 1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carrée de ce nombre.
Exercice 2
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés
apparaissent clairement.
Exercice 3
Ecrire un algorithme qui après saisi d’un temps en seconde, converti ce temps en
heure(H), minute (mn) et seconde(s). Ex.: 4000s = 1h 06 mn 40 s
Exercice 4
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si
leur produit est négatif ou positif (on laisse de coté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer le produit des deux nombres.
Exercice 5 :
Un magasin d’impression de document facture 25fcfa les 10 premières impressions,
20fcfa les 30 suivantes, et 10fcfa au-delà .Ecrivez un algorithme qui demande à
l’utilisateur le nombre d’impression à effectuer et qui affiche la facture
correspondante.
Exercice 6
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe
de sa catégorie :
* ”Poussin” de 6 à 7 ans
*”Pupille” de 8 à 9 ans
*”Minime” de 10 à 11 ans
*”Cadet” après 12 ans
Exercice 7
Ecrire un algorithme qui permet de résoudre et afficher les résultats de l’équation du
second degré suivante : ax2+bx+c=0.
Exercice 8
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que
la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre un
message : Plus petit ! , et inversement, Plus grand ! Si le nombre est inférieur à 10.
Exercice 9
Proposer un algorithme qui permet de calculer et afficher le gain de vendeurs de
journaux qui vendent uniquement un et un seul type de journal. Les règles de gestion
sont les suivantes :
- Vendeurs de journaux journaliers : gain d’une commission de 10% par journal ;
- Vendeurs de journaux hebdomadaires : gain d’une commission de 5% par
journal ;
- Vendeurs de journaux mensuels : gain d’une commission de 20% par journal.
Exercice 10
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des
entiers jusqu’`a ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Exercice 11
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Exercice 12
Ecrire un algorithme qui effectue la multiplication de deux (2) nombres entiers positifs
saisis au clavier en utilisant uniquement l’addition. Afficher le résultat du calcul.
Exercice 13
Proposer un algorithme qui à partir d’un réel noté x et d’une valeur entière appelée n,
retourne x à la puissance n en utilisant une boucle répétitive.