Ecrire un programme Visual Basic qui permet de lire les données sur l’âge (celui-ci ne pouvant pas être en dessous de 16, ni au-delà de 65) et le sexe (les valeurs possibles étant M ou F) de 100 personnes de la communauté estudiantine constituant un échantillon statistique, ensuite il détermine l’âge le plus élevé, l’âge le moins élevé, l’âge moyen, le pourcentage des hommes et celui des femmes.
Module Module1
Sub Main()
Dim age(99) As Integer
Dim sexe(99) As String
Dim i As Integer
Console.WriteLine("Lecture de données")
For i = 0 To 99
10: Console.WriteLine("entrez l'age de l'etudiant n° " & i + 1)
5: age(i) = CInt(Console.ReadLine())
If age(i) < 16 Or age(i) > 65 Then
Console.WriteLine("l 'age doit etre compris entre 16 et 65, recommencez")
GoTo 5
Else
Console.WriteLine("entrez le sexe de l'etudiant n°" & i + 1)
15: sexe(i) = Console.ReadLine()
If UCase(sexe(i)) <> "M" And UCase(sexe(i))<> "F" Then
Console.WriteLine("les deux valeurs permises pour le sexe sont M ou F, recommencez")
GoTo 15
End If
End If
Next
'recherche de l'age le plus élevé
Dim max As Integer
max = age(0)
For j As Integer = 1 To 99
If age(j) > max Then
max = age(j)
End If
Next
'recherche de l'age le plus bas
Dim min As Integer
min = age(0)
For j As Integer = 1 To 99
If age(j) < min Then
min = age(j)
End If
Next
'calcul de l'age moyen
Dim somme As Integer
Dim moy As Single
somme = 0
For j As Integer = 0 To 99
somme += age(j)
Next
moy = somme / 9
'calcul du pourcentage des hommes et femmes
Dim Som_H, som_F As Integer
Dim pH, pF As Single
som_F = 0
Som_H = 0
For J As Integer = 0 To 99
If UCase(sexe(J)) = "M" Then
Som_H += 1
Else
som_F += 1
End If
Next
pH = (Som_H * 100) / 100
pF = (som_F * 100) / 100
Console.WriteLine("L'age le plus élevé est : " & max)
Console.WriteLine("L'age le moins élevé est: " & min)
Console.WriteLine("L'age moyen est: " & moy)
Console.WriteLine("il y a " & pF & "% des femmes")
Console.WriteLine("il y a " & pH & "% des hommes")
Console.ReadLine()
End Sub
End Module
A la naissance de Junior, sa maman lui ouvre avec un montant de départ de 100 dollars, un compte bancaire dont le taux d’intérêt annuel est de 4%. Ensuite, à chaque anniversaire, la maman de Junior verse sur ce compte 100 dollars, auxquels elle ajoute un montant correspondant au double de l’âge de Junior. Par exemple lorsqu’il aura 4 ans, elle lui versera 108 dollars. Ecrire un programme Visual Basic en mode console qui permette de déterminer la somme qu’aura Junior lors de son nième anniversaire (avec n ≥ 2).
Le montant initial est de 100 dollars.
Après une année, il aura 100+100*0.04+102=206
Pour la deuxième année : 206+206*0.04+104. On constate que le montant courant de la première année devient le montant initial de la deuxième année. On peut généraliser : pour une année donnée, on aura :
Montant initial (montant courant de l’année passée)
+Montant initial*0.04 (Intérêt annuel)
+ 100+2 * le nombre d’année.
Module Module1
Sub Main()
Dim n, i As Integer
Dim Montant_initial, Montant_courant As Single
Console.WriteLine("Entrez le nombre d'années")
5: n = CInt(Console.ReadLine())
If n < 2 Then
Console.WriteLine("Le nombre d'années doit etre superieur ou égal à 2, recommencez")
GoTo 5
Else
Montant_initial = 100
For i = 1 To n
Montant_courant = Montant_initial * 1.04 + 100 + 2 * i
Montant_initial = Montant_courant
Next
End If
Console.WriteLine("Au " & n & " e anniversaire, il aura: " &Montant_courant)
Console.ReadLine()
End Sub
End Module
Ecrire un programme Basic qui lit une phrase, ensuite le parcourt pour en déterminer les mots qui sont repris plusieurs fois dans celle-ci et nombre de répétitions pour chacun d’eux. (Exemple : dans la phrase « David est vaillant. Un vaillant, est un homme prudent », les mots est, vaillant et un sont repris chacun deux fois).
Après la saisie de la phrase, pour connaitre les mots présents dans la phrase, on peut utiliser la fonction Split qui convertit une chaine de caractères en un tableau ayant pour éléments les mots formant la chaine. Etant donné que le séparateur de mots utilisé par la fonction est l’espace, il faut bien prendre soin de vérifier s’il y a les principaux signes de ponctuation à la fin des mots pour ne pas prendre ça en compte.
Module Module1
Sub Main()
Dim phrase As String
Dim n, i, j, k As Integer
Dim A(5) As Integer
Dim m(500) As String
Dim test As Boolean
Console.WriteLine("Entrez la phrase")
phrase = Console.ReadLine
'Determination du nombre de mots de la phrase
Dim Mots() As String = Split(phrase)
n = Mots.Length - 1
' on vérifie si les principaux signes de ponctuation se trouvent à la fin de certains mots
For i = 0 To n
If Mid(Mots(i), Mots(i).Length, 1) = "," Or Mid(Mots(i),Mots(i).Length, 1) = ";" Or Mid(Mots(i), Mots(i).Length, 1) = ":" Or Mid(Mots(i), Mots(i).Length, 1) = "!" Or Mid(Mots(i), Mots(i).Length,1) = "?" Or Mid(Mots(i), Mots(i).Length, 1) = "." Then
Mots(i) = Mid(Mots(i), 1, Mots(i).Length - 1)
End If
Next
'on retient les mots distincts qui composent la phrase
m(0) = Mots(0)
k = 1
For i = 1 To n
test = False
For j = 0 To i - 1
If UCase(Mots(i)) = UCase(Mots(j)) Then
test = True
End If
Next
If test = False Then
m(k) = Mots(i)
k = k + 1
End If
Next
ReDim A(k - 1)
'initialisation des nombres d'occurrences à zéro
For i = 0 To k - 1
A(i) = 0
Next
'on compte le nombre d'occurrence de chaque mot
ReDim Preserve m(k - 1)
For i = 0 To k - 1
For j = 0 To n
If UCase(m(i)) = UCase(Mots(j)) Then
A(i) += 1
End If
Next
Next
'on affiche que les mots qui sont repris plusieurs fois
Console.WriteLine("Voici les mots qui sont repris plusieurs fois")
test = False
For i = 0 To k - 1
If A(i) >= 2 Then
Console.WriteLine(" Le mot " & UCase(m(i)) & " est repris " & A(i) & " fois")
test = True
End If
Next
If test = False Then
Console.WriteLine("Aucun mot n'est repris plusieurs fois")
End If
Console.ReadLine()
End Sub
End Module
Ecrire un programme Basic qui lit le nom, prénom et salaire de chacun de 200 travailleurs d’une entreprise. Ensuite le programme trie et affiche cette liste par ordre décroissant des salaires, puis des noms en cas de montants de salaire identiques. (Prévoir une structure et le montant de salaire ne peut pas être inférieure à 0).
Module Module1
Structure Employe
Dim nom As String
Dim prenom As String
Dim salaire As Integer
End Structure
Sub Main()
Dim liste(5) As Employe
Dim a As Employe
Dim i, j As Integer
'Lecture des informations
Console.WriteLine("Lecture des informations sur les employés")
For i = 0 To 199
Console.WriteLine("Entrez les informations de l'employé n° " & i + 1)
Console.Write("Nom: ")
liste(i).nom = Console.ReadLine()
Console.Write("Prénom: ")
liste(i).prenom = Console.ReadLine()
5: Console.Write("salaire: ")
liste(i).salaire = CInt(Console.ReadLine())
If liste(i).salaire < 0 Then
Console.WriteLine("Le salaire est incorrect, recommencez")
GoTo 5
End If
Next
'tri
For i = 199 To 1 Step -1
For j = 0 To i - 1
If liste(j).salaire < liste(j +1).salaire Then
a = liste(j)
liste(j) = liste(j + 1)
liste(j + 1) = a
ElseIf liste(j).salaire = liste(j +1).salaire Then
If liste(j).nom < liste(j + 1).nom Then
a = liste(j)
liste(j) = liste(j + 1)
liste(j + 1) = a
End If
End If
Next
Next
'on affiche la nouvelle liste
Console.WriteLine("Voici la liste des employés selon le salaire")
Console.WriteLine("Nom" & Space(10) & "Prénom" & Space(10) & " Salaire")
For i = 0 To 199
Console.WriteLine(liste(i).nom & Space(10) & liste(i).prenom & Space(10) & liste(i).salaire)
Next
Console.ReadLine()
End Sub
End Module
Soit un tableau B (7,7) constitué des valeurs numériques. Ecrire un programme Basic qui après la lecture des données, calcule :
Module Module1
Sub Main()
Dim B(7, 7) As Integer
Dim i, j As Integer
Dim somLigne(7) As Integer
Dim somColonne(7) As Integer
Dim somme As Integer
'Lecture des éléments
For i = 0 To 7
For j = 0 To 7
Console.WriteLine("Entrez l'élément B(" & i & "," & j & ")")
B(i, j) = CInt(Console.ReadLine())
Next
Next
'calcul de la somme de chaque ligne
For i = 0 To 7
somLigne(i) = 0
For j = 0 To 7
somLigne(i) += B(i, j)
Next
Next
'calcul de la somme de chaque colonne
For j = 0 To 7
somColonne(j) = 0
For i = 0 To 7
somColonne(j) += B(i, j)
Next
Next
'calcul de la somme total
somme = 0
For i = 0 To 7
For j = 0 To 7
somme += B(i, j)
Next
Next
'affichage des résultats
For i = 0 To 7
Console.WriteLine("La somme de la " & i & "e ligne est: " & somLigne(i))
Next
For j = 0 To 7
Console.WriteLine("La somme de la " & i & "e colonne est: " & somColonne(j))
Next
Console.WriteLine("La somme totale est: " & somme)
Console.ReadLine()
End Sub
End Module
Ecrire un programme Basic qui donne la liste de tous les nombres de AMSTRONG compris entre 1 et 2000. (Les nombres de AMSTRONG sont des nombres qui sont égaux à la somme des cubes des chiffres qui les composent. Par exemple 153 est un nombre de AMSTRONG, car 153=1³+5³+3³
Module Module1
Sub Main()
Dim n, i, j, k As Integer
Dim chaine As String
Dim somme As Long
Console.WriteLine("Voici les nombres de AMSTRONG compris entre 1 et 2000")
For i = 1 To 2000
'on affecte chaque nombre à la variable chaine pour une manipulation aisée
chaine = Str(i)
n = Len(chaine)
somme = 0
For j = 1 To n
k = Val(Mid(chaine, j, 1))
somme += k ^ 3
Next
If i = somme Then
Console.WriteLine(i.ToString)
End If
Next
Console.ReadLine()
End Sub
End Module
Une entreprise rémunère ses représentants commerciaux à la commission. Ceux-ci reçoivent 200$ par semaine plus 9% de leurs ventes brutes hebdomadaires. Par exemple, un représentant qui totalise des ventes brutes hebdomadaires de 5000$ reçoit 200$ plus 9% de 5000$, soit un total de 650$. Ecrivez un programme Basic qui déterminera combien de représentants ont perçu des émoluments situés dans chacune des échelles salariales ci-dessus et l’échelle salariale qui a le nombre le moins élevé (précisez que le salaire de chaque représentant est arrondi à l’entier le plus près).
$200-$299 $300-$399 $400-$499
$500-$599 $600-$699 $700-$799
$800-$899 $900-$999 $1000 et plus
Module Module1
Sub Main()
Dim n, i, min, pos As Integer
'la variable qui va stocker le nombre de représentants dans chaque échelle
Dim nombre() As Integer = {0, 0, 0, 0, 0, 0, 0, 0, 0}
Console.WriteLine("Entrez le nombre de représentants")
n = CInt(Console.ReadLine())
Dim ventes(n - 1) As Integer
Dim salaire(n - 1) As Integer
'Lecture des ventes brutes de chaque représentant
For i = 0 To n - 1
Console.WriteLine("Entrez les ventes brutes du représentant n ° " & i + 1)
ventes(i) = CInt(Console.ReadLine())
Next
'calcul de salaire
For i = 0 To n - 1
salaire(i) = Int(200 + 0.09 * ventes(i))
Next
'Determination de nombre de représentants dans chaque échelle
For i = 0 To n - 1
If salaire(i) >= 200 And salaire(i) <= 299 Then
nombre(0) += 1
ElseIf salaire(i) >= 300 And salaire(i) <= 399 Then
nombre(1) += 1
ElseIf salaire(i) >= 400 And salaire(i) <= 499 Then
nombre(2) += 1
ElseIf salaire(i) >= 500 And salaire(i) <= 599 Then
nombre(3) += 1
ElseIf salaire(i) >= 600 And salaire(i) <= 699 Then
nombre(4) += 1
ElseIf salaire(i) >= 700 And salaire(i) <= 799 Then
nombre(5) += 1
ElseIf salaire(i) >= 800 And salaire(i) <= 899 Then
nombre(6) += 1
ElseIf salaire(i) >= 900 And salaire(i) <= 999 Then
nombre(7) += 1
ElseIf salaire(i) >= 1000 Then
nombre(8) += 1
End If
Next
'determination de l'effectif le plus faible
min = nombre(0)
pos = 0
For i = 1 To 8
If nombre(i) < min Then
min = nombre(i)
pos = i
End If
Next
'Affichage résultats
Console.WriteLine(nombre(0) & " représentant(s) a(ont) un salaire situé entre 200-299")
Console.WriteLine(nombre(1) & " représentant(s) a(ont) un salaire situé entre 300-399")
Console.WriteLine(nombre(2) & " représentant(s) a(ont) un salaire situé entre 400-499")
Console.WriteLine(nombre(3) & " représentant(s) a(ont) un salaire situé entre 500-599")
Console.WriteLine(nombre(4) & " représentant(s) a(ont) un salaire situé entre 600-699")
Console.WriteLine(nombre(5) & " représentant(s) a(ont) un salaire situé entre 700-799")
Console.WriteLine(nombre(6) & " représentant(s) a(ont) un salaire situé entre 800-899")
Console.WriteLine(nombre(7) & " représentant(s) a(ont) un salaire situé entre 900-999")
Console.WriteLine(nombre(8) & " représentant(s) a(ont) un salaire superieur ou égal à 1000")
Select Case pos
Case 0
Console.WriteLine("C'est l'échelle 200-299 qui a moins de représentants ")
Case 1
Console.WriteLine("C'est l'échelle 300-399 qui a moins de représentants ")
Case 2
Console.WriteLine("C'est l'échelle 400-499 qui a moins de représentants ")
Case 3
Console.WriteLine("C'est l'échelle 500-599 qui a moins de représentants ")
Case 4
Console.WriteLine("C'est l'échelle 600-699 qui a moins de représentants ")
Case 5
Console.WriteLine("C'est l'échelle 700-799 qui a moins de représentants ")
Case 6
Console.WriteLine("C'est l'échelle 800-899 qui a moins de représentants ")
Case 7
Console.WriteLine("C'est l'échelle 900-999 qui a moins de représentants ")
Case 8
Console.WriteLine("C'est l'échelle 1000 et plus qui a moins de représentants ")
End Select
Console.ReadLine()
End Sub
End Module