Vous êtes sur la page 1sur 7

Ingénierie des systèmes cyber-physiques BUT-S2 R2.

12
Informatique Cours-TD
Cours-TD

1 Introduction
Dénition 1
Un algorithme est une suite nie d'opérations (instructions) nécessaires à la résolution d'un problème
donné.

Remarque 1
Un algorithme n'est pas un langage de programmation .
Un algorithme est reconnaissable par l'ordinateur lorsqu'il est écrit dans un langage de programmation.
Ex de langages : Pascal, C, Python, Java, VBA ...

2 Syntaxe
2.1 Aectation des variables
Dénition 2
L'aectation des variables et leur nature sont fondamentales.
Pour aecter une variable on utilisera une èche de droite à gauche :

Nom ← valeur_var
ou bien le symbole égal :

Nom = valeur_var
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

Remarque 2
Le = informatique est diérent du = mathématique.

Exemple 1
a=2 a ←2
PRINT a PRINT a
b=a b←a
PRINT b PRINT b

Exemple 2
Compléter à droite ce que renvoie l'algorithme.

Message ← "Hello world"


PRINT "Message"
PRINT Message
PRINT "Le message est Message"
PRINT "Le message est " + Message

2.2 Boucle IF
Dénition 2
IF ... THEN : SI ... ALORS

IF(CONDITION) THEN
{ bloc d'instructions 1
... }
ELSE
{ bloc d'instructions 2
... }
END IF

Une condition doit être vraie ou fausse, on dira qu'elle doit être vériable.

Remarque 3
Une ligne commençant par If est toujours terminée par Then, ce qui signie  Si, alors . C'est entre
ces deux mots que vous placez la condition souhaitée.
Donc, si j'écris le code If MaVariable = 10 Then, ce qui se trouve en dessous ne sera exécuté que si
la valeur de MaVariable est égale à 10.
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

Dénition 4
Else , mot anglais traduisible par sinon.
Sinon , il faut y penser parfois pour gérer toutes
les éventualités.
Le Else doit être placé dans une boucle If, donc
entre le Then et le End If

2.3 Boucle For


Dénition 4
FOR ... TO ... DO : DE ... A ... FAIRE
FOR (INITIALISATION) TO (ARRIVEE) DO
{ bloc d'instructions
... }
END FOR

Exemple 3
FOR i = 0 TO i = 10 DO
PRINT "Bonjour"
END FOR
Combien de fois "Bonjour" est aché ?
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

2.4 Boucle While


Dénition 4
WHILE ... DO : TANT QUE ... FAIRE

WHILE (CONDITION) DO
{ bloc d'instructions
... }
END WHILE

Exemple 4
WHILE N < 10 DO N =0
{ PRINT "Bonjour" WHILE N < 10 DO
N =N +1 } { PRINT "Bonjour"
END WHILE N =N +1 }
END WHILE

Combien de fois "Bonjour" est aché ?


Combien de fois "Bonjour" est aché ?

Remarque 4
While , mot anglais traduisible par tant que
Vu la traduction du mot while , vous devriez vous attendre à ce que va faire notre boucle. Elle va
eectivement  tourner  tant que la condition est vraie.
Retenez bien ce  vrai .
La syntaxe est similaire à celle du If de tout à l'heure.
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

3 Exercices
EXERCICE 1. Maximum de deux entiers .
N1
N2
if N 1 > N 2
then
print "Le max de N 1 et N 2 est" + N 1
else
print "Le max de N 1 et N 2 est" + N 2
end if

a. Détailler les étapes de l'algorithme.


b. Ecrire un algorithme qui renvoie le maximum de 3 entiers.
c. A l'aide des conditions IF et AND, écrire un algorithme qui dit si un nombre N est bien compris entre 0 et
10.
EXERCICE 2. Boucle FOR .
N ← 100
i←1
sum ← 0
for i = 1 to N do
sum ← sum + i
end for
print "La somme des 100 premiers nombre vaut" + sum

a. Détailler les étapes de l'algorithme.


