BlackBoard » Design, Programmierung & Entwicklung » Programmieren » VB - einfacher Taschnerrechner » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen VB - einfacher Taschnerrechner
Beiträge zu diesem Thema Autor Datum
 VB - einfacher Taschnerrechner Prof.Dr.Eck 11.06.2003 15:20
 RE: VB - einfacher Taschnerrechner phlox81 11.06.2003 15:24
 RE: VB - einfacher Taschnerrechner Prof.Dr.Eck 11.06.2003 15:44
 RE: VB - einfacher Taschnerrechner Compuholic 11.06.2003 16:48
 RE: VB - einfacher Taschnerrechner Prof.Dr.Eck 11.06.2003 17:10
 RE: VB - einfacher Taschnerrechner Compuholic 11.06.2003 17:11
 RE: VB - einfacher Taschnerrechner Alex 11.06.2003 17:57
 RE: VB - einfacher Taschnerrechner Prof.Dr.Eck 11.06.2003 18:45
 RE: VB - einfacher Taschnerrechner CDW 11.06.2003 19:06
 RE: VB - einfacher Taschnerrechner Medusa 11.06.2003 19:24
 RE: VB - einfacher Taschnerrechner Prof.Dr.Eck 11.06.2003 20:33
 RE: VB - einfacher Taschnerrechner fibby 10.07.2003 18:40
 RE: VB - einfacher Taschnerrechner Compuholic 10.07.2003 19:53
 RE: VB - einfacher Taschnerrechner Medusa 11.07.2003 10:06
 RE: VB - einfacher Taschnerrechner fibby 11.07.2003 10:30
 RE: VB - einfacher Taschnerrechner phlox81 11.07.2003 14:09
 RE: VB - einfacher Taschnerrechner Deef 11.07.2003 14:32
 casten Zmaster 11.07.2003 22:15

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Prof.Dr.Eck
gesperrt


Dabei seit: 25.05.2003
Beiträge: 118

Lampe VB - einfacher Taschnerrechner       Zum Anfang der Seite springen

Hallo,
ich bin auf die Idee gekommen mir nen kleinen Rechner zu coden... nur so zur Übung:
Jetzt: Es gibt nen Plus-Button "Plus" habe ich ihn genannt.
Hier ist mal der Source:

Dim Ergebnis As String
Dim Wert As String
Dim Wert2 As String
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Eingabe1 + Eingabe2
Anzeige.Caption = Ergebnis

So... wie man deutkich sieht werden Wert1 und Wert2 addiert.
Nur wenn ich z.B. in Eingabefeld 1 eingebe und in Eingabefeld 2 eingebe kommt als Ergebnis: 12
So nun meine Frage: Wie sollte der Source aussehen dass 3 rauskommt ??
Ich hab auch Dim Ergebnis As Doble, Integer, Single,
fast alle. Es kann natürlich auch sein dass ich nicht alle probiert habe die es gibt da ich erst Anfänger bin auf den Gebiet:
Hier mal alle die ich kenne bitte sagen wenn etwas fehlt:
Integer, Single, Double, String, Long, Byte, Boolean,
Date, Currency, Variant.
Wenn zufällig das fehlt was ich für mein Problem (siehe Oben) BITTE posten!
Danke

Mfg
Prof.Dr.eck

__________________
[SIZE=10]Dieser Beitrag wurde 9'241'723'183'212 mal editiert, zum letzten Mal von Prof.Dr.eck[/SIZE]
11.06.2003 15:20 Prof.Dr.Eck ist offline Homepage von Prof.Dr.Eck Beiträge von Prof.Dr.Eck suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

du liest wohl das als String ein. versuch mal den String
in Integer zu casten (falls das in VB geht *duck*),
und such mal bei google nach 'VB String in integer"

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
11.06.2003 15:24 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Prof.Dr.Eck
gesperrt


Dabei seit: 25.05.2003
Beiträge: 118

Themenstarter Thema begonnen von Prof.Dr.Eck
      Zum Anfang der Seite springen

Tut mir leid aber das sagt mir grade nichts.
Ich nehme mal an dass es daran liegt dass String Zahlen sind und keine Ziffern.
Gibts etwas für Ziffern ?

