[VB.NET] probleme avec PGCD
artragis
Messages postés
510
Statut
Membre
-
artragis Messages postés 510 Statut Membre -
artragis Messages postés 510 Statut Membre -
Bonjour,
Pour apprendre à programmer j'ai tenté de faire un programme pour calculer le PGCD de deux nombre. Seulement il y a un petit bug, lors de l'appui sur le boutton de confirmation, j'ai comme résultat 0. lors d'un second appui, je trouve le PGCD correct. voici le programme
Bonjour,
Je suis en train d'apprendre à programmer, j'ai, en ligne trouvé des cours d'algoritmie qui m'ont permi d'arriver à déduire un alogoritme, puis une programmation visual basic (je travail sur visual basic 2008 express.Net)
Seulement, petit problème : j'ai créé un boutton, et lors de l'appui sur ce boutton, le calcul se fait : résultat 0, je rapui résultat : le véritable PGCD des deux nombres.
création d'un boutton nommé button1
de deux textbox nommées textbox1 et 2
de deux labels "nombre1", "nombre2" et "PGCD des deux nombres"
Public Class Form1
Dim nombre1 As Integer
Dim nombre2 As Integer
Dim reste As Integer
Dim PGCD As Integer
Dim Resultat As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text = "" Then
nombre1 = 0
Else
nombre1 = TextBox1.Text
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
If TextBox2.Text = "" Then
nombre2 = 0
Else
nombre2 = TextBox2.Text
End If
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If nombre1 = 0 And nombre2 > 0 Then
PGCD = nombre2
End If
If nombre2 = 0 And nombre1 > 0 Then
PGCD = nombre1
End If
If (nombre1 And nombre2 > 0) And (nombre1 > nombre2) Then
PGCD = 1
While Not PGCD = 0
PGCD = nombre1 Mod nombre2
nombre1 = nombre2
nombre2 = PGCD
PGCD = PGCD
End While
ElseIf (nombre1 And nombre2 > 0) And (nombre1 < nombre2) Then
PGCD = 1
While PGCD > 0
PGCD = nombre2 Mod nombre1
nombre2 = nombre1
nombre1 = PGCD
PGCD = PGCD
End While
End If
Label3.Text = PGCD
End Sub
End Class
Pour apprendre à programmer j'ai tenté de faire un programme pour calculer le PGCD de deux nombre. Seulement il y a un petit bug, lors de l'appui sur le boutton de confirmation, j'ai comme résultat 0. lors d'un second appui, je trouve le PGCD correct. voici le programme
Bonjour,
Je suis en train d'apprendre à programmer, j'ai, en ligne trouvé des cours d'algoritmie qui m'ont permi d'arriver à déduire un alogoritme, puis une programmation visual basic (je travail sur visual basic 2008 express.Net)
Seulement, petit problème : j'ai créé un boutton, et lors de l'appui sur ce boutton, le calcul se fait : résultat 0, je rapui résultat : le véritable PGCD des deux nombres.
création d'un boutton nommé button1
de deux textbox nommées textbox1 et 2
de deux labels "nombre1", "nombre2" et "PGCD des deux nombres"
Public Class Form1
Dim nombre1 As Integer
Dim nombre2 As Integer
Dim reste As Integer
Dim PGCD As Integer
Dim Resultat As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text = "" Then
nombre1 = 0
Else
nombre1 = TextBox1.Text
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
If TextBox2.Text = "" Then
nombre2 = 0
Else
nombre2 = TextBox2.Text
End If
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If nombre1 = 0 And nombre2 > 0 Then
PGCD = nombre2
End If
If nombre2 = 0 And nombre1 > 0 Then
PGCD = nombre1
End If
If (nombre1 And nombre2 > 0) And (nombre1 > nombre2) Then
PGCD = 1
While Not PGCD = 0
PGCD = nombre1 Mod nombre2
nombre1 = nombre2
nombre2 = PGCD
PGCD = PGCD
End While
ElseIf (nombre1 And nombre2 > 0) And (nombre1 < nombre2) Then
PGCD = 1
While PGCD > 0
PGCD = nombre2 Mod nombre1
nombre2 = nombre1
nombre1 = PGCD
PGCD = PGCD
End While
End If
Label3.Text = PGCD
End Sub
End Class
A voir également:
- [VB.NET] probleme avec PGCD
- Pgcd calculatrice casio - Forum Accessoires & objets connectés
- Vb.net express - Télécharger - Langages
- Pgcd en c - Forum C
- Pgcd calculatrice casio fx-991es plus - Forum calculatrices
- Pgcd casio graph 35+ - Forum calculatrices
1 réponse
salut,désolé artagis malgré que je suis un etudiant en première année informatique à ALGER mais je n'ai aucune formation en vb je te conseille seulement de simplifier ton programme je peut te donner la sollution en pascal :
program PGCD;
var i,j:integer;
begin
writeln ('veuillez entrer deux nombres entier afinn de calculer leur PGCD ');
readln(a,b);
j:=0;
while (a mod i<>0) and (b mod i<>0) do
begin
i:=a-j;
j:=j+1;
end;
writeln ('le PGCD de ',a,' et ',b,'est',i);
end.
A+
program PGCD;
var i,j:integer;
begin
writeln ('veuillez entrer deux nombres entier afinn de calculer leur PGCD ');
readln(a,b);
j:=0;
while (a mod i<>0) and (b mod i<>0) do
begin
i:=a-j;
j:=j+1;
end;
writeln ('le PGCD de ',a,' et ',b,'est',i);
end.
A+
artragis
Messages postés
510
Statut
Membre
146
la solution ne fonctionne pas : tentative de division par 0 lors des arguments de la boucle en effet i n'a pas de valeur et par défaut prend 0
artragis
Messages postés
510
Statut
Membre
146
>
artragis
Messages postés
510
Statut
Membre
up... j'ai vraiment un prblème c'est dommage