0% ont trouvé ce document utile (0 vote)
35 vues23 pages

Algorithmique - Partie 5

Ce document présente les structures en algorithmique, permettant de regrouper différents types de données sous une même unité logique. Il illustre la définition, la déclaration et l'utilisation des structures à travers des exemples pratiques, notamment pour représenter des étudiants et des points. Le document aborde également l'utilisation des structures avec des tableaux pour gérer plusieurs objets de même type.

Transféré par

douae.dehbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues23 pages

Algorithmique - Partie 5

Ce document présente les structures en algorithmique, permettant de regrouper différents types de données sous une même unité logique. Il illustre la définition, la déclaration et l'utilisation des structures à travers des exemples pratiques, notamment pour représenter des étudiants et des points. Le document aborde également l'utilisation des structures avec des tableaux pour gérer plusieurs objets de même type.

Transféré par

douae.dehbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours d’algorithmique

Partie 5

Prof. Hanae Moussaoui

Prof. Hanae Moussaoui 1


5. Les structures

Prof. Hanae Moussaoui 2


- Une structure est une collection de champs (ou attributs), chacun ayant
un type spécifique. Elle permet de regrouper plusieurs types de données
sous une seule unité logique.
Cela est utile lorsqu'on veut représenter des objets complexes qui ont
plusieurs propriétés
- Un tableau ne peut stocker que des données du même type. En
revanche, une structure peut contenir des champs de types différents.

Prof. Hanae Moussaoui 3


Exemple : Étudiant
- Si vous voulez stocker les informations d'un étudiant (nom, âge,
moyenne), un tableau ne serait pas adapté car ces données ont des
types différents (chaîne, entier, réel).
- Une structure, en revanche, permet de regrouper ces données.
Syntaxe Générale
En pseudo-code, la définition d'une structure ressemble à ceci :
Type Structure Nom_Structure
nom_champ1 : type1
nom_champ2 : type2
...
nom_champn : typen
FinStruct
Prof. Hanae Moussaoui 4
Exemple Pratique :
Définir une structure : Étudiant
Supposons que vous souhaitez représenter un étudiant avec ses
propriétés : nom, âge, et moyenne.
Type Structure Étudiant
nom : chaîne
âge : entier
moyenne : réel
FinStruct

Prof. Hanae Moussaoui 5


Déclaration et utilisation
Une fois la structure définie, on peut déclarer une variable de ce type et
y accéder.
Déclaration d'une variable :
variable étudiant1 : Étudiant
Affectation des valeurs :
é[Link]  "Fatima"
étudiant1.âge  20
é[Link]  15.5

Prof. Hanae Moussaoui 6


Accès aux valeurs :
Ecrire (é[Link]) // Affiche "Fatima"
Ecrire (é[Link]) // Affiche 15.5

Remplissage des champs par l'utilisateur :


Pour remplir les champs de cette structure, on utilise des instructions pour
demander les données à l'utilisateur et les assigner à chaque champ.
Ecrire ("Entrez le nom de l'étudiant : ")
lire (é[Link])

Ecrire ("Entrez l'âge de l'étudiant : ")


lire (étudiant1.âge)

Ecrire ("Entrez la moyenne de l'étudiant : ")


lire (é[Link])
Prof. Hanae Moussaoui 7
Afficher les données saisies :

Ecrire ("Voici les informations de l'étudiant :")


Ecrire ("Nom : ", é[Link])
Ecrire ("Âge : ", étudiant1.âge)
Ecrire ("Moyenne : ", é[Link])

Prof. Hanae Moussaoui 8


Exercice 1 :
- Déclare une structure appelée Point contenant deux champs :x : réel, y
: réel.
- Déclare une variable p1 de type Point et demande à l'utilisateur de
saisir les valeurs de x et y.
- Affiche les coordonnées sous la forme : (x, y).

Prof. Hanae Moussaoui 9


Algorithme Coordonee
Type Structure Point
x : réel
y : réel
FinStruct

Variable p1 : Point

Ecrire("Saisir la coordonnée x : ")


Lire(p1.x)
Ecrire("Saisir la coordonnée y : ")
Lire(p1.y)

Ecrire("Les coordonnées du point sont : (", p1.x, ", ", p1.y, ")")

Prof. Hanae Moussaoui 10