__________________
[SIZE=10]Dieser Beitrag wurde 9'241'723'183'212 mal editiert, zum letzten Mal von Prof.Dr.eck[/SIZE]
11.06.2003 15:44 Prof.Dr.Eck ist offline Homepage von Prof.Dr.Eck Beiträge von Prof.Dr.Eck suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

1. String = Zeichenkette
Intern wird das so gelöst, daß die Variable ein Zeiger auf die Speicheradresse ist an der der String beginnt. Das Ende des Strings ist meist durch ein NULL-Byte (0x00) gekennzeichnet. Visual Basic versteckt allerdings diesen Umstand vor Dir. Das man damit nicht rechnen kann, dürfte klar sein.

2. Integer = vorzeichenbehaftete Zahl
Ist auf den meisten Plattform 32-Bit breit. Die Zahlen werden einfach binär hier abgelegt. Mit diesem Variablentyp kann man problemlos rechnen. Allerdings kannst du hier keine Zeichen eingeben.

Es gibt allerdings Routinen, die beiden Datentypen konvertieren können. Wie das bei VB genau geht, weiß ich leider nicht. Das ist genau der Grund warum ich VB nicht mag. Es ist einfach nicht transparent genug.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Compuholic: 11.06.2003 16:49.

11.06.2003 16:48 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Prof.Dr.Eck
gesperrt


Dabei seit: 25.05.2003
Beiträge: 118

Themenstarter Thema begonnen von Prof.Dr.Eck
      Zum Anfang der Seite springen

... soll das heissen dass man in Visual Basic nicht einmal einen ganz einfach Taschenrechner coden kann ?
Das ist ja richtig BILLIG !

__________________
[SIZE=10]Dieser Beitrag wurde 9'241'723'183'212 mal editiert, zum letzten Mal von Prof.Dr.eck[/SIZE]
11.06.2003 17:10 Prof.Dr.Eck ist offline Homepage von Prof.Dr.Eck Beiträge von Prof.Dr.Eck suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Doch natürlich kann man das.
Du mußt nur darauf achten, mit welchem Variablentyp Du arbeitest. Mit einer Zeichenkette kann der Prozessor nicht rechnen. Also mußt Du sie in eine Integer-Zahl umwandeln.

[edit]
Deklariere einfach Wert1 und Wert2 als Variant. Ich glaube VisualBasic rechnet automatisch um.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Compuholic: 11.06.2003 17:13.

11.06.2003 17:11 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Alex Alex ist männlich
Boardgründer


images/avatars/avatar-648.gif

Dabei seit: 05.07.2001
Beiträge: 814
Herkunft: Hessen

      Zum Anfang der Seite springen

Mit String kannst du natürlich nicht rechnen.

Setze die Variablen einfach auf double (Mit Kommastellen)
Also so hier:
Dim Wert1, Wert2 as double

Wenn du Integer nimmst, kannst du nur mit Ganzzahlen rechnen.

__________________
MfG Alex
Die Zeit ist der beste Lehrer - leider tötet Sie alle Schüler
11.06.2003 17:57 Alex ist offline E-Mail an Alex senden Homepage von Alex Beiträge von Alex suchen
Prof.Dr.Eck
gesperrt


Dabei seit: 25.05.2003
Beiträge: 118

Themenstarter Thema begonnen von Prof.Dr.Eck
      Zum Anfang der Seite springen

unglücklich unglücklich unglücklich
Tja... funtkioniert nicht.
2 + 2 gibt da 22!

Also hier ist jetzt mal der komplette Source:


Private Sub Command1_Click()

End Sub

Private Sub Divi_Click()
Dim Ergebnis As String
Dim Wert As String
Dim Wert2 As String
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Eingabe1 / Eingabe2
Anzeige.Caption = Ergebnis
End Sub

Private Sub Mal_Click()
Dim Ergebnis As String
Dim Wert As String
Dim Wert2 As String
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Eingabe1 * Eingabe2
Anzeige.Caption = Ergebnis
End Sub

Private Sub Minus_Click()
Dim Ergebnis As String
Dim Wert As String
Dim Wert2 As String
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Eingabe1 - Eingabe2
Anzeige.Caption = Ergebnis
End Sub

Private Sub Plus_Click()
Dim Ergebnis As String
Dim Wert As Variant
Dim Wert2 As Variant
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Eingabe1 + Eingabe2
Anzeige.Caption = Ergebnis
End Sub


