Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours visual basic » Exercices VB »

Articles similaires

  • Produits dropshipping : comment trouver les produits tendance ?
  • Tutoriel animation des tableaux dans Powerpoint
  • Tutoriel Python : Convertir une liste en Set
  • Dropshipping wish : caractéristiques et modalités de vente
  • Tutoriel Word : comment créer une table des matières
  • Exercice Access : gestion des salariés
  • Tutoriel Excel : Manipuler les tableaux
  • TP ORACLE : Droits d'accés
  • Exercice Excel fonction MOYENNE() et tri des données calculer la moyenne des notes des élèves
  • Exercices circuit logique, table de vérité et table de Karnaugh
  • Exercice VB: L'addition de deux matrices A et B de mêmes dimensions N et M
  • Comment calculer la consommation intermédiaire dans un compte de résultat ?

Documents similaires

  • BTS Conception du Produit Industriel

  • Cours Introduction Access les Tables en doc

  • L’economie comportementale et la conception de produits en microfinance

  • Qu'est-ce le compte de résultat d'une entreprise ?

  • Modèle avec table des matières sur Word

  • Modèle de tableau de bord financier sur Excel

  • Technicien Spécialisé Construction Métallique

  • Bases de Données document

Exercice VB: Table des Produits

Rédigé par GC Team, Publié le 02 Janvier 2012, Mise à jour le Vendredi, 16 Décembre 2022 22:36
Participez au vote ☆☆☆☆☆★★★★★

Objectif :

Travailler avec les Tableaux à deux dimensions.

Travail à Faire :

  1. Faire un programme permettant de calculer d'afficher la table des produits pour N variant de 1 à 10 :

X * Y

0

1

2

3

4

5

6

7

8

9

10

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

2

3

4

5

6

7

8

9

10

2

0

2

4

6

8

10

12

14

16

18

20

3

0

3

6

9

12

15

18

21

24

27

30

4

0

4

8

12

16

20

24

28

32

36

40

5

0

5

10

15

20

25

30

35

40

45

50

6

0

6

12

18

24

30

36

42

48

54

60

7

0

7

14

21

28

35

42

49

56

63

70

8

0

8

16

24

32

40

48

56

64

72

80

9

0

9

18

27

36

45

54

63

72

81

90

10

0

10

20

30

40

50

60

70

80

90

100


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Module Module1
Dim i, j As Integer
Sub Main()
Dim T(10, 10) As Integer
For i = 0 To 10
For j = 0 To 10
t(i, j) = i * j
Next
Next
Console.WriteLine("X * Y 0 1 2 3 4 5 6 7 8 9
10")
For i = 0 To 10
For j = 0 To 10
Console.Write(T(i, j) & " ")
Next
Console.WriteLine(" ")
Next
Console.ReadLine()
End Sub
End Module

Exercice VB: Choix de catégorie

Objectif:
Etre capable de créer le code vb avec les instructions répétitives 

Enoncé:

Ecrire le code VB qui permet de Demander à l’utilisateur d’entrer l’âge et vérifie la catégorie si :

  • Age >= 12 alors on écrit que la catégorie est cadette
  • Age >= 10 alors on écrit que la catégorie est Minimu
  • Age >= 8 alors on écrit que la catégorie est pupille
  • Age >= 6 alors on écrit que la catégorie est poussin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Module age

    Sub Main()
        Dim age As Integer
        Dim rep As String
        Do
            Console.WriteLine("entrer l'age")
            age = Console.ReadLine()
            If age >= 12 Then
                Console.WriteLine("la catégorie est cadette")
                Console.ReadLine()
            ElseIf age >= 10 Then
                Console.WriteLine("la catégorie est Minimu")
                Console.ReadLine()
            ElseIf age >= 8 Then
                Console.WriteLine("la catégorie est pupille")
                Console.ReadLine()
            ElseIf age >= 6 Then
                Console.WriteLine("la catégorie est poussin")
                Console.ReadLine()
            End If
            Console.WriteLine("voulez-vous contunuer O/N")
            rep = Console.ReadLine
        Loop Until rep = "N"
        Console.ReadLine()
    End Sub
End Module

Exercice VB: Classe Stagiaire

Suite au deux exercices "Classe Formateur" et "Class Individu"


On dérive la classe Individu déjà vue par une classe Stagiaire

En plus des données membres Individu, la classe Stagiaire a comme données membres privées:

Filière

Moyenne générale

6. Construire la classe Stagiaire qui hérite de la classe Individu

7. Au niveau de la Classe de Test :

Prévoir deux Stagiaires et les instancier avec les constructeurs adéquats.

8. On souhaite  Enregistrer des objets Stagiaires dans un fichier.

9. Ecrire des procédures de mise a jour de ce fichier :

3.1       Ajout

3.2       Modification

3.3       Suppression

10. Prévoir une procédure qui permet de recopier les enregistrements du fichier vers un Vecteur.

11. afficher à partir du vecteur les Stagiaires ayant une moyenne >=10.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Public Class Stagiaire
    Inherits Individu
    Private Filière As String
    Private Moy_G As Double
    Property _Filière() As String
        Get
            Return Filière
        End Get
        Set(ByVal value As String)
            Filière = value
        End Set
    End Property
    Property _Moy_G() As Double
        Get
            Return Moy_G
        End Get
        Set(ByVal value As Double)
            Moy_G = value
        End Set
    End Property
    Public Sub New()
    End Sub
    Public Sub New(ByVal C As String, ByVal n As String, ByVal P As String, ByVal A As String, ByVal F As String, ByVal MG As Double)
        MyBase.New(C, n, P, A)
        _Filière = F
        _Moy_G = MG
    End Sub
    Public Overrides Sub afficher()
        MyBase.afficher()
        Console.WriteLine(_Filière & vbTab & _Moy_G)
    End Sub
End Class
Public Class test
    Public Sub New()
        Console.WriteLine("******** [Programme de teste] ************")
        Console.WriteLine()
        Console.WriteLine("----------------------------------------------------------")
        Console.WriteLine()
        Console.WriteLine("                         ----STAGIAIRE----")
        Console.WriteLine()
        Dim stagiaire1 As New Stagiaire("AA190", "Alali", "Marwa", "Hay Nahda II", "TDI", 15.75)
        Dim stagiaire2 As New Stagiaire("BB198", "Alawi", "Sara", "Rue imam malek suissi rabat", "TDI", 19)
        stagiaire1.afficher()
        Console.WriteLine()
        stagiaire2.afficher()
        Console.WriteLine()
        Console.WriteLine()
        Console.WriteLine("-----------------------------------------------------------")
        Console.ReadLine()     
    End Sub
End Class 
Module Module1
    Dim st As New ArrayList
    Sub Main()
        Dim x As New test
    Dim k = New Stagiaire("AA123", "Alami", "Fadwa", "hay nahda", "TDI", 19)
        st.Add(k)
        FileOpen(1, "naziha.txt", OpenMode.Output)
        Dim i As Integer

For i = 0 To st.Count - 1
       PrintLine(1, k._NumCin & "/" & k._nom & "/" & k._prénom & "/" & k._Adresse & "/" & k._Filière & "/" & k._Moy_G)
        Next
        FileClose()
        Dim num, nom, prénom, adresse, filière As String
        Dim moye As Double
        Console.WriteLine("saisire le numCin du stagiairz")
        num = Console.ReadLine
        Console.WriteLine("saisire le nom du stagiaire")
        nom = Console.ReadLine
        Console.WriteLine("saisire le prénom du stagiaire")
        prénom = Console.ReadLine
        Console.WriteLine("saisire l'adresse du stagiaire")
        adresse = Console.ReadLine
        Console.WriteLine("saisire le filière du stagiaire")
        filière = Console.ReadLine
        Console.WriteLine("saisire la moyenne du stagiaire")
        moye = Console.ReadLine
        ajout(num, nom, prénom, adresse, filière, moye)
        copier()
    End Sub
    Sub ajout(ByVal num As String, ByVal nom As String, ByVal prénom As String, ByVal adresse As String, ByVal filière As String, ByVal moye As Double)
        Dim stag = New Stagiaire(num, nom, prénom, adresse, filière, moye)
        st.Add(stag)
        FileOpen(1, "naziha.txt", OpenMode.Append)
        Dim i As Integer
        For i = 0 To st.Count - 2
            PrintLine(1, stag._NumCin & "/" & stag._nom & "/" & stag._prénom & "/" & stag._Adresse & "/" & stag._Filière & "/" & stag._Moy_G)
        Next

 FileClose()
    End Sub
    Sub copier()
        Dim R(), lin As String
        FileOpen(1, "naziha.txt", OpenMode.Input)
        While Not EOF(1)
            lin = LineInput(1)
            R = Split(lin, "/")
            FileClose(1)
        End While
        For i = 0 To R.GetUpperBound(0)
            Console.WriteLine(R(i) & vbTab)
        Next
    End Sub
End Module

Exercice VB: Class Formateur

Suite à l'exercice " Class Individu"

On dérive la classe Individu déjà vue par une classe Formateur

En plus des données membres Individu, la classe Formateur a comme données membres privées :

Masse horaire effective

Heure supplémentaire

Taux horaire effectif

Taux horaire supplémentaire

La méthode CalculSalaire () intègre un mode de calcul comme suit :

CalculSalaire = (Masse horaire effectif* taux horaire effectif)   +

(Heure supplémentaire* taux horaire supplémentaire)

4. Construire la classe Formateur qui hérite de la classe Individu

5. Au niveau de la Classe de Test :

-          Prévoir deux Formateurs et les instancier avec les constructeurs adéquats.

-          Les afficher notamment CalculSalaire ( ).


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Public Class Formateur
    Inherits Individu
    Private MassH As Double
    Private Heur_Sup As Double
    Private Taux_H_Effec As Double
    Private taux_H_Sup As Double
    Property _MassH() As Double
        Get
            Return MassH
        End Get
        Set(ByVal value As Double)
            MassH = value
        End Set
    End Property
    Property _Heur_Sup() As Double
        Get
            Return Heur_Sup
        End Get
        Set(ByVal value As Double)
            Heur_Sup = value
        End Set
    End Property
    Property _Taux_h_effec() As Double
        Get
            Return Taux_H_Effec
        End Get
        Set(ByVal value As Double)
            Taux_H_Effec = value
        End Set
    End Property
    Property _taux_H_Sup() As Double
        Get
            Return taux_H_Sup
        End Get
        Set(ByVal value As Double)
            taux_H_Sup = value
        End Set
    End Property
    Sub New()
    End Sub
    Public Sub New(ByVal N As String, ByVal No As String, ByVal P As String, ByVal A As String, ByVal M As Double, ByVal HS As Double, ByVal THE As Double, ByVal THS As Double)
        MyBase.New (N, No, P, A)
        _MassH = M
        _Heur_Sup = HS
        _Taux_h_effec = THE
        _taux_H_Sup = THS
    End Sub
    Public Sub New(ByVal M As Double, ByVal HS As Double, ByVal THE As Double, ByVal THS As Double)
        _MassH = M
        _Heur_Sup = HS
        _Taux_h_effec = THE
        _taux_H_Sup = THS
    End Sub
    Sub CalculSalaire()
        Console.WriteLine((MassH * Taux_H_Effec) + (Heur_Sup / taux_H_Sup))
    End Sub
    Public Overrides Sub afficher()
        MyBase.afficher()
        Console.WriteLine(MassH & vbTab & Heur_Sup & vbTab & Taux_H_Effec & vbTab & taux_H_Sup)
    End Sub
End Class 

---------------------------------------------------------------------------------------------------------


Public Class test
    Public Sub New()
        Console.WriteLine("******** [Programme de teste] ************")
        Console.WriteLine()
        Console.WriteLine("----------------------------------------------------------")
        Console.WriteLine("                         ----FORMATEURS---")
        Console.WriteLine()
        Dim formateur1 As New Formateur(20, 40, 70, 33)
        Dim formateur2 As New Formateur(70, 22, 80, 65)
        Console.WriteLine("Salaire du premier formatteur" & vbTab & vbTab)
        formateur1.CalculSalaire()
        Console.WriteLine("Salaire du deuxième formatteur" & vbTab & vbTab)
        formateur2.CalculSalaire()
        Console.WriteLine()
        Console.WriteLine()
        Console.WriteLine("-----------------------------------------------------------")
End Sub
End Class

Exercice VB: Éditeur simplifié d'une matrice

Sous Windows, une icône est constituée de petits points juxtaposés formant une image. Chacun de ces points peut avoir une couleur choisie parmi un nombre souvent limité de couleurs "standard". On appelle cette gamme de possibilités une palette. Un éditeur d'icônes a donc pour premier rôle de permettre à l'utilisateur de placer des points de différentes couleurs dans une grille agrandie représentant une matrice de points. Ils formeront plus tard l'image de l'icône.

Programme demandé : 

On se propose ici de réaliser un éditeur simplifié d'une matrice de 16 x 16 carrés. On pourra en cliquant sur l'un d'entre eux y placer une couleur choisie dans une palette située à sa droite (voir exemple ci-dessous). Il ne sera pas demandé de prévoir la lecture ou la sauvegarde de ces points dans un fichier. En revanche, toutes ces valeurs seront stockées dans un tableau (nommé grille) de 256 éléments de type entiers.

  1. Interface (voir exemple ci-dessous):
  • Une zone image (objet PictureBox – voir note en bas de page) pour y dessiner votre grille
  • Une autre zone image pour y dessiner la palette
  • Bouton Effacer pour effacer le pictogramme et "vider" le tableau
  1. Le code d'affichage initial sera placé dans Form_Activate et débutera par l'instruction DoEvents
  2. La grille ou image principale (nommée par défaut Picture1) devra être quadrillée à l'aide de petits carrés représentant chacun un pavé de couleur. Pour obtenir ce type de carrés, on utilisera l'instruction line précédée de deux autres commandes ayant pour but de changer le mode de remplissage des rectangles (propriété .FillStyle = 0) et d'en spécifier la couleur (propriété .FillColor). Le cadre est dessiné par défaut en noir, avec par exemple: Picture1.line (x1,y1)-(x2,y2) , , B
  3. Pour choisir une couleur dans la palette, cliquez simplement sur le carré rempli avec la couleur correspondante. A l'aide de l'événement MouseDown de chacun des objets Picture, vous pourrez repérer les positions X et Y de la souris pour déterminer la case visée. Un choix judicieux de la propriété Scale vous simplifiera grandement la tâche. Les 16 couleurs de la palette correspondent aux 16 valeurs possibles pour la fonction QBColor.
  4. Le bouton Effacer aura pour but de réinitialiser le tableau (nommé grille) et d'effacer les cases de la grille en les remplissant de blanc.

Note:

Pour dessiner dans un objet Picture, on peut utiliser les instructions classiques précédées du nom de l'objet en question. Par exemple :

Picture1.Scale (Xmin,Ymax)-(Xmax,Ymin)
Picture1.Cls
Picture1.Line (X1,Y1) - (X2,Y2)

Conseil:

Pour la gestion de la souris, essayez donc d'utiliser les événements MouseDown et MousMove sur les objets Picture1 ou Picture2, plutôt que l'événement Click

Enonce-exercice-VB-id2077


Corrig-exercice-VB-id2077

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Dim grille (1 To 16, 1 To 16) As Integer
 	Dim pal (1 To 16) As Integer
 	Dim couleur As Integer
Private Sub Bouton_Effacer_Click()
     Form_Activate
End Sub
Private Sub Form_Activate()
          Dim i As Integer, j As Integer
     DoEvents
     '1) Echelle de la grille
     Picture1.Scale (0, 16)-(16, 0)
     '2) Initialisation de la grille et affichage initial
     Picture1.FillStyle = 0
     couleur = 15 'Blanc
     Picture1.FillColor = QBColor(couleur) 'On pourrait aussi utiliser VBWhite avec VB5
     For i = 1 To 16 'pour X
          For j = 1 To 16 'pour Y
               grille(i, j) = couleur
               Picture1.Line (i - 1, j - 1)-(i, j), , B
          Next j
     Next i
     'Définition de l'échelle de la palette
     Picture2.Scale (0, 16)-(1, 0)
     Picture2.FillStyle = 0
     For i = 1 To 16
          Picture2.FillColor = QBColor(i - 1)
          Picture2.Line (0, i - 1)-(1, i), , B
     Next i
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     grille(Int(X), Int(Y)) = couleur
     Picture1.Line (Int(X), Int(Y))-(Int(X) + 1, Int(Y) + 1), , B
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Button  0 Then Picture1_MouseDown Button, Shift, X, Y

End Sub
Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     couleur = Int(Y)
     Picture1.FillColor = QBColor(couleur)
End Sub

Exercices de programmation avec le langage VB

Exercice VB: Media Player

Ecrire le programme qui permet de réaliser l'interface suivante:

Remarque: la boutton Player = Ouvrire un nouveau fichier contenant des médiats

ExerciceVB-id2083 

Solution :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdplay.Click

        OpenFileDialog1.ShowDialog()

        Player.URL = OpenFileDialog1.FileName
    End Sub

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        End
    End Sub

    Private Sub Media_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs)
        'Dim pt As Point = Label2.Location
        'pt.Offset(0, Label2.Height)
        'Stagiaires.Show(Me, pt)
    End Sub

