Vous êtes sur la page 1sur 23

ALGORITHMIQUE

1. Dfinition
Un algorithme est une suite d'instructions lmentaires amenant la rsolution d'un problme

2. Les tapes
1. L'entre des donnes
2. Le traitement des donnes
3. La sortie des rsultats

Page 1 sur 23
Page 2 sur 23
Page 3 sur 23
FICHE n1 : DECOUVRIR L'AFFECTATION

En gnral, un algorithme est construit en trois tapes :

- Entre/Initialisation : On saisie des donnes.

- L'initialisation : Le programme attribue des valeurs des variables.

- Le traitement des donnes : Les instructions du programme effectuent des oprations partir des
donnes saisies dans le but de rsoudre le problme.

- La sortie : Les rsultats sont affichs.

L'affectation consiste attribuer une valeur une variable.

Affecter Variable la valeur Valeur

Exemple :

Affecter Paul la valeur 15 ans

Exercice 1 :

Voici un algorithme crit en langage naturel :

Entre
Saisir A

Traitement des donnes


Affecter B la valeur 5
Affecter C la valeur A x B
Affecter A la valeur C + 4

Sortie
Afficher A, B, C

1) a) Quelle est la valeur de C affiche en sortie lorsque A = 3.


b) Mme question lorsque A = 10.

2) a) Quelle est la valeur de A affiche en sortie lorsque A = 8.


b) Mme question lorsque A = -7.

3) Quelle valeur faut-il saisir en entre pour obtenir A = 59 en sortie.


Exercice 2 :

Un commerant accorde une remise sur des articles. On souhaite connatre le montant de la remise en euros.
Voici un algorithme crit en langage naturel donnant la solution au problme :

Page 4 sur 23
Entre
Saisir le prix de dpart A
Saisir le pourcentage de remise P

Traitement des donnes


P
Affecter au montant de la remise R la valeur A x
100

Sortie
Afficher R

1) a) Calculer la valeur de la variable R lorsque A = 56 et P = 30.


b) Donner une interprtation concrte du rsultat prcdent.

2) Mme question avec A = 13 et P = 45.

3) Complter les paragraphes "Traitement des donnes" et "Sortie" pour que l'algorithme affiche galement le prix
payer B.

4) a) Calculer la valeur des variables R et B lorsque A = 159 et P = 24.


b) Donner une interprtation concrte des rsultats prcdents.

Exercice 3 :

Rdiger en langage naturel un algorithme permettant de calculer le pourcentage de rduction d'un article
connaissant le prix de dpart et le prix payer.

Exercice 4 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir le rel x

Traitement des donnes


Affecter a la valeur x2 + 1
Affecter b la valeur 2a - 3

Sortie
Afficher a, b

Faire fonctionner l'algorithme et complter le tableau :

Entre x 3 4 7 10 20
Sortie a
Sortie b

Page 5 sur 23
Exercice 5 :

On considre l'algorithme suivant donn en langage naturel :

Initialisation
Affecter x la valeur 2

Traitement des donnes


Affecter a la valeur x - 1
Affecter b la valeur 2a
b
Affecter c la valeur
2
Affecter d la valeur c + 2

Sortie
Afficher d

1) Qu'affiche l'algorithme en sortie ?

2) a) Modifier l'algorithme pour que la valeur de x ne soit plus impose mais soit saisie en entre.
b) Faire fonctionner ce nouvel algorithme et complter le tableau :
Entre x -4 0 5 10 11
Sortie d
c) Que constate-t-on ? Dmontrer ce rsultat.

Exercice 6 :

Rdiger en langage naturel un algorithme utilisant au moins 4 variables et dont le rsultat est le double du nombre
saisi en entre.

Exercice 7 :

On considre l'algorithme suivant donn en langage naturel :

Initialisation
Saisir x
Saisir y

Traitement des donnes


Affecter x la valeur x y
Affecter y la valeur x + y
Affecter x la valeur y x

Sortie
Afficher x
Afficher y

1) a) Qu'affiche l'algorithme en sortie si x = 5 et y = 4 sont saisis en entre.


