Exercice VB: Gestion Stagiaires avec Fichier et Collection

Un stagiaire est connu par les Informations suivantes :
- Son numéro
- Son Nom
- Son Prénom
- Sa 1ère Note, 2ème Note, 3ème Note
- Moyenne Générale
- Décision : Si Moyenne Générale >=10 alors il est Admis si non il est 2liminé
- Sa Mention si :
- Moyenne >= 17 Alors Mention = "excellent"
- Moyenne >= 16 Alors Mention = "T.B"
- Moyenne >= 14 Alors Mention = "B"
- Moyenne >= 13 Alors Mention = "assez.B"
- Moyenne >= 12 Alors Mention = "A.B"
- Moyenne >= 10 Alors Mention = "passable"
Travail à Faire :
Ecrire le code VB qui permet de :
1- Faire Copier les données d’un Stagiaire à partir d’un fichier vers une collection
2- Faire la saisie des données d’un nouveau Stagiaire dans une Collection
3- Faire la suppression d’un Stagiaire dans une Collection
4- Ajout d’un nouveau Stagiaire dans une Collection
5- Faire le Tri du Collection
6- Faire la Suppression par Position
7- Copier les Données du Collection
8- Faire l’affichage des données
9- Quitter le programme
10- Faire un Menu de choix
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
Imports System.Collections Module Module1 Dim lst As New ArrayList Dim st As stag Dim nb As Integer Sub menu() Console.WriteLine("1.copier") Console.WriteLine("2.lecture") Console.WriteLine("3.saisie") Console.WriteLine("4.suppression") Console.WriteLine("5.ajout") Console.WriteLine("6.tri") Console.WriteLine("7.supp_pos") 'Console.WriteLine("8.removeat") Console.WriteLine("9.quiter") End Sub Sub Main() Dim choix As String Dim rep As String Do menu() Console.WriteLine(" tapez votre choix") choix = Console.ReadLine Select Case choix Case 1 copier() Case 2 lecture() Case 3 Console.WriteLine("nombre stag") nb = Console.ReadLine saisie() Case 4 Dim num As Integer Console.WriteLine("entrez le num de stagiaire à supprimer ") num = Console.ReadLine suppression(num) Case 5 ajout() Case 6 tri() Case 7 Dim i As Integer supp_pos(i) 'Case 8 ' removeat(i) Case 9 Case Else Console.WriteLine("le choix que vous avez tapez est introuvable") End Select Console.WriteLine("voulez-vous contunier ?o/n") rep = Console.ReadLine Loop Until (rep = "n") End Sub Structure stag Dim num, clas As Integer Dim nom, prenom, dec, mont As String Dim nt1, nt2, nt3, moy As Double End Structure Sub copier() Dim lin As String Dim tab() As String Dim i, Comp As Integer FileOpen(1, "fichier.txt", OpenMode.Input) While Not EOF(1) Comp += 1 Console.WriteLine(LineInput(1)) End While FileClose(1) FileOpen(1, "fichier.txt", OpenMode.Input) While Not EOF(1) lin = LineInput(1) tab = Split(lin, "/") st.num = tab(0) st.nom = tab(1) st.prenom = tab(2) st.nt1 = tab(3) st.nt2 = tab(4) st.nt3 = tab(5) st.moy = tab(6) lst(i) = st i += 1 End While FileClose(1) Console.WriteLine("a partir du collection :") lecture() End Sub Sub affichage(ByRef st As stag) Console.WriteLine(st.num & vbTab & st.nom & vbTab & st.prenom & vbTab & st.nt1 & vbTab & st.nt2 & vbTab & st.nt3 & vbTab & st.moy & vbTab & st.dec & vbTab & st.clas & vbTab & st.mont & vbTab) End Sub Sub lecture() For i = 0 To lst.Count - 1 affichage(lst(i)) Next Console.ReadLine() End Sub Sub saisie() For i = 0 To nb - 1 Console.WriteLine("entrez le num" & i + 1) st.num = Console.ReadLine Console.WriteLine("entrez le nom" & i + 1) st.nom = Console.ReadLine Console.WriteLine("entrez le prenom" & i + 1) st.prenom = Console.ReadLine Console.WriteLine("entrez la note1" & i + 1) st.nt1 = Console.ReadLine Console.WriteLine("entrez la note2" & i + 1) st.nt2 = Console.ReadLine Console.WriteLine("entrez la note3" & i + 1) st.nt3 = Console.ReadLine st.moy = ((st.nt1) + (st.nt2) + (st.nt3)) / 3 If st.moy >= 10 Then st.dec = "admis" Else st.dec = "Eliminé" End If If st.moy >= 17 Then st.mont = "excellent" ElseIf st.moy >= 16 Then st.mont = "T.B" ElseIf st.moy >= 14 Then st.mont = "B" ElseIf st.moy >= 13 Then st.mont = "assez.B" ElseIf st.moy >= 12 Then st.mont = "A.B" ElseIf st.moy >= 10 Then st.mont = "passable" End If lst.Add(st) Next End Sub Sub supp_pos(ByVal i As Integer) lst.RemoveAt(i) End Sub Sub suppression(ByVal num As Integer) For i = 0 To lst.Count - 1 If lst(i).num = num Then lst.Remove(lst(i)) End If Next End Sub Sub ajout() Dim rep As String Do saisie() Console.WriteLine("voulez vous ajouter un autre O/N") rep = Console.ReadLine.ToUpper Loop Until rep = "N" End Sub Sub tri() For i = 0 To lst.Count - 2 For j = i + 1 To lst.Count - 1 If lst(i).moy > lst(j).moy Then st = lst(j) lst(j) = lst(i) lst(i) = st End If Next Next End Sub End Module |
Exercice VB: produire un tableau contenant l'intersection de deux ensembles
Travail à Faire:
1. On considère deux ensembles d'entiers représentés dans les tableaux, Chaque entier n'apparaît qu'en un exemplaire dans une séquence.
Ecrire un Programme qui produit un tableau contenant l'intersection des deux ensembles.
Exemple :
- Tableau 1 : 10 5 12 7 19 28 6.
- Tableau 2 : 5 14 19 2 10 6 29 3 7.
- Tableau résultat : 10 5 7 19 6
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 |
1. Module Module1 Dim i, j, n, s, c, m As Integer Sub Main() Console.Write("Entrez la taille du Tableau 1 : ") n = Console.ReadLine Dim t1(n) As Integer For i = 0 To n - 1 Console.Write("t(" & i + 1 & ")=") t1(i) = Console.ReadLine Next Console.Write("Entrez la taille du Tableau 2 : ") m = Console.ReadLine Dim t2(m) As Integer For i = 0 To m - 1 Console.Write("t(" & i + 1 & ")=") t2(i) = Console.ReadLine Next Dim t(c) As Integer s = 0 c = 0 For i = 0 To n - 1 For j = 0 To m - 1 |
Exercice VB: Produit Matriciel
Objectif :
Travailler avec les Tableaux à deux dimensions.
Travail à Faire :
- Ecrire un programme qui calcule le produit de tous les éléments d'une matrice.
- Ecrire un programme qui calcule le produit d'une matrice avec un vecteur.
- Donner un programme pour calculer le produit matriciel.
- Donner un programme pour tester si une matrice carrée est symétrique.
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
1. Module Module1 Dim i, j, n, m, P As Integer Sub Main() P = 1 Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes : ") m = Console.ReadLine Dim T(n, m) As Integer For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("Entrez l'élément T(" & i + 1 & ";" & j + 1 & ")" & " : ") T(i, j) = Console.ReadLine() Next Next For i = 0 To n - 1 For j = 0 To m - 1 P = P * T(i, j) Next Next Console.Write("Le produit est : " & P) Console.ReadLine() End Sub End Module 2. Module Module1 Dim i, S, n, m, j As Integer Sub Main() Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes : ") m = Console.ReadLine Dim T(n, m), V(m, 1), R(m, 1) As Integer For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("T(" & i + 1 & " , " & j + 1 & ") = ") T(i, j) = Console.ReadLine Next Next Console.WriteLine(" ") For i = 0 To m - 1 Console.Write("V(" & i + 1 & " , " & 1 & ") = ") V(i, 0) = Console.ReadLine Next For i = 0 To n - 1 S = 0 For j = 0 To m - 1 S = S + (T(i, j) * V(j, 0)) Next R(i, 0) = S Next For i = 0 To n - 1 Console.Write(R(i, 0) & " ") Next Console.ReadLine() End Sub End Module 3. Module Module1 Dim i, S, n, m, j As Integer Sub Main() Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes : ") m = Console.ReadLine Dim T(n, m), V(n, m), P(n, m) As Integer For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("T(" & i + 1 & " , " & j + 1 & ") = ") T(i, j) = Console.ReadLine Next Next Console.WriteLine(" ") For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("V(" & i + 1 & " , " & j + 1 & ") = ") V(i, j) = Console.ReadLine Next Next For i = 0 To n - 1 For j = 0 To m - 1 P(i, j) = (T(i, j) * V(i, j)) Next Next For i = 0 To n - 1 For j = 0 To m - 1 Console.Write(P(i, j) & " ") Next Console.WriteLine(" ") Next Console.ReadLine() End Sub End Module 4. Module Module1 Dim i, j, n, m, Cpt As Integer Sub Main() Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes : ") m = Console.ReadLine While (n m) Console.WriteLine("Pas careé") Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes: ") m = Console.ReadLine End While Dim T(n, m) As Integer For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("t(" & i + 1 & " , " & j + 1 & ") = ") T(i, j) = Console.ReadLine Next Next Cpt = 0 For i = 0 To n - 1 For j = 0 To m - 1 If T(i, j) T(j, i) Then Cpt = Cpt + 1 End If Next Next If (Cpt 0) Or (m n) Then Console.Write("Pas careé et symétrique") Else Console.Write("careé et symétrique") End If Console.ReadLine() End Sub End Module |
Exercice VB: séquences d'entiers positifs
Objectif:
Travailler avec Les tableaux à une seule dimension
Travail à Faire :
On considère deux séquences d'entiers positifs en ordre croissant représenté dans un tableau. Ecrire un Programme qui réalise l'interclassement des deux séquences : le résultat est un tableau contenant une troisième séquence en ordre croissant comportant tous les éléments présents dans les deux séquences lues. Si un même élément apparaître x fois dans la première séquence et y fois dans la deuxième, il doit apparaître x+y fois dans la séquence résultat. Les séquences lues peuvent être vides.
Exemple : séquence 1 : 1 1 3 4 11 11 25 28 30 30 32 40
Séquence 2 : 1 2 3 5 5 11 24 25 29
Séquence résultat : 1 1 1 2 3 3 4 5 5 11 11 11 24 25 25 28 29 30 30 32 40
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 |
Module Module1 Dim i, n, m, Temp, j, c, s As Integer Sub Main() c = 0 Console.Write("Entrez la taille du Tableau 1 : ") n = Console.ReadLine Dim t1(n) As Integer For i = 0 To n - 1 Console.Write("t1(" & i + 1 & ")=") t1(i) = Console.ReadLine Next Console.Write("Entrez la taille du Tableau 2 : ") m = Console.ReadLine Dim t2(n) As Integer For i = 0 To m - 1 Console.Write("t2(" & i + 1 & ")=") t2(i) = Console.ReadLine Next s = m + n Dim t(s) As Integer For i = 0 To n - 1 t(i) = t1(i) Next For i = n To s t(i) = t2(c) c = c + 1 Next For i = s - 1 To 1 Step -1 For j = 1 To i If t(j - 1) > t(j) Then Temp = t(j) t(j) = t(j - 1) t(j - 1) = Temp End If Next Next For i = 0 To s - 1 Console.Write(t(i) & " ") Next Console.ReadLine() End Sub End Module |
Exercice VB: structures répétitives
Objectif:
Travailler avec Les structures répétitives
Travail à Faire :
- Ecrire un Programme qui calcule et affiche la valeur de Y donnée par :
Y = N10 Si N ? 20
Y = N!Si N < 20
N étant un entier positif connu.
- Ecrire un Programme pour tester si un nombre est parfait. Un nombre est dit parfait s'il est égal à la somme de ses diviseurs stricts.
Exemple : 28 = 1 + 2 + 4 + 7 + 14.
- Un nombre entier P est premier si ses seuls diviseurs sont 1 et P. Ecrire un Programme qui permet de déterminer si un nombre est premier ou non.
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 |
1. Module Module1 Dim i, N As Integer Dim Y As Double Sub Main() Console.Write("Entrez la valeur de N : ") N = Console.ReadLine If N >= 20 Then Y = (N ^ 10) Else Y = 1 For i = 1 To N Y = Y * i Next End If Console.WriteLine("La valeur de Y est : " & Y) Console.ReadLine() End Sub End Module 2. Module Module1 Dim i, N, S As Integer Sub Main() Console.Write("Entrez un nombre : ") N = Console.ReadLine For i = 1 To N - 1 If N Mod i = 0 Then S = S + i End If Next If N = S Then Console.WriteLine(N & " est parfait") Else Console.WriteLine(N & " N'est pas parfait ") End If Console.ReadLine() End Sub End Module 3. Module Module1 Dim r, n, i As Integer Dim test As Boolean = True Sub Main() Console.Write("Entrez un nombre : ") n = Console.ReadLine If n = 0 Then Console.WriteLine(" Pas premie") ElseIf n = 1 Or n = 2 Then Console.WriteLine(" Premie") End If If n >= 3 Then For i = 2 To n - 1 r = n Mod i If r = 0 Then test = False End If Next If test = False Then Console.WriteLine("Le nombre " & n & " N'est pas Premie") Else Console.WriteLine("Le nombre " & n & " Est Premie") End If End If Console.ReadLine() End Sub End Module |
Exercice VB: Tableau & chaîne de caractères
Travail à Faire :
1. On considère un tableau comportant une séquence de chaîne de caractères. Ecrire un Programme qui affiche et compte toutes les chaînes qui contiennent au moins trois occurrences de caractère 'A'
Exemple : contenu du tableau : "Marouan" "Peace" " HAHAHA "
Résultat affiché : HAHAHA
2. On considère un tableau de caractères comportant un texte formé de lettres et d'espaces. Un mot est une suite de lettres délimitée par des espaces ou par les extrémités du texte. Ecrire un Programme qui affiche un message indiquant si le texte est un tautogramme, c'est à dire si tous les mots du texte commencent par la même lettre. Exemple : le lion lape le lait lentement.
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 |
1. Module Module1 Dim i, j, c, n As Integer Sub Main() Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As String For i = 0 To n - 1 Console.Write("t(" & i + 1 & ") = ") t(i) = Console.ReadLine Next Dim ch As String For i = 0 To n - 1 ch = t(i) c = 0 For j = 0 To ch.Length - 1 If ch(j) = "a" Or ch(j) = "A" Then c += 1 End If Next If c >= 3 Then Console.WriteLine(t(i) & " ") End If Next Console.ReadLine() End Sub End Module 2. Module Module1 Dim i, c As Integer Dim ch, s As String Sub Main() Console.Write("Entrez la chaîne : ") ch = Console.ReadLine c = 0 s = ch(0) For i = 1 To ch.Length - 1 If ch(i) = " " Then If ch(i + 1) s Then c += 1 End If End If Next If c = 0 Then Console.Write("Le texte est un tautogramme") Else Console.Write("Le texte n'est pas un tautogramme") End If Console.ReadLine() End Sub End Module |
Exercice VB: Tableau à une seul dimension
Objectif :
Travailler avec les Tableaux
Travail à Faire :
Ecrire le code en VB qui permet de :
- Créer un Tableau de 7 colonnes tab(7)
- Faire l’affichage du contenu de Tableau
- Faire la suppression le contenu d’une colonne du Tableau
- Faire l’ajout d’une nouvelle colonne
- Quitter le Programme
- Créer un Menu de choix
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 |
Module Module1 Dim O As String Dim rep As Char Dim nb, x, elem As Integer Public tab(7) As Integer Public i, j As Integer Sub menu() Console.WriteLine("1.tableau") Console.WriteLine("2.affichage") Console.WriteLine("3-suppression") Console.WriteLine("4-ajout") Console.WriteLine("5-quiter") End Sub Sub Main() Dim choix As String Dim rep As String Do menu() Console.WriteLine(" tapez votre choix") choix = Console.ReadLine Select Case choix Case 1 ReDim Preserve tab(7) tableau() Case 2 affichage(tab) Case 3 Console.WriteLine("saisir l'élément supprimer") Dim elem = Console.ReadLine tab = suppression(tab, elem) Case 4 ReDim Preserve tab(10) tab = ajout(tab) Case 5 quiter() Case Else Console.WriteLine("le choix que vous avez tapez est introuvable") End Select Console.WriteLine("voulez-vous contunier ?o/n") rep = Console.ReadLine Loop Until (rep = "n") End Sub Sub affichage(ByRef t() As Integer) For Each cellule In t Console.Write(cellule & vbTab) Next End Sub Function recherche(ByRef t() As Integer, ByVal ele As Integer) As Integer For i As Integer = 0 To t.GetUpperBound(0) If t(i) = ele Then Return i Exit For Else End If Next Return -1 End Function Public Function suppression(ByRef t() As Integer, ByVal ele As Integer) As Integer() Dim pos = recherche(t, ele) If pos -1 Then 'For i As Integer = 0 To t.GetUpperBound(0) i = 0 If pos t.GetUpperBound(0) Then Do t(pos + i) = t(pos + i + 1) i += 1 Loop Until t(pos + i) = t(t.GetUpperBound(0)) Else ReDim Preserve t(t.Length - 2) Return t End If End If ReDim Preserve t(t.Length - 2) Return t End Function Public Function ajout(ByRef t() As Integer) As Integer() ReDim Preserve tab(10) Console.Write("entrez la valeur de l'èlèment à ajoutè") nb = Console.ReadLine.ToUpper() t(t.GetUpperBound(0)) = nb Return t End Function Sub tableau() Dim tab(7) As Integer For i As Integer = 0 To UBound(tab) tab(i) = i Next For i As Integer = 0 To UBound(tab) Console.Out.WriteLine("tab(" + i.ToString + ")=" + tab(i).ToString) Next End Sub Public Sub quiter() Exit Sub End Sub End Module |
Exercice VB: Tableau & chaîne de caractères
Travail à Faire :
1. On considère un tableau comportant une séquence de chaîne de caractères. Ecrire un Programme qui affiche et compte toutes les chaînes qui contiennent au moins trois occurrences de caractère 'A'
Exemple : contenu du tableau : "Marouan" "Peace" " HAHAHA "
Résultat affiché : HAHAHA
2. On considère un tableau de caractères comportant un texte formé de lettres et d'espaces. Un mot est une suite de lettres délimitée par des espaces ou par les extrémités du texte. Ecrire un Programme qui affiche un message indiquant si le texte est un tautogramme, c'est à dire si tous les mots du texte commencent par la même lettre. Exemple : le lion lape le lait lentement.
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 |
1. Module Module1 Dim i, j, c, n As Integer Sub Main() Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As String For i = 0 To n - 1 Console.Write("t(" & i + 1 & ") = ") t(i) = Console.ReadLine Next Dim ch As String For i = 0 To n - 1 ch = t(i) c = 0 For j = 0 To ch.Length - 1 If ch(j) = "a" Or ch(j) = "A" Then c += 1 End If Next If c >= 3 Then Console.WriteLine(t(i) & " ") End If Next Console.ReadLine() End Sub End Module 2. Module Module1 Dim i, c As Integer Dim ch, s As String Sub Main() Console.Write("Entrez la chaîne : ") ch = Console.ReadLine c = 0 s = ch(0) For i = 1 To ch.Length - 1 If ch(i) = " " Then If ch(i + 1) s Then c += 1 End If End If Next If c = 0 Then Console.Write("Le texte est un tautogramme") Else Console.Write("Le texte n'est pas un tautogramme") End If Console.ReadLine() End Sub End Module |
Exercice VB: Traitement un peut plus complexe sur Les tableaux à une seule dimension
Objectif:
Travailler avec Les tableaux à une seule dimension
Travail à Faire :
7. Faire un programme qui calcule le produit scalaire de deux vecteurs d'entiers U et V (de même dimension).
Exemple :
/ \ / \
| 3 2 -4 | * | 2 -3 5| = 3 * 2 + 2 * (-3) + (-4) * 5 = -20
\ / \ /
8. Soit T un tableau d'entiers de taille n. Un plateau dans T est une suite d'éléments consécutifs et égaux de T. Le problème consiste à trouver le plus long plateau dans le tableau T.
Exemple :
Pour le tableau contenant les valeurs (2; 2; 6; 6; 6; 6; 3; 3; 6; 3; 3; 3; 2; 3; 3), le plus long plateau commence à l'indice 3 et il est de longueur 4.
Ecrire un Programme qui permet de résoudre le problème énoncé.
9. Trier les éléments d'un tableau par les méthodes suivantes :
- Tri à bulles.
- Tri par sélection.
- Tri par insertion.
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
7. Module Module1 Dim n, P, i As Integer Sub Main() Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim U(n), V(n) As Integer For i = 0 To n - 1 Console.Write("U(" & i + 1 & ") = ") U(i) = Console.ReadLine Next For i = 0 To n - 1 Console.Write("V(" & i + 1 & ") = ") V(i) = Console.ReadLine Next For i = 0 To n - 1 P += U(i) * V(i) Next Console.WriteLine("Le produit scalaire : " & P) Console.ReadLine() End Sub End Module 8. Module Module1 Sub Main() Dim i, n, pos, max, c As Integer Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As Integer For i = 0 To n - 1 Console.Write("t(" & i + 1 & ") = ") t(i) = Console.ReadLine Next max = 0 c = 1 For i = 1 To n - 1 If t(i) = t(i - 1) Then c = c + 1 Else c = 1 End If If c > max Then max = c pos = i - c + 2 End If Next Console.WriteLine("Le plus long plateau commence à l'indice : " & pos) Console.Write("Il est de longueur : " & max) Console.ReadLine() End Sub End Module 9. a. Module Module1 Sub Main() Dim i, n, j, temp As Integer Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As Integer For i = 0 To n - 1 Console.Write("t(" & i + 1 & ")=") t(i) = Console.ReadLine Next For i = n - 1 To 1 Step -1 For j = 1 To i If t(j - 1) > t(j) Then temp = t(j) t(j) = t(j - 1) t(j - 1) = temp End If Next Next For i = 0 To n - 1 Console.Write(t(i) & " ") Next Console.WriteLine(" ") Console.ReadLine() End Sub End Module b. Module module1 Sub main() Dim i, j, n, m, temp As Integer Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As Integer For i = 0 To n - 1 Console.Write("t(" & i + 1 & ")=") t(i) = Console.ReadLine Next For i = 0 To n - 2 m = i For j = i + 1 To n - 1 If t(j) < t(m) Then temp = t(m) t(m) = t(j) t(j) = temp m = i End If Next Next For i = 0 To n - 1 Console.Write(t(i) & " ") Next Console.ReadLine() End Sub End Module c. Module Module1 Dim i, j, n, elt As Integer Sub Main() Console.Write("Entrez la taille du Tableau : ") n = Console.ReadLine Dim t(n) As Integer For i = 0 To n - 1 Console.Write("t(" & i + 1 & ")=") t(i) = Console.ReadLine Next For i = 1 To n - 1 elt = t(i) j = i While t(j - 1) > elt And j > 0 t(j) = t(j - 1) j = j - 1 If j = 0 Then Exit While End If End While t(j) = elt Next For i = 0 To n - 1 Console.Write(t(i) & " ") Next Console.ReadLine() End Sub End Module |
Exercice VB: Travailler avec les Collections
Objectif :
Travailler avec les Collections ;
Travail à Faire :
Ecrire le programme qui permet de réaliser les opérations dans l’interface ci-dessus à l’aide d’une collection Arrayliste.
On initialisera la collection par les éléments suivants :
10, 20, 88, 88, 1, 60

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 106 107 108 109 110 111 112 113 114 115 116 117 |
Imports System.Collections Module Module1 Dim lst As New ArrayList Sub menu() Console.WriteLine("1.ecriture") Console.WriteLine("2.lecture") Console.WriteLine("3.ajout") Console.WriteLine("4.suppression") Console.WriteLine("5.insertion") Console.WriteLine("6.tri") Console.WriteLine("7.clear") Console.WriteLine("8.recherche") Console.WriteLine("9.quiter") End Sub Sub Main() Dim choix As String Dim rep As String Do menu() Console.WriteLine(" tapez votre choix") choix = Console.ReadLine Select Case choix Case 1 ecriture() Case 2 lecture() Case 3 ajout() Case 4 'Console.WriteLine("saisir l'élément supprimer") 'Dim elem = Console.ReadLine suppression() Case 5 insertion() Case 6 tri() Case 7 clear() Case 8 recherche() Case 9 Case Else Console.WriteLine("le choix que vous avez tapez est introuvable") End Select Console.WriteLine("voulez-vous contunier ?o/n") rep = Console.ReadLine Loop Until (rep = "n") End Sub Sub ecriture() lst.Add(10) lst.Add(20) lst.Add(88) lst.Add(88) lst.Add(1) lst.Add(60) End Sub Sub lecture() For i = 0 To lst.Count - 1 Console.WriteLine(lst(i)) Next End Sub Sub ajout() Dim i As Integer Dim rep As String Do Console.WriteLine("saisir l'élément", i + 1) lst.Add(Console.ReadLine) i += 1 Console.WriteLine("voulez vous ajouter un autre O/N") rep = Console.ReadLine.ToUpper Loop Until rep = "N" End Sub 'Sub suppression() ' Dim ele As Integer ' Console.WriteLine("entrez l'èlement à supprimer ") ' ele = Console.ReadLine ' If lst.Contains(ele) = True Then ' lst.Remove(ele) ' Else ' Console.WriteLine("l'element n'existe pas") ' End If 'End Sub Sub suppression() Dim i As Integer Console.WriteLine("saisir la position de l'élément à supprimer") i = Console.ReadLine lst.RemoveAt(i) End Sub Sub insertion() Dim ele As Integer Dim i As Integer Console.WriteLine("saisir l'élément à inserer ") ele = Console.ReadLine Console.WriteLine("saisir le position ou vous voulez inserer cette ele") i = Console.ReadLine lst.Insert(i, ele) End Sub Function recherche() Dim ele, i, k As Integer Console.WriteLine("saisir l'élément à rechercher") ele = Console.ReadLine If lst.Contains(ele) = True Then k = lst.IndexOf(ele) Return k Else End If Return -1 End Function Sub clear() lst.Clear() End Sub Sub tri() lst.Sort() End Sub End Module |
Exercice VB: Travailler plus avec les Structures Alternatives
Travail à Faire :
1. A partir d’un montant lu, on détermine un montant net par application d’une remise de :
- 1% si le montant est compris entre 2000 et 5000 DH (valeurs comprises)
- 2 % si le montant est supérieur à 5000 DH.
2. Ecrire un Programme permettant d'effectuer la somme, la différence, le produit et le rapport de deux nombres réels à partir d'un menu :
**********************Menu***********************
1 :---------------------Somme--------------------
2 :--------------------Différence------------------
3 :---------------------Produit---------------------
4 :---------------------Division--------------------
5 :---------------------Quitter---------------------
Taper votre choix?
On doit retourner au menu, lorsqu'on finit une opération ou si on tape un nombre incorrect (un message s'affichera).
3. Saisir 2 entiers a et b, déterminer dans R les racines de l'équation : ax + b =0
4. Saisir 3 entiers a, b et c, déterminer dans R les racines de l'équation :aX²+bX + c =0
5. Donnez un Programmequi lit sur l'entrée une valeur représentant une somme d'argent et qui calcule et affiche le nombre de billets de 200 DH, 100 DH, 50 DH et 20 DH, et les pièces de 10 DH, 5 DH, 2 DH, et 1 DH.
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
&. Module Module1 Dim montant, taux, remise As Double Sub Main() Console.Write("Entrez le montant : ") montant = Console.ReadLine If montant < 2000 Then taux = 0 Else If montant <= 5000 Then taux = 1 Else taux = 2 End If End If montant = montant * (1 - taux / 100) Console.Write("Le montant net est : " & montant) Console.ReadLine() End Sub End Module 2. Module Module1 Dim S, D, M, SO, Res, a, b As Double Dim choix As Integer Sub Main() Console.WriteLine("1 :-----------------Somme-------------------:") Console.WriteLine("2 :---------------Différence--------------: ") Console.WriteLine("3 :---------------Produit-----------------: ") Console.WriteLine("4 :---------------Division----------------: ") Console.WriteLine("5 :---------------Quitter-----------------: ") Console.Write(" ____________________Taper votre choix? _____: ") choix = Console.ReadLine If choix = 5 Then End End If Console.Write("Entrez la valeur de a : ") a = Console.ReadLine Console.Write("Entrez la valeur de b : ") b = Console.ReadLine Select Case choix Case 1 Res = a + b Console.Write("La Somme est : " & Res) Case 2 Res = a - b Console.Write("La Différence est : " & Res) Case 3 Res = a * b Console.Write("Le Produit est : " & Res) Case 4 If b = 0 Then Console.Write("a/0 est Impossible") Else Res = a / b Console.Write("La Division est : " & Res) End If Case Else Console.WriteLine("Erreur de choix!!") End Select Console.ReadLine() End Sub End Module 3. Module Module1 Dim a, b, x As Double Sub Main() Console.Write("Entrez la valeur de a : ") a = Console.ReadLine Console.Write("Entrez la valeur de b : ") b = Console.ReadLine If a = 0 Then If b = 0 Then Console.WriteLine("La solution est R") Else Console.WriteLine("Pas de solution") End If Else x = -b / a Console.Write("La solution est : " & x) End If Console.ReadLine() End Sub End Module 4. Module Module1 Dim a, b, c As Integer Dim x1, x2, Delta As Double Sub Main() Console.Write("Entrez la valeur de a : ") a = Console.ReadLine Console.Write("Entrez la valeur de b : ") b = Console.ReadLine Console.Write("Entrez la valeur de c : ") c = Console.ReadLine If a 0 Then Delta = (b * b) - (4 * a * c) Console.WriteLine("Delta = " & delta) If delta = 0 Then x1 = -b / 2 * a ElseIf Delta > 0 Then x1 = ((-b) + (Math.Sqrt(Delta))) / (2 * a) x2 = ((-b) - (Math.Sqrt(Delta))) / (2 * a) Console.WriteLine("x1 = " & x1) Console.WriteLine("x2 = " & x2) End If Else If b = 0 Then If c 0 Then Console.WriteLine("Pas de solution") Else Console.WriteLine("La solution est R") End If Else x1 = -c / b Console.WriteLine("x1 = " & x1) End If End If Console.ReadLine() End Sub End Module 5. Module Module1 Dim a,s As Intege Sub Main() Console.Write("Entrez la somme d'argent : ") s = Console.ReadLine If s >= 200 Then a = s \ 200 s = s Mod 200 Console.Write(a & " Billet de 200 DH. ") End If If s >= 100 Then a = s \ 100 s = s Mod 100 Console.Write(a & " Billet de 100 DH. ") End If If s >= 50 Then a = s \ 50 s = s Mod 50 Console.Write(a & " Billet de 50 DH. ") End If If s >= 20 Then a = s \ 20 s = s Mod 20 Console.Write(a & " Billet de 20 DH. ") End If If s >= 10 Then a = s \ 10 s = s Mod 10 Console.Write(a & " Piéce de 10 DH. ") End If If s >= 5 Then a = s \ 5 s = s Mod 5 Console.Write(a & " Piéce de 5 DH. ") End If If s >= 2 Then a = s \ 2 s = s Mod 2 Console.Write(a & " Piéce de 2 DH. ") End If If s >= 1 Then a = s \ 1 s = s Mod 1 Console.Write(a & " Piéce de 1 DH. ") End If Console.ReadLine() End Sub End Module |
Exercice Visual Basic : Adhérant
Ecrire le programme VB qui permet de réaliser l'interface suivante:
- La boutton "+" sert à afficher un nouveau Formulaire dans la même Interface qui permet d'ajouter un nouveau Adhérant et l'enregister dans une Base de donnée
- La boutton avec l'icône de disquette sert à Enregestrer les modéfication et les nouveau information concernant un Adhérant dans une Base de donnée
- Les bouttons avec les flèches serts à faire la navigation
- La Boutton "X" sert à supprimer les données d'un Adhérant
- La Boutton Rechercher sert à afficher un formulaire dans le même Interface pour la recherche d'un Adhérant
- La Boutton "C" sert à annuler l'action en cour


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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 |
Public Class Form2 Inherits System.Windows.Forms.Form Dim rownumber As Integer Dim caption As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Odataset.Clear() Odataset.Reset() Connection() Ocommande.CommandText = "select * FROM ADHERANTS ;" Ocommande.Connection = Oconnexion Odadapter.SelectCommand = Ocommande Odadapter.Fill(Odataset) Otable = Odataset.Tables(0) Remplirchamps(rownumber) If Otable.Rows.Count < 1 Then PictureBox3.Enabled = False PictureBox4.Enabled = False PictureBox5.Enabled = False PictureBox6.Enabled = False PictureBox8.Enabled = False PictureBox9.Enabled = False End If PictureBox1.Image = Image.FromFile(Application.StartupPath & "\img\add.yo") PictureBox2.Image = Image.FromFile(Application.StartupPath & "\img\save.yo") PictureBox3.Image = Image.FromFile(Application.StartupPath & "\img\next.yo") PictureBox4.Image = Image.FromFile(Application.StartupPath & "\img\pre.yo") PictureBox5.Image = Image.FromFile(Application.StartupPath & "\img\del.yo") PictureBox6.Image = Image.FromFile(Application.StartupPath & "\img\search.yo") PictureBox7.Image = Image.FromFile(Application.StartupPath & "\img\cancel.yo") PictureBox8.Image = Image.FromFile(Application.StartupPath & "\img\first.yo") PictureBox9.Image = Image.FromFile(Application.StartupPath & "\img\last.yo") End Sub Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 'preparation d'ajout Viderchamps() Oligne = Odataset.Tables(0).NewRow PictureBox1.Enabled = False PictureBox3.Enabled = False PictureBox4.Enabled = False PictureBox5.Enabled = False PictureBox6.Enabled = False PictureBox8.Enabled = False PictureBox9.Enabled = False PictureBox2.Enabled = True PictureBox7.Enabled = True Panel1.Visible = True Panel2.Visible = False TxtNom.Focus() End Sub Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click 'ajout d'adherants If Me.TxtCode.Text = "" Or Me.TxtPrenom.Text = "" Or Me.TxtNom.Text = "" Or TxtDNais.TextLength < 8 Or TxtDNais.TextLength > 10 Or TxtDInsc.TextLength < 8 Or TxtDInsc.TextLength > 10 Then MsgBox("Il faut remplire les champs d'abord !§!", MsgBoxStyle.Information, "Smah lia") Else Oligne("code") = Me.TxtCode.Text Oligne("nom") = Me.TxtNom.Text Oligne("prenom") = Me.TxtPrenom.Text Oligne("typefor") = Me.ComboForm.Text Oligne("duree") = Me.ComboDuree.Text Oligne("niveauconn") = Me.ComboConn.Text Oligne("datenaissance") = Me.TxtDNais.Text Oligne("lieunaissance") = Me.TxtLNais.Text Oligne("niveauscol") = Me.TxtNScol.Text Oligne("institut") = Me.TxtInst.Text Oligne("adresse") = Me.TxtAdresse.Text Oligne("tel") = Me.TxtTel.Text Oligne("dateinscription") = Me.TxtDInsc.Text Odataset.Tables(0).Rows.Add(Oligne) Ocbuilder.DataAdapter = Odadapter Odadapter.Update(Odataset) Odataset.Clear() Odadapter.Fill(Odataset) Otable = Odataset.Tables(0) Remplirchamps(rownumber) PictureBox1.Enabled = True PictureBox3.Enabled = True PictureBox4.Enabled = True PictureBox5.Enabled = True PictureBox6.Enabled = True PictureBox8.Enabled = True PictureBox9.Enabled = True PictureBox2.Enabled = False PictureBox7.Enabled = False Panel1.Visible = False Panel2.Visible = True End If End Sub Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click rownumber += 1 If rownumber <= Otable.Rows.Count - 1 Then Remplirchamps(rownumber) Else rownumber -= 1 End If End Sub Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox4.Click rownumber -= 1 If rownumber >= 0 Then Remplirchamps(rownumber) Else rownumber += 1 End If End Sub Private Sub PictureBox7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox7.Click PictureBox1.Enabled = True PictureBox3.Enabled = True PictureBox4.Enabled = True PictureBox5.Enabled = True PictureBox6.Enabled = True PictureBox8.Enabled = True PictureBox9.Enabled = True PictureBox2.Enabled = False PictureBox7.Enabled = False Panel1.Visible = False Panel3.Visible = False Panel2.Visible = True End Sub Private Sub PictureBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox6.Click PictureBox1.Enabled = False PictureBox3.Enabled = False PictureBox4.Enabled = False PictureBox5.Enabled = False PictureBox6.Enabled = False PictureBox2.Enabled = False PictureBox8.Enabled = False PictureBox9.Enabled = False PictureBox7.Enabled = True Panel1.Visible = False Panel2.Visible = False Panel3.Visible = True TextBox1.Focus() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i As Integer For i = rownumber To Otable.Rows.Count - 1 If TextBox1.Text = Otable.Rows(i).Item("code") Then Remplirchamps(i) Panel3.Visible = False Panel2.Visible = True Panel1.Visible = False PictureBox1.Enabled = True PictureBox3.Enabled = True PictureBox4.Enabled = True PictureBox5.Enabled = True PictureBox6.Enabled = True PictureBox8.Enabled = True PictureBox9.Enabled = True PictureBox2.Enabled = False PictureBox7.Enabled = False Exit For ElseIf i = Otable.Rows.Count - 1 Then MsgBox("Pas d'adhérant avec ce code la !§!", MsgBoxStyle.Information, "Smah lia") End If Next End Sub Private Sub PictureBox9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox9.Click rownumber = Otable.Rows.Count - 1 Remplirchamps(rownumber) End Sub Private Sub PictureBox8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox8.Click rownumber = 0 Remplirchamps(rownumber) End Sub Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox5.Click Odataset.Tables(0).Rows(rownumber).Delete() Ocbuilder.DataAdapter = Odadapter Odadapter.Update(Odataset) Odataset.Clear() Odadapter.Fill(Odataset) rownumber = 0 Otable = Odataset.Tables(rownumber) If Odataset.Tables(0).Rows.Count < 1 Then PictureBox5.Enabled = False End If End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim f4 As New Form3 f4.Show() End Sub Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick If (Label19.Left < Panel1.Width) Then Label19.Left += 6 Else Label19.Left = -Panel1.Width End If End Sub End Class ----------------------------------------------------------------------------- Imports System.Data.OleDb Module Module1 Public Oconnexion As New OleDbConnection Public Ocommande As New OleDbCommand Public Odadapter As New OleDbDataAdapter Public Odataset As New DataSet Public Ocbuilder As New OleDbCommandBuilder Public Otable As New DataTable Public Oligne As DataRow Public strconn As String Public strsql As String Public comptopacity As Integer Public Sub Connection() strconn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=img\bd1.yo;" Try Oconnexion = New OleDbConnection Oconnexion.ConnectionString = strconn Oconnexion.Open() Catch ex As OleDbException MsgBox(ex.Message) End Try End Sub End Module |