End Class

Exercice VB: Examen de Visual Basic 2ème session

Enonc-exerciceVB-2089

Solution :

Corrig-exerciceVB-2089

Exercice Visual Basic : ListBox

Ecrire le code VB qui permet de réaliser l'interface suivante:


Solution :

ExerciceVB-id2130
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class Form1


    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        TextBox3.Text = ListBox1.Items.Count
        TextBox4.Text = ListBox1.SelectedIndex
        TextBox5.Text = ListBox1.Text
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ListBox1.Items.Clear()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Items.Add(TextBox1.Text)
        TextBox1.Text = ""
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Val(TextBox2.Text) <= ListBox1.Items.Count - 1 Then
            ListBox1.SelectedIndex = CInt(TextBox2.Text)
        Else
            MsgBox("L'élément rechercher est introuvable!")
        End If

    End Sub
End Class


Exercice Visual Basic : Editer Facture



Solution :

ExerciceVB-id2120

CorrigVB-id2120


Exercice VB: Interface calculator

Ecrire le programme qui permet de réaliser l'interface suivante:

ExerciceVB-id2084

  • Ajouter une Méthode qui permet de vérifier si lle variable entré dans les zones de textes 1 et 2 sont un caractère ou un nombre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Class Form1

    Private Sub btncalcul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalcul.Click
        If Not IsNumeric(TextBox1.Text) Then MsgBox("vous devez saisir un nomdre valide") : TextBox1.Focus() : Exit Sub
        If Not IsNumeric(TextBox2.Text) Then MsgBox("vous devez saisir un nomdre valide") : TextBox2.Focus() : Exit Sub
        lblsom.Text = CDbl(TextBox1.Text) + CDbl(TextBox2.Text)
    End Sub

    Private Sub btnvider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnvider.Click
        TextBox1.Text = ""
        TextBox2.Text = ""
        lblsom.Text = ""
    End Sub

    Private Sub btnqter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnqter.Click
        If MessageBox.Show("voulez vous quiter l'application", "fin", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then End
    End Sub
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        'Select Case e.KeyChar
        '    Case "0" To "9"
        '    Case Else
        '        e.Handled = True
        'End Select
        'Label4.Text = e.KeyChar
        'Label5.Text = Asc(e.KeyChar)

        Select Case Asc(e.KeyChar)
            Case 8, 48 To 57
            Case 13
                SendKeys.Send("{tab}")
            Case Else
                e.Handled = True
        End Select
    End Sub
End Class

Exercice VB: L'addition de deux matrices A et B de mêmes dimensions N et M

Objectif :

Travailler avec les Tableaux à deux dimensions.

Travail à Faire :

Ecrire un programme qui réalise l'addition de deux matrices A et B de mêmes dimensions N et M.

Exemple :

/           \        /            \       /                                     \

| a b c d |      | a' b' c' d |     | a + a' b + b' c + c' d + d |

| e f g h | +    | e' f' g' h'| =   | e + e' f + f' g + g' h + h' |

| i j k l    |        | i' j' k' l'   |      |    i + i' j + j' k + k' l + l'     |

\          /         \          /          \                                  /


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Module Module1
Dim i, j, N, M As Integer
Sub Main()
Console.Write(" N : ")
N = Console.ReadLine
Console.Write(" M : ")
M = Console.ReadLine
Dim A(N, M) As String
Dim B(N, M) As String
Dim A_B(N, M) As String
For i = 0 To N - 1
For j = 0 To M - 1
Console.Write("A(" & i + 1 & " ; " & j + 1 & ") = ")
A(i, j) = Console.ReadLine
Next
Next
Console.WriteLine(" ")
For i = 0 To N - 1
For j = 0 To M - 1
Console.Write("B(" & i + 1 & " ; " & j + 1 & ") = ")
B(i, j) = Console.ReadLine
Next
Next
For i = 0 To N - 1
For j = 0 To M - 1
A_B(i, j) = A(i, j) & " + " & B(i, j)
Next
Next
For i = 0 To N - 1
For j = 0 To M - 1
Console.Write(A_B(i, j) & " ")
Next
Console.WriteLine(" ")
Next
Console.ReadLine()
End Sub
End Module

Exercice VB: La structure REPETER

Travail à Faire :

  1. Ecrire un programme qui demande successivement des nombres à l’utilisateur, et qui calcule le nombre de valeurs saisies. La saisie des nombres s’arrête lorsque l’utilisateur entre le caractère « n » ou « N ».
  2. Ecrire un programme qui demande successivement des nombres à l’utilisateur, et qui calcule leur moyenne. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
  3. Modifiez le programme de l’exercice 1, de façon qu’il nous renseigne sur le nombre des valeurs positives et sur le nombre des valeurs négatives. Ne comptez pas les valeurs nulles.
  4. Ecrire un programme qui lit les caractères saisies par l’utilisateur. A la fin ce programme nous affichera la phrase saisie. La saisie des caractères s’arrête lorsqu’on tape point «. ». Pour l’utilisateur veut insérer un espace il lui suffit de tapez sur 0. Par exemple si l’utilisateur tape successivement les caractères « b », « o », « n », « j », « o », « u », « r », « t », « o », « u », « s », «.», il nous affichera la chaîne « bonjourtous ». Mais si il tape « b », « o », « n », « j », « o », « u », « r », « 0 », « t », « o », « u », « s », « . » , le programme affichera « bonjour tous ».

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
1.
Module Module1
Dim a, Compteur As Integer
Dim Reponse As String
Sub Main()
Compteur = 0
Do
Console.Write("Entrez un nombre : ")
a = Console.ReadLine
Compteur = Compteur + 1
Console.Write("Voulez-vous continuez O/N ? : ")
Reponse = Console.ReadLine
Loop Until (Reponse = "n" Or Reponse = "N")
Console.Write("Le nombre de valeurs saisies est : " & Compteur)
Console.ReadLine()
End Sub
End Module

2.
Module Module1
Dim a, Somme, Moyenne, Compteur As Integer
Sub Main()
Compteur = 0
Somme = 0
Do
Console.Write("Entrez un nombre : ")
a = Console.ReadLine
Compteur = Compteur + 1
Somme = Somme + a
Loop Until (a = 0)
Moyenne = Somme / (Compteur - 1)
Console.Write("La moyenne de valeurs saisies est : " & Moyenne)
Console.ReadLine()
End Sub
End Module

3.
Module Module1
Dim a, Npos, Nneg As Integer
Dim Reponse As String
Sub Main()
Npos = 0
Nneg = 0
Do
Console.Write("Entrez un nombre : ")
a = Console.ReadLine
If a > 0 Then
Npos = Npos + 1
ElseIf a < 0 Then
Nneg = Nneg + 1
End If
Console.Write("Voulez-vous continuez O/N ? : ")
Reponse = Console.ReadLine
Loop Until (Reponse = "n" Or Reponse = "N")
Console.WriteLine("Le nombre de valeurs positives saisies est : "
& Npos)
Console.WriteLine("Le nombre de valeurs positives saisies est : "
& Nneg)
Console.ReadLine()
End Sub
End Module

4.
Module Module1
Dim Caractere, Phrase As String
Sub Main()
Phrase = ""
Do
Console.Write("Entrez une caractère : ")
Caractere = Console.ReadLine
If Caractere = "0" Then
Caractere = " "
End If
Phrase = Phrase + Caractere
Loop Until (Caractere = ".")
Console.WriteLine("La phrase résultante est : " & Phrase)
Console.ReadLine()
End Sub
End Module

Exercice VB: La taupe

Le principe:

On se propose d'écrire un programme permettant à un pointeur aveugle (la taupe) de trouver son chemin à travers une grille de 10x10 cases. A l'aide de la souris, vous choisirez une case de départ en cliquant sur celle-ci. A partir de cette case, il devra essayer aléatoirement de se déplacer sur une case libre touchant un de ses côtés immédiats (gauche, droite haut ou bas, mais jamais en diagonale), jusqu'à atteindre la case d'arrivée (10, 10). Il marquera son passage en coloriant chaque case en bleu et en la marquant du numéro de son pas. Une case sur laquelle il est déjà passé n'est pas considérée comme libre – sinon il pourrait tourner en rond… Si aucune case n'est libre autour de lui, elle sera coloriée en rouge, car c'est une impasse. Il devra alors reculer d'un pas et chercher un autre passage.

Programme demandé:

  1. Interface (voir exemple ci-dessous):
  • Le dessin se fera sur la feuille même – le fond utilisé sera celui par défaut
  • Au lancement, le programme devra dessiner une grille de 10 x 10 occupant tout l'espace imprimable de la feuille. Il faudra choisir une échelle appropriée.
  • Aucun menu, aucun bouton. Seul le click de la souris sur la feuille sera intercepté. Pour des raisons pratiques, nous n'utiliserons d'ailleurs pas l'événement Click mais l'événement MouseDown.
  1. Vous devrez déclarer deux tableaux T et P et une variable C , utilisables par toutes les procédures:
  • Un tableau T (10, 10) de type long qui contiendra la couleur pour chaque case.
  • Un tableau P (100) de type XY - à définir dans un module séparé. Ce type se composera de deux entiers nommés X et Y. On stockera ainsi en P les coordonnées de chaque point du parcours de la "taupe" depuis le point de départ jusqu'en (10,10).
  • Un entier C contiendra en permanence l'indice de la position de notre "taupe" dans P. Ainsi, dans l'exemple illustré ci-dessous, pour C = 5 on aurait P(C).X = 3 et P(C).Y = 3 . En principe, C devrait toujours augmenter de 1 à chaque progression de notre taupe, sauf quand celle-ci s'est engagée dans une impasse et doit par conséquent reculer successivement jusqu'à la dernière position offrant au moins une liberté de mouvement non-exploitée.
  1. Vous devrez écrire une fonction Impasse de type Boolean définie comme suit :
  • Elle doit renvoyer True (vrai) par défaut. On déclare ainsi que l'on est dans une impasse, à moins de découvrir qu'une des 4 cases limitrophes de la position courante P(C) est libre. Pour savoir si une case est "libre", il suffit de s'assurer que sa couleur est à 0, valeur attribuée par défaut à tout élément du tableau T lors de sa création. Bien sûr, on ne teste que les cases limitrophes qui se situent à l'intérieur des limites physiques du tableau (X ou Y entre 0 et 10)
  • Si l'une de ces cases légitimes est libre, elle renvoie alors False (faux)
  1. Vous devrez écrire une procédure marquée recevant l'argument couleur de type long comme suit :
  • Elle aura pour but de "marquer" la case courante P(C) avec la couleur passée en argument en utilisant la méthode line …, couleur, BF
  • Elle imprimera la valeur de C sur cette même case.

Rappel: vous pouvez ajuster la position du curseur graphique avec Form1.CurrentX et Form1.CurrentY, puis imprimer avec Form1.Print

  1. Comme expliqué plus haut, l'essentiel du programme sera écrit dans Form_MouseDown :
  • On initialise C à 1 et P(C) avec les valeurs choisies par la souris. Cette case sera marquée avec VbGreen
  • On effectue une boucle qui ne s'arrêtera que lorsque l'on sera arrivé en (10,10) :

Après avoir traité le cas d'une impasse (case à marquer avec VbRed), on propose aléatoirement une nouvelle case limitrophe (voir l'astuce ci-dessous). Si celle-ci est acceptable et libre, alors on s'y déplace et elle est marquée avec VbBlue.

