exercices sur les structures de controle de base
This commit is contained in:
parent
75b80773cc
commit
2dee810ffd
|
@ -82,6 +82,34 @@ On appelle structure conditionnelle les instructions qui permettent de tester si
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. ifconfig:: exercice
|
||||||
|
|
||||||
|
**Exercice** : Compacter l'algorithme suivant en une seule condition de test::
|
||||||
|
|
||||||
|
Si il fait trop chaud Alors
|
||||||
|
Si il ne pleut pas Alors
|
||||||
|
Ouvrir la fenêtre
|
||||||
|
Sinon
|
||||||
|
Fermer la fenêtre
|
||||||
|
Finsi
|
||||||
|
Sinon
|
||||||
|
Fermer la fenêtre
|
||||||
|
Finsi
|
||||||
|
|
||||||
|
.. ifconfig:: correction
|
||||||
|
|
||||||
|
**Correction** :
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Si il fait trop chaud ET il ne pleut pas Alors
|
||||||
|
Ouvrir la fenêtre
|
||||||
|
Sinon
|
||||||
|
Fermer la fenêtre
|
||||||
|
Finsi
|
||||||
|
|
||||||
|
|
||||||
L'instruction switch
|
L'instruction switch
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -128,6 +156,45 @@ La boucle **pour** (for)
|
||||||
\end{algorithmic}
|
\end{algorithmic}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. ifconfig:: exercice
|
||||||
|
|
||||||
|
**Exercice** : Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur,
|
||||||
|
et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres
|
||||||
|
|
||||||
|
.. ifconfig:: correction
|
||||||
|
|
||||||
|
**Correction** :
|
||||||
|
::
|
||||||
|
|
||||||
|
Variables N, i, PG en Entier
|
||||||
|
Debut
|
||||||
|
PG <- 0
|
||||||
|
Pour i <- 1 à 20
|
||||||
|
Ecrire "Entrez un nombre : "
|
||||||
|
Lire N
|
||||||
|
Si i = 1 ou N > PG Alors
|
||||||
|
PG <- N
|
||||||
|
FinSi
|
||||||
|
Ecrire "Le nombre le plus grand était : ", PG
|
||||||
|
Fin
|
||||||
|
|
||||||
|
|
||||||
|
.. attention:: ne jamais manipuler le compteur dans une boucle
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Variable Truc en Entier
|
||||||
|
Début
|
||||||
|
Pour Truc <- 1 à 15
|
||||||
|
Truc <- Truc * 2
|
||||||
|
Ecrire "Passage numéro : ", Truc
|
||||||
|
Truc Suivant
|
||||||
|
Fin
|
||||||
|
|
||||||
La boucle tant que (while)
|
La boucle tant que (while)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -145,6 +212,74 @@ La boucle tant que (while)
|
||||||
\end{algorithmic}
|
\end{algorithmic}
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
|
.. ifconfig:: exercice
|
||||||
|
|
||||||
|
**Exercice** : Ecrire un algorithme de validation d'une entrée utilisateur
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
"Voulez vous un café ? (O/N)"
|
||||||
|
|
||||||
|
.. ifconfig:: correction
|
||||||
|
|
||||||
|
**Correction** : deux solutions possibles, une
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Variable Rep en Caractère
|
||||||
|
Début
|
||||||
|
Rep <- ""
|
||||||
|
Ecrire "Voulez vous un café ? (O/N)"
|
||||||
|
TantQue Rep <> "O" et Rep <> "N"
|
||||||
|
Lire Rep
|
||||||
|
Si Rep <> "O" et Rep <> "N" Alors
|
||||||
|
Ecrire "Saisie Erronée, Recommencez"
|
||||||
|
FinSi
|
||||||
|
FinTantQue
|
||||||
|
Fin
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Variable Rep en Caractère
|
||||||
|
Début
|
||||||
|
Ecrire "Voulez vous un café ? (O/N)"
|
||||||
|
Lire Rep
|
||||||
|
TantQue Rep <> "O" et Rep <> "N"
|
||||||
|
Ecrire "Vous devez répondre par O ou N. Recommencez"
|
||||||
|
Lire Rep
|
||||||
|
FinTantQue
|
||||||
|
Ecrire "Saisie acceptée"
|
||||||
|
Fin
|
||||||
|
|
||||||
|
|
||||||
|
FIXME
|
||||||
|
|
||||||
|
.. ifconfig:: exercice
|
||||||
|
|
||||||
|
**Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à l’utilisateur
|
||||||
|
un nombre compris entre a et b jusqu’à ce que la réponse convienne.
|
||||||
|
|
||||||
|
.. ifconfig:: correction
|
||||||
|
|
||||||
|
**Correction** :
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Variable N en Entier
|
||||||
|
Debut
|
||||||
|
N <- 0
|
||||||
|
Ecrire "Entrez un nombre entre 10 et 20"
|
||||||
|
TantQue N < 10 ou N > 20
|
||||||
|
Lire N
|
||||||
|
Si N < 10 Alors
|
||||||
|
Ecrire "Plus grand !"
|
||||||
|
SinonSi N > 20 Alors
|
||||||
|
Ecrire "Plus petit !"
|
||||||
|
FinSi
|
||||||
|
FinTantQue
|
||||||
|
Fin
|
||||||
|
|
||||||
|
|
||||||
Et les autres boucles : répéter... jusqu'à, etc...
|
Et les autres boucles : répéter... jusqu'à, etc...
|
||||||
|
|
||||||
.. raw:: latex
|
.. raw:: latex
|
||||||
|
|
|
@ -60,6 +60,34 @@ Autres exemples d'expressions :
|
||||||
Les expressions se complexifient avec la complexification des données et des traitements,
|
Les expressions se complexifient avec la complexification des données et des traitements,
|
||||||
mais le principe de l'expressivité d'un langage reste le même.
|
mais le principe de l'expressivité d'un langage reste le même.
|
||||||
|
|
||||||
|
|
||||||
|
.. ifconfig:: exercice
|
||||||
|
|
||||||
|
**Exercice** :
|
||||||
|
Le parenthésage et les opérateurs booléens::
|
||||||
|
|
||||||
|
Variables A, B, C, D, E en Booléen
|
||||||
|
Variable X en Entier
|
||||||
|
Début
|
||||||
|
Lire X
|
||||||
|
A <- X > 12
|
||||||
|
B <- X > 2
|
||||||
|
C <- X < 6
|
||||||
|
D <- (A ET B) OU C
|
||||||
|
E <- A ET (B OU C)
|
||||||
|
Ecrire D, E
|
||||||
|
Fin
|
||||||
|
|
||||||
|
**Que valent D et E si X = 3 ?**
|
||||||
|
|
||||||
|
|
||||||
|
.. ifconfig:: correction
|
||||||
|
|
||||||
|
**Correction** : D sera VRAI alors que E sera FAUX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Les déclarations
|
Les déclarations
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue