Logiciel qui a partir de 2 points donne les coordonnées d'un vec

Résolu
alexfer01 - Modifié par BunoCS le 6/02/2014 à 21:37
 Zermelo - 12 févr. 2014 à 14:02
Bonjour a tous je suis nouveau dans le monde de la programmation et comme l'indique le titre je cherche avec visual basic 2010 a crée un logiciel qui en entrant les coordonnées de 2 points renverait les coordonnées du vecteur coorespondant
j'aimerais que mon logiciel ressemble a cela:un bouton calculer et 4 texte box qui permettrai de renter les cordonnées des 2 points et enfin faire ne sorte que si l'utilisateur rentre des lettres au lieu de chiffre un message erreur apparait.
j'ai deja fais un code (je sais pas si c'est trops juste) mais je n'arrive pas a finir au niveau de la formule de la fin ou les soustraction me bloque
si vous pouviez m'aider se serait sympa a vous ;)
merci

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Verification() Then
            Me.reponse.Text = "Les coordonnées du vecteur seront: " & Calcul(Me.Xa, Me.Xb.Text, Me.Ya, Me.Yb) & "?"
        Else
            Me.erreur.Visible = True
        End If

    End Sub
    ''' <summary>
    ''' Vérifie les quatres textbox de la page, regarde si elles sont remplies et si des nombres ont été entrés
    ''' </summary>
    ''' <returns>Vrai si pas d'erreur, faux si une erreur</returns>
    ''' <remarks></remarks>
    Function Verification() As Boolean
        Dim Bon As Boolean = True
        If Me.Xa Is Nothing Or Not IsNumeric(Me.Xa) Then
            Bon = False
        End If
        If Me.Xb Is Nothing Or Not IsNumeric(Me.Xb) Then
            Bon = False
        End If
        If Me.Ya Is Nothing Or Not IsNumeric(Me.Ya) Then
            Bon = False
        End If
        If Me.Yb Is Nothing Or Not IsNumeric(Me.Yb) Then
            Bon = False
        End If
        Return Bon
    End Function

    ''' <summary>
    ''' Calcule les coordonnées d'un vecteur en fonction de Xa, Xb, Ya, et Yb
    ''' </summary>
    ''' <param name="Xa">Xa</param>
    ''' <param name="Xb">Xb</param>
    ''' <param name="Ya">Ya</param>
    ''' <param name="Yb">Yb</param>
    ''' <remarks></remarks>
    Function Calcul(ByVal Xa As Double, ByVal Xb As Double, ByVal Ya As Double, ByVal Yb As Double) As Double
        Dim coordonnées As Double

        coordonnées = (Xa Soustraction Xb) And (Xb - Yb)

        Return coordonnées

    End Function

    Private Function Calcul(ByVal textBox As TextBox, ByVal p2 As String, ByVal textBox1 As TextBox, ByVal textBox2 As TextBox) As String
        Throw New NotImplementedException
    End Function

End Class

23 réponses

BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
6 févr. 2014 à 21:38
Hello,

Je me suis permis d'éditer ton message afin d'ajouter les balises code. On gagne beaucoup en lisibilité. Plus d'infos ici
0
merci pour cela BrunoCS
aurait tu une idée pour modifier la ligne 44 car je ne sais pas comment symboliser la soustraction et mon probleme est en partie la car sur visual basic a se niveau du code il me dit que que c'est "expected" et je sais pas ce que cela veut dire .
ou alors le problème viendrait de la ligne 41 42
merci
0
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
6 févr. 2014 à 22:13
Je ne fais pas de VB, mais:
- tu dis que
coordonnées
est un Double. J'en doute...
- une petite faute de frappe. Les coordonnées d'un vecteur sont, si je ne m'abuse:
(Xb - Xa) , (Yb - Ya)
0
jordane45 Messages postés 38157 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 344
6 févr. 2014 à 22:15
Bonjour,

Qu'est censé faire le AND de ton calcul ?
-> AND permet de faire des tests LOGIQUES
-> Si tu veux faire de la concaténation essayes plutot avec le " & "


Que représente "soustraction" ?
Un " - " ne suffirait pas ?


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 6/02/2014 à 22:28
Bonjour,
J'ai pour ma part des difficultés à comprendre ce que sont les coordonnées d'un vecteur.
Les coordonnées ne peuvent que concerner un point.
Un vecteur est délimité par deux points (donc deux fois des coordonnées).
Que veut alors très exactement dire :
"en entrant les coordonnées de 2 points renverait les coordonnées du vecteur coorespondant"
????
Si ces deux points sont les extrémités, on en connaît déjà, par définition, les coordonnées.
Si ces deux points ne sont pas les extrémités d'un vecteur, ils ne sauraient que permettre de déterminer l'équation linéaire de la droite à laquelle ils appartiennent. Or, une droite est infinie et je vois mal comment on pourrait savoir à quel vecteur de cette droite (elle en comporte une infinité) on pourrait dire que ces deux points appartiennent.
Je suis donc perplexe et crois que tu n'a pas su exposer clairement ton problème. Peux-tu essayer d'être plus précis ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
jordane45 Messages postés 38157 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 344
Modifié par jordane45 le 6/02/2014 à 22:35
Héhéhé... cours de Troisième;..
A moins que je ne me trompe...
Définition
Soit (O, I, J) un repère du plan et A(xA ; yA), B(xB ; yB) deux points du plan. Les coordonnées du vecteur {AB} sont données par la formule :
{AB}=> (xB - xA) ; (yB - yA).
0
voila je viens de modifier comme ce que tu as mis BrunoCS mais maintenand une nouvelle erreur s'afiche au niveau de
, (Xb - Yb)
il me dit "end of statement expected" ça veut dir quoi en comment y remédier?
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
6 févr. 2014 à 22:34
Bonsoir,

Concernant le code :
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
De plus, retire l'import automatique de l'espace de nom "Microsoft.VisualBasic" (onglet "Références" dans les propriétés du projet).

Ensuite, corriges un peu ton code :
IsNumeric -> Double.TryParse (ou Integer.TryParse, ...)
0
jordane45 Messages postés 38157 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 344
6 févr. 2014 à 22:40
Perso, pour le retour de la fonction j'utiliserai STRING.


Et pour le "calcul".. un truc du genre :
Co1 = xb - xa
Co2 = yb - ya
Coordonnees = Co1 & "," & Co2



0
salut a tous en effet je viens d'esayer ta solution jordane45 qui est apparament juste mais juste comme dans mon code avant je n'ai jamais utilisé Co1 et Co2 il me met un message d'erreur que ce n'est pas declared donc ou faut t'il que je rajoute c'est deux variable
0
jordane45 Messages postés 38157 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 344
6 févr. 2014 à 23:36
au même endroit que coordonnees...
0
j'ai mis ça
coordonnées = Xb - Xa & "," & Yb - Ya
je pense que cela revient a la meme chose
apparament cela marche mais quand je teste mon programme quand j'appui sur le bouton calcul rien ne se passe
que doit je faire
merci encore pour ton aide
0
HHenry je n'ai pas tout a fait saisi ce que vous vouliez dire par

En VB.NET pensez à activer "Option Explicit" et "Option Strict"
De plus, retire l'import automatique de l'espace de nom "Microsoft.VisualBasic" (onglet "Références" dans les propriétés du projet).

j'ai une version anglaise et malheureusement je ne trouve pas cet onglet
de plus ou activetons "Option Explicit" et "Option Strict"
merci de votre aide
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 7/02/2014 à 00:22
Bonjour
le tool bar
project ->en bas properties> compile
et change option strict ON et option explicit On
ensuite tu as l'onglet reference clique dessus
dans la listbox en bas tu as une liste des réferences coché
décoche microsoft visual basic


isnumeric n'est pas utilisé en vb.net
tu as le integer.tryparse qui converti un string en integer si
celui ci est numerique
ex 
dim ref as integer

if interger.tryparse("2233",ref) then

else

end if
0
Ok merci j'ai trouve option infer doit'il être sur off ou on d'ordinaine il est sur on
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 févr. 2014 à 00:30
aussi je te conseille de suivre ce cours

http://plasserre.developpez.com/cours/vb-net/
bon courage
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/02/2014 à 06:29
Excusez-moi, mais je reste "largué".
S'agit-il ?
1) de la recherche de la méthode/calculs mathématique adaptée ?
Et dans ce cas : impossible de répondre si n'est pas définie la "correspondance" en cause, qui peut être le résultat, entre autres, d'une projection (d'un type défini), d'une translation, d'une rotation, d'une homothétie, etc ...)
2) si ce n'est pas le point 1) qui pose problème :
----a) est-ce l'écriture des instructions pour appliquer ces calculs (donc déjà arrêtés et connus, quel que soit leur objet), qui pose problème ?
pourquoi alors avoir même parlé d'autres choses que d'opérations à écrire en code (qu'elles concernent ou non des vecteurs) ?
----b) est-ce simplement une représentation visuelle du résultat final sous forme d'une chaîne de caractères concaténant divers résultats et des signes (parenthèses, virgule) , qui pose problème ?
et dans ce cas, la question aurait simplement être "comment construire une chaîne de caractères composée de valeurs de variables et d'autres caractères ?"; sans même parler de calculs et encore moins de vecteurs


PS : en informatique, on utilise en général une structure pour définir un vecteur

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
re a tous en fait je veux simplement calculer a partir de 2 points donnés les coordonnées d'un vecteur
en gros j'ai réaliser ce programme sur une calculette
en definissant
4 variable
et le calul Xa-Ya et Xb-Yb
et ça sort le resultat sous la forme
coordonnées du vecteur (X;Y)
0
j'ai donc aprés modification obtenu se code mais le message erreur reste en permanence afficher comme pour Les coordonnées du vecteur seront:
et de plus quand je clique sur calculer rien ne se passe
0
j'ai maintenad ce code

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Verification() Then
Me.reponse.Text = "Les coordonnées du vecteur seront: " & Calcul(Me.Xa, Me.Xb.Text, Me.Ya, Me.Yb) & "?"
Else
Me.erreur.Visible = True
End If

End Sub
''' <summary>
''' Vérifie les quatres textbox de la page, regarde si elles sont remplies et si des nombres ont été entrés
''' </summary>
''' <returns>Vrai si pas d'erreur, faux si une erreur</returns>
''' <remarks></remarks>
Function Verification() As Boolean
Dim Bon As Boolean = True
If Me.Xa Is Nothing Or Not IsNumeric(Me.Xa) Then
Bon = False
End If
If Me.Xb Is Nothing Or Not IsNumeric(Me.Xb) Then
Bon = False
End If
If Me.Ya Is Nothing Or Not IsNumeric(Me.Ya) Then
Bon = False
End If
If Me.Yb Is Nothing Or Not IsNumeric(Me.Yb) Then
Bon = False
End If
Return Bon
End Function