Utilisation Avancée
Structures dans un tableau :
On peut combiner les structures avec des tableaux pour gérer plusieurs
objets de même type.
Déclaration :
variable
tableau étudiants[3] : Étudiant

Prof. Hanae Moussaoui 11


Remplissage des données :

tableau étudiants[3] : Étudiant

pour i de allant de 0 à 2 faire


Ecrire ("Entrez le nom de l'étudiant ", i+1, ": ")
lire (étudiants[i].nom)

Ecrire ("Entrez l'âge de l'étudiant ", i+1, ": ")


lire (étudiants[i].âge)

Ecrire ("Entrez la moyenne de l'étudiant ", i+1, ": ")


lire (étudiants[i].moyenne)
finpour

Prof. Hanae Moussaoui 12


Affichage des données :

pour i de allant de 0 à 2 faire


Ecrire ("Étudiant ", i+1, ":")
Ecrire ("Nom : ", étudiants[i].nom)
Ecrire ("Âge : ", étudiants[i].âge)
Ecrire ("Moyenne : ", étudiants[i].moyenne)
finpour

Prof. Hanae Moussaoui 13


Syntaxe générale d’un programme de structure :
Algorithme StructDeclaration
Type Structure Etudiant
nom: chaine de caractères
prenom: chaine de caractères
age: Entiers
moyenne: Reels
FinStruct
Variables
etud1: Etudiant
etud2: Etudiant
constantes ....
Début
.......
Fin

Prof. Hanae Moussaoui 14


Représentation en mémoire :
Tableau Structure
Un tableau est une collection linéaire d'éléments de même Une structure, en revanche, peut contenir des éléments de
type. En mémoire, tous les éléments du tableau sont stockés types différents. Les éléments sont toujours stockés de
de manière consécutive, les uns après les autres, dans des manière contiguë, mais les tailles des champs peuvent varier
cases contiguës. en fonction des types. En plus, certaines structures peuvent
Supposons que vous ayez un tableau d'entiers avec 3 éléments être alignées pour des raisons de performance ou de
compatibilité.
tableau T[3] : entier
Prenons la structure Etudiant avec un nom (chaîne de
[ 0x01 ] [ 0x02 ] [ 0x03 ] caractères), un âge (entier) et une moyenne (reel) :
En mémoire, la disposition pourrait ressembler à ceci :
4 octets 4 octets 4 octets
[ "Alice" ] [ padding ] [ 0x14 ] [ 15.5 ]
Chaque élément du tableau occupe le même nombre d'octets,
et les adresses mémoire sont consécutives. Si le tableau
contient 3 entiers (par exemple de type entier), chaque entier 20 octets 4 octets 4 octets 8 octets
occupera 4 octets, donc les 3 éléments seront stockés à des
adresses contiguës.

Prof. Hanae Moussaoui 15


Déclaration d'une structure avec un Remplir un tableau dans une structure:
tableau :
Variable étudiant : Étudiant
Type Structure Étudiant // Remplir le nom
tableau nom[50] : caractere Pour i allant de 0 à 49 Faire
tableau notes[5] : réel Lire(é[Link][i])
âge : entier FinPour
FinStruct // Remplir les notes
Pour i allant de 0 à 4 Faire
Lire(é[Link][i])
FinPour
// Remplir l'âge
Lire(étudiant.âge)

Les éléments du tableau sont stockés en mémoire de manière contiguë, juste après les champs précédents.
Prof. Hanae Moussaoui 16
Exercice 2 :
- Déclare une structure appelée Étudiant contenant :
• nom : chaîne[30]
• âge : entier
• note : réel
- Déclare un tableau étudiants[5] pour stocker les informations de 5
étudiants.
- Remplis le tableau en demandant à l'utilisateur de saisir les données de
chaque étudiant.
- Affiche les informations de tous les étudiants dans un format lisible.

Prof. Hanae Moussaoui 17