b) Mme question pour x = 8 et y = 9.
c) Que constate-t-on ?

2) Dmontrer le rsultat prcdent.


Page 6 sur 23
FICHE n2 : DECOUVRIR
L'INSTRUCTION CONDITIONNELLE

Une instruction conditionnelle permet d'effectuer un test suivant certaines conditions.


En langage naturel, elle peut se prsenter sous la forme suivante :

Si Condition
Alors Instructions 1
Sinon
Instructions 2

Exemple :

Si c'est un garon
Alors il s'appellera Paul
Sinon
Elle s'appellera Paulette

Exercice 1 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir A

Traitement des donnes


Affecter B la valeur A
Affecter C la valeur arrondie l'unit de B

Sortie
Si B = C
Alors afficher "A est un carr parfait"
Sinon
Afficher "A n'est pas un carr parfait"

1) Lire l'algorithme. Quel problme permet-il de rsoudre ?

2) a) Quelle est la valeur de B et la valeur de C lorsque A = 40 ?


b) Dans ce cas, quel est le rsultat affich la suite de l'instruction conditionnelle ?

3) Mmes questions avec A = 2025.

Page 7 sur 23
Exercice 2 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir A
Saisir B

Traitement des donnes


Si 3A < B
Alors affecter A la valeur 3A
Sinon
Affecter B la valeur 3B

Sortie
Afficher A + B

Faire fonctionner l'algorithme et complter le tableau :

Entre A 6 -5 4 10 2
Entre B 15 1 7 30 7
Sortie A
Sortie B
Sortie A + B

Exercice 3 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir dans l'ordre croissant trois nombres entiers A, B, C

Traitement des donnes


Affecter M la valeur de A2
Affecter N la valeur de B2
Affecter X la valeur de M + N
Affecter Y la valeur de C2

Sortie
Si X = Y
Alors afficher
Sinon
Afficher

1) Recopier et complter les deux dernires lignes de l'algorithme.

2) a) Calculer les valeurs successives de M, N, X et Y pour A = 8, B = 15 et C = 17.


b) Quel est le rsultat affich la sortie de l'algorithme dans ce cas ?

3) Mmes questions avec A = 12, B = 16 et C = 19.

4) Donner des valeurs de A, B et C qui satisfont le test de sortie de l'algorithme.

Page 8 sur 23
Exercice 4 :

Recopier et complter l'algorithme suivant :

Entre
Saisir trois nombres rels diffrents A, B, C

Traitement et sortie
Si A < B
Alors
Si B < C
Alors afficher " est le plus grand"
Sinon
Afficher " est le plus grand"
Sinon
Si A < C
Alors afficher " est le plus grand"
Sinon
Afficher " est le plus grand"

Exercice 5 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir deux nombres A, B

Traitement des donnes


Si A > B
Alors
Si B > 0
Alors affecter C la valeur de A + B
Sinon
Affecter C la valeur de A B
Sinon
Si A > 0
Alors affecter C la valeur de A + B
Sinon
Affecter C la valeur de B A

Sortie
Afficher C

1) Quelle est la valeur de C pour A = 15 et B = 25.

2) Mme question pour A = 45 et B = -56.

3) Dmontrer que dans tous les cas C est positif.

Page 9 sur 23
FICHE n3 : DECOUVRIR
LES BOUCLES

Les boucles permettent de rpter des instructions.

- Boucle Tant que :

On peut rpter les mmes instructions tant qu'une condition reste vrifie.
En langage naturel, cela peut se prsenter sous la forme suivante :

Tant que Condition est vraie


Faire Instructions

Exemple : Tant que Le verre n'est pas plein


Faire Verser de l'eau

- Boucle Pour :

On peut rpter les mmes instructions pour un nombre de rptitions prdfini par une variable.
En langage naturel, cela peut se prsenter sous la forme suivante :

Pour Variable allant de Valeur dbut Valeur fin


Faire Instructions

Exemple : Pour Marche d'escalier allant de 1 10


Faire Monter sur la marche suivante

Exercice 1 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir A

