Exercice VB: Gestion Stagiaires avec Fichier et Collection

Un stagiaire est connu par les Informations suivantes :

  1. Son numéro
  2. Son Nom
  3. Son Prénom
  4. Sa 1ère Note, 2ème Note, 3ème Note
  5. Moyenne Générale
  6. Décision : Si Moyenne Générale >=10 alors il est Admis si non il est 2liminé
  7. Sa Mention si :
    1. Moyenne    >= 17 Alors Mention    = "excellent"
    2. Moyenne    >= 16 Alors Mention    = "T.B"
    3. Moyenne    >= 14 Alors Mention    = "B"
    4. Moyenne    >= 13 Alors Mention    = "assez.B"
    5. Moyenne    >= 12 Alors Mention    = "A.B"
    6. 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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168Imports System.CollectionsModule 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 SubEnd 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
12345678910111213141516171819202122232425262728293031323334353637381.Module Module1Dim i, j, n, s, c, m As IntegerSub Main()Console.Write("Entrez la taille du Tableau 1 : ")n = Console.ReadLineDim t1(n) As IntegerFor i = 0 To n - 1Console.Write("t(" & i + 1 & ")=")t1(i) = Console.ReadLineNextConsole.Write("Entrez la taille du Tableau 2 : ")m = Console.ReadLineDim t2(m) As IntegerFor i = 0 To m - 1Console.Write("t(" & i + 1 & ")=")t2(i) = Console.ReadLineNextDim t(c) As Integers = 0c = 0For i = 0 To n - 1For j = 0 To m - 1
If t1(s) = t2(j) Thent(c) = t1(s)c = c + 1ReDim Preserve t(c)End IfNexts = s + 1NextFor i = 0 To c - 1Console.Write(t(i) & " ")NextConsole.ReadLine()End SubEnd Module

Exercice VB: Produit Matriciel

Objectif :

Travailler avec les Tableaux à deux dimensions.

Travail à Faire :

  1. Ecrire un programme qui calcule le produit de tous les éléments d'une matrice.
  2. Ecrire un programme qui calcule le produit d'une matrice avec un vecteur.
  3. Donner un programme pour calculer le produit matriciel.
  4. Donner un programme pour tester si une matrice carrée est symétrique.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361.Module Module1Dim i, j, n, m, P As IntegerSub Main()P = 1Console.Write("Entrez le nombre de lignes : ")n = Console.ReadLineConsole.Write("Entrez le nombre de colonnes : ")m = Console.ReadLineDim T(n, m) As IntegerFor i = 0 To n - 1For j = 0 To m - 1Console.Write("Entrez l'élément T(" & i + 1 & ";" & j + 1& ")" & " : ")T(i, j) = Console.ReadLine()NextNextFor i = 0 To n - 1For j = 0 To m - 1P = P * T(i, j)NextNextConsole.Write("Le produit est : " & P)Console.ReadLine()End SubEnd Module2.Module Module1Dim i, S, n, m, j As IntegerSub Main()Console.Write("Entrez le nombre de lignes : ")n = Console.ReadLineConsole.Write("Entrez le nombre de colonnes : ")m = Console.ReadLineDim T(n, m), V(m, 1), R(m, 1) As IntegerFor i = 0 To n - 1For j = 0 To m - 1Console.Write("T(" & i + 1 & " , " & j + 1 & ") = ")T(i, j) = Console.ReadLineNextNextConsole.WriteLine(" ")For i = 0 To m - 1Console.Write("V(" & i + 1 & " , " & 1 & ") = ")V(i, 0) = Console.ReadLineNextFor i = 0 To n - 1S = 0For j = 0 To m - 1S = S + (T(i, j) * V(j, 0))NextR(i, 0) = SNextFor i = 0 To n - 1Console.Write(R(i, 0) & " ")NextConsole.ReadLine()End SubEnd Module3.Module Module1Dim i, S, n, m, j As IntegerSub Main()Console.Write("Entrez le nombre de lignes : ")n = Console.ReadLineConsole.Write("Entrez le nombre de colonnes : ")m = Console.ReadLineDim T(n, m), V(n, m), P(n, m) As IntegerFor i = 0 To n - 1For j = 0 To m - 1Console.Write("T(" & i + 1 & " , " & j + 1 & ") = ")T(i, j) = Console.ReadLineNextNextConsole.WriteLine(" ")For i = 0 To n - 1For j = 0 To m - 1Console.Write("V(" & i + 1 & " , " & j + 1 & ") = ")V(i, j) = Console.ReadLineNextNextFor i = 0 To n - 1For j = 0 To m - 1P(i, j) = (T(i, j) * V(i, j))NextNextFor i = 0 To n - 1For j = 0 To m - 1Console.Write(P(i, j) & " ")NextConsole.WriteLine(" ")NextConsole.ReadLine()End SubEnd Module4.Module Module1Dim i, j, n, m, Cpt As IntegerSub Main()Console.Write("Entrez le nombre de lignes : ")n = Console.ReadLineConsole.Write("Entrez le nombre de colonnes : ")m = Console.ReadLineWhile (n m)Console.WriteLine("Pas careé")Console.Write("Entrez le nombre de lignes : ")n = Console.ReadLineConsole.Write("Entrez le nombre de colonnes: ")m = Console.ReadLineEnd WhileDim T(n, m) As IntegerFor i = 0 To n - 1For j = 0 To m - 1Console.Write("t(" & i + 1 & " , " & j + 1 & ") = ")T(i, j) = Console.ReadLineNextNextCpt = 0For i = 0 To n - 1For j = 0 To m - 1If T(i, j) T(j, i) ThenCpt = Cpt + 1End IfNextNextIf (Cpt 0) Or (m n) ThenConsole.Write("Pas careé et symétrique")ElseConsole.Write("careé et symétrique")End IfConsole.ReadLine()End SubEnd 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