''' <summary>
''' Calcule les coordonnées d'un vecteur en fonction de Xa, Xb, Ya, et Yb
''' </summary>
''' <param name="Xa">Xa</param>
''' <param name="Xb">Xb</param>
''' <param name="Ya">Ya</param>
''' <param name="Yb">Yb</param>
''' <remarks></remarks>
Function Calcul(ByVal Xa As Double, ByVal Xb As Double, ByVal Ya As Double, ByVal Yb As Double) As Double
Dim coordonnées
coordonnées = Xb - Xa & "," & Yb - Ya
Return CDbl(coordonnées)

End Function

Private Function Calcul(ByVal textBox As TextBox, ByVal p2 As String, ByVal textBox1 As TextBox, ByVal textBox2 As TextBox) As String
Throw New NotImplementedException
End Function

End Class
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2014 à 19:49
Désolé, mais je persiste et signe à ne pas comprendre :
"en fait je veux simplement calculer a partir de 2 points donnés les coordonnées d'un vecteur"
les coordonnées de QUEL vecteur ? défini comment ?
Ou je suis complètement débile, ou ... (!!!) ...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2014 à 20:21
Et lorsque je lis ceci :
Function Calcul(ByVal Xa As Double, ByVal Xb As Double, ByVal Ya As Double, ByVal Yb As Double) As Double
Dim coordonnées
coordonnées = Xb - Xa & "," & Yb - Ya
Return CDbl(coordonnées)

