L'algorithmique : structures conditionnelles, boucles et procédures
- Fiche de cours
- Quiz et exercices
- Vidéos et podcasts
- Savoir utiliser les conditions en pseudo-code.
- Savoir utiliser les structures conditionnelles en pseudo-code.
- Savoir utiliser les boucles en pseudo-code.
- Savoir utiliser les procédures en pseudo-code.
- Une condition est une expression qui relie deux valeurs et/ou variables à l'aide d'un opérateur de comparaison. On peut aussi écrire des conditions composées.
- Une instruction conditionnelle est une instruction qui n'est exécutée que si une condition est validée. Il est possible d'ajouter des instructions alternatives et des instructions alternatives conditionnelles à une structure conditionnelle.
- Une boucle permet de répéter plusieurs
fois des instructions. Il existe des boucles :
- avec condition de bouclage, ou boucle « tant que » ;
- à itérations définies, ou boucle « pour ».
- Une procédure est un sous-algorithme. Elle est appelée depuis l’algorithme principal.
L’algorithmique : principes, bases et fonctions
Cette fiche présente des notions d’algorithmique avancées. Elle utilise pour cela l’écriture d'algorithmes en pseudo-code. Le pseudo-code est une méthode d’écriture d’algorithmes qui ressemble à un langage humain simplifié et formaté. Il est très utile pour concevoir des programmes informatiques.
Cette fiche est la continuité directe de la fiche « L’algorithmique : principes, bases et fonctions », qu’il est conseillé de lire en premier.
Lorsque l'algorithme est exécuté, les conditions sont testées. Le résultat du test peut valider ou non la condition.
- = est l’opérateur d’égalité.
- <> est l’opérateur de différence.
- > est l’opérateur « strictement supérieur à ».
- ≥ est l’opérateur « supérieur ou égal à ».
- < est l’opérateur « strictement inférieur à ».
- ≤ est l’opérateur « inférieur ou égal à ».
- prix > 10
- nom = “Tom”
- Il ne faut pas confondre l’opérateur
d’égalité = avec l'opérateur
d'affectation ←.
- age = 5 est une condition, on teste si la variable age vaut 5 ou non.
- age ← 5 est une affectation, on donne la valeur 5 à la variable age.
- L’opérateur d’égalité est parfois noté ==, et l’opérateur de différence est parfois noté !=.
- Une variable de type booléen peut
être directement utilisée en tant que
condition.
- Si sa valeur est vrai, le test valide la condition.
- Si sa valeur est faux, le test ne valide pas la condition.
- La condition suivante ne sera validée que
si le prix est à la fois strictement plus
grand que 15 €, et à la fois
strictement plus petit que 30 € :
prix > 15 ET prix < 30. - La condition suivante ne sera validée que
si le prénom est Tom, et en même temps
que l'âge est strictement inférieur
à 18 ans :
prenom = "Tom" ET age < 18.
En algorithmique, l’écriture 15 < age < 30 n’est pas valable.
Il faut écrire 15 < age ET age < 30.
- La condition suivante est validée
dès lors que l'âge est plus petit ou
égal à 26 ans, ou que l'âge
est plus grand ou égal à
60 ans :
age ≤ 26 OU age ≥ 60. - La condition suivante est validée
dès lors que le prix est strictement plus
petit que 50 €, ou que la variable
enPromotion vaut
vrai :
prix < 50 OU enPromotion.
L'ordinateur qui exécute l'algorithme suivant affecte la valeur vrai à la variable estMajeur, puis écrit un message à l'écran, uniquement si l’âge est supérieur ou égal à 18 ans (= si la condition age ≥ 18 est validée).
Variable estMajeur : booléen
Début
Lire age
Si age ≥ 18
Écrire “Vous êtes majeur.”
- Les instructions qui se trouvent entre Si et FinSi sont indentées (décalées vers la droite) d'un cran supplémentaire par rapport au reste de l’algorithme. Cela permet de bien mettre en évidence qu'elles ne se réalisent que si la condition après le Si est validée.
- Les instructions conditionnelles sont à la base des algorithmes intelligents. Elles permettent de faire prendre un décision différente au système numérique en fonction de la situation.
L'ordinateur qui exécute l'algorithme suivant affecte une valeur différente à estMajeur et affiche un texte différent à l'écran, selon l'âge entré par l'utilisateur.
Variable estMajeur : booléen
Début
Lire age
Si age ≥ 18
Écrire “Vous êtes majeur.”
Écrire “Vous êtes mineur.”
L'ordinateur qui exécute l'algorithme suivant affecte une valeur différente à estMajeur et affiche un texte différent à l'écran, selon l'âge entré par l'utilisateur, avec trois situations possibles.
Variable estMajeur : booléen
Début
Lire age
Si age ≥ 18
Écrire "Vous êtes majeur."
Il est possible d’imbriquer des structures conditionnelles à l’intérieur d’autres structures conditionnelles. Il faut alors respecter l’indentation pour que l’algorithme reste lisible.
- Les boucles participent à ce qu’on appelle la factorisation du code. Elles permettent de n’écrire qu’une fois un morceau d'algorithme qui peut néanmoins être exécuté plusieurs fois.
- Les structures conditionnelles et les boucles forment ce qu’on appelle les structures de contrôle.
L'ordinateur qui exécute l'algorithme suivant demande à l'utilisateur la longueur et largeur d'un rectangle, puis donne l'aire du rectangle.
L'ordinateur demande ensuite à l'utilisateur si il veut effectuer un nouveau calcul. Tant que l'utilisateur répond oui, l'algorithme tourne en boucle.
Variable continuer : chaine
Début
TantQue continuer = “oui”
Lire longueur
Écrire "Quelle est la largeur du rectangle ?"
Lire largeur
aire ← longueur * largeur
Écrire "L'aire du rectangle vaut ", chaine(aire)," m2."
Écrire "Voulez-vous effectuer un nouveau calcul ? (oui/non)"
Lire continuer
- La fonction chaine(arg) permet de convertir l’aire, qui est un nombre, en chaine. Cette conversion est indispensable car l’instruction d’écriture ne peut afficher que des chaines.
- Les boucles qui utilisent le mot-clé TantQue sont aussi nommées boucles “tant que”, ou boucles à itérations (= nombre de tours) indéfinies. Cela signifie que le nombre de tours qui sera fait n'est jamais connu, même lorsque la boucle est en cours d'exécution.
- Si la condition est fausse dès le départ, aucun tour de boucle n’est effectué.
- Si la condition est toujours vraie, la boucle devient infinie, ce qui peut bloquer le système qui utilise l’algorithme à l’intérieur de la boucle.
L'ordinateur qui exécute l'algorithme suivant affiche autant de fois le mot « Bonjour » à l'écran que l'utilisateur le demande.
Début
Lire combienBonjour
Pour compteur De 1 À combienBonjour
L'ordinateur qui exécute l'algorithme suivant demande à l'utilisateur d'entrer un chiffre, puis affiche la table de multiplication de ce chiffre.
Début
Lire chiffre
Pour compteur De 0 À 10
Écrire chaine(chiffre), " × ", chaine(compteur), " = ", chaine(resultat)
- Les boucles qui utilisent le mot-clé Pour sont aussi nommées boucles « pour ».
- Le comportement des boucles « pour » est plus facile à prévoir que celui des boucles « tant que », car elles sont moins sujettes aux boucles infinies qui sont dues à une erreur de conception de l’algorithme.
- Il est toujours possible de remplacer une boucle « pour » par une boucle « tant que », et inversement, moyennant quelques adaptations.
- Il est possible d’imbriquer des boucles à l’intérieur d’autres boucles et/ou structures conditionnelles, et inversement. On doit alors respecter l’indentation pour que l’algorithme reste lisible.
Plutôt que de commencer par le mot-clé Début, une procédure commence par le mot-clé Procédure, suivi du nom qu’on donne à la procédure, puis des éventuels arguments de la procédure. La procédure peut posséder ses propres variables internes.
- Un argument est une valeur ou une variable qu’on transmet à la procédure, depuis l’algorithme principal, lors de son appel.
- Une procédure peut appeler une autre procédure.
La procédure suivante génère et affiche un nombre aléatoire.
Écrire “Le nombre généré est “, chaine(nombreAlea), “.”
Début
Lire combienNombres
Écrire “Les nombres varieront de 1 à une borne supérieure.”
Écrire “Quelle est la valeur de la borne supérieure ?”
Lire borneSup
On note que le nom de la variable (borneSup) qui sert d’argument lors de l’appel de la procédure, n’a pas besoin d’être le même que le nom de la variable interne à la procédure (borne).
Les procédures sont assez proches des fonctions.
Une différence d’usage importante est que :
- les fonctions ont pour objectif de renvoyer une valeur, qui sera affectée à une variable ;
- les procédures ont pour objectif de contenir une série d’instructions, un véritable morceau de programme, avec des instructions de lecture, écriture, des structures conditionnelles, des boucles, etc. Elle permettent de découper l’algorithme principal en plusieurs sous-algorithmes et de le rendre plus lisible.
- Cette distinction vaut pour l’algorithmique, mais elle n’est pas valable pour tous les langages informatiques. Dans certains cas, fonctions et procédures sont synonymes.
- Les fonctions et les procédures participent aussi à la factorisation du code, comme les boucles.
- Il est parfois possible de faire la même chose avec une fonction ou avec une procédure.
Dans une procédure, il est possible de modifier les valeurs des variables de l'algorithme principal. Il faut pour cela passer les variables qu’on veut modifier comme arguments. Il faut de plus indiquer qu’on les passe par référence avec le mot-clé Ref.
Voici ci-dessous un programme de jeu. Le joueur dispose d’une réserve d’argent et il doit parier sur un nombre, entre 1 et 10, en misant une somme d’argent.
Une procédure gère toute la partie tirage de nombre aléatoire et calcul du résultat. Les arguments argent et partieGagnee sont passés par référence à la procédure, qui peut donc directement les modifier.
Voici le programme principal.
Variable continuer : chaine
Début
argent ← 100
partieGagnee ← 0
Écrire "Vous avez ", chaine(argent), “ € pour jouer.”
TantQue continuer = “oui”
Lire pari
Écrire "Combien misez-vous ?"
Lire mise
Appeler lancerPartie(pari, mise, argent Ref, partieGagnee Ref)
Écrire "Voulez-vous continuer à jouer ? (oui/non)"
Lire continuer
Voici la procédure appelée lancerPartie.
Procédure lancerPartie(pari, mise, argent Ref, partieGagnee Ref : nombre)
Si nombreAleatoire = pari
argent ← argent + mise * 5
Écrire “Vous avez gagné !”
Écrire “Vous avez perdu !”
Écrire "Vous avez ", chaine(argent), “ € pour jouer.”
Des quiz et exercices pour mieux assimiler sa leçon
La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.
Des exercices variés pour ne pas s’ennuyer
Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !
Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.
Des quiz pour une évaluation en direct
Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.
myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.
Des vidéos et des podcasts pour apprendre différemment
Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.
Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !
Des podcasts pour les révisions
La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.
Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.
Des vidéos de cours pour comprendre en image
Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !