Structures de contrle Structures simples Structures complexes Structures

  • Slides: 30
Download presentation
Structures de contrôle • Structures simples • Structures complexes

Structures de contrôle • Structures simples • Structures complexes

Structures simples • Les tableaux • Les enregistrements

Structures simples • Les tableaux • Les enregistrements

Les tableaux • Il arrive fréquemment que l’on doive manipuler une série de données

Les tableaux • Il arrive fréquemment que l’on doive manipuler une série de données de même nature : – des résultats financiers mensuels – des vecteurs d’indices – des matrices – des températures –… • Dans ce cas, on peut définir et manipuler des tableaux d’une ou plusieurs dimensions (jusqu’à 60 en VB)

Déclaration des tableaux Syntaxe des déclarations de tableaux : • Variable : Dim <nom>

Déclaration des tableaux Syntaxe des déclarations de tableaux : • Variable : Dim <nom> As Type • Constantes : Const <nom> As Type • Tableaux de variables : Dim <nom>(L 1 To U 1, …) As Type • Variante : Dim <nom>(N 1, …, Nn) As Type

Exemples Dim Mois(1 To 12) As String ‘déclaration Mois(1)= « janvier » ‘initialisation Mois(2)=

Exemples Dim Mois(1 To 12) As String ‘déclaration Mois(1)= « janvier » ‘initialisation Mois(2)= « février » … Dim Jours(7) As String ‘déclaration Jours(0)= « lundi » ‘initialisation Jours(1)= « mardi » … txt. Jour. Text = Jours(1) ‘affiche mardi dans la zone de texte txt. Jour

Passage des tableaux en paramètre • Pour passer un tableau, il faut : –

Passage des tableaux en paramètre • Pour passer un tableau, il faut : – Call nomproc(nom. Tab()) – Nomproc nom. Tab(6) – Nomproc (nom. Tab(6))

Algorithmes sur les tableaux • • Saisie des éléments d’un tableau Comparaison de deux

Algorithmes sur les tableaux • • Saisie des éléments d’un tableau Comparaison de deux tableaux Recherche d’un élément dans un tableau Ajout d’un élément dans un tableau – Dans une position p – À la fin du tableau • Suppression d’un élément du tableau – La position dans le tableau est connue – L’élément à supprimer est connu • Tri des éléments d’un tableau

Structures de contrôle Les enregistrements

Structures de contrôle Les enregistrements

 • Contrairement aux tableaux, ce type structuré permet de regrouper des données de

• Contrairement aux tableaux, ce type structuré permet de regrouper des données de types différents. • Exemple : on identifie un ouvrage par un code, un titre, un ou plusieurs auteurs, un éditeur et éventuellement la date de parution.

 • Ouvrage est une variable de type enregistrement; chacune de ces cinq données

• Ouvrage est une variable de type enregistrement; chacune de ces cinq données est un champ pouvant être simple ou structuré.

 • • Les enregistrements sont déclarés en VB avec le mot Type. Syntaxe

• • Les enregistrements sont déclarés en VB avec le mot Type. Syntaxe : Type Nom. Enregistrement Champ 1 As type 1 Champ 2 As type 2 … End Type • Exemple : Type Date jour As Integer mois As Integer annee As Integer End Type • Pour accéder à un champ : Dim p As Personne … p. nom = "Durand“ … p. date. Naissance. annee = 1980 Type Personne nom As String*40 prenom As String*50 date. Naissance As Date End Type

Les enregistrements - Exemple Un étudiant est défini par son nom, son prénom, sa

Les enregistrements - Exemple Un étudiant est défini par son nom, son prénom, sa date de naissance et sa note : Private Type Etudiant nom As String * 40 prenom As String * 40 date. Naissance As Date note As Double End Type Une classe peut contenir au plus 30 étudiant : Const Nb. Max = 30 ‘pour le nombre limite d’étudiants Type classe(Nb. Max) As Etudiant ‘la classe est un tableau nbr As Integer ‘le nombre réel des étudiants End Type

Exercices • Écrire les procédures et fonctions nécessaires pour – – La saisie de

Exercices • Écrire les procédures et fonctions nécessaires pour – – La saisie de la classe L’affichage de la classe (dans une feuille d’Excel) calculer la meilleur note Enfin, la procédure qui fait tout : Sub Tout() Saisie. Classe Call Afficher. Classe Msg. Box ("Meilleur note de la classe : " + CStr(Meilleur. Note())) End Sub

Structures complexes • Les piles • Les files

Structures complexes • Les piles • Les files