j'ai un oeil qui "joue à belbètche" et l'autre qui "marque les points" !
(un salut amical à ceux qui connaissent cette expression bien de chez moi ! Ils sont aujourd'hui probablement très peu nombreux, pour ne pas dire extrêmement rares).

0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2014 à 20:45
Autrement dit : tu veux définir une machine qui ferait des cacahuètes en y traitant des courges et des carottes que tu transformerais en citron !
0
jordane45 Messages postés 38157 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 344
7 févr. 2014 à 20:46
Je ne comprends toujours pas où est la difficulté..

Je t'ai demandé de transformer le retour de ta fonction en STRING ...

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.reponse.Text = "Les coordonnées du vecteur seront: " & Calcul(Me.Xa.Text, Me.Xb.Text, Me.Ya.Text, Me.Yb.Text) & "?"

    End Sub


    Function Calcul(ByVal Xa, ByVal Xb, ByVal Ya, ByVal Yb) As String
        Dim coordonnees As String
        coordonnees = (Xb - Xa) & "," & (Yb - Ya)
        Return coordonnees
    End Function


0
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Verification() Then
Me.reponse.Text = "Les coordonnées du vecteur seront: " & Calcul(Me.Xa.Text, Me.Xb.Text, Me.Ya.Text, Me.Yb.Text) & "?"
Else
Me.erreur.Visible = True
End If

End Sub
''' <summary>
''' Vérifie les quatres textbox de la page, regarde si elles sont remplies et si des nombres ont été entrés
''' </summary>
''' <returns>Vrai si pas d'erreur, faux si une erreur</returns>
''' <remarks></remarks>
Function Verification() As Boolean
Dim Bon As Boolean = True
If Me.Xa Is Nothing Or Not IsNumeric(Me.Xa) Then
Bon = False
End If
If Me.Xb Is Nothing Or Not IsNumeric(Me.Xb) Then
Bon = False
End If
If Me.Ya Is Nothing Or Not IsNumeric(Me.Ya) Then
Bon = False
End If
If Me.Yb Is Nothing Or Not IsNumeric(Me.Yb) Then
Bon = False
End If
Return Bon
End Function

FunctioN
'Calcul'(ByVal 'Xa', ByVal 'Xb', ByVal 'Ya', ByVal 'Yb') As String
Dim coordonnées As String
coordonnées = ('Xb' - 'Xa') & "," & ('Yb' - 'Ya')
Return coordonnées

End Function

Private Function Calcul(ByVal textBox As TextBox, ByVal p2 As String, ByVal textBox1 As TextBox, ByVal textBox2 As TextBox) As String
Throw New NotImplementedException
End Function

Private Function Calcul(ByVal p1 As String, ByVal p2 As String, ByVal p3 As String, ByVal p4 As String) As String
Throw New NotImplementedException
End Function

End Class

COMME CELA
0
Bonjour a tous,
Juste pour info, a tout ceux qui possède le framework 4.5,
la structure vector est dédié a cela (elle fonctionne avec des Double)

http://msdn.microsoft.com/en-us/library/system.windows.vector(v=vs.110).aspx

La structure Point, quand a elle ne se limite qu'au integer

http://msdn.microsoft.com/fr-fr/library/system.drawing.point(v=vs.110).aspx

mais les méthodes des 2 structures sont complémentaires en vérifiant bien la précision des résultats voulus


A signaler aussi la fonction ToString
Dim vector1 As New Vector(20, 30)

' vectorString is equal to "20,30".
Dim stringResult As String = vector1.ToString()
0
Rejoignez-nous