123456789101112131415161718192021222324252627282930313233343536373839404142Module Module1Dim i, n, m, Temp, j, c, s As IntegerSub Main()c = 0Console.Write("Entrez la taille du Tableau 1 : ")n = Console.ReadLineDim t1(n) As IntegerFor i = 0 To n - 1Console.Write("t1(" & i + 1 & ")=")t1(i) = Console.ReadLineNextConsole.Write("Entrez la taille du Tableau 2 : ")m = Console.ReadLineDim t2(n) As IntegerFor i = 0 To m - 1Console.Write("t2(" & i + 1 & ")=")t2(i) = Console.ReadLineNexts = m + nDim t(s) As IntegerFor i = 0 To n - 1t(i) = t1(i)NextFor i = n To st(i) = t2(c)c = c + 1NextFor i = s - 1 To 1 Step -1For j = 1 To iIf t(j - 1) > t(j) ThenTemp = t(j)t(j) = t(j - 1)t(j - 1) = TempEnd IfNextNextFor i = 0 To s - 1Console.Write(t(i) & " ")NextConsole.ReadLine()End SubEnd 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

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.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667681.Module Module1Dim i, N As IntegerDim Y As DoubleSub Main()Console.Write("Entrez la valeur de N : ")N = Console.ReadLineIf N >= 20 ThenY = (N ^ 10)ElseY = 1For i = 1 To NY = Y * iNextEnd IfConsole.WriteLine("La valeur de Y est : " & Y)Console.ReadLine()End SubEnd Module2.Module Module1Dim i, N, S As IntegerSub Main()Console.Write("Entrez un nombre : ")N = Console.ReadLineFor i = 1 To N - 1If N Mod i = 0 ThenS = S + iEnd IfNextIf N = S ThenConsole.WriteLine(N & " est parfait")ElseConsole.WriteLine(N & " N'est pas parfait ")End IfConsole.ReadLine()End SubEnd Module3.Module Module1Dim r, n, i As IntegerDim test As Boolean = TrueSub Main()Console.Write("Entrez un nombre : ")n = Console.ReadLineIf n = 0 ThenConsole.WriteLine(" Pas premie")ElseIf n = 1 Or n = 2 ThenConsole.WriteLine(" Premie")End IfIf n >= 3 ThenFor i = 2 To n - 1r = n Mod iIf r = 0 Thentest = FalseEnd IfNextIf test = False ThenConsole.WriteLine("Le nombre " & n & " N'est pas Premie")ElseConsole.WriteLine("Le nombre " & n & " Est Premie")End IfEnd IfConsole.ReadLine()End SubEnd 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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051521.Module Module1Dim i, j, c, n As IntegerSub Main()Console.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As StringFor i = 0 To n - 1Console.Write("t(" & i + 1 & ") = ")t(i) = Console.ReadLineNextDim ch As StringFor i = 0 To n - 1ch = t(i)c = 0For j = 0 To ch.Length - 1If ch(j) = "a" Or ch(j) = "A" Thenc += 1End IfNextIf c >= 3 ThenConsole.WriteLine(t(i) & " ")End IfNextConsole.ReadLine()End SubEnd Module2.Module Module1Dim i, c As IntegerDim ch, s As StringSub Main()Console.Write("Entrez la chaîne : ")ch = Console.ReadLinec = 0s = ch(0)For i = 1 To ch.Length - 1If ch(i) = " " ThenIf ch(i + 1) s Thenc += 1End IfEnd IfNextIf c = 0 ThenConsole.Write("Le texte est un tautogramme")ElseConsole.Write("Le texte n'est pas un tautogramme")End IfConsole.ReadLine()End SubEnd Module

