Upload
charlemagne-guy
View
108
Download
0
Tags:
Embed Size (px)
Citation preview
1
Algorithmique (suite)
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
3
Plan
• Exemples d’algorithmes• La structure de répétition Pour• Structure de tableau à une
dimension– Définition– Déclaration– Manipulation
• Quelques algorithmes
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
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
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) »
7
Algorithme 1Algorithme Exemple1Variable X: réelDébut
Lire(X)Si X 10 alors
Ecrire(« reçu(e) »)FinsiSinon
Ecrire(« recalé(e) »)FinSinon
Fin
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
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
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
11
Algorithme 2
• Écrire un algorithme qui – lit deux notes puis – affiche leur moyenne
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
13
Algorithme 2
• Description de l’algorithme– On lit d’abord les deux notes– On calcule leur moyenne– On affiche la moyenne
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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