Astuce: Pour chercher une nouvelle case où aller, vous pouvez vous inspirer de l'exemple ci dessous :

r = Int (Rnd * 4) * 1.57

Xnew = p(c).X + CInt (Cos(r))

Ynew = p(c).Y + CInt (Sin(r))

En cliquant sur (3,1), on peut obtenir :
Enonce-exercice-VB-id2080 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Dim t(1 To 10, 1 To 10) As Long
Dim p(1 To 100) As XY 'Parcours
Dim c As Integer 'déplacement Courant (n ième Coup)
Private Sub Form_Activate( )
     Dim i As Integer
     Form1.Scale (-0.01, -0.01) - (10.01, 10.01)
     For i = 0 To 10
          Form1.Line (i, 0) - (i, 10)
          Form1.Line (0, i) - (10, i)
     Next i
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim r As Double
     Dim Xnew As Integer, Ynew As Integer
     Randomize
     c = 1
     p(c).X = Int(X) + 1
     p(c).Y = Int(Y) + 1
     marquer vbGreen
     Do
          If impasse Then
               marquer vbRed
               If c = 1 Then
                    MsgBox "Aucune solution !!!"
                    Exit Do
               Else
                    'reculer d'un pas
                    c = c - 1
               End If
          Else ' Il existe donc au moins une solution
               r = Int(Rnd * 4) * 1.57 'Choix aléatoire de la direction en radians
               Xnew = p(c).X + CInt(Cos(r))
               Ynew = p(c).Y + CInt(Sin(r))
               If Xnew > 0 And Xnew <= 10 And Ynew > 0 And Ynew <= 10 Then 'pas hors-cadre
                    If t(Xnew, Ynew) = 0 Then 'case vide
                         c = c + 1
                         p(c).X = Xnew
                         p(c).Y = Ynew
                         marquer vbBlue
                    End If
               End If
          End If
     Loop Until p(c).X = 10 And p(c).Y = 10