Exercice VB: Tableau à une seul dimension

Objectif :

Travailler avec les Tableaux

Travail à Faire :

Ecrire le code en VB qui permet de :

  1. Créer un Tableau de 7 colonnes tab(7)
  2. Faire l’affichage du contenu de Tableau
  3. Faire la suppression le contenu d’une colonne du Tableau
  4. Faire l’ajout d’une nouvelle colonne
  5. Quitter le Programme
  6. Créer un Menu de choix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899Module 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 SubEnd 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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051521.Module Module1Dim i, j, c, n As IntegerSub Main()Console.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As StringFor i = 0 To n - 1Console.Write("t(" & i + 1 & ") = ")t(i) = Console.ReadLineNextDim ch As StringFor i = 0 To n - 1ch = t(i)c = 0For j = 0 To ch.Length - 1If ch(j) = "a" Or ch(j) = "A" Thenc += 1End IfNextIf c >= 3 ThenConsole.WriteLine(t(i) & " ")End IfNextConsole.ReadLine()End SubEnd Module2.Module Module1Dim i, c As IntegerDim ch, s As StringSub Main()Console.Write("Entrez la chaîne : ")ch = Console.ReadLinec = 0s = ch(0)For i = 1 To ch.Length - 1If ch(i) = " " ThenIf ch(i + 1) s Thenc += 1End IfEnd IfNextIf c = 0 ThenConsole.Write("Le texte est un tautogramme")ElseConsole.Write("Le texte n'est pas un tautogramme")End IfConsole.ReadLine()End SubEnd 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 :

  1. Tri à bulles.
  2. Tri par sélection.
  3. Tri par insertion.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381397.Module Module1Dim n, P, i As IntegerSub Main()Console.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim U(n), V(n) As IntegerFor i = 0 To n - 1Console.Write("U(" & i + 1 & ") = ")U(i) = Console.ReadLineNextFor i = 0 To n - 1Console.Write("V(" & i + 1 & ") = ")V(i) = Console.ReadLineNextFor i = 0 To n - 1P += U(i) * V(i)NextConsole.WriteLine("Le produit scalaire : " & P)Console.ReadLine()End SubEnd Module8.Module Module1Sub Main()Dim i, n, pos, max, c As IntegerConsole.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As IntegerFor i = 0 To n - 1Console.Write("t(" & i + 1 & ") = ")t(i) = Console.ReadLineNextmax = 0c = 1For i = 1 To n - 1If t(i) = t(i - 1) Thenc = c + 1Elsec = 1End IfIf c > max Thenmax = cpos = i - c + 2End IfNextConsole.WriteLine("Le plus long plateau commence à l'indice : " &pos)Console.Write("Il est de longueur : " & max)Console.ReadLine()End SubEnd Module9.a.Module Module1Sub Main()Dim i, n, j, temp As IntegerConsole.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As IntegerFor i = 0 To n - 1Console.Write("t(" & i + 1 & ")=")t(i) = Console.ReadLineNextFor i = n - 1 To 1 Step -1For j = 1 To iIf t(j - 1) > t(j) Thentemp = t(j)t(j) = t(j - 1)t(j - 1) = tempEnd IfNextNextFor i = 0 To n - 1Console.Write(t(i) & " ")NextConsole.WriteLine(" ")Console.ReadLine()End SubEnd Moduleb.Module module1Sub main()Dim i, j, n, m, temp As IntegerConsole.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As IntegerFor i = 0 To n - 1Console.Write("t(" & i + 1 & ")=")t(i) = Console.ReadLineNextFor i = 0 To n - 2m = iFor j = i + 1 To n - 1If t(j) (m) Thentemp = t(m)t(m) = t(j)t(j) = tempm = iEnd IfNextNextFor i = 0 To n - 1Console.Write(t(i) & " ")NextConsole.ReadLine()End SubEnd Modulec.Module Module1Dim i, j, n, elt As IntegerSub Main()Console.Write("Entrez la taille du Tableau : ")n = Console.ReadLineDim t(n) As IntegerFor i = 0 To n - 1Console.Write("t(" & i + 1 & ")=")t(i) = Console.ReadLineNextFor i = 1 To n - 1elt = t(i)j = iWhile t(j - 1) > elt And j > 0t(j) = t(j - 1)j = j - 1If j = 0 ThenExit WhileEnd IfEnd Whilet(j) = eltNextFor i = 0 To n - 1Console.Write(t(i) & " ")NextConsole.ReadLine()End SubEnd 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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117Imports System.CollectionsModule 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 SubEnd 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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174&.Module Module1Dim montant, taux, remise As DoubleSub Main()Console.Write("Entrez le montant : ")montant = Console.ReadLineIf montant 2000 Thentaux = 0ElseIf montant = 5000 Thentaux = 1Elsetaux = 2End IfEnd Ifmontant = montant * (1 - taux / 100)Console.Write("Le montant net est : " & montant)Console.ReadLine()End SubEnd Module2.Module Module1Dim S, D, M, SO, Res, a, b As DoubleDim choix As IntegerSub 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.ReadLineIf choix = 5 ThenEndEnd IfConsole.Write("Entrez la valeur de a : ")a = Console.ReadLineConsole.Write("Entrez la valeur de b : ")b = Console.ReadLineSelect Case choixCase 1Res = a + bConsole.Write("La Somme est : " & Res)Case 2Res = a - bConsole.Write("La Différence est : " & Res)Case 3Res = a * bConsole.Write("Le Produit est : " & Res)Case 4If b = 0 ThenConsole.Write("a/0 est Impossible")ElseRes = a / bConsole.Write("La Division est : " & Res)End IfCase ElseConsole.WriteLine("Erreur de choix!!")End SelectConsole.ReadLine()End SubEnd Module3.Module Module1Dim a, b, x As DoubleSub Main()Console.Write("Entrez la valeur de a : ")a = Console.ReadLineConsole.Write("Entrez la valeur de b : ")b = Console.ReadLineIf a = 0 ThenIf b = 0 ThenConsole.WriteLine("La solution est R")ElseConsole.WriteLine("Pas de solution")End IfElsex = -b / aConsole.Write("La solution est : " & x)End IfConsole.ReadLine()End SubEnd Module4.Module Module1Dim a, b, c As IntegerDim x1, x2, Delta As DoubleSub Main()Console.Write("Entrez la valeur de a : ")a = Console.ReadLineConsole.Write("Entrez la valeur de b : ")b = Console.ReadLineConsole.Write("Entrez la valeur de c : ")c = Console.ReadLineIf a 0 ThenDelta = (b * b) - (4 * a * c)Console.WriteLine("Delta = " & delta)If delta = 0 Thenx1 = -b / 2 * aElseIf Delta > 0 Thenx1 = ((-b) + (Math.Sqrt(Delta))) / (2 * a)x2 = ((-b) - (Math.Sqrt(Delta))) / (2 * a)Console.WriteLine("x1 = " & x1)Console.WriteLine("x2 = " & x2)End IfElseIf b = 0 ThenIf c 0 ThenConsole.WriteLine("Pas de solution")ElseConsole.WriteLine("La solution est R")End IfElsex1 = -c / bConsole.WriteLine("x1 = " & x1)End IfEnd IfConsole.ReadLine()End SubEnd Module5.Module Module1Dim a,s As IntegeSub Main()Console.Write("Entrez la somme d'argent : ")s = Console.ReadLineIf s >= 200 Thena = s \ 200s = s Mod 200Console.Write(a & " Billet de 200 DH. ")End IfIf s >= 100 Thena = s \ 100s = s Mod 100Console.Write(a & " Billet de 100 DH. ")End IfIf s >= 50 Thena = s \ 50s = s Mod 50Console.Write(a & " Billet de 50 DH. ")End IfIf s >= 20 Thena = s \ 20s = s Mod 20Console.Write(a & " Billet de 20 DH. ")End IfIf s >= 10 Thena = s \ 10s = s Mod 10Console.Write(a & " Piéce de 10 DH. ")End IfIf s >= 5 Thena = s \ 5s = s Mod 5Console.Write(a & " Piéce de 5 DH. ")End IfIf s >= 2 Thena = s \ 2s = s Mod 2Console.Write(a & " Piéce de 2 DH. ")End IfIf s >= 1 Thena = s \ 1s = s Mod 1Console.Write(a & " Piéce de 1 DH. ")End IfConsole.ReadLine()End SubEnd 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218Public 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 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 Or TxtDNais.TextLength > 10 Or TxtDInsc.TextLength 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 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 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 Then Label19.Left += 6 Else Label19.Left = -Panel1.Width End If End SubEnd Class-----------------------------------------------------------------------------Imports System.Data.OleDbModule 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 SubEnd Module
Article publié le 01 Janvier 2012 Mise à jour le Samedi, 17 Décembre 2022 00:09 par Babachekhe Mohamed