Algorithmique (suite)
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
Plan Exemples d’algorithmes La structure de répétition Pour Structure de tableau à une dimension Définition Déclaration Manipulation Quelques algorithmes
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
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
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) »
Algorithme 1 Algorithme Exemple1 Variable X: réel Début Lire(X) Si X 10 alors Ecrire(« reçu(e) ») Finsi Sinon Ecrire(« recalé(e) ») FinSinon Fin
Algorithme 1 Algorithme Exemple1 Variable X: réel Début Ecrire (« donner une note ») Lire(X) Si X 10 alors Ecrire(« reçu(e) ») Finsi Sinon Ecrire(« recalé(e) ») FinSinon Fin
Algorithme 1 Algorithme Exemple1 … Ecrire (« donner une note ») Lire(X) Tant que (X<0) Ecrire(X, « n’est pas une note valable ») Ecrire(« taper une autre valeur ») FinTantQue Si X 10 alors Fin
Algorithme 1 Algorithme 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 ») FinTantQue Si X 10 alors Fin
Algorithme 2 Écrire un algorithme qui lit deux notes puis affiche leur moyenne
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
Algorithme 2 Description de l’algorithme On lit d’abord les deux notes On calcule leur moyenne On affiche la moyenne
Algorithme 2 Sub exemple1() Dim X, Y As Integer Dim 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
Algorithme 2 Algorithme Exemple 2 Variable X, Y, M : réel Début Lire(X) Lire(Y) Ecrire(« moyenne de », X, « et », Y , « est », (X+Y)/2) Fin
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
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
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
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
Algorithme 4 Algorithme exemple4 Variable X, S : réel Variable i : entier Début i 1 ‘initialisation de i S 0 ‘initialisation de S Tant que i 100 Lire (X) S S + X i i + 1 FinTantQue Ecrire (« la moyenne est », S/100) Fin
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 Instructions FinPour
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
La structure de répétition Pour Pour i=10 à 8 Ecrire(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.
La structure de répétition Pour Algorithme exemple4’ Variable X, S : réel Variable i : entier Début i 1 ‘initialisation de i S 0 ‘initialisation de S Tant que i 100 Pour i = 1 à 100 Lire (X) S S + X i i + 1 FinTantQue FinPour Ecrire (« la moyenne est », S/100) Fin
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
Structure de répétition Pour Algorithme exemple5 Variable i, j : entier Début Pour i = 1 à 10 Pour j = 1 à 10 Ecrire(i, « * », j, « = », i * j) FinPour Fin i=1, j= 1..10 i= 2, j=1 .. 10 … i=10, j=1 .. 10
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
Structure de répétition Pour Algorithme exemple5’ Variable i, j : entier Début Pour i = 1 à 10 Pour j = i à 10 Ecrire(i, « * », j, « = », i * j) FinPour Fin i=1, j= 1..10 i= 2, j=2 .. 10 … i=10, j=10 .. 10
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 Contenu 8 1 3 5 9 4 7 Indices 1 2 3 4 5 6 7 8
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
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
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
Structure de tableau à une dimension Algorithme Exemple6 Variable T : Tableau[10] d’entiers Variable i : entier Variable M, V : réel Début M 0 V 0 Pour i = 1 à 10 Lire(T[i]) M M + T[i] FinPour M M/10 V V + (T[i] – M)2 Ecrire (V/10) Fin