Site:  Cours VB.net  
1.19.6 Contrôle des connaissances.

Structures et Tableaux.

 

Questions:

 

6- Structures et Tableaux.

 

6.1 Créer une Structure 'dvd' contenant un 'Numero'(un Integer ), un 'Titre'(une String), un 'Auteur' (une String). Déclarer un tableau structuré de 10 dvd. Indiquer que le dernier dvd doit avoir comme nom 'Red House" et comme auteur "Clapton". Afficher dans une MessageBox le titre du premier dvd. Rechercher, à l'aide d'une boucle, les dvd dont l'auteur est "Clapton" et afficher dans une MessageBox leurs titres. 

 

6.2 Déclarer un tableau t de 100 Integer. Le remplir avec un nombre aléatoire compris entre 1 et 100, le trier par ordre croissant.

Pour visualiser les éléments du tableau trié, demander à l'utilisateur dans une InputBox un numéro d'élément puis afficher dans une MessageBox la valeur de l'élément. Créer une boucle pour redemander sans cesse un numéro d'élément. Arrêter si l'utilisateur clique sur 'Annuler' dans la InputBox.

 

Réponses:

 

6- Structures et Tableaux.

 

6.1 Créer une Structure dvd contenant un Numero (un Integer ), un Titre(une String), un Auteur (une String). Déclarer un tableau structuré de 10 dvd. Indiquer que le dernier dvd doit avoir comme nom 'Red House" et comme auteur "Clapton". Afficher dans une MessageBox le titre du premier dvd. Rechercher, à l'aide d'une boucle, les dvd dont l'auteur est "Clapton" et afficher dans une MessageBox leurs titres. 

Il faut déclarer la structure mais en haut du module, sous Public Class Form1, par dans la procédure.

Public Class Form1

Public Structure dvd

   Dim Numero     As Integer

   Dim Titre        As String

   Dim Auteur       As String

End Structure

 

Puis dans une procédure il faut déclarer le tableau:

Private Button1_Click (..)

Dim i As Integer  'variable de boucle

Dim MesDvd(10) As dvd 'déclaration du tableau.

MesDvd(9).Titre ="Red House"

MesDvd(9).Auteur= "Clapton"

End Sub

MsgBox (MesDvd(0).Titre)

For i=0 to 9

   If MesDvd(i).Auteur= "Clapton" Then

        MsgBox (MesDvd(i).Titre))

   Next i

End Class

On remarque que le tableau de 10 éléments va de MesDvd(0) à MesDvd(9).

Au lieu d'écrire For i=0 to 9 on aurait pu écrire For i=0 to MesDvd.Length-1

(MesDvd.Length étant le nombre d'éléments dans MesDvd,  MesDvd.Length-1 est l'index du dernier élément)

 

6.2 Déclarer un tableau t de 100 Integer. Le remplir avec un nombre aléatoire compris entre 1 et 100, le trier par ordre croissant.

Pour visualiser les éléments du tableau trié, demander à l'utilisateur dans une InputBox un numéro d'élément puis afficher dans une MessageBox la valeur de l'élément. Créer une boucle pour redemander sans cesse un numéro d'élément. Arrêter si l'utilisateur clique sur 'Annuler' dans la InputBox.

Dim t(100) As Integer

Dim i, r As Integer

Dim rep As String

Randomize()

For i = 0 To t.Length - 1

t(i) = CType((Int(Rnd() * 100)) + 1, Integer)

Next i

Array.Sort(t)

Do

  rep = InputBox("Voir ‚l'élément numéro?")

  If rep = "" Then Exit Do

  r = CType(rep, Integer)

  MsgBox(t(r).ToString)

Loop