Seconde 7, année 2013-2014 ALGORITHMIQUE Cours – Exemples 1
1 Qu’est-ce qu’un algorithme ?
1.1 Exemples
Considérons le programme de construction suivant inti-
tulé cercle circonscrit à un triangle ABC.
1. Soient A, B et C trois points distincts non
alignés du plan.
2. - Tracer la médiatrice (d) du segment [AB].
3. - Tracer la médiatrice (d’) du segment [AC].
4. - Appeler 0 le point d’intersection des
droites (d) et (d’).
5. - Tracer le cercle de centre O et de
rayon R=OA.
On appelera Cle cercle circonscrit au triangle ABC.
En étudiant ce programme de plus près, on peut distinguer
trois parties :
a) des données : les trois points A, B et C.
b) une suite d’instruction : 2, 3 et 4 écrites dans un ordre
déterminé
certaines instructions, comme 2 et 3, s’ap-
pliquent aux données (les points A, B et C)
d’autres, telle l’instruction de la ligne 4 (et aussi
5), s’appliquent à des « objets » produits par le
programme (les droites (d) et (d’))
c) un résultat : ici le résultat produit par le programme
est le cercle Ccirconscrit au triangle ABC.
Considérons la recette suivante intitulée pâte à crêpes.
1. - prendre 5 oeufs, 500 g de farine,
1 litre de lait, 3 cuillères à soupe
d’huile, 1/2 verre de bière,
1 saladier et 1 fouet
2. - dans le saladier, verser la moitié de
la farine
3. - rajouter les oeufs un par un, en mélangeant
avec le fouet
4. - rajouter un peu de lait puis de la farine,
puis à nouveau du lait et ainsi de suite
(en continuant à mélanger)
5. - rajouter l’huile et la bière
6. - laisser reposer 1 heure
7. - récupérer une pâte à crêpe pour faire
20 crêpes
Ici aussi, on retrouve la même structure que précédem-
ment :
a) des données : ici ce sont les différents ingrédients mais
aussi le matériel à utiliser
b) une suite d’instruction à réaliser dans un ordre déter-
miné
c) un résultat : la pâte à crêpes (miam)
1.2 Une définition
Un algorithme peut être considéré comme une « machine »
formée de trois blocs :
1. les ENTRÉES sont des données (nombres, listes de
nombres, chaînes de caractères . ..) permettant « d’ini-
tialiser » l’algorithme (en seconde, les entrées seront es-
sentiellement des nombres)
2. une suite finie d’INSTRUCTIONS qui s’appliquent, dans
un ordre déterminé, à des entrées ou à des données
produites par les instructions précédentes. On parle du
TRAITEMENT des données.
3. les SORTIES sont les résultats obtenus par l’application
de la suite (finie et ordonnée) des instructions.
Remarque Le mot « algorithme » vient du nom du ma-
thématicien persan al-Khuwarizmi (9ème siècle) dont le
traité d’algèbre décrit des procédés de calcul à suivre étape
par étape pour résoudre des problèmes qui se ramènent
souvent à la résolution d’équations. Divers algorithmes
sont en fait connus dès l’Antiquité, par exemple l’algo-
rithme d’Euclide (qui permet le calcul du PGCD de deux en-
tiers) ou encore le calcul d’approximations du nombre π.
1.3 Organigramme
Il est pratique de présenter un algorithme sous la forme
d’un organigramme (voir les exemples plus loin); par
convention les ENTRÉES soront précédées de l’instruction
«Lire » et les SORTIES seront précédées de l’instruction « Af-
ficher ».
L’organigramme est destiné à faciliter, par sa présentation,
la programmation (en machine) de l’algorithme dans le
langage que l’on aura choisi (par exemple le langage C, le
langage C++, le langage Python, le langage Java .. . qui sont
des langages utilisés pour la programmation sur ordina-
teur).
2 Le langage de l’algorithmique
2.1 Variable et affectation
Pour mémoriser les donnnées initiales ou les résultats in-
termédiaires des calculs, on utilise des VARIABLES. Du point
de vue de l’ordinateur, une variable est une zone de mé-
moire au contenu de laquelle on accède via un identifica-
teur. Du point de vue algorithmique, une variable a un nom
fixe et une valeur qui peut changer au cours de l’exécution
de l’algorithme.
Remarque On peut imaginer que pour un ordinateur,
une variable est une « boîte » dont le nom est fixe mais
dont le contenu change au fur et à mesure de l’exécution
de l’algorithme.
Remarque La nature et le rôle des variables en informa-
tique et en mathématique sont donc différents, bien qu’on
utilise le même mot.
Les instructions de base que l’on peut pratiquer avec une
variable V sont les suivantes :
Seconde 7, année 2013-2014 ALGORITHMIQUE Cours – Exemples 2
la saisie : on demande à l’utilisateur de donner une
valeur à la variable V. On écrira alors « Lire V » ou en-
core « Saisir V ».
l’affectation : le concepteur de l’algorithme ou l’al-
gorithme donne à la variable une valeur qui peut
être le résultat d’un calcul ou d’une suite d’instruc-
tions. Pour affecter la valeur 5 à la variable V, on écrira
« Donner à V la valeur 5 » ou « V prend la valeur 5 »
ou encore « V 5 ». Lors de la première affectation
d’une valeur à une variable, on parle dinitialisation.
l’affichage : on affiche la valeur d’une variable. On
écrira « Afficher V ».
2.2 Exemples
Algorithme 1
Quel est le résultat de l’algorithme suivant :
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: c EST_DU_TYPE NOMBRE
5: DEBUT_ALGORITHME
6: a PREND_LA_VALEUR 1
7: b PREND_LA_VALEUR 2
8: c PREND_LA_VALEUR 3
9: c PREND_LA_VALEUR a
10: a PREND_LA_VALEUR b
11: b PREND_LA_VALEUR c
12: AFFICHER b
13: FIN_ALGORITHME
Algorithme 2
Quel est le résultat affiché par l’algorithme suivant si l’uti-
lisateur saisi 6 comme valeur pour la variable a ?
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: LIRE a
6: b PREND_LA_VALEUR a*a
7: b PREND_LA_VALEUR 2*b
8: b PREND_LA_VALEUR b-5*a
9: b PREND_LA_VALEUR b+3
10: AFFICHER b
11: FIN_ALGORITHME
Algorithme 3
Tester l’algorithme suivant en saisissant 2 comme valeur
pour x, puis tester en saisissant 3 .
Expliquer ce que fait l’algorithme.
1: VARIABLES
2: x EST_DU_TYPE NOMBRE
3: y EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: LIRE x
6: y PREND_LA_VALEUR -3*x*x+5*x+1
7: AFFICHER y
8: FIN_ALGORITHME
Exercice 1
Écrire un algorithme qui calcule les coordonnées du som-
met d’une parabole d’équation y=ax2+bx +c. La pa-
rabole est entièrement déterminée par la donnée des
nombres a,bet c; ce seront les variables de l’algorithme.
Algorithme 4
Tester l’algorithme suivant en saisissant 2 comme valeur
pour a et 3 comme valeur pour b. Recommencer avec deux
autres entiers compris entre 0 et 9.
Expliquer ce que fait l’algorithme et l’importance de la va-
riable c.
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: c EST_DU_TYPE NOMBRE
5: n EST_DU_TYPE NOMBRE
6: DEBUT_ALGORITHME
7: LIRE a
8: LIRE b
9: n PREND_LA_VALEUR 10*a+b
10: AFFICHER n
11: c PREND_LA_VALEUR a
12: a PREND_LA_VALEUR b
13: b PREND_LA_VALEUR c
14: n PREND_LA_VALEUR 10*a+b
15: AFFICHER n
16: FIN_ALGORITHME
2.3 Structures alternatives
Le plus souvent, un algorithme ne contient pas seulement
des instructions de manipulation des données à exécuter
les unes après les autres, mais aussi des instructions dites
de contrôle ou de structure (conditions et boucles), qui ont
un effet sur l’exécution des autres instructions.
Le premier type de telles instructions est celle permettant
une exécution conditionnelle.
On présentera de la façon suivante :
Si condition alors
instruction à réaliser si la condition est vérifiée
Fin si
Remarque Si la condition n’est pas vérifiée, on passe à
l’instruction qui suit le Fin si.
2.4 Exemples
Algorithme 5
Tester l’algorithme suivant avec a=5 et b=3 , puis avec
a=2 et b=7 . Expliquer ce que fait l’algorithme.
1: VARIABLES
2: a EST_DU_TYPE NOMBRE
3: b EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: LIRE a
6: LIRE b
7: SI (a<b) ALORS
8: DEBUT_SI
9: AFFICHER a
10: AFFICHER b
11: FIN_SI
12: SINON
13: DEBUT_SINON
14: AFFICHER b
15: AFFICHER a
16: FIN_SINON
17: FIN_ALGORITHME
Seconde 7, année 2013-2014 ALGORITHMIQUE Cours – Exemples 3
Algorithme 6
Expliquer ce que fait l’algorithme suivant.
Utiliser cet algorithme pour déterminer si les points
A(2;0) , B(5;1) et C(8;2) sont alignés ainsi que les points
A,Bet D(11;4) .
1: VARIABLES
2: xa EST_DU_TYPE NOMBRE
3: ya EST_DU_TYPE NOMBRE
4: xb EST_DU_TYPE NOMBRE
5: yb EST_DU_TYPE NOMBRE
6: xc EST_DU_TYPE NOMBRE
7: yc EST_DU_TYPE NOMBRE
8: d EST_DU_TYPE NOMBRE
9: DEBUT_ALGORITHME
10: LIRE xa
11: LIRE ya
12: LIRE xb
13: LIRE yb
14: LIRE xc
15: LIRE yc
16: d PREND_LA_VALEUR
(xb-xa)*(yc-ya)-(yb-ya)*(xc-xa)
17: SI (d=0) ALORS
18: DEBUT_SI
19: AFFICHER "les points sont alignés"
20: FIN_SI
21: SINON
22: DEBUT_SINON
23: AFFICHER "les points ne sont pas
alignés"
24: FIN_SINON
25: FIN_ALGORITHME
Remarque Avec Algobox, pour tester si deux nombres a
et bsont égaux, on écrit a== b. Dans Algobox, le test à
écrire est donc (ligne 17) : SI (d==0) ...
Exercice 2
Écrire un algorithme permettant de déterminer si quatre
points, donnés dans un certain ordre dans un repère,
forment un parallélogramme.
Utiliser cet algorithme pour savoir si les points A(1;1) ,
B(5;3) , C(4;5) et D(0;3) , dans cet ordre, forment un pa-
rallélogramme.
Exercice 3
Quatre points donnés dans un repère formant un parallé-
logramme, écrire un algorithme permettant de savoir si ce
quadrilatère est un losange, un rectangle ou un carré.
Utiliser cet algorithme avec les points de l’exercice précé-
dent.
Algorithme 7
La partie entière d’un réel x, notée E(x) ou bxc, est le
nombre entier ninférieur ou égal à xle plus proche de
x. Par exemple, E(4,35) =4 ; E(π)=3 ; E(7,89) = −8 ;
E(5) =5 ; E(3) = −3 ...
En anglais, cette fonction s’appelle « floor » et c’est ainsi
qu’elle est désignée dans Algobox.
Que fait l’algorithme suivant ? Compléter les lignes 9 et 13.
Tester le avec les nombres 8 , 19 et 3,23 .
1: VARIABLES
2: n EST_DU_TYPE NOMBRE
3: DEBUT_ALGORITHME
4: LIRE n
5: SI (n==floor(n)) ALORS
6: DEBUT_SI
7: SI (n/2==floor(n/2)) ALORS
8: DEBUT_SI
9: AFFICHER "l’entier est ..."
10: FIN_SI
11: SINON
12: DEBUT_SINON
13: AFFICHER "l’entier est ..."
14: FIN_SINON
15: FIN_SI
16: SINON
17: DEBUT_SINON
18: AFFICHER "le nombre n’est pas entier"
19: FIN_SINON
20: FIN_ALGORITHME
2.5 Structures répétitives
Il s’agit de répéter un bloc d’instructions plusieurs fois de
suite. Plusieurs variantes sont possibles. Les deux princi-
pales consistent à :
répéter un bloc d’instructions un nombre de fois
donné ;
— répéter un bloc d’instructions jusqu’à ce qu’une
condition soit vérifiée (ou tant quune condition est
vérifiée).
On parle de boucle.
On présentera de la façon suivante pour une boucle
« pour » :
Pour i de 1 à n par pas de p faire
instruction à effectuer
Fin
Remarque La variable i est un compteur ; elle augmente
automatiquement de p à chaque tour.
On présentera de la façon suivante pour une boucle « tant
que »
Tant que condition faire
instruction à effectuer
Fin
Remarque Le test de la condition est effectué avant
d’entrer dans la boucle. Par conséquent, si la condition
n’est pas vérifiée avant l’entrée dans la boucle, on n’y entre
pas, les instructions à l’intérieur de la boucle ne sont pas
effectuées et on passe à l’instruction suivant la boucle.
Seconde 7, année 2013-2014 ALGORITHMIQUE Cours – Exemples 4
2.6 Exemples
Algorithme 8
Qu’affiche l’algorithme suivant ?
1: VARIABLES
2: F EST_DU_TYPE NOMBRE
3: i EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: F PREND_LA_VALEUR 1
6: POUR iALLANT_DE 1A4
7: DEBUT_POUR
8: F PREND_LA_VALEUR F*i
9: FIN_POUR
10: AFFICHER F
11: FIN_ALGORITHME
Algorithme 9
Qu’affiche l’algorithme suivant ?
1: VARIABLES
2: F EST_DU_TYPE NOMBRE
3: i EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: F PREND_LA_VALEUR 1
6: i PREND_LA_VALEUR 1
7: TANT_QUE (i<=4) FAIRE
8: DEBUT_TANT_QUE
9: F PREND_LA_VALEUR F*i
10: i PREND_LA_VALEUR i+1
11: FIN_TANT_QUE
12: AFFICHER F
13: FIN_ALGORITHME
Exercice 4
Écrire un algorithme permettant d’obtenir la somme des
entiers de 1 à 5, puis de 1 à 100, puis de 1 à n, où n est un
entier naturel quelconque à choisir.
On écrira cet algorithme avec une boucle « pour » puis avec
une boucle « tant que ».
Algorithme 10
Expliquer les différences entre les deux algorithmes sui-
vants.
1: VARIABLES
2: S EST_DU_TYPE NOMBRE
3: i EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: S PREND_LA_VALEUR 0
6: i PREND_LA_VALEUR 1
7: TANT_QUE (i<=9) FAIRE
8: DEBUT_TANT_QUE
9: S PREND_LA_VALEUR S+i
10: i PREND_LA_VALEUR i+1
11: FIN_TANT_QUE
12: AFFICHER S
13: FIN_ALGORITHME
1: VARIABLES
2: S EST_DU_TYPE NOMBRE
3: i EST_DU_TYPE NOMBRE
4: DEBUT_ALGORITHME
5: S PREND_LA_VALEUR 0
6: i PREND_LA_VALEUR 1
7: TANT_QUE (S<=9) FAIRE
8: DEBUT_TANT_QUE
9: S PREND_LA_VALEUR S+i
10: i PREND_LA_VALEUR i+1
11: FIN_TANT_QUE
12: AFFICHER i
13: FIN_ALGORITHME
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !