Académique Documents
Professionnel Documents
Culture Documents
Cours
: VB.net
E Exemples:Programme
1.2 s de maths.
On prendra des exemples de routines mathématiques
simples:
Pour les nuls, on rappelle que le carré de l'Hypoténuse est égal à la somme
des carrées des 2 autres cotés.
Somme de N entiers.
Calculer par exemple pour Nombre=20 la Somme=1+2+3+4...+18+19+20
Pour chaque ligne, on affiche la valeur de i puis ' X ' puis la valeur de j
puis ' = ' puis la valeur de i fois j
Dim i As Integer
Dim j As Integer
Dim T As String
For i = 1 To 10
T += ControlChars.CrLf
T += "Table des " & i & ControlChars.CrLf
For j = 1 To 10
T += i.ToString & " X " & j.ToString & "=" & i * j &
ControlChars.CrLf
Next j
Next i
TextBox1.Text = T
Affiche:
Table des 1
1 X 1 =1
1 X 2 =2
...
Trouver la valeur la plus élevée d'un tableau d'entier:
Pour cela on crée une Fonction, on l'appelle en donnant en paramètre le
tableau d'entier; la fonction retourne l'entier le plus grand.
Dim i As Integer
For i = 0 To fin
Next i
Return valeurMax
End Function
Un boucle compare chaque valeur du tableau a() avec valeurMax, si l'élément
du tableau est plus grand que valeurMax, valeurMax prend la valeur de
l'élément.
Factorielle.
On rappelle que N! (factorielle N)= 1*2*3*...*(N-2)*(N-1)*N
Dim R As Long
R=Factorielle(3) 'retournera 6
Cette fonction n'est pas fournie par VB, créons une fonction 'Factorielle':
VB gère la récursivité.
Créons la fonction:
Pour N=4, la fonction Factionnelle est appelée 4 fois :Factorielle (4) puis
Factorielle(3) puis Factorielle(2) puis Factorielle (1)
Vb gère cela avec une pile des appels. il met dans une pile les uns aux
dessus des autres les appels, quand il remonte, il dépile de haut en bas
(Dernier rentré, premier sortie)
Une autre méthode pour voir si N est divisible par B: il est divisible si N
Mod(B)=0.
on peut donc :
-Vérifier s'il est divisible par les nombres allant de 3...jusqu'à racine
de N en ne tenant compte que des nombres impairs.
Remarque pour ceux qui veulent tester le code :
Pour utiliser la routine sur les nombres premiers, il faut créer une petite
interface: dans un formulaire créer un bouton nommé 'Button1' et une
TextBox nommée 'TextBox1', enfin mettre dans la routine Button1_Click le
code ci-dessous.
Quand on lance le programme, on saisie un nombre dans le textbox , puis on
clique sur le bouton , cela affiche True ou False dans une MessageBox, si
le nombre est premier ou non:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button
1.Click
Dim IsPremier As Boolean
Dim N As Double
Dim I As Double
N = Val(TextBox1.Text)
I = 2 : IsPremier = True
Do
If N / I = Int(N / I) Then
IsPremier = False
Else
I += 1
End If
Loop While IsPremier = True And I < N
MsgBox(IsPremier.ToString)
End Sub
Decomposition en nombre premier?
Dim nbr As Integer = 1000 'nombre à étudier
Dim div As Integer = 2
Dim t As String = ""
While div <= nbr
While nbr / div = Int(nbr / div)
t = t & div & " x "
nbr = nbr / div
End While
div = div + 1
End While
TextBox1.Text = t