Traitement et sortie
Pour i allant de 1 5
Faire
A=A+1
Afficher A

1) a) Pour A = 3 qu'affiche l'algorithme en sortie.


b) Mme question pour A = -4.

2) Quelle valeur de A faut-il saisir pour obtenir en sortie l'affichage suivant :


-9 -8 -7 -6 -5

Page 10 sur 23
Exercice 2 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir n

Traitement et sortie
Tant que n < 50
Faire
n=n+1
Afficher n

1) a) Pour n = 45 qu'affiche l'algorithme en sortie.


b) Mme question pour n = 48,1.
c) Mme question pour n = 53.

2) Quelle valeur de n faut-il saisir pour obtenir en sortie l'affichage suivant :


44,3 45,3 46,3 47,3 48,3 49,3

Exercice 3 : La suite de Fibonacci

On considre l'algorithme suivant donn en langage naturel :

Initialisation
Affecter n la valeur 0
Affecter A la valeur 1
Affecter B la valeur 1

Traitement et sortie
Tant que n < 10
Faire
Affecter n la valeur de n + 1
Affecter C la valeur de B
Affecter B la valeur de A + B
Affecter A la valeur de C
Afficher B

1) Recopier et complter le tableau par les valeurs successives prises par A, B et C.

n 0 1 2 3 4 5 6 7 8 9
A 1
B 1
C x

2) Quel est l'affichage la sortie de l'algorithme ?

Page 11 sur 23
Exercice 4 : Algorithme de tri

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir A, B, C

Initialisation
Affecter i la valeur 0

Traitement des donnes


Tant que i < 2
Faire
Affecter i la valeur de i + 1
Si A > B
Alors changer les valeurs de A et B
Si B > C
Alors changer les valeurs de B et C

Sortie
Afficher A, B, C

1) Tester l'algorithme pour diffrentes valeurs de A, B et C.

2) Quel problme permet de rsoudre cet algorithme ?

Exercice 5 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir N

Initialisation
Affecter S la valeur 0

Traitement des donnes


Pour i allant de 1 N
Faire
Affecter S la valeur S + i

Sortie
Afficher S

1) Tester l'algorithme pour diffrentes valeurs de N.

2) Quel problme permet de rsoudre cet algorithme ?

Exercice 6 :

Rdiger en langage naturel un algorithme permettant de calculer le produit d'une suite d'entiers naturels successifs,
le premier terme et le dernier terme de cette suite tant saisis en entre.

Page 12 sur 23
FICHE n4 : PROGRAMMER L'AFFECTATION

Syntaxe des instructions utiles dans cette fiche dans 4 langages de programmation :

Langage naturel Python ou Scilab TI


Affecter A la
A=5 5A
valeur 5

Langage naturel Python Scilab TI CASIO


Afficher A print(A) afficher(A) Disp A A

Langage naturel Python (*) Scilab TI CASIO


A=input ('A=') A=input("A=") Input A ou "A=" ?A
Saisir A
Prompt A
(*) En Python, input() renvoie une chane de caractres. Pour renvoyer une valeur entire, il faut utiliser A=int(input ('A=')) et
pour renvoyer une valeur relle, il faut utiliser A=float(input ('A='))

Langage naturel Python Scilab TI CASIO


Quotient de la
division euclidienne int(A/B) int(A/B) ent(A/B) Int (AB)
de A par B
Reste de la
division euclidienne A%B reste(A,B) AB*ent(A/B) ABxInt (AB)
de A par B

Exercice 1 :

Voici un algorithme crit en langage naturel :

Langage naturel
Initialisation
Affecter A la valeur 2

Traitement des donnes


Affecter B la valeur 2 x A
2
Affecter C la valeur B

Sortie
Afficher C

Ce mme algorithme peut se traduire en langages de programmation :

Python Scilab TI CASIO

1) Recopier un programme (langage au choix) en faisant correspondre les couleurs Initialisation, Traitement, Sortie.

Page 13 sur 23
2) Quelle valeur obtient-on en sortie ? Vrifier ventuellement l'aide d'une calculatrice programmable ou d'un
logiciel.

