Structures de données : tableau, liste chaînée, pile, file
Une structure de données est une façon d'organiser les données pour qu'un programme les utilise vite et facilement.
- Tableau : taille fixe, les éléments sont côte à côte, et on atteint n'importe lequel par son indice (a[3]). Ajouter au milieu est lent.
- Liste chaînée (dynamique) : chaque nœud contient une valeur et un lien vers le nœud suivant. Elle grandit et rétrécit selon les besoins, mais pour atteindre l'élément 5, il faut parcourir les éléments 1 à 4.
- Pile : on empile et on dépile par une seule extrémité (LIFO). Utilisée pour annuler, pour le bouton retour et pour vérifier les parenthèses.
- File : on ajoute à l'arrière, on retire à l'avant (FIFO). Utilisée pour les impressions et les files d'attente.
Les bibliothèques contiennent déjà ces outils. En Python, une list sert de pile (append, pop), et collections.deque sert de file rapide. Utilise une bibliothèque quand elle existe ; ne la réécris pas.
stack = []
stack.append(5); stack.append(8)
stack.pop() # gives 8
from collections import deque
q = deque([4, 9]); q.append(2)
q.popleft() # gives 4
Utiliser un IDE : écrire, exécuter, tester
Un IDE (environnement de développement intégré) réunit au même endroit un éditeur, un bouton d'exécution, un débogueur et d'autres outils. Il colore ton code, propose des noms et montre les erreurs pendant que tu tapes.
- Exécuter le programme et lire le résultat.
- Tester avec des entrées simples, normales et piégeuses (une liste vide, zéro, un très grand nombre).
- Déboguer : place un point d'arrêt et avance ligne par ligne pour voir les variables.
Visualisation et animation en 2D et 3D
Les images nous aident à voir des tendances. Un programme peut dessiner des graphiques (barres, courbes, nuage de points), des dessins en 2D et des scènes en 3D. Une animation est la même image redessinée encore et encore avec un petit changement à chaque fois (environ 30 à 60 fois par seconde). Une méthode simple : garder une variable comme x, lui ajouter un peu à chaque image, puis redessiner. La 3D de cette page est faite de la même façon, avec une bibliothèque 3D.
Fonctions avancées du tableur
Un tableur peut faire un travail proche de la programmation grâce à ses fonctions :
IF(B2>=50,"Pass","Fail")choisit entre deux résultats (SI en français).SUMIF(B2:B5,">=50")additionne seulement les cellules qui respectent une règle ;COUNTIFles compte (SOMME.SI et NB.SI en français).VLOOKUP(2, A2:B5, 2, FALSE)cherche 2 dans la première colonne et renvoie la valeur de la colonne 2 sur la même ligne (RECHERCHEV en français).XLOOKUPfait la même chose plus simplement (RECHERCHEX).- Les tableaux croisés dynamiques résument de grandes données par groupes, et les graphiques montrent le résultat.
Bases de données relationnelles et SQL
Une base de données relationnelle range les données dans des tables de lignes et de colonnes. Chaque table a une clé primaire, une colonne dont les valeurs sont uniques (l'id). Une autre table utilise cette valeur comme clé étrangère pour faire le lien. Une bonne conception range chaque fait une seule fois, donc sans données répétées.
SQL est le langage pour poser des questions et modifier les données :
SELECT name, score FROM students
JOIN marks ON students.id = marks.id
WHERE score >= 50 ORDER BY score DESC;
INSERT INTO marks (id, score) VALUES (5, 67);
UPDATE marks SET score = 55 WHERE id = 2;
DELETE FROM marks WHERE id = 5;L'intégrité veut dire que les données restent justes : les clés sont uniques, une clé étrangère doit correspondre à une vraie ligne, et les valeurs doivent avoir le bon type. La sécurité veut dire des mots de passe pour les utilisateurs, donner à chacun seulement les droits dont il a besoin, faire des sauvegardes, et ne jamais fabriquer du SQL en collant le texte de l'utilisateur dans la requête (utilise des paramètres), ce qui empêche l'injection SQL.
Contribuer aux ressources libres
Beaucoup d'outils et de bibliothèques sont open source : chacun peut les lire, les utiliser et les améliorer selon une licence. Tu peux aider en corrigeant un bogue, en améliorant un guide, en traduisant une page ou en ajoutant un exemple. Lis toujours la licence, cite les auteurs, et écris des messages clairs et polis quand tu proposes un changement.
À toi de jouer
Dans la 3D, à l'étape 5, empile 3 éléments sur une pile, puis dépile-les. Note l'ordre. Fais de même avec une file. Ensuite, prédis d'abord, vérifie après : si tu ajoutes 4, 9, 2 puis retires un élément, quelle valeur reste à l'avant de la file et au sommet de la pile ?
Formules et définitions clés
- Pile = LIFO (dernier entré, premier sorti) : push, pop.
- File = FIFO (premier entré, premier sorti) : enqueue, dequeue.
- Tableau : taille fixe, accès par indice. Liste chaînée : taille dynamique, on suit les liens.
- SELECT columns FROM table WHERE condition
- Clé primaire = id unique. Clé étrangère = lien vers une autre table.
Exemples résolus
1. Les éléments 5, 8 et 2 sont empilés dans cet ordre. Puis on dépile deux fois. Qu'y a-t-il au sommet maintenant ?
Pile après les ajouts : 5, 8, 2 (2 au sommet). Le pop retire 2, puis 8. Il reste : 5. Sommet = 5.
2. Les éléments 4, 9, 2 entrent dans une file dans cet ordre. On fait un dequeue. Quel élément est à l'avant maintenant ?
Le premier arrivé part, donc 4 est retiré. L'avant de la file est 9.
3. Table des notes : ids 1 à 4 avec les scores 72, 45, 88, 51. Combien de lignes renvoie WHERE score >= 50 ?
72, 88 et 51 valent 50 ou plus. Cela fait 3 lignes.
4. Les cellules B2:B5 contiennent 72, 45, 88, 51. Que donne =SUMIF(B2:B5,">=50") ?
Elle additionne seulement 72, 88 et 51 : 72 + 88 + 51 = 211.
5. Pourquoi utiliser une pile pour vérifier les parenthèses d'une expression comme ( [ ] ) ?
On empile chaque parenthèse ouvrante. Quand une fermante arrive, on dépile et on vérifie qu'elle correspond. La dernière ouverte doit être fermée en premier (LIFO), et c'est ce que donne une pile. Si la pile est vide à la fin, les parenthèses sont bien appariées.
Erreurs fréquentes
- Utiliser un tableau quand la taille n'est pas connue à l'avance. Une liste ou une liste chaînée convient mieux.
- Confondre pile et file. La pile retire le plus récent ; la file retire le plus ancien.
- Oublier WHERE dans UPDATE ou DELETE, ce qui modifie toutes les lignes.
- Fabriquer du SQL en collant le texte de l'utilisateur dans une chaîne. Utilise des paramètres à la place.