End Sub
Sub marquer(couleur As Long)

t(p(c).X, p(c).Y) = couleur
     Form1.Line (p(c).X - 1, p(c).Y - 1)-(p(c).X, p(c).Y), couleur, BF
     Form1.CurrentX = p(c).X - 1
     Form1.CurrentY = p(c).Y - 1
     Form1.Print c
End Sub
Function impasse() As Boolean
     impasse = True
     If p(c).X + 1 <= 10 Then If t(p(c).X + 1, p(c).Y) = 0 Then impasse = False
     If p(c).X - 1 > 0 Then If t(p(c).X - 1, p(c).Y) = 0 Then impasse = False
     If p(c).Y + 1 <= 10 Then If t(p(c).X, p(c).Y + 1) = 0 Then impasse = False
     If p(c).Y - 1 > 0 Then If t(p(c).X, p(c).Y - 1) = 0 Then impasse = False
End Function
Code à placer dans un module :
Public Type XY
     X As Integer
     Y As Integer
End Type

Exercice VB: Les Suites

Objectif :

Travailler avec les Suites et Fonctions. 

Travail à Faire : 

1. Donnez un programme pour calculer :

              S = 30 + 31 + 32 + ……. + 3n-1

2. Donnez un programme pour calculer :

                  S = 1 + X2 + X4 +…... + X2n 