3) Modifier un programme en affectant A la valeur 4 en initialisation et en affichant la valeur de B en sortie.

4) Modifier un programme pour obtenir C = 25 en sortie.

Exercice 2 :

Voici trois algorithmes crits en langage naturel :

Langage naturel
Algorithme 1 Algorithme 2 Algorithme 3
Initialisation Initialisation Initialisation
Affecter A la valeur 7 Affecter M la valeur 2 Affecter A la valeur -1
Affecter N la valeur 4 Affecter B la valeur 6
Traitement des donnes
Affecter B la valeur 6 x A Traitement des donnes Traitement des donnes
A
Affecter C la valeur A + B Affecter A la valeur M x N Affecter P la valeur B
A
Afficher D la valeur B C Affecter B la valeur M + N Affecter Q la valeur P
Afficher C la valeur A/B
Sortie Sortie
Afficher D Sortie Afficher P
Afficher C Afficher Q

1) Rdiger un programme (langage au choix) traduisant chacun de ces algorithmes.

2) Quelle valeur obtient-on en sortie pour chaque algorithme ? Vrifier ventuellement l'aide d'une calculatrice
programmable ou d'un logiciel.

Exercice 3 :

Voici un algorithme crit en langages de programmation :

Python Scilab TI CASIO

1) a) Traduire un des programmes en langage naturel.


b) Quel problme permet de rsoudre cet algorithme ?

2) Saisir un des programmes sur une calculatrice programmable ou un logiciel.

3) a) Calculer les valeurs de f (x) 12 2,4x et g(x) x 2 1 pour toutes les valeurs entires de x comprise entre
1 et 6.
b) Trouver une solution de l'quation f (x) g(x) .

Page 14 sur 23
Exercice 4 :

Pour chacune des quations suivantes, crire et tester un programme permettant d'en trouver une solution.
16,2
1) x 2 11 10 4x 2) x3 2x 2 85x 154 3) x 2,4
x

Exercice 5 :

Rdiger un programme o l'on saisit deux nombres entiers naturels en entre et o l'on obtient le quotient et le reste
de la division euclidienne de ces deux nombres en sortie.
- Syntaxe en page 1 de la fiche -

Exercice 6 :

Inventer et tester l'aide d'une calculatrice programmable ou d'un logiciel un programme mettant en uvre de
nombreuses instructions vues sur cette fiche (saisie, affectation, affichage, quotient, reste).

Page 15 sur 23
FICHE n5 : PROGRAMMER
L'INSTRUCTION CONDITIONNELLE

Syntaxe de l'instruction conditionnelle dans 4 langages de programmation :

Langage naturel Python Scilab TI CASIO


Si Condition if condition: if condition then :If condition If condition
Alors Instructions1 Instruction1 Instruction1 :Then Then Instruction1
Sinon else: else :Instruction1 Else Instruction2
Instructions2 Instruction2 Instruction2 :Else IfEnd
end :Instruction2
:End

Exercice 1 :

Voici un algorithme crit en langage naturel :

Langage naturel
Entre
Saisir A

Traitement des donnes


Affecter B la valeur A/13
Affecter C la valeur arrondie l'unit de B

Sortie
Si B = C
Alors afficher "A est divisible par 13"
Sinon
Afficher "A n'est pas divisible par 13"

Ce mme algorithme peut se traduire en langages de programmation :

Python Scilab

Commentaires :
"==" est le symbole d'galit ; "=" celui d'affectation.
TI CASIO

1) Quelle valeur obtient-on pour B et C lorsqu'on saisit A = 182 en entre ? Qu'affiche l'algorithme en sortie dans ce
cas. Vrifier ventuellement l'aide d'une calculatrice programmable ou d'un logiciel.

2) a) Modifier un programme dans le but de vrifier si un nombre est divisible par 29.
b) Trouver deux nombres suprieurs 1000 et divisible par 29
Page 16 sur 23
Exercice 2 :

