Auteur Auteur

EXERCICES RESOLUS EN VISUAL BASIC

EXERCICES RESOLUS EN VISUAL BASIC

EXERCICE 21

EXERCICE 21

Proposez en Visual basic en mode console un programme demandant à l’utilisateur la saisie de 10 nombres premiers compris entre 1 et 100 qui seront sauvegardés dans un tableau linéaire, puis partant de ces 10 nombres, le programme calcule et affiche la somme ainsi que la moyenne de tous les nombres impairs.

Solution

Solution


Module Module1
    Sub Main()
        Dim A(9) As Integer
        Dim i, n As Integer
        Dim test As Boolean
        'lecture de nombres premiers 
        i = 0
        Do
            Console.WriteLine("entrez un autre nombre premier entre 1 et 100")
5:          n = CInt(Console.ReadLine())
            test = True
            For j As Integer = 2 To n - 1
                If n Mod j = 0 Then
                    test = False
                End If
            Next
            If n < 1 Or n > 100 Or test = False Then
                Console.WriteLine("Le nombre saisi n'est pas premier ou n'est pas inclus de 1 à 100, recommencez")
                GoTo 5
            Else
                A(i) = n
                i += 1
            End If
        Loop Until i = 10
        'calcul de la somme et moyenne de nombres impaires 
        Dim moyenne, somme, t As Integer
        moyenne = 0
        somme = 0
        t = 0
        For J As Integer = 0 To 9
            If A(J) Mod 2 <> 0 Then
                somme += A(J)
                t += 1
            End If
        Next
        If t = 0 Then
            moyenne = 0
        Else
            moyenne = somme / t
        End If
        Console.WriteLine("La moyenne des nombres impairs vaut : " & moyenne)
        Console.WriteLine("La somme des nombres impairs vaut :  " & somme)
        Console.ReadLine()
    End Sub
End Module

EXERCICE 22

EXERCICE 22

Ecrire un programme en Visual basic en mode console utilisant un tableau linéaire de taille 50. Ce programme lit un nombre réel et l’insère dans le tableau si celui-ci est compris entre 65 et 100 et qu’il n’a jamais été inséré auparavant.

Solution

Solution


Module Module1
    Sub Main()
        Dim A(49) As Single
        Dim n As Single
        Dim test As Boolean
        test = False
        Console.WriteLine("Saisie des éléments du tableau")
        For i As Integer = 0 To 49
            Console.WriteLine("entrez l'élément n° " & i + 1)
            A(i) = Val(Console.ReadLine())
        Next
        Console.WriteLine("entrez un nombre réel")
        n = Val(Console.ReadLine())
        For j As Integer = 0 To 49
            If A(j) = n Then
                test = True
            End If
        Next
        If test = True Or (n < 65 Or n > 100) Then
            Console.WriteLine("Le nombre a deja été inseré ou il n'est pas compris entre 65 et 100")
        ElseIf test = False Then
            'on redimensionne le tableau pour inserer l'élément 
            ReDim Preserve A(50)
            A(50) = n
            'on affiche le nouveau tableau 
            Console.WriteLine("Voici le nouveau tableau")
            For i As Integer = 0 To 50
                Console.WriteLine(A(i).ToString)
            Next
        End If
        Console.ReadLine()
    End Sub
End Module

EXERCICE 23

EXERCICE 23

Proposez en Visual Basic.Net en mode console, un programme demandant à l’utilisateur la saisie de 50 nombres quelconques compris entre 1 et 100 qui seront sauvegardés dans un tableau linéaire, puis partant de ces 50 nombres, le programme calcule et affiche la somme ainsi que la moyenne géométrique de tous les nombres divisibles par 5.

Solution

Solution


Module Module1
    Sub Main()
        Dim A(49) As Integer
        Dim somme, produit As Integer
        Dim g As Single
        Dim i, n, t As Integer
        i = 0
        Do
            Console.WriteLine("entrez un nombre compris entre 1 et 100")
