33
1 Algorithmique (suite)

1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

Embed Size (px)

Citation preview

Page 1: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

1

Algorithmique (suite)

Page 2: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

2

Rappel de ce qui a été vu

• Notion de variable (déclaration)• Instructions

– Affectation – Lecture Lire(variable)– Ecriture Ecrire(variable, valeur, ou

expressions)

• Structures de contrôle– Condition simple Si … Finsi– Condition avec alternative Si … Sinon … SinSinon– Répétition Tant que … FinTantQue

• Structure d’un algorithme

Page 3: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

3

Plan

• Exemples d’algorithmes• La structure de répétition Pour• Structure de tableau à une

dimension– Définition– Déclaration– Manipulation

• Quelques algorithmes

Page 4: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

4

Algorithme 1

• Écrire un algorithme qui permet de – Lire une note puis – affiche un message. Ce dernier sera

• « reçu(e) » si la note lue est supérieure ou égale à 10

• « recalé(e) » si la note est inférieure à 10

Page 5: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

5

Algorithme 1

• De quelles variables a-t-on besoin ?– On n’a besoin que d’une seule

variable. Appelons la X

• Quelle est le type de cette variable ?– A priori, une note est un réel

Page 6: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

6

Algorithme 1

• Description de l’algorithme :– On lit d’abord la variable X– On teste ensuite sa valeur

• Si elle est c alors on affiche « reçu(e) »• Sinon, on affiche « recalé(e) »

Page 7: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

7

Algorithme 1Algorithme Exemple1Variable X: réelDébut

Lire(X)Si X 10 alors

Ecrire(« reçu(e) »)FinsiSinon

Ecrire(« recalé(e) »)FinSinon

Fin

Page 8: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

8

Algorithme 1Algorithme Exemple1Variable X: réelDébut

Ecrire (« donner une note »)Lire(X)Si X 10 alors

Ecrire(« reçu(e) »)FinsiSinon

Ecrire(« recalé(e) »)FinSinon

Fin

Page 9: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

9

Algorithme 1Algorithme Exemple1…

Ecrire (« donner une note »)Lire(X)Tant que (X<0)

Ecrire(X, « n’est pas une note valable »)

Ecrire(« taper une autre valeur »)Lire(X)

FinTantQueSi X 10 alors

…Fin

Page 10: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

10

Algorithme 1Algorithme Exemple1…

Ecrire (« donner une note »)Lire(X)Tant que ((X<0) OU (X > 20))

Ecrire(X, « n’est pas une note valable »)

Ecrire(« taper une autre valeur »)Lire(X)

FinTantQueSi X 10 alors

…Fin

Page 11: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

11

Algorithme 2

• Écrire un algorithme qui – lit deux notes puis – affiche leur moyenne

Page 12: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

12

Algorithme 2

• De quelles variables a-t-on besoin ?– Première solution :

• Deux variables pour les deux notes. Appelons les X et Y

• Une variable pour la moyenne. Appelons la M

• Chacune de ces 3 variables est un réel

– Deuxième solution :• On peut n’utiliser que deux variables X et Y

pour les deux notes. La moyenne sera calculée lors de l’affichage

Page 13: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

13

Algorithme 2

• Description de l’algorithme– On lit d’abord les deux notes– On calcule leur moyenne– On affiche la moyenne

Page 14: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

14

Algorithme 2Sub exemple1()Dim X, Y As IntegerDim M As Double X = InputBox("donner x") Y = InputBox("donner y") M = (X + Y)/2 MsgBox("Moyenne de"&X&"et"&Y&" est " & M)End Sub

Page 15: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

15

Algorithme 2

Algorithme Exemple 2Variable X, Y, M : réelDébut

Lire(X)Lire(Y)Ecrire(« moyenne de », X, « et », Y , « est », (X+Y)/2)

Fin

Page 16: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

16

Algorithme 3

• Ecrire un algorithme qui– Lit 5 notes puis– Affiche leur moyenne

• On peut reprendre le même principe:– 5 variables pour les notes toutes

réelles

Page 17: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

17

Algorithme 4

• Ecrire un algorithme qui– Lit 100 notes puis– Affiche leur moyenne

• On peut aussi s’en sortir en utilisant là aussi 100 notes mais ça devient lourd

Page 18: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

18

Algorithme 4• Idée :

– La moyenne est calculée en faisant la somme de toutes les notes lues

– Utiliser une boucle Tant que qui nous permet de•Lire 100 fois la même variable X•A chaque fois qu’on lit une nouvelle

valeur de X, on la rajoute à une variable S

– A la fin, il suffit de diviser S par 100 pour avoir la moyenne

Page 19: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

19

Algorithme 4

