# Fortgeschrittene helfen Anfängern beim Programmieren!



## Yve87 (15. Juni 2005)

Hi leute,
Ich habe (leider) das Fach Informatik gewählt und muss nun als Projekt einen Taschenrechner programmieren. Leider hab ich nicht wirklich ne ahnung von VB. Angefangen hab ich schon. Da das jetzt mein letztes Jahr Informatik ist, möchte ich in dem Projekt wenigstens ne 3 haben und ich hoffe, ihr könnt mir dabei helfen. Meine Probleme sind, dass ich keine ahnung habe, wie ich das mit Sinus und Cosinus machen soll. Ich will, dass ich, wie bei nem normalen Taschenrechner, eine Zahl negativ machen kann. Und es muss alles möglichst einfach gehalten sein. 
Ich wäre super froh, wenn ihr mir helfen könntet!
Hier mein vorläufiger Quellcode:

Option Explicit

Dim strrechenart As String

Dim strZahl As String




Private Sub cmd_0_Click()

txt_display.Text = txt_display + "0"



End Sub

Private Sub cmd_1_Click()

txt_display.Text = txt_display + "1"


End Sub

Private Sub cmd_2_Click()

txt_display.Text = txt_display + "2"


End Sub

Private Sub cmd_3_Click()

txt_display.Text = txt_display + "3"



End Sub

Private Sub cmd_4_Click()

txt_display.Text = txt_display + "4"



End Sub

Private Sub cmd_5_Click()

txt_display.Text = txt_display + "5"



End Sub

Private Sub cmd_6_Click()

txt_display.Text = txt_display + "6"



End Sub

Private Sub cmd_7_Click()

txt_display.Text = txt_display + "7"




End Sub

Private Sub cmd_8_Click()

txt_display.Text = txt_display + "8"



End Sub

Private Sub cmd_9_Click()

txt_display.Text = txt_display + "9"



End Sub


Private Sub cmd_clear_Click()


txt_display.Text = ""


End Sub



Private Sub cmd_ergebnis_Click()


If strrechenart = "multiplikation" Then
txt_display.Text = CDbl(strZahl) * CDbl(txt_display)
ElseIf strrechenart = "division" Then
txt_display.Text = CDbl(strZahl) / CDbl(txt_display)
ElseIf strrechenart = "addition" Then
txt_display.Text = CDbl(strZahl) + CDbl(txt_display)
ElseIf strrechenart = "subtraktion" Then
txt_display.Text = CDbl(strZahl) - CDbl(txt_display)
ElseIf strrechenart = "quadrat" Then
txt_display.Text = CDbl(strZahl) ^ CDbl(2)
ElseIf strrechenart = "potenzieren" Then
txt_display.Text = CDbl(strZahl) ^ CDbl(txt_display)
ElseIf strrechenart = "wurzel" Then
txt_display.Text = CDbl(strZahl) ^ (1 / 2)



End If


strrechenart = "ergebnis"

End Sub

Private Sub cmd_geteilt_Click()
strZahl = txt_display
strrechenart = "division"
txt_display.Text = txt_display


End Sub

Private Sub cmd_mal_Click()
strZahl = txt_display
strrechenart = "multiplikation"

End Sub

Private Sub cmd_minus_Click()
strZahl = txt_display
strrechenart = "subtraktion"

End Sub

Private Sub cmd_plus_Click()
strZahl = txt_display
strrechenart = "addition"

End Sub

Private Sub cmd_potenzieren_Click()
strZahl = txt_display
strrechenart = "potenzieren"

End Sub

Private Sub cmd_punkt_Click()
txt_display.Text = txt_display + "."

End Sub

Private Sub cmd_quadrat_Click()
strZahl = txt_display
strrechenart = "quadrat"

End Sub

Private Sub cmd_cosinus_Click()
strZahl = txt_display
strrechenart = "cosinus"

End Sub

Private Sub cmd_wurzel_Click()
strZahl = txt_display
strrechenart = "wurzel"

End Sub


----------



## wincnc (15. Juni 2005)

Hallo, hier ein kleines Beispiel eines Taschenrechners.


----------



## Yve87 (15. Juni 2005)

Ich danke dir für das Beispiel, nur leider kann ich das nicht öffnen bzw. ich kann das schon öffnen, aber das was dann kommt kann ich nciht öffnen.


----------



## Yve87 (15. Juni 2005)

hat sich wieder erledigt. jetzt funktionierts.


----------



## Yve87 (15. Juni 2005)

ich muss sagen, ich versteh kein einziges wort von deinem quellcode. ich dank dir trotzdem dafür. der rechner wird bestimmt andren leuten helfen.