Nun die anderen Funktionen funzen alle bis auf das letzte: Plus!

Danke

Mfg
Prof.Dr.eck

__________________
[SIZE=10]Dieser Beitrag wurde 9'241'723'183'212 mal editiert, zum letzten Mal von Prof.Dr.eck[/SIZE]
11.06.2003 18:45 Prof.Dr.Eck ist offline Homepage von Prof.Dr.Eck Beiträge von Prof.Dr.Eck suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

Zitat:
Dim Ergebnis As String
Dim Wert As String
Dim Wert2 As String

ähm, wie alex schon sagte, auf double setzen... denn was du versuchts ist gerade mit Zeichenketten zu rechnen Augen rollen ... und bei Plus
ist die standardoperation bei Text "verbinden", das heißt, wenn du 'a' und 'b' angibst, bekommst du 'ab' raus... da ist nix falsches dran - die "Ziffern" werden als Zeichen behandelt und mit ihnen wird auch nicht gerechnet... die anderen funktionen dürften auch nicht richtig funktionieren, aber VB war für mich immer schon ein Geheimniss Augenzwinkern
PS: ein guter Taschenrechner(statt des Winstandards):
http://spiff.tripnet.se/~iczelion/files/EWCalc.zip
geschreieben in "richtiger" Sprache Augenzwinkern
11.06.2003 19:06 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Medusa Medusa ist männlich
Senior Member


images/avatars/avatar-252.gif

Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...

      Zum Anfang der Seite springen

oder du Dimst gar nichts, und sagst einfach:

code:
1:
Ergebnis=cdbl(Eingabe1.text)+cdbl(Eingabe2.text)


Mit der Funktion cdbl([string]) wandelt man einen string in eine Zahl (typ double) um.
wenn dein Textfeld den String "10" enthält, dann kann man damit nicht rechnen. Erst wenn man ihn in einen Zahlen-Typ umwandelt.
Infos über die verschiedenen Typen findest du betimmt bei google.

Single: csng()
Long: clng()
Double: cdbl()
Integer: cint()

Als Parameter muss eben der String übergeben werden. Umgekehrt lässt sich das mit cstr() wieder in einen String wandeln.

__________________
Grüßle, Medi

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Medusa: 11.06.2003 19:25.

11.06.2003 19:24 Medusa ist offline E-Mail an Medusa senden Beiträge von Medusa suchen
Prof.Dr.Eck
gesperrt


Dabei seit: 25.05.2003
Beiträge: 118

Themenstarter Thema begonnen von Prof.Dr.Eck
      Zum Anfang der Seite springen

@CDW
Danke erstamal.

@Medusa,
DANKE, schon wieder großes Grinsen
Dein Code:
Ergebnis=cdbl(Eingabe1.text)+cdbl(Eingabe2.text)

Mit dem hat's geklappt VIELEN VIELEN DANKE!

Mfg
Prof.Dr.eck

__________________
[SIZE=10]Dieser Beitrag wurde 9'241'723'183'212 mal editiert, zum letzten Mal von Prof.Dr.eck[/SIZE]
11.06.2003 20:33 Prof.Dr.Eck ist offline Homepage von Prof.Dr.Eck Beiträge von Prof.Dr.Eck suchen
fibby fibby ist weiblich
Junior Member


images/avatars/avatar-1739.jpg

Dabei seit: 24.04.2002
Beiträge: 115

      Zum Anfang der Seite springen

Hey Leute,

ich hab grad mal so zufällig hier herein gesehen und ich muss schon sagen ....( hab mir auch nicht alles durchgelesen großes Grinsen ) aber ich hab bemerkt dass keiner von euch auf die Idee gekommen ist nicht einfach den Wert1 mit dem Wert2 zu addieren, sub. oder wie auch immer!

Private Sub Plus_Click()

Dim Ergebnis As String
Dim Wert As Variant
Dim Wert2 As Variant
Wert = Eingabe1.Text
Wert2 = Eingabe2.Text
Ergebnis = Wert + Wert2
Anzeige.Caption = Ergebnis
End Sub

also so z.B ....ich denk schon dass das einwandfrei funktionieren sollte.

Augenzwinkern Freude