Ecrire un programme permettant de vrifier si un nombre donn est divisible par 13 en effectuant un test sur le reste
de la division de ce nombre par 13.
Tester ce programme l'aide d'une calculatrice programmable ou d'un logiciel.

Voici la syntaxe permettant d'afficher le reste d'une division euclidienne :

Langage naturel Python Scilab TI CASIO


Reste de la
division euclidienne A%B reste(A,B) AB*ent(A/B) ABxInt (AB)
de A par B

Exercice 3 :

Voici un algorithme crit en langage naturel :

Langage naturel
Entre
Saisir x
Saisir y

Traitement des donnes


Si x < 5y
Alors affecter x la valeur 10x
Sinon
Affecter y la valeur 10y

Sortie
Afficher xy

Dans chacun des programmes ci-dessous traduisant l'algorithme prcdent, les instructions conditionnelles ont t
supprimes.

Python Scilab TI CASIO

1) Corriger en compltant un des programmes par les instructions conditionnelles manquantes.

2) l'aide d'une calculatrice programmable ou d'un logiciel, tester ce programme pour x = 5 et y = 9.

Page 17 sur 23
Exercice 4 :

On considre l'algorithme suivant donn en langage naturel :

Entre
Saisir dans l'ordre croissant trois nombres entiers A, B, C

Traitement des donnes


2
Affecter M la valeur de A
2
Affecter N la valeur de B
Affecter X la valeur de M + N
2
Affecter Y la valeur de C

Sortie
Si X = Y
Alors afficher "A, B, C est un triplet de Pythagore"
Sinon afficher "A, B, C n'est pas un triplet de Pythagore"

1) Rdiger un programme (langage au choix) traduisant cet algorithme.

2) l'aide d'une calculatrice programmable ou d'un logiciel, tester ce programme pour trouver quelques triplets de
Pythagore.

Exercice 5 :

Dans chacun des programmes ci-dessous, les affichages en sortie de l'algorithme ont t supprims.

1) Quel problme permet de rsoudre cet algorithme ?

2) Recopier et complter un des programmes.

3) A l'aide d'une calculatrice programmable ou d'un logiciel, tester ce programme pour diffrentes valeurs de A et B.

Python Scilab

Page 18 sur 23
TI CASIO

Exercice 6 :

Ecrire un programme qui affiche le plus grand de deux nombres saisis en entre.
Tester ce programme l'aide d'une calculatrice programmable ou d'un logiciel.

Exercice 7 :

crire un programme qui demande en entre un client le montant total de ses achats.
En fonction de la somme dpense, le programme affiche en sortie le prix payer :
- Si la somme dpense est strictement infrieure 75 , il obtient 5 % de remise.
- Si la somme dpense est suprieure 75 , il obtient 8 % de remise.
Tester ce programme l'aide d'une calculatrice programmable ou d'un logiciel.

Page 19 sur 23
FICHE n6 : PROGRAMMER
DES BOUCLES

Syntaxe pour les boucles dans 4 langages de programmation :

Langage naturel Python Scilab TI CASIO


while Condition: while Condition :While Condition While Condition
Tant que Condition est vraie Instructions Instructions :Instructions Instructions
Faire Instructions
end :End WhileEnd

Langage naturel Python (*) Scilab TI CASIO


for i in range(3,8): for i =3:7 :For(i,3,7) For 3i To 7
Pour i allant de 3 7
Instructions Instructions :Instructions Instructions
Faire Instructions
end :End Next

(*) En Python, range(a,b) dsigne la squence des entiers n vrifiant a n b .


range(b) dsigne la squence des entiers 0, 1, , b 1

Syntaxe pour sortir d'une boucle :

Langage naturel Python Scilab TI CASIO


Sortir de la boucle break

Syntaxe pour gnrer un nombre alatoire :

Langage naturel Python (*) Scilab TI CASIO


Gnrer un nombre
rel alatoire de random() rand() rand Ran#
l'intervalle [0,1[
Gnrer un nombre
entier alatoire de randint(1,5) int(rand()*5)+1 randInt(1,5) RanInt#(1,5)
l'intervalle [1,5]

