Newb: Quadrat berechnen


MIniMe_

Erfahrenes Mitglied
hab mal erste gehversuche gemacht, und ein programm gemacht, dass das quadrat einer zahl berechnen soll. geht aba nich.
den ersten teil könnt ihr überlesen, das is nur son zeug was ich ma wieder nicht verstehe.. ;)
Code:
Option Explicit On 
Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        ' Dieser Aufruf ist für den Windows-Formular-Designer erforderlich.
        InitializeComponent()

        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen

    End Sub

    ' Form überschreibt den Löschvorgang zur Bereinigung der Komponentenliste.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Button1 As System.Windows.Forms.Button

    ' Für Windows-Formular-Designer erforderlich
    Private components As System.ComponentModel.Container

    'HINWEIS: Die folgende Prozedur ist für den Windows-Formular-Designer erforderlich
    'Sie kann mit dem Windows-Formular-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.TextBox1 = New System.Windows.Forms.TextBox()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(40, 112)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(160, 48)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "&Quadrat berechnen"
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(40, 40)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(160, 20)
        Me.TextBox1.TabIndex = 0
        Me.TextBox1.Text = ""
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(240, 205)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.TextBox1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

#End Region
 
//
//        ab hier kommt mein code
//

   Dim Text1 As Double
    Dim ergebnis As Double

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub

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

        if Text1 == "" then 
            MsgBox("Bitte eine Zahl eingeben")
        Else
            ergebnis = Text1 * Text1
            MsgBox(ergebnis)
        End If

    End Sub
End Class
 

bartman336

Mitglied
öhm irgendwie steig ich durch den code auch nicht ganz durch?
mit welcher vb version issen der erstellt?

naja egal also ich geh jetzt mal davon aus du hast ein textfeld(text1) und einen button(command1) dann wäre das ganze folgendermaßenPrivate

Code:
Sub Command1_Click()
If IsNumeric(Text1.Text) Then ' fragt ab ob der inhalt in text1 auch wirklich eine zahl ist
    ergebnis = Text1.Text * Text1.Text 'macht die berechnung
    MsgBox ergebnis ' und gibt das ergebnis in einer msgbox aus
End If
End Sub

was der ganze andere code bei dir da oben soll weiß ich auch nicht, wie schon oben gefragt mit welcher vb version arbeitest du denn?
 

Thomas Kuse

Erfahrenes Mitglied
müsste nich noch VAL eingefügt werden?
Code:
Sub Command1_Click()
If IsNumeric(Text1.Text) Then ' fragt ab ob der inhalt in text1 auch wirklich eine zahl ist
    ergebnis = val(Text1.Text) * val(Text1.Text) 'macht die berechnung
    MsgBox ergebnis ' und gibt das ergebnis in einer msgbox aus
End If
End Sub
 

bartman336

Mitglied
theorethisch ja, praktisch aber nicht weil durch die abfrage isnumeric schon gewährleistet ist (oder sein sollte) das es sich um eine zahl handelt
 

MIniMe_

Erfahrenes Mitglied
des is ja das komische... ich hab son komisches "beta"-teil von M$, visual studio .NET
das fügt diesen code da oben automatisch dazu...

was ist "VAL"?
 
J

Johannes Postler

du hast geschrieben:

if Text1 == "" then
MsgBox("Bitte eine Zahl eingeben")
Else
ergebnis = Text1 * Text1
MsgBox(ergebnis)
End If

ich glaube du hättest statt Text1 immer text1.text schreiben sollen

cu tirolausserfern
 
J

Johannes Postler

das weiß ich auch nicht so genau -> mache es deshalb immer mit "text1.text". was bringt dein Visual Basic für eine Fehlermeldung? type mismatch? dann schreib "cdbl(text1.text)" - vielleicht geht das?

cu tirolausserfern
 

ambient

Mitglied
das ist eigentlich egal, denn wen mann einfach Text1 schreibt, dass bekommt er als default "text"

also, "text1.text" ist das gleiche wie "text1"
 
J

Johannes Postler

also jedes objekt hat seine eigenschaften. die text-eigenschaft bei einer Textbox gibt zum Beispiel an, was sich für ein text darin befindet

cu tirolausserfern
 

Daniel Toplak

Erfahrenes Mitglied
Also wenn ich mir den Code so ansehe, dann ist das bestimmt Visual Basic .Net, denk ich mal. Sieh auf alle fälle interessant aus. *g*
Nun ja bezüglich deines Problemes, haben ja die anderen schon einiges gesagt. Aber du solltest nach dem du mit IsNumeric(Text1.Text) abgeprüft hast ob der wert in deinem Textfeld numerisch ist, das ganze doch noch mit CInt(Text1.Text) umwandeln. Achja Val heißt einfach nur VALUE und wandelt nicht um sonder gibt den Inhalt zurück.

Gruss Homer
 
J

Johannes Postler

ich hätte da noch eine Anmerkung zu homer's post:

cint(text1.text) ist vielleicht nicht so gut, da der datentyp integer nur bis ca. 30000 geht. besser wäre cdbl(text1.text). der datentyp double ist nämlich vieeeeeel größer.

cu tirolausserfern
 

Neue Beiträge

Forum-Statistiken

Themen
272.360
Beiträge
1.558.622
Mitglieder
187.833
Neuestes Mitglied
SirrDansen