__________________
~Fibby~
Engel
<chipdalf> bin ich eigenltich das viel zitierte virtuelle licht des wissens, oder wieso zitiert mich bald jeder in seiner signatur?
Zunge raus leased:
10.07.2003 18:40 fibby ist offline E-Mail an fibby senden Beiträge von fibby suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Du hast "Wert" und "Wert2" als Variant deklariert. Damit könnte es natürlich funktionieren. Diese Lösung hab ich oben auch schon vorgeschlagen, war mir aber nicht sicher, weil ich mich mit VisualBasic nicht auskenne.
Das Problem lag vielmehr darin, das er die beiden Variablen als String deklariert hat. Und damit ist es nicht möglich zu rechnen. Ich vermute mal der + Operator dient hier einfach dazu, daß ein String an den 2. angehängt werden soll.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Compuholic: 10.07.2003 19:54.

10.07.2003 19:53 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Medusa Medusa ist männlich
Senior Member


images/avatars/avatar-252.gif

Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...

      Zum Anfang der Seite springen

Zitat:
Original von Compuholic
Ich vermute mal der + Operator dient hier einfach dazu, daß ein String an den 2. angehängt werden soll.

richtig Augenzwinkern
Ich verwende aber immer den & Operator, weil damit alle Typen angehängt werden können.

__________________
Grüßle, Medi
11.07.2003 10:06 Medusa ist offline E-Mail an Medusa senden Beiträge von Medusa suchen
fibby fibby ist weiblich
Junior Member


images/avatars/avatar-1739.jpg

Dabei seit: 24.04.2002
Beiträge: 115

      Zum Anfang der Seite springen

ok ok, schon gut sorry!

Aber ich finde ein Taschenrechner sollte aus 2 + 2 ... 4 machen und nicht 22 aber egal, für mich etwas unlogisch, aber wie ihr wollt !!!

cya

__________________
~Fibby~
Engel
<chipdalf> bin ich eigenltich das viel zitierte virtuelle licht des wissens, oder wieso zitiert mich bald jeder in seiner signatur?
Zunge raus leased:
11.07.2003 10:30 fibby ist offline E-Mail an fibby senden Beiträge von fibby suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von fibby
ok ok, schon gut sorry!

Aber ich finde ein Taschenrechner sollte aus 2 + 2 ... 4 machen und nicht 22 aber egal, für mich etwas unlogisch, aber wie ihr wollt !!!


tststs.
Natürlich muss 2 + 2 = 22 sein.
Sonst bräuchte man ja keine Hochsprachen wie VB...

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
11.07.2003 14:09 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Deef Deef ist männlich
...


Dabei seit: 24.08.2002
Beiträge: 431

      Zum Anfang der Seite springen

Versuch mal die beiden Werte vor dem addieren mit 1 zu multiplizieren. Das ist ein Trick, der mit in JavaScript schonmal geholfen hat Augenzwinkern

__________________
Was sagen uns Signaturen?! 1.Ich kann Latein 2.Ich bin umheimlich tiefgründig 3.Ich kann googlen 4.Ich lese die Lyrics der Lieder die ich höre 5.Ich schreibe und denke mir Scheisse aus die keiner lesen will...
11.07.2003 14:32 Deef ist offline E-Mail an Deef senden Beiträge von Deef suchen
Zmaster
Junior Member


Dabei seit: 15.02.2003
Beiträge: 133

Achtung casten       Zum Anfang der Seite springen

Ich bin schon ein kleiner Freund von VBA (ein kleines Script in Sekundenschnelle), aber ich habe bis jetzt immer den Typ Variant vermieden. Das liegt daran, dass man den Computer entscheiden lässt, was er damit macht. Zahl oder String? Der Programmierer muss hoffen.
Daher kann ich nur empfehlen mit der Funktion CInt(String) den Wert in eine Integer Variable zu speichern. Das ist die schnellste und sicherste Lösung. Man brauch dann auch keine extra String Variable zum zwischenspeichern. Schließlich will man rechnen und nicht damit rumspielen.

Private Sub Plus_Click()
Anzeige.Caption = CDbl(Eingabe1.Text) + CDbl(Eingabe2.Text)
End Sub


Gruß
zmaster
11.07.2003 22:15 Zmaster ist offline Beiträge von Zmaster suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » VB - einfacher Taschnerrechner

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH