Première Structuration des données
Structuration des données : Évolution et concepts clés
1. Le besoin de structurer les données
Au début de la programmation, les données étaient stockées de manière simple, souvent sous forme de variables individuelles. Avec la complexification des problèmes, le besoin de regrouper et d’organiser les données est devenu évident.
Exemple simple en C++ :
= "Dubois";
string nom = "Marie";
string prenom int age = 20;
float moyenne = 15.5;
Cette approche devient vite difficile à gérer pour de nombreux étudiants ou plus d’informations.
2. Les tableaux : première forme de structuration
Définition
Un tableau est une collection d’éléments de même type, accessibles par un index.
Exemple en C++
int notes[5] = {12, 15, 18, 10, 14};
<< "La troisième note est : " << notes[2] << endl; // Affiche 18 cout
Avantages et limites
- Stockage efficace de multiples éléments de même type
- Accès rapide aux éléments par leur position
- Tous les éléments doivent être du même type
- Taille souvent fixe à la compilation en C++
3. Les structures en C++
Les structures permettent de regrouper des données de types différents qui sont logiquement liées.
Définition et exemple
struct Etudiant {
;
string nom;
string prenomint age;
float moyenne;
};
= {"Dubois", "Marie", 20, 15.5};
Etudiant marie << marie.prenom << " " << marie.nom << " a " << marie.age << " ans" << endl; cout
Avantages
- Représentation d’entités complexes de manière plus naturelle
- Regroupement logique des données liées
- Amélioration de la lisibilité et de l’organisation du code
4. Les records en Pascal
Pascal a introduit le concept de “record”, similaire aux structures en C++, mais avec quelques différences syntaxiques et conceptuelles.
Définition et exemple en Pascal
type
record
Etudiant = string[50];
nom: string[50];
prenom: integer;
age: real;
moyenne: end;
var
marie: Etudiant;
begin
'Dubois';
marie.nom := 'Marie';
marie.prenom := 20;
marie.age := 15.5;
marie.moyenne :=
' ', marie.nom, ' a ', marie.age, ' ans');
writeln(marie.prenom, end.
Particularités des records en Pascal
- Typage fort : Pascal est connu pour son système de typage strict
- Déclaration explicite des types : Améliore la clarté et la sécurité du code
- Utilisé dans un langage conçu pour l’enseignement : Syntax claire et lisible
5. Les modules en Modula-2
Modula-2, successeur de Pascal, a introduit le concept de modules, une étape importante vers l’encapsulation.
Définition
Un module en Modula-2 est une unité de programme qui regroupe des définitions de types, des variables et des procédures liées.
Exemple simplifié en Modula-2
MODULE GestionEtudiants;
EXPORT Etudiant, CreerEtudiant, AfficherEtudiant;
TYPE
RECORD
Etudiant = ARRAY[0..49] OF CHAR;
nom: ARRAY[0..49] OF CHAR;
prenom: INTEGER;
age: REAL;
moyenne: END;
PROCEDURE CreerEtudiant(VAR e: Etudiant; n, p: ARRAY OF CHAR; a: INTEGER; m: REAL);
BEGIN
(* Code pour initialiser un étudiant *)
END CreerEtudiant;
PROCEDURE AfficherEtudiant(e: Etudiant);
BEGIN
(* Code pour afficher les informations d'un étudiant *)
END AfficherEtudiant;
END GestionEtudiants.
Importance des modules
- Encapsulation : Regroupement des données et des opérations liées
- Séparation interface/implémentation : Distinction entre ce qui est public et privé
- Réutilisabilité : Facilite la réutilisation du code dans différents programmes
6. Impact sur la programmation
Ces évolutions dans la structuration des données ont eu plusieurs effets positifs :
- Modélisation plus fidèle du monde réel
- Amélioration de la lisibilité et de la maintenabilité du code
- Introduction de l’abstraction des données
- Prémices de l’encapsulation (particulièrement avec les modules)
7. Vers la programmation orientée objet
Malgré ces avancées, certaines limitations persistaient : - Manque de mécanismes pour l’extension et la spécialisation des structures - Absence de polymorphisme
Ces limitations ont ouvert la voie à la programmation orientée objet, qui intégrera ces concepts de manière plus complète et flexible.
Conclusion
La structuration des données, à travers les tableaux, les structures, les records et les modules, a posé les bases conceptuelles nécessaires à l’émergence de la programmation orientée objet. Cette évolution a permis de mieux organiser et représenter l’information, préparant le terrain pour des paradigmes plus avancés.