Algorithme Etudiant Ecrire("Saisir la note de l'étudiant ", i + 1, " : ")
Lire(étudiants[i].note)
Type Structure Étudiant FinPour
nom: chaine[30]
âge : entier // Affichage des données des étudiants
note : réel Ecrire("Informations des étudiants :")
FinStruct Pour i allant de 0 à 4 Faire
Ecrire("Étudiant ", i + 1, " :")
Variable Ecrire("Nom : ", étudiants[i].nom)
tableau étudiants[5] : Étudiant Ecrire("Âge : ", étudiants[i].âge)
i : entier Ecrire("Note : ", étudiants[i].note)
Ecrire ("\n")
// Saisie des données des étudiants Ecrire("-------------------")
Pour i allant de 0 à 4 Faire FinPour
Ecrire("Saisir le nom de l'étudiant ", i + 1, " : ") Fin
Lire(étudiants[i].nom)
Ecrire("Saisir l'âge de l'étudiant ", i + 1, " : ")
Lire(étudiants[i].âge)
Prof. Hanae Moussaoui 18
Exercice 3 :
- Déclare une structure appelée Étudiant contenant :
• nom : chaîne[30]
• âge : entier
• Tableau notes[3] : réel
- Déclare un tableau étudiants[5] pour stocker les informations de 5
étudiants.
- Remplis le tableau en demandant à l'utilisateur de saisir :Le nom de
chaque étudiant.
- L'âge de chaque étudiant.
- Les 3 notes pour chaque étudiant.
- Affiche les informations de tous les étudiants, y compris leurs noms,
âges, et les 3 notes.

Prof. Hanae Moussaoui 19


Algorithme Etudiant FinPour
Type Structure Étudiant FinPour
nom: chaine[30]
âge : entier // Affichage des données des étudiants
tableau notes[3] : réel Ecrire("Informations des étudiants :")
FinStruct Pour i allant de 0 à 4 Faire
Ecrire("Étudiant ", i + 1, " :")
Variable Ecrire("Nom : ", étudiants[i].nom)
tableau étudiants[5] : Étudiant Ecrire("Âge : ", étudiants[i].âge)
i, j : entier
// Affichage des 3 notes pour cet étudiant
// Saisie des données des étudiants Ecrire("Notes : ")
Pour i allant de 0 à 4 Faire Pour j allant de 0 à 2 Faire
Ecrire("Saisir le nom de l'étudiant ", i + 1, " : ") Ecrire(étudiants[i].notes[j], " ")
Lire(étudiants[i].nom) FinPour
Ecrire("Saisir l'âge de l'étudiant ", i + 1, " : ") Ecrire("-------------------")
Lire(étudiants[i].âge) FinPour
Fin
// Saisie des 3 notes pour cet étudiant
Pour j allant de 0 à 2 Faire
Ecrire("Saisir la note ", j + 1, " de l'étudiant ", i + 1, " : ")
Lire(étudiants[i].notes[j])
Prof. Hanae Moussaoui 20
Remarque :
Déclaration Interprétation Usage
tableau nom[50] : Un tableau contenant Stocker plusieurs
chaîne 50 chaînes (50 noms chaînes distinctes.
différents).
nom : chaîne[50] Une seule chaîne qui Stocker un seul texte
peut contenir jusqu'à (un seul nom complet).
50 caractères.
tableau nom[50] : Un tableau contenant Stocker plusieurs
caractere 50 caractères caractères distincts

Prof. Hanae Moussaoui 21


Exercice 4:
- Définir une structure Élève contenant :
nom : chaîne[40]
tableau notes[3] : réel
- Déclarer un tableau de 2 élèves.
- Saisir les informations des élèves, y compris leurs 3 notes.
- Calculer et afficher la moyenne des notes pour chaque élève.

Prof. Hanae Moussaoui 22


Algorithme Eleve Ecrire("Saisir la note ", j + 1, " de ",
Type Structure Élève élèves[i].nom, " : ")
nom : chaîne[40] Lire(élèves[i].notes[j])
notes : réel[3] FinPour
FinStruct FinPour

Variable // Calcul et affichage des moyennes


tableau élèves[2] : Élève Pour i allant de 0 à 1 Faire
i, j : entier somme ← 0
somme, moyenne : réel Pour j allant de 0 à 2 Faire
somme ← somme + élèves[i].notes[j]
// Saisie des élèves FinPour
Pour i allant de 0 à 1 Faire moyenne ← somme / 3
Ecrire("Saisir le nom de l'élève ", i + 1, " : ") : ",Ecrire("La
moyenne)
moyenne de ", élèves[i].nom, " est
Lire(élèves[i].nom) FinPour
Pour j allant de 0 à 2 Faire
Prof. Hanae Moussaoui 23

Vous aimerez peut-être aussi