0% ont trouvé ce document utile (0 vote)
174 vues7 pages

Cours TD

Transféré par

Tom Revy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
174 vues7 pages

Cours TD

Transféré par

Tom Revy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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