b. Qu'y a-t-il à changer si l'on veut la somme jusqu'à 200 ?
c. Et si l'on veut compter la somme des nombres entre 50 et 100 ?
Ecrire un algorithme qui calcule 100 i=1 2 .
i
P
d.

e. Critiquer l'algorithme suivant :

k←1
resultat ← 0
for k = 1 to N do
resultat ← resultat + 2 ∗ k
print "Le résultat est + resultat"
end for
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

EXERCICE 3. Tableaux .
N l ← 26
N c ← 10
i←1
j←1
for i = 1 to N l do
for j = 1 to N c do
T [i, j] ← i + j
end for
end for

a. Détailler les étapes de l'algorithme. Représenter un tableau de taille 3×4 rempli de la manière de l'algorithme.
b. Que cela aurait-il changé si on avait échangé les boucles sur i et sur j .
c. Quelle est la valeur de la case T [7, 10] ?
d. Ecrire un algorithme qui construit un tableau 10 × 10 qui ne contient que des 1 dans la première ligne, que
des 2 dans la deuxième, etc...
e. Ecrire un algorithme qui construit un tableau 10 × 10 qui ne contient que des 1 sur la diagonale et des 0
ailleurs.
f. Ecrire un algorithme qui donne la transposée d'un tableau connu : à partir d'un tableau T 1 déjà rempli, on
construit un tableau T 2 qui prend les lignes de T 1 pour les mettre en colonnes, et les colonnes de T 1 pour les
mettre en lignes. Si T 1 est de taille N × M alors de quelle taille est T 2 ?
EXERCICE 4. Moyenne de notes .
a. On a une liste de 10 notes dans le tableau 1 × 10 Notes. Ecrire un algorithme qui renvoie la moyenne de ces
notes. Terminer par une phrase qui indique que la moyenne est "mauvaise" si en-dessous de 10, et "bonne"
au contraire.
b. Que faudrait-il ajuster pour rajouter des coecients aux notes ?
EXERCICE 5. Boucle WHILE .
sum ← 2
while sum <= 100 do
sum ← sum ∗ sum
end while

a. Détailler les étapes de l'algorithme.


b. Que cela aurait-il changé si on avait initialisé sum à 1 ?
c. Ecrire un algorithme qui calcule la somme des entiers pairs de 0 à 100.
Ingénierie des systèmes cyber-physiques BUT-S2 R2.12
Informatique Cours-TD

EXERCICE 6. Boolean .
test ← true
sum ← 1
while test = true do
sum ← 2 ∗ sum
if sum > 1000 then
test ← false
end if
end while
print "La plus grande puissance de 2 inférieure à 1000 est" + sum

a. Détailler les étapes de l'algorithme.


b. Que cela aurait-il changé si on avait initialisé sum à 0 ?
c. Que cela aurait-il changé si on avait initialisé test à false ?
EXERCICE 7. Test de présence . Soit un tableau T de longueur N contenant des entiers. On souhaite savoir si le
tableau T contient une certaine valeur donnée k. Proposer un algorithme qui permet de renvoyer "vrai" si la valeur
k se trouve dans T ou "faux" dans le cas contraire.

EXERCICE 8. Encore des boucles... .


a. On se donne un tableau d'entiers T de taille N × N . Ecrire un algorithme qui remplace tous les nombres
négatifs par 0. Ecrire un algorithme qui remplace tous les nombres au-dessus de 100 par 100.
b. On se donne un tableau d'entiers T de taille 1 × N . Ecrire un algorithme qui localise la position (coordonnées
de la cellule) du premier nombre plus grand que 10.
EXERCICE 9. Echanger deux cases . Soit un tableau T de taille 1 × N . On xe i, j ∈ {1, 2, · · · , N } et on se
propose d'échanger la case T [i] avec la case T [j]. Proposer un algorithme qui permet d'eectuer cette action.
EXERCICE 10. Sélection . Soit un tableau T de taille 1 × N contenant des entiers tous diérents. On souhaite
rechercher la position de la valeur minimale de la liste T . Proposer un algorithme qui permet de retourner la position
de la valeur minimale, puis de retourner cette valeur minimale.

Vous aimerez peut-être aussi