• Aucun résultat trouvé

26/04/20171

N/A
N/A
Protected

Academic year: 2022

Partager "26/04/20171"

Copied!
4
0
0

Texte intégral

(1)

26/04/2017

1

Algorithmes…et programmes en PHP

Structures répétitives

Les structures répétitives

Les boucles peuvent être non déterministes ou déterministes.

Les boucles non-déterministes : On ne sait pas à l’avance combien de fois se fera la boucle, ni quand elle s’arrêtera (voire si elle s’arrêtera) :

REPETER...JUSQU’A TANT QUE

Les boucles déterministes: On connaît à l’avance le nombre d’itérations :

POUR

L’instruction REPETER … JUSQU’A

Syntaxe

La forme générale de cette boucle est :

Répéter

Instruction1 Instruction2 Instruction3 Jusqu’a condition

Si condition est VRAI alors la boucle s’arrête.

Si condition est FAUSSE alors la boucle continue.

Remarque : le test est un test d’arrêt

L’instruction REPETER … JUSQU’A

Exemple

Programme Principal Variables

Nb , n : Entiers Début

Afficher "Entrez un nombre:"

Saisir n

Répéter

Afficher "Entrez un nombre (0 pour Fin):"

Saisir Nb

Afficher "La multiplication par ",n," est:", Nb*n

Jusqu’à Nb = 0

Fin

L’instruction REPETER … JUSQU’A

Remarques:

Le test d’arrêt de la boucle est effectué à la fin => La boucle s’exécute toujours au moins une fois .

La variable utilisée dans le test d’arrêt (ou de continuité) doit toujours évoluer dans le corps de la boucle, si on veut que la boucle s’arrête un jour.

Faire « tourner à la main » le programme pour vérifier qu’il correspond bien à l’algorithme désiré.

Comprendre une boucle…

Faites tourner « à la main » l’algorithme ci-dessous afin de trouver le rôle du programme:

Programme Principal Variables

nb: Entier Début

Répéter

Afficher "Saisir un nombre strictement positif"

Afficher "Saisir 0 (zero) pour arreter le programme"

Saisir nb si nb>0

si (nb MOD 2) = 0

afficher nb, " est pair"

finSi si (nb MOD 3) = 0

afficher nb, " est divisible par 3"

finSi finSi Jusqu’à (nb = 0 ) Fin

(2)

26/04/2017

2 Exercice:

Faire un algorithme qui calcule la somme de n nombres saisis. Il faut saisir la valeur 0 pour arrêter la structure répétitive.

Programme Somme Variables

Nb , resultat : Entiers Début

resultat 0

Répéter

Afficher "Entrez un nombre (0 pour Fin):"

Saisir Nb

resultat resultat + Nb

Jusqu’à Nb = 0

Afficher "La somme est:", resultat Fin

L’instruction POUR … FAIRE … FIN POUR

La boucle POUR est déterministe => on l’utilisera quand on connaît a l’avance le nombre d’itérations.

Elle utilise un compteur de boucle qui est un entier .

Syntaxe 1

Syntaxe 2

Où variable, c1, c2 et N sont des entiers

Pour variable variant de c1 à c2 faire Instruction1

Instruction2 Instruction3 Fin Pour

Pour variable variant de c1 à c2 par pas de N faire Instruction1

Instruction2 Instruction3 Fin Pour

L’instruction POUR … FAIRE … FIN POUR

Exemple

Programme Principal Variables

i, nb : Entiers Début

Afficher "Entrez un nombre :"

Saisir nb

Pour i variant de 1 à nb faire Afficher i

Fin Pour Fin

L’instruction POUR … FAIRE … FIN POUR

Remarques:

Le compteur de la boucle POUR doit être un entier .

Si la valeur finale est atteinte dès le premier passage => la boucle s’exécute zéro fois.

A la sortie de la boucle, le compteur possède la dernière valeur affecté par la boucle.

Le compteur de la boucle (i) ne doit jamais être modifié dans le corps de la boucle !