(*) En Python, les commandes random et randint ncessitent l'appel d'un module au dbut du programme. Pour ce faire, taper
: from random import*

Exercice 1 :

Voici un algorithme crit dans diffrents langages de programmation :

Python Scilab TI CASIO

Page 20 sur 23
1) Quel problme permet de rsoudre cet algorithme.
2) a) En s'inspirant des programmes prcdents, crire un programme (langage au choix) permettant de calculer la
somme des entiers de 34 145.
Tester ce programme l'aide d'une calculatrice ou d'un logiciel.
b) Mme question pour la somme des entiers de 67 456.

Exercice 2 :

Rdiger et tester un programme permettant de calculer la somme des entiers naturels pairs infrieure 1000.

Exercice 3 :

1) Complter l'algorithme suivant qui permet de dterminer la moyenne d'une srie de notes, o N est le nombre de
notes.

Langage naturel
Entre
Saisir N

Traitement des donnes


Pour i allant de 1 N
Faire

2) Rdiger et tester un programme traduisant cet algorithme.

Exercice 4 :

On place un capital de 500 sur un compte rmunr 3% par an.


Lalgorithme suivant, crit en langage naturel, permet de calculer le nombre d'annes au bout desquelles le capital
sera doubl.

Langage naturel
Initialisation
Affecter S la valeur 500
Affecter A la valeur 0

Traitement des donnes


Tant que S<1000
Faire
Affecter S la valeur 1,03xS
Affecter A la valeur A+1

Sortie
Afficher A

1) Chacun des programmes ci-dessous traduisant l'algorithme prcdent comprend une erreur. Corriger un des
programmes (au choix) et le tester l'aide d'une calculatrice ou d'un logiciel.

Page 21 sur 23
Python Scilab TI CASIO

2) Modifier le programme prcdent de telle sorte que le capital et le taux de rmunration soient saisis en entre.
L'algorithme affichera nouveau en sortie le nombre d'annes au bout desquelles le capital sera doubl.

Exercice 5 :

On dpose 25 dans une tirelire.


Lalgorithme suivant, crit en langage naturel, permet de calculer le nombre de pices de 1 ou 2 ajouts de faon
alatoire dans la tirelire avant de dpasser 50.

Langage naturel
Initialisation
Affecter S la valeur 25
Affecter D la valeur 0

Traitement des donnes


Tant que S<50
Faire
Affecter A la valeur alatoire 1 ou 2
Affecter S la valeur S+A
Affecter D la valeur D+1
Afficher A

Sortie
Afficher D

Rdiger et tester un programme traduisant cet algorithme.


- Syntaxe pour un nombre alatoire en page 1 de la fiche -

Exercice 6 :
D'aprs "Document ressource pour la classe de seconde" juin 2009

On demande lutilisateur de deviner en moins de six essais un nombre tir au hasard entre 10 et 100.
On lui indique chaque fois si le nombre propos est suprieur ou infrieur au nombre cherch.

1) L'algorithme qui suit, crit en langage naturel, permet d'effectuer le jeu.


a) Que reprsentent les variables E, S et N ?
b) Rdiger et tester un programme traduisant cet algorithme.
- Voir syntaxes en page 1 de la fiche -

Page 22 sur 23
Langage naturel
Initialisation
Affecter S la valeur d'un nombre alatoire entier compris entre 10 et 100
Affecter E la valeur 1

Traitement des donnes et entre


Tant que E<7
Saisir N
Si N>S
Alors afficher "C'est moins"
Sinon
Si N<S
Alors afficher "C'est plus"
Sinon
Afficher "C'est gagn"
Sortir de la boucle
E=E+1

Sortie
Si E=7
Alors afficher "C'est perdu"

2) Sans stratgie, il est difficile de gagner. En effet, selon le choix des valeurs, il sera ou non possible de dterminer
coup sr la solution.
La mthode consiste, en choisissant chaque fois la valeur situe au milieu de lintervalle en cours, rduire de
moiti lamplitude de lintervalle dans lequel se trouve le nombre.
Tester cette stratgie pour gagner tous les coups ce jeu.

Page 23 sur 23