----------



## Yve87 (16. Juni 2005)

Wie kann ich VB befehlen, dass es etwas ersetzen soll?
Ich weiß, dass es eine "Replace" Anweisung gibt, weiß aber nicht wie sie funktioniert. 
In der Hilfe kann ich auch nciht nachgucken, weil cih keine hab.


----------



## Julian Maicher (16. Juni 2005)

Was willst du denn erstetzen? Etwas in einem String durch einen anderen String, oder lediglich im gesamten Quellcode einen Command o.ä.?


----------



## Yve87 (16. Juni 2005)

ich will, wenn irgend möglich 
"-" + strZahl
durch
"" + strZahl 
ersetzen


----------



## Julian Maicher (16. Juni 2005)

Dann nimm doch einfach die Suchen -> Ersetzen Funktion (Bearbeiten -> Suchen Ersetzen o.ä.).
Dann gib dort einfach das zu suchende Muster und das dadurch zu ersetzende Muster ein und dann kanns los gehen.


----------



## Yve87 (16. Juni 2005)

tut mir leid, aber das musst du mir n bisschen genauer erklären.
es ist so peinlich dumm zu sein....


----------



## Julian Maicher (16. Juni 2005)

Drück doch einfach mal Strg + H.
Gib im Suchen Feld _"-" + strZahl_ ein.
Im Ersetzen Feld gibst du _ + strZahl_ ein ("" + ... macht keinen Sinn).
Den Rest wirst du wohl selber schaffen. Hab leider kein VB6 da, deswegen kann ichs dir nicht genauer beschreiben.


----------



## Shakie (16. Juni 2005)

@suye: Ich glaube, Yve87 will etwas zur Laufzeit ersetzen. Allerdings kapiere ich nicht ganz, was wie ersetzt werden soll.


----------



## Orakel (17. Juni 2005)

Hi Yve87



> In der Hilfe kann ich auch nciht nachgucken, weil ich keine hab.



Hier hilft vielleicht ein Blick in die MSDN von M$ bzw. eine einfache Suche mit google 

Replace funktioniert wie folgt:

MsgBox Replace("ABCDEFGABCDEFGABCDEFG", "AB", "XY")

Hier werden in der  Zeichenkette "ABCDEFGABCDEFGABCDEFG" alle "AB" durch "XY" ersetzt.

Gruß
Das Orakel


----------



## Yve87 (17. Juni 2005)

ich versuche mein problem deutlicher zu schildern:
ich muss einen taschenrechner programmieren und bei einem taschenrechner kann man ja das vorzeichen von "+" zu "-" umändern. bei meinem programm möchte ich das auch machen, aber bic jetzt  es noch so, dass ich das vorzeichen zwar in "-" umändern kann, aber nicht wieder in "+" bzw. "". wenn ich bei meinem programm die taste "+/-" klick erscheint ein weiteres "-", was ich natürlich nicht will. deshalb wollte ich gucken, ob ich es irgendwie hinbekomme, dass wenn ich ein zweites mal auf die taste "+/-" klicke statt zweimal "-" nichts, also "" auf dem display steht.
ich hoffe, ich hab mich jetzt verständlicher ausgedrückt als vorher und irgendwer kann mir helfen!


----------



## Merlin_78 (17. Juni 2005)

Hi Yve87,

du mußt doch nur den Inhalt deines Displays mit -1 multiplizieren.

Also einfach beim Click-Ereignis des +/- Button folgenden Code eintragen:
txt_display.Text = CDbl(txt_display.Text) * -1


----------



## Yve87 (17. Juni 2005)

danke Merlin, da hätte ich eigentlich auch selber drauf kommen können.
damit haste nicht nur mir geholfen, sondern auch ein paar andren aus meinem kurs. Ich glaub wir machen uns das immer schwerer als es eigentlich ist.
ncohmal danke, du hast mir sehr geholfen


----------



## Yve87 (17. Juni 2005)

kann mir jemand sagen, wie ich das wurzelzeichen ^bei VB machen kann?


----------



## Shakie (17. Juni 2005)

So zieht man die wurzel aus einer Zahl:

```
ErgebnisWurzel = Sqr(Zahl)
```


----------



## Yve87 (19. Juni 2005)

erstmal danke @ shakie!
und jetzt zu einem weiteren problem:

If strrechenart = "sinus" Then
lbl_ergebnis.Caption = FormatNumber (Sin(CDbl(strZahl) * (3.14159265358979 / 180)), 14)

wie kann ich es vermeiden, dass mein taschenrechner auch bei graden zahlen 14 nachkommastellen anzeigt?


----------