Une pile • Analogie de la pile d’assiettes – Last In First Out (LIFO)

Une pile • Analogie de la pile d’assiettes – Last In First Out (LIFO) • Opérations possibles – Insérer un élément dans une pile – Supprimer un élément d’une pile – Élément du sommet de la pile – Création d’une pile vide – Tester si une pile est vide

Mise en œuvre d’une pile • Plusieurs façons de faire : – En particulier,

Mise en œuvre d’une pile • Plusieurs façons de faire : – En particulier, à l’aide d’un tableau : • Le nombre max d’éléments dans la pile • Le contenu de la pile • Un indice pour pointer sur le sommet de la pile

 • Type de données : Type TPile contenu(NMAX) as Integer sommet As Integer

• Type de données : Type TPile contenu(NMAX) as Integer sommet As Integer End Type

Function Pile. Vide(p As TPile) As Boolean If (p. sommet = -1) Then Pile.

Function Pile. Vide(p As TPile) As Boolean If (p. sommet = -1) Then Pile. Vide = True Else Pile. Vide = False End If End Function

Function Pile. Pleine(p As TPile) As Boolean If (p. sommet = NMAX - 1)

Function Pile. Pleine(p As TPile) As Boolean If (p. sommet = NMAX - 1) Then Pile. Pleine = True Else Pile. Pleine = False End If End Function

Sub Empiler(p As TPile, elt As Integer) If (Pile. Pleine(p) = False) Then p.

Sub Empiler(p As TPile, elt As Integer) If (Pile. Pleine(p) = False) Then p. sommet = p. sommet +1 p. contenu(p. sommet) = elt Else Msg. Box(’’La pile est pleine !’’) End If End Sub

Sub Depiler(p As TPile) If (Pile. Vide(p) = False) Then p. sommet = p.

Sub Depiler(p As TPile) If (Pile. Vide(p) = False) Then p. sommet = p. sommet - 1 Else Msg. Box(’’La pile est vide !’’) End If End Sub

Function Sommet(p As TPile) As Integer If (Pile. Vide(p) = False) Then Sommet =

Function Sommet(p As TPile) As Integer If (Pile. Vide(p) = False) Then Sommet = p. contenu(p. sommet) Else Msg. Box(’’La pile est vide !’’) End If End Function

Une File • Analogie de la file d’attente – First In First out (FIFO)

Une File • Analogie de la file d’attente – First In First out (FIFO) • Opérations principales – Insertion d’un élément – Suppression d’un élément (le plus ancien de la file) – Quel est l’élément le plus ancien de la file ? – Création d’une file vide – Est-ce qu’une file est vide ?

Mise en œuvre d’une file • Plusieurs façons de faire : – En particulier,

Mise en œuvre d’une file • Plusieurs façons de faire : – En particulier, à l’aide d’un tableau : • Le nombre max d’éléments dans la file • Le contenu de la file • Un indice début qui pointe sur l’élément le plus ancien de la file • Un indice fin qui pointe sur le dernier élément inséré dans la file

 • Type de données : Type TFile contenu(NMAX) as Integer debut As Integer

• Type de données : Type TFile contenu(NMAX) as Integer debut As Integer fin As Integer End Type

Function File. Vide(f As TFile) As Boolean If (f. debut = f. fin) Then

Function File. Vide(f As TFile) As Boolean If (f. debut = f. fin) Then File. Vide = True Else File. Vide = False End If End Function

Function File. Pleine(f As TFile) As Boolean If (f. debut=(f. fin + 1) mod

Function File. Pleine(f As TFile) As Boolean If (f. debut=(f. fin + 1) mod NMAX) Then File. Pleine = True Else File. Pleine = False End If End Function

Sub Enfiler(f As TFile, elt As Integer) If (File. Pleine(p) = False) Then f.

Sub Enfiler(f As TFile, elt As Integer) If (File. Pleine(p) = False) Then f. contenu(f. fin) = elt f. fin = (f. fin +1) mod NMAX Else Msg. Box(’’La file est pleine !’’) End If End Sub

Sub Defiler(f As TFile) If (File. Vide(f) = False) Then f. debut = (f.

Sub Defiler(f As TFile) If (File. Vide(f) = False) Then f. debut = (f. debut+1) mod NMAX Else Msg. Box(’’La file est vide !’’) End If End Sub

Function Tete(f As TFile) As Integer If (File. Vide(f) = False) Then Tete =

Function Tete(f As TFile) As Integer If (File. Vide(f) = False) Then Tete = f. contenu(f. debut) Else Msg. Box(’’La file est vide !’’) End If End Function