Ecrire un programme en Visual basic mode console qui détermine les n nombres premiers. Prévoir que n varie dans l’intervalle [10, 60].
Nota : un nombre premier est un nombre qui n’a que deux diviseurs : l’unité et lui-même.
n représente l’effectif des nombres premiers, par exemple si l’utilisateur saisit n=10, notre programme doit afficher les 10 premiers nombres premiers. Dans l’énoncé, il est dit que n doit appartenir dans [10, 60], il suffit d’utiliser une boucle demandant la valeur de n jusqu’à ce que n soit compris dans [10, 60].
Un nombre premier est un nombre qui n’a pas d’autre diviseurs hormis 1 et lui-même, dans ce cas pour chaque nombre on va parcourir de 2 à ce nombre-1 ; si on trouve un diviseur alors ce nombre n’est pas premier, sinon il est premier et on l’affiche en prenant soin de compter les nombres affichés pour que l’effectif ne dépasse pas n.
Module Module1
Sub Main()
Dim n, i, nombre, compteur As Integer
Dim test As Boolean
nombre = 2
compteur = 0
Console.WriteLine("Entrez le nombre de valeurs")
1: n = CInt(Console.ReadLine())
If n < 10 Or n > 60 Then
Console.WriteLine("Le nombre de valeurs doit se trouver entre 10 et 60, recommencez")
GoTo 1
End If
'recherche et affichage des nombres premiers
Console.WriteLine("Voici les " & n & " premiers nombres premiers")
Do
test = True
For i = 2 To n - 1
If nombre Mod i = 0 Then
test = False
End If
Next
If test = True Then
Console.WriteLine(nombre.ToString)
compteur += 1
End If
nombre += 1
Loop Until compteur = n
Console.ReadLine()
End Sub
End Module
Ecrire un programme Visual basic mode console de sondage d’opinion sur les compétences en programmation. Le programme affichera la phrase Maitrisez-vous : 1. Le QBASIC ; 2. Le VBASIC ; 3. Les deux langages ; 4. Aucun de deux », après le choix de l’utilisateur (c.-à-d. uniquement l’un de numéro défini comme étiquette), le programme va incrémenter le compteur correspondant au choix effectué. Cette opération sera répétée de manière indéterminée aussi longtemps qu’il y aura une autre personne à interroger. Et le programme affichera au final le pourcentage de chacune d’options. (Recommandation : Utilisez la boucle DO UNTIL)
On va effectuer le sondage tant qu’il y a quelqu’un à interroger, sur ce il suffit de répéter la question « il y a-t-il quelqu’un à interroger ? » jusqu’à ce que la réponse soit NON. On va utiliser 4 compteurs (parce qu’il y a 4 réponses possibles) qui vont stocker le nombre de fois que le choix correspondant a été effectué…
Module Module1
Sub Main()
Dim reponse As String
Dim score_vb, score_qb, score_deux, score_aucun, total, choix As Integer
Dim pourc_vb, pourc_qb, pourc_deux, pourc_aucun As Single
score_vb = 0
score_qb = 0
score_aucun = 0
score_deux = 0
Do
Console.WriteLine("Il y a t il quelqu'un à interroger?")
reponse = Console.ReadLine()
If UCase(reponse) = "OUI" Then
Console.WriteLine("Maitrisez-vous:")
Console.WriteLine("1. Le visual basic")
Console.WriteLine("2. Le Q Basic")
Console.WriteLine("3.Les deux")
Console.WriteLine("Aucun")
Console.WriteLine("Faites un choix")
5: choix = CInt(Console.ReadLine())
Select Case (choix)
Case 1
score_vb += 1
Case 2
score_qb += 1
Case 3
score_deux += 1
Case 4
score_aucun += 1
Case Else
Console.WriteLine("choix incorrect, recommencez")
GoTo 5
End Select
End If
Loop Until UCase(reponse) = "NON"
total = score_aucun + score_deux + score_qb + score_vb
pourc_aucun = score_aucun * 100 / total
pourc_deux = score_deux * 100 / total
pourc_qb = score_qb * 100 / total
pourc_vb = score_vb * 100 / total
Console.WriteLine("Sur " & total & " personnes interrogées " & pourc_vb & " % maitrisent le Visual Basic ")
Console.WriteLine("Sur " & total & " personnes interrogées " & pourc_qb & " % maitrisent le QBasic")
Console.WriteLine("sur " & total & " personnes interrogées " & pourc_deux & " % maitrisent les deux langages")
Console.WriteLine("sur " & total & " personnes interrogées " & pourc_aucun & " % ne maitrisent aucun langage")
Console.ReadLine()
End Sub
End Module
Concevoir un programme Visual basic en mode console de gestion de mot de passe qui est constitué de 3 parties (Nom, Prénom et date de naissance) qui sont successivement lues.
a. L’utilisateur saisit premièrement le nom. Si celui-ci correspond à votre nom, le programme passe à l’étape (b). En cas de répétition de 3 lectures incorrectes, le programme affiche le message « Le système est verrouillé » puis s’arrête ;
b. Il saisit le prénom. Si celui-ci correspond à votre prénom, le programme passe à l’étape (c). En cas de répétition de 2 lectures incorrectes, le programme affiche également le message « Le système est verrouillé » puis s’arrête ;
c. Il saisit la date de naissance. Si celle-ci correspond à votre date de naissance, le programme affiche le message « Accès autorisé », sinon le message « Le système est verrouillé ».
Dans ce cas, l’utilisateur doit introduire trois mots de passe, le premier doit correspondre à mon nom(DIUMI), le deuxième à mon prénom (AIME) et le troisième à ma date de naissance(24/09) pour que l’accès lui soit autorisé, donc des structures conditions suffisent pour vérifier…mais l’utilisateur ne peut pas saisir indéfiniment le mot de passe quand ce dernier est incorrect, il a seulement droit à 3 essais pour la première étape, 2 pour la deuxième et un seul pour la dernière, sur ce on doit ajouter un compteur qui comptera le nombre d’essai
Module Module1
Sub Main()
Dim mot1, mot2, mot3 As String
Dim i, j As Integer
'etape a
i = 1
5: Console.WriteLine("Entrez le premier mot de passe")
mot1 = Console.ReadLine()
If mot1 <> "DIUMI" Then
i += 1
If i < 4 Then
Console.WriteLine("Mot de passe incorrect, recommencez")
GoTo 5
Else
GoTo 20
End If
Else
GoTo 10
End If
'étape b
j = 1
10: Console.WriteLine("Entrez le deuxième mot de passe")
mot2 = Console.ReadLine()
If mot2 <> "AIME" Then
j += 1
If j < 2 Then
Console.WriteLine("mot de passe incorrect, recommencez")
GoTo 10
Else
GoTo 20
End If
Else
GoTo 15
End If
'étape c
15: Console.WriteLine("Entrez le troisième mot de passe")
mot3 = Console.ReadLine()
If mot3 = "24/09" Then
Console.WriteLine("Accès autorisé")
Else
20: Console.WriteLine("Système verrouillé")
End If
Console.ReadLine()
End Sub
End Module
Faites un programme VB en mode console qui lit l’âge de chacun de 500 habitants d’une rue, et détermine le nombre de personnes pour chaque catégorie, et la catégorie qui a le nombre de personnes le plus élevé. Les catégories sont définies suivant l’âge de manière ci-après :
Indication : l’âge inférieur à 1 est considéré comme 0 an pour l’utilisateur.
Notre programme doit lire l’âge de 500 habitants, dans ce cas on peut utiliser et on utilisera for car le nombre de répétition est connu d’avance…Chaque fois que l’âge est lu, on va le comparer pour voir s’il appartient à quelle catégorie enfin d’incrémenter le compteur de la catégorie correspondant.
Module Module1
Sub Main()
Dim bebe, ado, adulte, enfant As Integer
Dim i, age As Integer
bebe = 0
ado = 0
adulte = 0
enfant = 0
For i = 1 To 500
5: Console.WriteLine("Entrez l'age de l'habitant n° " & i)
age = CInt(Console.ReadLine())
If age < 1 Then
bebe += 1
ElseIf age >= 1 And age < 12 Then
enfant += 1
ElseIf age >= 12 And age < 18 Then
ado += 1
ElseIf age >= 18 Then
adulte += 1
Else
Console.WriteLine("age incorrect, recommencez")
GoTo 5
End If
Next
Console.WriteLine("il y a au total " & bebe & " personnes pour la catégorie bébé")
Console.WriteLine("il y a au total " & enfant & " personnes pour la catégorie enfant")
Console.WriteLine("il y a au total " & ado & " personnes pour la catégorie adolescent")
Console.WriteLine("il y a au total " & adulte & " personnes pour la catégorie adulet")
'détermination de la plus grande catégorie
If bebe > enfant And bebe > ado And bebe > adulte Then
Console.WriteLine("C'est la catégorie bébé qui possède plus de personnes")
ElseIf enfant > bebe And enfant > ado And enfant > adulte Then
Console.WriteLine("C'est la catégorie enfant qui possède plus de personnes")
ElseIf ado > bebe And enfant > enfant And ado > adulte Then
Console.WriteLine("C'est la catégorie ado qui possède plus de personnes")
ElseIf adulte > bebe And adulte > ado And adulte > enfant Then
Console.WriteLine("C'est la catégorie adulte qui possède plus de personnes")
Else
Console.WriteLine("Il n'y a pas une catégorie qui a plus de personnes que toutes les autres")
End If
Console.ReadLine()
End Sub
End Module
Faites un programme VB en mode console qui lit les cotes des N étudiants d’une promotion dans le cours de programmation, ensuite détermine le pourcentage de réussites et la mention associée à ce pourcentage. La mention est déterminée selon les règles suivantes :
Pourcentage | Mention |
---|---|
<20 | Cours non assimilé |
>=20 | Cours assez bien assimilé |
>=40 | Cours bien assimilé |
>=70 | Cours très bien assimilé |
Pour ce problème, l’utilisateur doit saisir le nombre d’étudiants, puis les cotes de ces étudiants, pour la saisie des côtes, on va utiliser la boucle for…
On peut résoudre ce problème avec ou sans tableau, avec le tableau on va le remplir avec les cotes des étudiants, puis après on va le parcourir pour compter le nombre de réussites enfin de calculer le pourcentage et déterminer la mention associée.
Et sans tableau, après la saisie de chaque côte on vérifie s’il y a réussite pour incrémenter le compteur des réussites.
Module Module1
Sub Main()
Dim cote, n, i, reussite As Integer
Dim pourcentage As Single
reussite = 0
Console.WriteLine("Entrez le nombre d'étudiants")
n = CInt(Console.ReadLine())
For i = 1 To n
Console.WriteLine("Entre la cote de l'étudiant n° " & i)
cote = CInt(Console.ReadLine())
If cote >= 10 Then
reussite += 1
End If
Next
pourcentage = reussite * 100 / n
'Détermination de la mention
If pourcentage < 20 Then
Console.WriteLine("Il y a eu " & pourcentage & " % de reussites, donc le cours est non assimilé")
ElseIf pourcentage >= 20 And pourcentage < 40 Then
Console.WriteLine("Il y a eu " & pourcentage & " % de reussites, donc le cours est assez bien assimilé")
ElseIf pourcentage >= 40 And pourcentage < 70 Then
Console.WriteLine("Il y a eu " & pourcentage & " % de reussites, donc le cours est bien assimilé")
Else
Console.WriteLine("Il y a eu " & pourcentage & " % de reussites, donc le cours est très bien assimilé")
End If
Console.ReadLine()
End Sub
End Module
Ecrire un programme VB en mode console qui lit les éléments d’un tableau linéaire T ayant n éléments, ensuite transfert les éléments supérieurs ou égaux à 50 dans un tableau TREUSSITE, et les éléments inférieurs à 50 dans un tableau TECHEC.
Pour ce problème, on aura besoin de trois tableaux, la taille du premier sera déterminée par l’utilisateur tandis que pour les deux autres leurs tailles dépendront des valeurs saisies.
Module Module1
Sub Main()
Dim n, i As Integer
Console.WriteLine("Entrez la taille du tableau")
n = CInt(Console.ReadLine())
'déclaration des tableaux
Dim T(n - 1) As Integer
Dim TREUSSITE(n - 1) As Integer
Dim TECHEC(n - 1) As Integer
'remplissage du tableau
Console.WriteLine("Remplissage du tableau")
For i = 0 To n - 1
Console.WriteLine("Entrez l'élément n° " & i)
T(i) = CInt(Console.ReadLine())
Next
'Transfert des éléments
Dim j, k As Integer
j = 0
k = 0
For i = 1 To n - 1
If T(i) >= 50 Then
TREUSSITE(j) = T(i)
j += 1
Else
TECHEC(k) = T(i)
k += 1
End If
Next
'affichage de deux tableaux
If j > 0 Then
Console.WriteLine("Voici le contenu du tableau TREUSSITE")
For i = 0 To j - 1
Console.WriteLine(TREUSSITE(i).ToString)
Next
Else
Console.WriteLine("Le tableau TREUSSITE n'a aucun élément")
End If
If k > 0 Then
Console.WriteLine("Voici le contenu du tableau TECHEC")
For i = 0 To k - 1
Console.WriteLine(TECHEC(i).ToString)
Next
Else
Console.WriteLine("Le tableau TECHEC n'a aucun élément")
End If
Console.ReadLine()
End Sub
End Module
Ecrire un programme en VB en mode console qui permet de compléter les informations sur les étudiants d’une université dans un tableau « liste » de type structure, de taille 50, dont la structure est : nom, prénom, sexe et âge ; ensuite affiche ces informations suivant l’ordre croissant des noms. En cas d’égalité des noms (noms identiques), un tri croissant s’effectue sur les prénoms.
Module Module1
Structure etudiant
Dim nom As String
Dim prenom As String
Dim sexe As String
Dim age As Integer
End Structure
Sub Main()
Dim liste(49) As etudiant
Dim i, j As Integer
Dim intermediaire As etudiant
'lecture des informations des étudiants
For i = 0 To 49
Console.WriteLine("Les informations de l'étudiant n° " & i)
Console.WriteLine("Son nom :")
liste(i).nom = Console.ReadLine()
Console.WriteLine("Son prénom")
liste(i).prenom = Console.ReadLine()
Console.WriteLine("Son sexe")
liste(i).sexe = Console.ReadLine()
Console.WriteLine("Son age")
liste(i).age = CInt(Console.ReadLine())
Next
'tri des informations d'après les noms
For i = 49 To 2 Step -1
For j = 1 To i - 1
If liste(j).nom > liste(j + 1).nom Then
intermediaire = liste(j)
liste(j) = liste(j + 1)
liste(j + 1) = intermediaire
ElseIf liste(j).nom = liste(j + 1).nom Then
If liste(j).prenom > liste(j + 1).prenom Then
intermediaire = liste(j)
liste(j) = liste(j + 1)
liste(j + 1) = intermediaire
End If
End If
Next
Next
'Affichage des informations
Console.WriteLine("Les informations des étudiants")
Console.WriteLine("NOMS PRENOMS SEXE AGE")
For i = 0 To 49
Console.WriteLine(liste(i).nom & " " & liste(i).prenom & " " & liste(i).sexe & " " & liste(i).age)
Next
Console.ReadLine()
End Sub
End Module