NSI 1ère

Listes et itérations
Exercices corrigés

Maîtrisez les listes et itérations : création, manipulation, algorithmes de base grâce à ces 5 exercices détaillés.

Concepts & Exercices
\(\text{Liste}[i] = \text{valeur}\)
Accès à un élément
Création
liste = []
Initialisation
Accès
liste[0]
Lecture
Itération
for x in liste:
Parcours
📋
Liste : Structure de données dynamique qui stocke des éléments ordonnés.
🔢
Indices : Numéros qui permettent d'accéder aux éléments (de 0 à n-1).
🔄
Itérations : Parcours des éléments avec boucles for ou while.
Exercice 1
Créer et initialiser une liste avec des valeurs
Exercice 2
Accéder et modifier des éléments d'une liste
Exercice 3
Calculer la somme des éléments d'une liste
Exercice 4
Trouver le maximum et le minimum d'une liste
Exercice 5
Trier une liste en utilisant des itérations
Corrigé : Exercices 1 à 3
1 Création et initialisation
Définition :

Liste : Structure de données dynamique qui stocke une séquence d'éléments ordonnés et modifiables.

Méthode de création :
  1. Initialiser une liste vide avec []
  2. Créer une liste avec des éléments prédéfinis
  3. Ajouter des éléments avec des méthodes (append, insert)
  4. Accéder aux éléments par leur indice
// Création de listes VARIABLES listeVide : LISTE listeVide ← [] VARIABLES notes : LISTE notes ← [12, 15, 8, 18, 14] VARIABLES ages : LISTE ages ← [16, 17, 16, 18, 17] // Initialisation dans une boucle VARIABLES liste : LISTE liste ← [] VARIABLES i : ENTIER POUR i DE 1 À 5 FAIRE liste ← liste + [i * 2] // Ajouter élément FIN POUR // liste = [2, 4, 6, 8, 10]
┌─────┬─────┬─────┬─────┬─────┐
│ 0 │ 1 │ 2 │ 3 │ 4 │ ← Indices
├─────┼─────┼─────┼─────┼─────┤
│ 12 │ 15 │ 8 │ 18 │ 14 │ ← Valeurs
└─────┴─────┴─────┴─────┴─────┘
Liste "notes" avec 5 éléments
Étape 1 : Créer la liste

Utiliser des crochets pour initialiser une liste vide ou avec des éléments

Étape 2 : Accéder aux éléments

Utiliser des indices de 0 à n-1 pour accéder aux éléments

Étape 3 : Manipuler la liste

Ajouter, supprimer ou modifier des éléments selon les besoins

Résultat :

Liste créée et initialisée avec des valeurs accessibles par indice

Règles appliquées :

Indices : Commencent à 0 et vont jusqu'à taille-1

Dynamique : La taille peut changer pendant l'exécution

Hétérogène : Peut contenir des éléments de types différents

2 Accès et modification
Définition :

Accès aux éléments : Opération qui permet de lire ou modifier la valeur d'un élément à un indice donné.

Opération Syntaxe Exemple Lecture liste[indice] valeur ← liste[2] Écriture liste[indice] ← valeur liste[2] ← 15 Parcours POUR x DANS liste BOUCLE pour accéder à tous
VARIABLES temperatures : LISTE temperatures ← [18.5, 20.0, 22.3, 19.8, 21.1, 23.5, 20.9] // Lecture d'un élément ECRIRE("Température du mercredi:", temperatures[2]) // Modification d'un élément temperatures[2] ← 22.5 // Correction de la température // Accès dans une boucle VARIABLES somme, i : ENTIER somme ← 0 POUR i DE 0 À LONGUEUR(temperatures)-1 FAIRE somme ← somme + temperatures[i] FIN POUR // Calcul de la moyenne VARIABLES moyenne : REEL moyenne ← somme / LONGUEUR(temperatures)
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ ← Indices
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│18.5 │ 20.0│ 22.5│ 19.8│ 21.1│ 23.5│ 20.9│ ← Valeurs
└─────┴─────┴─────┴─────┴─────┴─────┴─────┘
Liste "temperatures" après modification de l'indice 2
Étape 1 : Lire un élément

Utiliser l'indice pour accéder à la valeur : temperatures[2]

Étape 2 : Modifier un élément

Affecter une nouvelle valeur à l'indice : temperatures[2] ← 22.5

Étape 3 : Parcourir la liste

Utiliser une boucle pour accéder à tous les éléments

Résultat :

Capacité à lire et modifier n'importe quel élément de la liste

Règles appliquées :

Accès direct : O(1) - temps constant pour accéder à un élément

Indices valides : Vérifier que l'indice est dans les bornes

Modification : Peut être faite directement par affectation

3 Somme des éléments
Définition :

Somme d'une liste : Calcul de la somme de tous les éléments en parcourant la liste avec une boucle.

FONCTION sommeListe(liste : LISTE) : ENTIER DEBUT VARIABLES i, resultat : ENTIER resultat ← 0 POUR i DE 0 À LONGUEUR(liste)-1 FAIRE resultat ← resultat + liste[i] FIN POUR RETOURNER resultat FIN // Alternative avec itération directe FONCTION sommeListeIter(liste : LISTE) : ENTIER DEBUT VARIABLES resultat, element : ENTIER resultat ← 0 POUR element DANS liste FAIRE resultat ← resultat + element FIN POUR RETOURNER resultat FIN
i liste[i] resultat avant resultat après 0 10 0 10 1 20 10 30 2 30 30 60 3 40 60 100
Étape 1 : Initialiser l'accumulateur

Créer une variable resultat initialisée à 0

Étape 2 : Parcourir la liste

Utiliser une boucle pour accéder à chaque élément