Imbrication des boucles POUR

Les instructions d’une boucle POUR peuvent être une autre boucle POUR.

Comme le montre l’exemple ci-dessous.

Exemple

Remarques: Le compteur de la boucle interne (i) tourne plus vite que celui de la boucle externe (base)

Programme Principal Variables

i, base, res :Entiers Début

Pour base variant de 1 à 12 faire

Afficher "Table de multiplication de :", base Pour i variant de 1 à 10 faire

res i * base

Afficher i," X ", base," = ", res Fin Pour

Fin Pour Fin

Instructions à l’intérieur des structures répétitives

A l’intérieur des structures répétitives, on peut exécuter:

Des instructions simples (affectations, calculs, saisie, affichage) Des structures répétitives de même nature ou de nature

différente

Des structures conditionnelles

(3)

26/04/2017

3

- Les structures répétitives en PHP…

Structures répétitives

Structures répétitives

Exemple introductif : Ecrire les 10 premiers nombres entiers

Cette solution est peu intéressante… surtout si nous devons écrire les 100 premiers entiers… voire plus

Pour éviter cela, nous allons demander au programme de faire la répétition lui-même grâce aux structures répétitives

14

<?PHP echo "\n1";

echo "\n2";

echo "\n3";

echo "\n4";

echo "\n5";

echo "\n6";

echo "\n7";

echo "\n8";

echo "\n9";

echo "\n10";

?>

Structures répétitives

La structure FOR

for($i=1;$i<=10;$i++){

echo "\n$i";

}

15 Les instructions à répéter sont incluses entre les accolades ouvrantes et fermantes

Les conditions de la boucle sont au nombre de 3. Elles sont écrites entre parenthèses et séparées par des point-virgules

La 3ièmeexpression indique l’opération à faire après chaque tour de boucle

La 1èreexpression indique ce qu’il faut faire avant d’exécuter les instructions

La 2ièmeexpression indique la condition qui indique si on doit continuer la boucle

Structures répétitives

Exercice: Avec une instruction FOR, écrire 10 fois le mot Bonjour séparés par des espaces

16

Structures répétitives

Autre structure: FAIRE TANT QUE ou DO WHILE

do {

echo "\n$i";

$i++;

}while($i<=10);

17 Les instructions à répéter sont incluses entre les

accolades ouvrantes et fermantes

La condition de la boucle est écrite entre parenthèses et se termine par un point virgule

La condition doit retourner un booléen : TRUE ou FALSE.

Elle indique si on doit continuer la boucle

Structures répétitives

Exercice: Afficher les 10 premiers nombres pairs

18

<?PHP

for($i=0; $i<10; $i++){

echo ($i*2)."\n";

}

?>

(4)

26/04/2017

4

Reprendre le TP précédent et utiliser les instructions

« do…while » et « for » à la place de l’instruction

« while »

• Exercices 1, 2 et 4 avec un « for »

• Exercices 5 et 7 avec un « do … while »

Do…while et for

TP de mise en application à l’aide de PHP

Références

Documents relatifs

En Python, pour interrompre un programme qui boucle à l'infini, il suffit de faire Ctrl + C.3. Remarque :

Introduction des variables : traduire l’algorithme donné en langage naturel à l’exercice 1p11 en langage pseudo algorithmique.. I Exercices

[r]

On utilise une boucle for , appelée boucle itérative, pour exécuter une instruction (ou un bloc d’instructions) un nombre de fois

Écrire un algorithme qui demande un nombre de départ et qui affiche les dix nombres suivants.. Élaborer un algorithme permettant le calcul de la somme des entiers de 1

Pour effectuer une tâche , il est parfois nécessaire d’exécu- ter plusieurs fois de suite les mêmes instructions mais le nombre de fois n’est pas déterminé à l’avance :

peinture au coton- tige : décorer ours avec des ronds collage : décorer ours en collant du fil (poils de l’ours) colorier l’ours avec des craies grasses La voix et

[r]