Numérique et Sciences Informatiques1ère

Manipulations de données
Exercices corrigés

Maîtrisez les manipulations de données : tris, filtres, transformations, statistiques et algorithmes grâce à ces 5 exercices détaillés.

Concepts & Exercices
\(\text{opération}(D) \rightarrow D'\)
Transformation d'une structure de données
Tri
Trier
Ordonner les éléments
Filtrage
Filtrer
Sélectionner selon critère
Transformation
Mapper
Appliquer fonction
🎯
Définition : Manipulation de données = ensemble d'opérations pour traiter les données.
📏
Types : Tri, filtrage, transformation, agrégation, recherche.
📋
Structures : Tableaux, listes, dictionnaires, fichiers.
Objectif : Extraire, organiser ou transformer les informations.
💡
Conseil : Utilisez les algorithmes adaptés à vos besoins spécifiques
🔍
Attention : Vérifiez la complexité avant d'appliquer des algorithmes
Astuce : Composez plusieurs opérations pour des traitements complexes
📋
Méthode : Triez d'abord, puis filtrez pour des résultats optimaux
Exercice 1
Tri d'un tableau d'entiers par ordre croissant
Exercice 2
Filtrage des valeurs supérieures à un seuil
Exercice 3
Transformation d'éléments (doublage des valeurs)
Exercice 4
Calcul de statistiques (moyenne, maximum, minimum)
Exercice 5
Recherche et extraction d'informations spécifiques
Corrigé : Exercices 1 à 3
1 Tri d'un tableau
Définition :

Tri : Opération qui ordonne les éléments d'une structure de données selon un critère.

Algorithme de tri : Ensemble d'instructions pour réorganiser les éléments.

Méthode de tri par sélection :
  1. Chercher le plus petit élément dans la partie non triée
  2. Échanger cet élément avec le premier élément non trié
  3. Répéter jusqu'à ce que tout le tableau soit trié
  4. Complexité : O(n²) dans le pire des cas
Avant
T = [64, 34, 25, 12, 22]
Tri
Sélection
Après
T = [12, 22, 25, 34, 64]
Étape 1 : Initialisation

Tableau T = [64, 34, 25, 12, 22] - Taille n = 5

Étape 2 : Première itération (i=0)

Chercher le minimum entre T[0] et T[4] : c'est T[3]=12

Échanger T[0] et T[3] → [12, 34, 25, 64, 22]

Étape 3 : Deuxième itération (i=1)

Chercher le minimum entre T[1] et T[4] : c'est T[4]=22

Échanger T[1] et T[4] → [12, 22, 25, 64, 34]

Étape 4 : Troisième itération (i=2)

Chercher le minimum entre T[2] et T[4] : c'est T[2]=25 (déjà bon)

Aucun échange nécessaire → [12, 22, 25, 64, 34]

Étape 5 : Quatrième itération (i=3)

Chercher le minimum entre T[3] et T[4] : c'est T[4]=34

Échanger T[3] et T[4] → [12, 22, 25, 34, 64]

Itération État du tableau Élément trié
0 [64, 34, 25, 12, 22] -
1 [12, 34, 25, 64, 22] 12
2 [12, 22, 25, 64, 34] 22
3 [12, 22, 25, 64, 34] 25
4 [12, 22, 25, 34, 64] 34
Fini [12, 22, 25, 34, 64] 64
T_trié = [12, 22, 25, 34, 64]
Réponse finale :

Le tableau trié par ordre croissant est [12, 22, 25, 34, 64].

Règles appliquées :

Tri par sélection : Trouver le minimum et l'échanger avec la position actuelle

Complexité : O(n²) car pour chaque élément, on cherche le minimum dans le reste

Invariance : Le nombre d'éléments ne change pas, seule l'ordre est modifié

2 Filtrage de données
Définition :

Filtrage : Opération qui sélectionne certains éléments selon un critère prédéfini.

Predicat : Fonction booléenne qui détermine si un élément est conservé.

Source
T = [10, 3, 25, 8, 15, 7]
Critère
x > 10
Résultat
[25, 15]
Étape 1 : Analyser le tableau source

Tableau T = [10, 3, 25, 8, 15, 7] avec 6 éléments

Étape 2 : Définir le critère de filtration

Nous voulons conserver uniquement les éléments strictement supérieurs à 10

Étape 3 : Parcourir et filtrer

T[0]=10 → 10 > 10 ? Non → Exclu

T[1]=3 → 3 > 10 ? Non → Exclu

T[2]=25 → 25 > 10 ? Oui → Conservé

T[3]=8 → 8 > 10 ? Non → Exclu

T[4]=15 → 15 > 10 ? Oui → Conservé

T[5]=7 → 7 > 10 ? Non → Exclu

Étape 4 : Construire le résultat

Les éléments conservés sont : [25, 15]

// Pseudo-code tableau = [10, 3, 25, 8, 15, 7] resultat = [] pour chaque element dans tableau: si element > 10: ajouter element à resultat // resultat = [25, 15]
Résultat = [25, 15]
Réponse finale :

Après filtration, le tableau contient [25, 15].

Règles appliquées :

Filtrage : Conserver uniquement les éléments qui satisfont le critère

Prédicat : Fonction booléenne qui retourne vrai pour les éléments à conserver

Longueur variable : Le tableau résultant peut avoir moins d'éléments que l'original

3 Transformation de données
Définition :

Transformation : Opération qui modifie chaque élément selon une fonction.

Mapping : Application d'une fonction à chaque élément d'une structure.

Source
T = [1, 3, 5, 7]
Fonction
f(x) = 2x
Résultat
[2, 6, 10, 14]
Étape 1 : Identifier la fonction de transformation

Nous voulons doubler chaque élément : f(x) = 2x

Étape 2 : Appliquer la fonction à chaque élément

T[0] = 1 → f(1) = 2×1 = 2

T[1] = 3 → f(3) = 2×3 = 6

T[2] = 5 → f(5) = 2×5 = 10

T[3] = 7 → f(7) = 2×7 = 14

Étape 3 : Construire le nouveau tableau

Le tableau transformé est [2, 6, 10, 14]

Étape 4 : Analyser la complexité

On applique la fonction à chaque élément → Complexité O(n)

Élément Origine Transformation Résultat
T[0] 1 2×1 2
T[1] 3 2×3 6
T[2] 5 2×5 10
T[3] 7 2×7 14
// Pseudo-code tableau = [1, 3, 5, 7] resultat = [] pour chaque element dans tableau: resultat.append(element * 2) // resultat = [2, 6, 10, 14]
Résultat = [2, 6, 10, 14]
Réponse finale :

Après transformation, le tableau est [2, 6, 10, 14].

Règles appliquées :

Transformation : Appliquer une fonction à chaque élément

Mapping : Le terme anglais pour transformation d'éléments

Conservation : Le nombre d'éléments reste le même, seule la valeur change

Corrigé : Exercices 4 à 5
4 Statistiques descriptives
Définition :

Statistiques descriptives : Mesures qui résument les caractéristiques d'un ensemble de données.

Paramètres : Minimum, maximum, moyenne, médiane, écart-type.

Source
Notes = [12, 15, 8, 17, 14]
Calculs
Min, Max, Moy
Résultats
8, 17, 13.2
Étape 1 : Calcul du minimum

Parcourir le tableau pour trouver la valeur la plus petite

Minimum = min([12, 15, 8, 17, 14]) = 8

Étape 2 : Calcul du maximum

Parcourir le tableau pour trouver la valeur la plus grande

Maximum = max([12, 15, 8, 17, 14]) = 17

Étape 3 : Calcul de la moyenne

Somme des valeurs divisée par le nombre d'éléments

Somme = 12 + 15 + 8 + 17 + 14 = 66

Moyenne = 66 ÷ 5 = 13.2

Étape 4 : Autres statistiques (optionnel)

Médiane : Valeur centrale après tri = 14

Étendue : Maximum - Minimum = 17 - 8 = 9

Mesure Valeur Calcul
Minimum 8 min(Notes)
Maximum 17 max(Notes)
Moyenne 13.2 ΣNotes/n
Médiane 14 valeur centrale
Étendue 9 Max-Min
// Pseudo-code notes = [12, 15, 8, 17, 14] minimum = notes[0] maximum = notes[0] somme = 0 pour chaque note dans notes: si note < minimum: minimum = note si note > maximum: maximum = note somme += note moyenne = somme / longueur(notes)
Min=8, Max=17, Moyenne=13.2
Réponse finale :

Minimum = 8, Maximum = 17, Moyenne = 13.2 pour le tableau [12, 15, 8, 17, 14].

Règles appliquées :

Statistiques : Calculer des mesures pour résumer les données

Complexité : O(n) pour les statistiques de base (min, max, moyenne)

Utilité : Aide à comprendre la distribution des valeurs

5 Recherche d'informations
Définition :

Recherche : Opération pour trouver des éléments qui répondent à un critère spécifique.

Indexation : Localisation de la position d'un élément dans une structure.

Source
T = ['A', 'B', 'C', 'B', 'D']
Recherche
Toutes les positions de 'B'
Résultat
[1, 3]
Étape 1 : Analyser le tableau source

Tableau T = ['A', 'B', 'C', 'B', 'D'] avec 5 éléments

Étape 2 : Définir le critère de recherche

Nous cherchons toutes les positions où l'élément vaut 'B'

Étape 3 : Parcourir et collecter les indices

T[0]='A' → 'A' == 'B' ? Non → Passer

T[1]='B' → 'B' == 'B' ? Oui → Ajouter 1 à la liste des indices

T[2]='C' → 'C' == 'B' ? Non → Passer

T[3]='B' → 'B' == 'B' ? Oui → Ajouter 3 à la liste des indices

T[4]='D' → 'D' == 'B' ? Non → Passer

Étape 4 : Retourner les résultats

Les positions de 'B' sont [1, 3]

Indice Valeur Correspondance
0 'A' false
1 'B' true
2 'C' false
3 'B' true
4 'D' false
// Pseudo-code tableau = ['A', 'B', 'C', 'B', 'D'] cible = 'B' positions = [] pour i de 0 à longueur(tableau)-1: si tableau[i] == cible: ajouter i à positions // positions = [1, 3]
Positions = [1, 3]
Réponse finale :

Les positions de 'B' dans le tableau sont [1, 3].

Règles appliquées :

Recherche : Parcourir la structure pour identifier les éléments correspondants

Indexation : Stocker les positions des éléments trouvés

Complexité : O(n) pour une recherche linéaire dans un tableau non trié

Cours bien détaillé
\(\text{manipulation}(D) = \{ \text{tri}, \text{filtre}, \text{transform}, \text{statistique} \}\)
Ensemble des opérations de manipulation
🎯
Définition : Manipulation de données = ensemble d'opérations pour traiter les données.
📏
Types : Tri, filtrage, transformation, agrégation, recherche.
📋
Structures : Tableaux, listes, dictionnaires, fichiers.
Objectif : Extraire, organiser ou transformer les informations.
💡
Conseil : Utilisez les algorithmes adaptés à vos besoins spécifiques
🔍
Attention : Vérifiez la complexité avant d'appliquer des algorithmes
Astuce : Composez plusieurs opérations pour des traitements complexes
📋
Méthode : Triez d'abord, puis filtrez pour des résultats optimaux
Vérification : Testez vos algorithmes avec des cas limites
🔄
Opérations : Les manipulations peuvent être chaînées
Types de manipulations de données :
  • Tri : Ordonner les éléments selon un critère (croissant/décroissant)
  • Filtrage : Sélectionner les éléments qui satisfont un prédicat
  • Transformation : Appliquer une fonction à chaque élément
  • Agrégation : Calculer une valeur synthétique (somme, moyenne, etc.)
  • Recherche : Localiser des éléments répondant à un critère
Règles importantes :
  • Les manipulations de données transforment les structures existantes
  • La complexité varie selon l'algorithme utilisé (O(n), O(n²), O(n log n))
  • Les opérations peuvent être combinées pour des traitements avancés
  • Il est important de valider les résultats obtenus
Tri
O(n²) ou O(n log n)
Ordonne les éléments
Filtre
O(n)
Sélectionne des éléments
Map
O(n)
Transforme chaque élément
\(\text{Complexité} \leq O(n^2)\)
Bornes supérieures des algorithmes
Points clés à retenir :
  • • Les manipulations de données sont fondamentales en informatique
  • • Chaque type d'opération a sa propre complexité et ses usages spécifiques
  • • Il est crucial de choisir le bon algorithme pour optimiser les performances
  • • Les opérations peuvent être combinées pour créer des traitements complexes
  • • La validation des résultats est essentielle pour garantir la fiabilité
Manipulations de données Structures de données simples