5:          t = Val(Console.ReadLine())
            If t < 1 Or t > 100 Then
                Console.WriteLine("Entrez seulement un nombre entre 1 et 100, recommencez")
                GoTo 5
            Else
                Console.WriteLine("nombre correct")
                A(i) = t
                i += 1
            End If
        Loop Until i = 50
        'calcul de la somme et de la moyenne des nombres divisibles par 5 
        somme = 0
        produit = 1
        n = 0
        For J As Integer = 0 To 49
            If A(J) Mod 5 = 0 Then
                somme += A(J)
                produit *= A(J)
                n += 1
            End If
        Next
        If n = 0 Then
            g = 0
        Else
            g = (produit) ^ (1 / n)
        End If
        Console.WriteLine("La somme des nombres divisibles par 5 vaut :" & somme)
        Console.WriteLine("La moyenne géometrique des nombres divisibles par 5 vaut: " & g)
        Console.ReadLine()
    End Sub
End Module

EXERCICE 24

EXERCICE 24

L’interclassement consiste à réunir en une seule liste triée, deux listes qui sont préalablement triées. Ecrire une procédure interclas qui reçoit en argument deux tableaux triés A de dimension N et B de dimension P, puis effectue l’interclassement et afficher le résultat final.
(Attention : sans utiliser l’algorithme de tri)

Solution

Solution


Module Module1
    Sub Main()
        Dim n, p, i, j As Integer
        Console.WriteLine("entrez la taille du premier tableau")
        n = CInt(Console.ReadLine())
        Dim A(n - 1) As Integer
        Console.WriteLine("entrez la taille du deuxieme tableau")
        p = CInt(Console.ReadLine())
        Dim B(p - 1) As Integer
        Console.WriteLine("lecture des elements du premier tableau")
        For i = 0 To n - 1
            Console.WriteLine("entrez l'élément n°  " & i + 1)
            A(i) = CInt(Console.ReadLine())
        Next
        'on trie le tableau A 
        Array.Sort(A)
        Console.WriteLine("lecture des elements du deuxieme tableau")
        For i = 0 To p - 1
            Console.WriteLine("entrez l'élément n°  " & i + 1)
            B(i) = CInt(Console.ReadLine())
        Next
        'on trie le tableau B 
        Array.Sort(B)
        interclas(A, B)
    End Sub

    Sub interclas(ByVal A() As Integer, ByVal B() As Integer)
        Dim i, k, j, m, n, p As Integer
        n = A.Length
        p = B.Length
        m = n + p
        Dim C(m - 1) As Integer
        i = 0
        k = 0
5:      C(k) = A(i)
        i += 1
        k = i
        If i <= n - 1 Then
            GoTo 5
        Else
            j = 0
        End If
10:     k = j + n - 1
        C(k) = B(j)
        j += 1
        If j <= p - 1 Then
            GoTo 10
        End If
        Array.Sort(C)
        Console.WriteLine("voici la fusion de deux tableaux")
        For i = 0 To m - 1
            Console.WriteLine(C(i).ToString)
        Next
        Console.ReadLine()
    End Sub
End Module

EXERCICE 25

EXERCICE 25

Faites un programme en Visual Basic.Net qui entre 50 nombres, compris entre 10 et 100 inclusivement dans un tableau linéaire, puis affiche chaque nombre entré, si ce dernier n’a jamais été affiché auparavant. Assurez-vous de pouvoir traiter le « pire de scenario » qui consiste en une série de 50 nombres différents.

Solution

Solution


Module Module1
    Sub Main()
        Dim A(49) As Integer
        Dim n, i As Integer
        Dim test As Boolean
        i = 0
        Console.WriteLine("entrez un nombre entre 10 et 100")
        Do