• De quelles variables a-t-on besoin ?– X va nous permettre de lire les notes– S va nous permettre de calculer la

somme • Nous avons aussi besoin d’une

variable i qui nous permet de compter le nombre de fois qu’on lit X

• X et S sont de type réel, alors que i est de type entier

Page 20: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

20

Algorithme 4Algorithme exemple4Variable X, S : réelVariable i : entierDébut

i 1 ‘initialisation de iS 0 ‘initialisation de STant que i 100

Lire (X)S S + Xi i + 1

FinTantQueEcrire (« la moyenne est », S/100)

Fin

Page 21: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

21

La structure de répétition Pour

• Permet de répéter l’exécution d’une suite d’instructions un certain nombre de fois

• Syntaxe:Pour variable=val1 à val2

InstructionsFinPour

Page 22: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

22

La structure de répétition Pour

• Exemple:Pour i = 1 à 100

Ecrire(« donner une note »)Lire (X)

FinPour• La première valeur de i est 1• A chaque itération, on ajoute 1 à i

Page 23: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

23

La structure de répétition Pour

Pour i=10 à 8Ecrire(i)

FinPour

Cette boucle ne sera exécutée aucune

fois car Val1 > Val2• On peut toujours remplacer une

boucle Pour par une boucle TantQue. L’inverse n’est pas vrai.

Page 24: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

24

La structure de répétition Pour

Algorithme exemple4’Variable X, S : réelVariable i : entierDébut

i 1 ‘initialisation de iS 0 ‘initialisation de STant que i 100Pour i = 1 à 100

Lire (X)S S + Xi i + 1

FinTantQueFinPourEcrire (« la moyenne est », S/100)

Fin

Page 25: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

25

La structure de répétition Pour

• Ecrire un algorithme qui affiche le produit de tous les nombres compris entre 1 et 10

• Idée 1: – Utiliser deux variables entières i et j– i et j prennent leurs valeurs dans

l’intervalle [1..10]– A chaque nouvelle valeur, on affiche

i*j

Page 26: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

26

Structure de répétition Pour

Algorithme exemple5Variable i, j : entierDébut

Pour i = 1 à 10Pour j = 1 à 10

Ecrire(i, « * », j, « = », i * j)FinPour

FinPourFin

i=1, j= 1..10

i= 2, j=1 .. 10

i=10, j=1 .. 10

Page 27: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

27

Structure de répétition Pour

• Idée 2: – Utiliser deux variables entières i et j– i prend ses valeurs dans l’intervalle

[1..10]– j prend ses valeurs dans l’intervalle

[i..10]– Ceci nous permettra d’éviter de

calculer deux fois le même produit

Page 28: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

28

Structure de répétition Pour

Algorithme exemple5’Variable i, j : entierDébut

Pour i = 1 à 10Pour j = i à 10

Ecrire(i, « * », j, « = », i * j)FinPour

FinPourFin

i=1, j= 1..10

i= 2, j=2 .. 10

i=10, j=10 .. 10

Page 29: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

29

Structure de tableau à une dimension

• Définition– On l’appelle aussi vecteur.– Il est composé d’un certain nombre

de cases– Chaque case peut prendre une valeur– Toutes les cases ont le même type– Une case est repérée par son indice

1 2 3 4 5 6 7 8

8 7905 431

Indices

Contenu

Page 30: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

30

Structure de tableau à une dimension

• Déclaration:Variable nom_var :Tableau[nb] de Type

• Exemple:Variable T : Tableau[5] d’entiers

Ceci va créer une variable T qui est un tableau contenant 5 cases

Page 31: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

31

Structure de tableau à une dimension

• Manipulation:– Un tableau est lue case pas case

• Lire (T[10]) revient à lire la case dont l’indice est 10

• Si T est un tableau, alors Lire(T) est une instruction erronée

– Ainsi, chaque case du tableau est manipulable comme si c’était une variable simple classique

Page 32: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

32

Structure de tableau à une dimension

• Ecrire un algorithme qui– Lit un tableau de 10 entiers puis– Affiche la variance de ces 10 entiers

– Rappel: variance= (xi – M)2/n où• M est la moyenne• N est le nombre de valeurs

Page 33: 1 Algorithmique (suite). 2 Rappel de ce qui a été vu Notion de variable (déclaration) Instructions –Affectation –Lecture Lire(variable) –EcritureEcrire(variable,

33

Structure de tableau à une dimensionAlgorithme Exemple6

Variable T : Tableau[10] d’entiersVariable i : entierVariable M, V : réelDébut

M 0V 0Pour i = 1 à 10

Lire(T[i])M M + T[i]

FinPourM M/10Pour i = 1 à 10

V V + (T[i] – M)2FinPourEcrire (V/10)

Fin