Étape 3 : Accumuler les valeurs

Additionner chaque élément à l'accumulateur

Résultat :

La fonction retourne la somme de tous les éléments de la liste

Règles appliquées :

Initialisation : Toujours initialiser l'accumulateur à 0

Parcours complet : Visiter tous les éléments de la liste

Accumulation : Ajouter chaque élément à l'accumulateur

Corrigé : Exercices 4 à 5
4 Maximum et minimum
Définition :

Maximum/minimum : Algorithmes qui trouvent la plus grande ou la plus petite valeur dans une liste.

FONCTION trouverMaximum(liste : LISTE) : ENTIER DEBUT VARIABLES i, max : ENTIER SI LONGUEUR(liste) = 0 ALORS RETOURNER 0 // ou lever une erreur FIN SI max ← liste[0] // Initialiser avec premier élément POUR i DE 1 À LONGUEUR(liste)-1 FAIRE SI liste[i] > max ALORS max ← liste[i] FIN SI FIN POUR RETOURNER max FIN FONCTION trouverMinimum(liste : LISTE) : ENTIER DEBUT VARIABLES i, min : ENTIER SI LONGUEUR(liste) = 0 ALORS RETOURNER 0 // ou lever une erreur FIN SI min ← liste[0] // Initialiser avec premier élément POUR i DE 1 À LONGUEUR(liste)-1 FAIRE SI liste[i] < min ALORS min ← liste[i] FIN SI FIN POUR RETOURNER min FIN
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ ← Indices
├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ 5 │ 12 │ 3 │ 18 │ 7 │ 1 │ 15 │ ← Valeurs
└─────┴─────┴─────┴─────┴─────┴─────┴─────┘
Maximum: 18 (indice 3), Minimum: 1 (indice 5)
Étape 1 : Initialiser avec le premier élément

Prendre liste[0] comme valeur de référence

Étape 2 : Parcourir le reste de la liste

Commencer à l'indice 1 pour comparer avec la référence

Étape 3 : Mettre à jour la valeur extrême

Remplacer la valeur si un nouvel extremum est trouvé

Résultat :

Algorithmes qui trouvent le maximum et le minimum en O(n) opérations

Règles appliquées :

Initialisation : Commencer avec le premier élément

Comparaison : Comparer chaque élément avec l'extrémum actuel

Mise à jour : Remplacer l'extrémum quand un meilleur est trouvé

5 Tri de liste
Définition :

Tri par sélection : Algorithme qui trie une liste en trouvant successivement le minimum et en le plaçant au début.

PROCEDURE triSelection(liste : LISTE) DEBUT VARIABLES i, j, minIndex, temp, n : ENTIER n ← LONGUEUR(liste) POUR i DE 0 À n-2 FAIRE minIndex ← i // Supposer que le minimum est à l'indice i // Trouver le véritable minimum dans le reste de la liste POUR j DE i+1 À n-1 FAIRE SI liste[j] < liste[minIndex] ALORS minIndex ← j FIN SI FIN POUR // Échanger l'élément à i avec le minimum trouvé SI minIndex ≠ i ALORS temp ← liste[i] liste[i] ← liste[minIndex] liste[minIndex] ← temp FIN SI FIN POUR FIN
Étape Liste avant Min trouvé Liste après 0 [64, 25, 12, 22, 11] 11 à pos 4 [11, 25, 12, 22, 64] 1 [11, 25, 12, 22, 64] 12 à pos 2 [11, 12, 25, 22, 64] 2 [11, 12, 25, 22, 64] 22 à pos 3 [11, 12, 22, 25, 64] 3 [11, 12, 22, 25, 64] 25 à pos 3 [11, 12, 22, 25, 64]
Étape 1 : Parcourir la liste

Pour chaque position i, chercher le minimum dans le reste

Étape 2 : Trouver le minimum

Parcourir les éléments de i+1 à n-1 pour trouver le plus petit

Étape 3 : Échanger

Placer le minimum trouvé à la position i

Résultat :

Liste triée dans l'ordre croissant en O(n²) opérations

Règles appliquées :

Itération : Pour chaque position, placer l'élément correct

Recherche : Trouver le minimum dans la partie non triée

Échange : Intervertir les éléments pour placer le minimum

Cours bien détaillé
\(\text{Liste}[i] = \text{valeur}, \text{ où } 0 \leq i < \text{LONGUEUR(Liste)}\)
Accès aux éléments
🎯
Définition : Une liste est une structure de données dynamique qui stocke une séquence d'éléments ordonnés.
📏
Objectif : Permettre le stockage et la manipulation de plusieurs valeurs sous un seul nom.
📐
Caractéristiques : Taille variable, accès direct par indice, éléments modifiables.
📝
Applications : Statistiques, tris, recherche, manipulation de données.
💡
Conseil : Toujours vérifier les bornes avant d'accéder à un élément
🔍
Attention : Les indices commencent à 0 dans la plupart des langages
Astuce : Utilisez les itérations directes pour parcourir les listes
📋
Méthode : Initialisez toujours les listes avant utilisation
Vérification : Testez vos algorithmes avec des cas limites
Algorithmes classiques :
  • Somme : Parcours avec accumulateur
  • Recherche : Parcours avec condition
  • Maximum/Minimum : Comparaison successive
  • Tri : Sélection, insertion, bulle
  • Inversion : Échange d'éléments symétriques
Règles importantes :
  • La taille d'une liste peut changer pendant l'exécution
  • Les indices commencent à 0 et vont jusqu'à LONGUEUR-1
  • Un accès hors bornes provoque une erreur
  • Les éléments peuvent être de types différents
  • L'accès direct par indice est en temps constant O(1)
Listes et itérations Structures de données simples