3. Donnez un programme pour calculer :

           S = 1 + 1/2 + 1/3 + …………+ 1/n

4. Donnez un programme pour calculer :

    S = 1 + 1/2 + 1/4 + 1/6 + …….. + 1/2n


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
1.
Module Module1
Dim P, i, S As Integer
Sub Main()
Console.Write("Entrez la puissance : ")
P = Console.ReadLine
S = 0
For i = 1 To P
S = S + (3 ^ (i - 1))
Next
Console.Write("S est : " & S)
Console.ReadLine()
End Sub
End Module

2.
Module Module1
Dim P, i, S, X As Integer
Sub Main()
Console.Write("Entrez la Valeur de x : ")
X = Console.ReadLine
Console.Write("Entrez la puissance : ")
P = Console.ReadLine
S = 0
For i = 0 To P
S = S + (X ^ (i * 2))
Next
Console.Write("S est : " & S)
Console.ReadLine()
End Sub
End Module

3.
Module Module1
Dim N, i, S As Double
Sub Main()
Console.Write("Entrez la valeur de N : ")
N = Console.ReadLine
S = 0
For i = 1 To N
S = S + (1 / i)
Next
Console.Write("S est : " & S)
Console.ReadLine()
End Sub
End Module

4.
Module Module1
Dim N, i, S As Double
Sub Main()
Console.Write("Entrez la valeur de N : ")
N = Console.ReadLine
S = 1
For i = 1 To N
S = S + (1 / (2 * i))
Next
Console.Write("S est : " & S)
Console.ReadLine()
End Sub
End Module

  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02