5:          n = CInt(Console.ReadLine())
            If n < 10 Or n > 100 Then
                Console.WriteLine("entrez uniquement un nombre compris entre 10 et 100, recommencez")
                GoTo 5
            Else
                A(i) = n
                i += 1
                Console.WriteLine("nombre correcte,entrez un autre nombre")
            End If
        Loop Until i = 50
        'on affiche les nombres distincts du tableau 
        Console.WriteLine("voici les nombres distinct du tableau")
        Console.WriteLine(A(0).ToString)
        For i = 1 To 49
            test = True
            For j As Integer = 0 To i - 1
                If A(j) = A(i) Then
                    test = False
                End If
            Next
            If test = True Then
                Console.WriteLine(A(i).ToString)
            End If
        Next
        Console.ReadLine()
    End Sub
End Module

EXERCICE 26

EXERCICE 26

Ecrire une procédure en Visual Basic en mode console, qui détermine, puis affiche le plus petit entier impair contenu dans un tableau d’entiers strictement positifs. Attention, si le tableau ne contient aucun entier impair, la procédure affichera le message « Le tableau ne contient aucun entier impair ».

Solution

Solution


Module Module1
    Sub Main()
        Dim n As Integer
        Console.WriteLine("entrez la taille du tableau")
        n = CInt(Console.ReadLine())
        Dim A(n - 1) As Integer
        'lecture des éléments du tableau 
        Console.WriteLine("Saisie des éléments du tableau")
        For i As Integer = 0 To n - 1
            Do
                Console.WriteLine("entrez l'elemnent n °" & i + 1)
                A(i) = CInt(Console.ReadLine())
            Loop Until A(i) > 0
        Next
        determine(A)
        Console.ReadLine()
    End Sub
    Sub determine(ByVal A() As Integer)
        Dim min As Integer
        Dim n As Integer
        n = A.Length
        'recherche premier entier  impair 
        Dim j, pos As Integer
        Dim test As Boolean = False
        j = 0
        Do
            If A(j) Mod 2 <> 0 Then
                pos = j
                test = True
            Else
                j += 1
            End If
        Loop Until test = True Or j = n
        'recherche du plus petit nombre impair 
        min = A(j)
        For I As Integer = j + 1 To n - 1
            If A(I) Mod 2 <> 0 Then
                If A(I) < min Then
                    min = A(I)
                End If
            End If
        Next
        If min Mod 2 = 0 Then
            Console.WriteLine("Le tableau ne contient pas de nombre impair")
        Else
            Console.WriteLine("Le plus petit nombre impair est  " & min)
        End If
    End Sub
End Module

EXERCICE 27

EXERCICE 27

Faites un programme VB qui lit les noms d’un nombre déterminé d’étudiants, puis affiche chaque nom entré, si ce dernier n’a jamais été affiché auparavant. Assurez-vous de pouvoir tenir compte de toutes les casses possibles (par exemple les lettres minuscules correspondent aux lettres majuscules)

Solution

Solution


Module Module1

    Sub Main()
        Dim n As Integer
        Console.WriteLine("Entrez le nombre d'étudiants")
        n = CInt(Console.ReadLine())
        Dim Noms(n - 1) As String
        For i As Integer = 0 To n - 1
            Console.WriteLine("Saisir le nom du " & i + 1 & "e étudaint")
            Noms(i) = Console.ReadLine()
        Next
        Console.WriteLine("voici les noms des étudiants")
        Console.WriteLine("Sans tenir compte des majuscules et minuscules")
        Console.WriteLine(Noms(0))
        For i As Integer = 1 To n - 1
            Dim test As Boolean = False
            For J As Integer = 0 To i - 1
                If UCase(Noms(J)) = UCase(Noms(i)) Then
                    test = True
                End If
            Next
            If test = False Then
                Console.WriteLine(Noms(i))
            End If
        Next
        Console.WriteLine("En tenant compte des majuscules et minuscules")
        Console.WriteLine(Noms(0))
        For i As Integer = 1 To n - 1
            Dim test As Boolean = False
            For J As Integer = 0 To i - 1
                If Noms(J) = Noms(i) Then
                    test = True
                End If
            Next
            If test = False Then
                Console.WriteLine(Noms(i))
            End If
        Next
        Console.ReadLine()
    End Sub
End Module

pdf Retrouvez ce cours en version pdf
Télécharger
EXERCICES PRECECENTS
EXERCICES SUIVANTS