Première NSI • Fiche de révision • QCM /20

Algorithmique

L’essentiel du chapitre à connaître, puis 20 questions pour vérifier immédiatement tes acquis.

🧩

Fiche de révision

Le chapitre complet, structuré pour réviser efficacement

Les repères essentiels

📌

Qu’est-ce qu’un algorithme ?

Un algorithme est une suite finie et non ambiguë d’instructions permettant de résoudre un problème. Il peut être décrit en langage naturel, en pseudo-code ou traduit dans un langage de programmation.

🧠

Affectations et variables

Une affectation modifie la valeur associée à une variable. En Python, x = x + 1 signifie que l’on calcule l’ancienne valeur de x augmentée de 1 puis qu’on la réaffecte à x.

⚙️

Conditions

Une structure conditionnelle permet d’exécuter des instructions selon qu’une expression booléenne est vraie ou fausse : if, elif et else en Python.

🔎

Boucles

La boucle for est adaptée lorsqu’on parcourt une séquence ou un nombre connu d’itérations. La boucle while répète des instructions tant qu’une condition reste vraie.

✅

Correction et terminaison

Un algorithme doit produire le résultat attendu et terminer. Les jeux de tests, les invariants simples et le suivi des variables aident à vérifier son fonctionnement.

La fiche détaillée

Toutes les notions du chapitre sont reprises ici avec les définitions, méthodes, exemples et points à retenir.

Algorithmique

Cette fiche de révision NSI appartient à « l’Algoritmique». Les notions suivantes sont abordées: résoudre un problème par l’automatisation, structures de contrôle.

Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème. Il est dit correct lorsque, pour chaque instance du problème, il se termine en produisant la bonne sortie, c'est-à-dire qu'il résout le problème posé. On mesure l'efficacité d'un algorithme notamment par son temps d’exécution, par la précision des résultats obtenus, par sa scalabilité (son aptitude à être efficacement parallélisé).

Résoudre un problème par l’automatisation

•
Concerne des problématiques récurrentes.
•
Peuvent être résolues par le même traitement.
•
C’est uniquement un ensemble de règles logiques.

Un algorithme est découpé en une ou plusieurs fonctions. Chaque fonction est composée de plusieurs parties:

•
Initialisation.
•
Traitement.
•
Retour 1 et 1 seul. (il peut cependant être vide)

Un algorithme est composé de différents traitements:

•
Attribution de variables { PI=3.14 | couleurs = {1:ROUGE, 2:BLEU} }
•
Mathématique simple { rayon=10 | circonference=PI * (rayon + rayon) }
•
Traitement de string { rouge=’rouges’ | Remplacer(‘s’,’ ‘, rouge)}
•
Traitement de liste / tableau { t=[0,2,3,4] | t[2]=3 }

Structures de contrôle

IF - CONDITIONNEL

•
SI condition1 est vraie ALORS

o exécution 1

•
SINON SI condition 2 est vraie ALORS

o exécution 2

•
SINON

o exécution 3

•
FIN SI

FOR - BOUCLE

•
POUR TOUS tableaux d’entités DANS entité FAIRE

o exécution avec entité accessible

•
FIN POUR

WHILE - BOUCLE

•
TANT QUE condition est vraie FAIRE

o exécution

•
FIN TANT QUE

Un algorithme récursif est un algorithme qui résout un problème en calculant des solutions d'instances plus petites du même problème.

En informatique, la programmation dynamique est une méthode algorithmique pour résoudre des problèmes d'optimisation,qui consiste :

•
A commencer par résoudre les plus petits des sous-problèmes, puis de combiner leurs

solutions pour résoudre des sous-problèmes de plus en plus grands.

•
Mémoriser les calculs déjà effectués évitant ainsi de les réaliser plusieurs fois.
•
Dérécursiver* l’algorithme pour qu’il devienne itératif.
•
Gérer l’espace mémoire du mieux possible en fonction des données qui ne sont plus

nécessaires.

Un algorithme est randomisé si son comportement dépend non seulement des données en entrée (INPUT) mais aussi de valeurs produites par un générateur de nombres pseudo-aléatoires. Ils sont connus également sous le nom d’algorithmes probabilistes.

À retenir

Un Algorithme peut être écrit en langage naturel, en «pseudo-code» mais il est construit avec des structures de contrôle qui permettront de l’adapter dans tous les langages de programmation.

Un Algorithme doit surtout répondre à un problème, mais il faut élaborer la «manière» dont-il est créé afin de garantir des temps de traitements raisonnables et des résultats corrects.

Un algorithme est codé en un langage clair mais il ne faut pas hésiter à ajouter des commentaires pour décrire ce que fait le code.

QCM : Algorithmique

20 questions • score sur 20

1. Un algorithme doit être…

2. Que fait x = x + 1 ?

3. Quelle structure sert à faire un choix ?

4. Quelle boucle convient à un nombre connu de répétitions ?

5. while répète tant que…

6. Un test sert notamment à…

7. Une variable accumulateur sert souvent à…

8. Une condition Python produit typiquement…

9. La terminaison signifie que…

10. Le pseudo-code est…

11. Après <code>x = 3; x = 2*x + 1</code>, quelle est la valeur de x ?

12. Quelle différence essentielle existe entre for et while ?

13. Quel risque présente une boucle while mal conçue ?

14. Un invariant de boucle est…

15. Pourquoi tester un cas limite ?

16. Une précondition indique…

17. Pour calculer une somme par parcours, on initialise généralement l’accumulateur à…

18. Dans une recherche séquentielle, le pire cas peut nécessiter…

19. Quelle propriété permet d’affirmer qu’un algorithme est correct ?

20. Une trace d’exécution sert surtout à…

← Retour aux ressources NSI