Taschenrechner ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Taschenrechner ?

Beitrag von Fusselohr »

Hallo an alle,
ich hab ein Problem... Genauergesagt bin ich
verzweifelt. Alles Was ich mache Funktioniert nicht ....
Deshalb wollte ich fragen ob mir jemand sagen kann wie ich am
Besten eine Plusrechnung hinbekomme ... ich habe einen Feld, in welches
man Zahlen eingeben kann. Wenn mir jemand helfen könnte wäre ich sehr dankbar .

Gruß Fusselohr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm... wo ist da das eigentliche problem?

Code: Alles auswählen

a = 10
b = 12
sum = a+b
Debug sum
c = 14
sum = sum + c
Debug sum
d = 16
sum = sum + d
Debug sum
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Beitrag von Fusselohr »

Es ist halt so , wenn ich etwas eingebe bsw. 100 welches x sein soll und danach auf addieren gehe und dann 50 für y eingebe, bekomm ich entweder das Problem das x und y 100 , oder das x 50 und y 0 ist usw.

Gruß Fusselohr
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Fusselohr
Poste mal dein Source hier :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo dann machste wohl was falsch.... :shock:

probiers mal so:
vergiss x und y und sowas...
weise deine eingabe immer der gleichen variablen zu.
wenn du auf addieren drückst, machste summe + variable.

Code: Alles auswählen

a = 10
sum + a
Debug sum
a = 12
sum + a
Debug sum
a = 14
sum + a
Debug sum
a = 16
sum + a
Debug sum
anmerkung:
sum + a
tut das gleiche wie
sum = sum + a
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Beitrag von Fusselohr »

Ich checks irgendwie nicht :| .
Also ich hab ein String , dessen Wert in eine Variable umgewandelt wird.
Und da soll die nächste Eingabe mit dem selben String (der wiederrum in die gleiche Variable umgewandelt wird) addiert werden ?

:coderselixir:

Hier ist mein Source Code

Code: Alles auswählen

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_13
  #MENU_14
  #MENU_22
  #MENU_23
  #MENU_24
  #MENU_27
  #MENU_28
  #MENU_29
  #MENU_34
  #MENU_30
  #MENU_31
  #MENU_17
  #MENU_15
  #MENU_35
  #MENU_36
  #MENU_16
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Sieben
  #Acht
  #Neun
  #ButtonImage_4
  #ButtonImage_5
  #ButtonImage_6
  #ButtonImage_7
  #ButtonImage_8
  #ButtonImage_9
  #ButtonImage_11
  #ButtonImage_12
  #ButtonImage_13
  #ButtonImage_14
  #ButtonImage_15
  #ButtonImage_16
  #ButtonImage_17
  #ButtonImage_18
  #ButtonImage_19
  #ButtonImage_20
  #ButtonImage_22
  #String_2
EndEnumeration

;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image0
Global Image1
Global Image2
Global Image3
Global Image4
Global Image5
Global Image6
Global Image7
Global Image8
Global Image9
Global Image10
Global Image11
Global Image12
Global Image13
Global Image14
Global Image15
Global Image16
Global Image17
Global Image18
Global Image19

;- Catch Images
Image0 = CatchImage(0, ?Image0)
Image1 = CatchImage(1, ?Image1)
Image2 = CatchImage(2, ?Image2)
Image3 = CatchImage(3, ?Image3)
Image4 = CatchImage(4, ?Image4)
Image5 = CatchImage(5, ?Image5)
Image6 = CatchImage(6, ?Image6)
Image7 = CatchImage(7, ?Image7)
Image8 = CatchImage(8, ?Image8)
Image9 = CatchImage(9, ?Image9)
Image10 = CatchImage(10, ?Image10)
Image11 = CatchImage(11, ?Image11)
Image12 = CatchImage(12, ?Image12)
Image13 = CatchImage(13, ?Image13)
Image14 = CatchImage(14, ?Image14)
Image15 = CatchImage(15, ?Image15)
Image16 = CatchImage(16, ?Image16)
Image17 = CatchImage(17, ?Image17)
Image18 = CatchImage(18, ?Image18)
Image19 = CatchImage(19, ?Image19)

;- Images
DataSection
Image0:
  IncludeBinary "Ressourcen\6.png"
Image1:
  IncludeBinary "Ressourcen\8.png"
Image2:
  IncludeBinary "Ressourcen\9.png"
Image3:
  IncludeBinary "Ressourcen\7.png"
Image4:
  IncludeBinary "Ressourcen\5.png"
Image5:
  IncludeBinary "Ressourcen\4.png"
Image6:
  IncludeBinary "Ressourcen\1.png"
Image7:
  IncludeBinary "Ressourcen\2.png"
Image8:
  IncludeBinary "Ressourcen\3.png"
Image9:
  IncludeBinary "Ressourcen\Plus.png"
Image10:
  IncludeBinary "Ressourcen\Clear.png"
Image11:
  IncludeBinary "Ressourcen\Punkt.png"
Image12:
  IncludeBinary "Ressourcen\0.png"
Image13:
  IncludeBinary "Ressourcen\Prozent.png"
Image14:
  IncludeBinary "Ressourcen\Mal.png"
Image15:
  IncludeBinary "Ressourcen\Vorzeichen Plus.png"
Image16:
  IncludeBinary "Ressourcen\Vorzeichen Minus.png"
Image17:
  IncludeBinary "Ressourcen\Gleich.png"
Image18:
  IncludeBinary "Ressourcen\Geteilt.png"
Image19:
  IncludeBinary "Ressourcen\Minus.png"
EndDataSection

x.d
y.d
z.d
Funktionen.b
Eingabe.s
Ergebnis.d
Reihenfolge.b
 
  If OpenWindow(#Window_0, 541, 125, 311, 318, ".::Der RPG-Fire Rechner::.",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar )
 
     If CreateMenu(#MenuBar_0, WindowID(#Window_0))
      MenuTitle("Datei")
      MenuItem(1, "Beenden")
      MenuTitle("Funktionen")
      MenuItem(2, "Addieren")
      MenuItem(3, "Subtrahieren")
      MenuItem(4, "Multiplizieren")
      MenuItem(5, "Dividieren")
      MenuItem(6, "Ergebnis")
      MenuItem(7, "Prozentrechnen")
      MenuItem(8, "Anzeige leeren")
      MenuItem(9, "Komma setzen")
      MenuItem(10, "Vorzeichen +")
      MenuItem(11, "Vorzeichen -")
      MenuTitle("Spezials")
      MenuItem(12, "Binomische Formeln")
      MenuItem(13, "Pi berechnen")
      MenuTitle("Hilfe")
      MenuItem(14, "Anleitung")
      MenuItem(15, "Website")
      MenuItem(16, "Über")
      EndIf

     
      If CreateGadgetList(WindowID(#Window_0))
        ButtonImageGadget(#Sieben, 160, 110, 59, 32, Image0)
        ButtonImageGadget(#Acht, 90, 70, 59, 32, Image1)              ;8
        ButtonImageGadget(#Neun, 160, 70, 59, 32, Image2)             ;9
        ButtonImageGadget(#ButtonImage_4, 20, 70, 59, 32, Image3)     ;7
        ButtonImageGadget(#ButtonImage_5, 90, 110, 59, 32, Image4)    ;5
        ButtonImageGadget(#ButtonImage_6, 20, 110, 59, 32, Image5)    ;4
        ButtonImageGadget(#ButtonImage_7, 20, 150, 59, 32, Image6)    ;1
        ButtonImageGadget(#ButtonImage_8, 90, 150, 59, 32, Image7)    ;2
        ButtonImageGadget(#ButtonImage_9, 160, 150, 59, 32, Image8)   ;3
        ButtonImageGadget(#ButtonImage_11, 230, 110, 59, 32, Image9)  ;+
        ButtonImageGadget(#ButtonImage_12, 230, 70, 59, 32, Image10)  ;C
        ButtonImageGadget(#ButtonImage_13, 20, 190, 59, 32, Image11)  ;.
        ButtonImageGadget(#ButtonImage_14, 90, 190, 59, 32, Image12)  ;0
        ButtonImageGadget(#ButtonImage_15, 160, 190, 59, 32, Image13) ;%
        ButtonImageGadget(#ButtonImage_16, 230, 190, 59, 32, Image14) ;*
        ButtonImageGadget(#ButtonImage_17, 20, 230, 59, 32, Image15)  ;++
        ButtonImageGadget(#ButtonImage_18, 90, 230, 59, 32, Image16)  ;--
        ButtonImageGadget(#ButtonImage_19, 160, 230, 59, 32, Image17) ;=
        ButtonImageGadget(#ButtonImage_20, 230, 230, 59, 32, Image18) ;/
        ButtonImageGadget(#ButtonImage_22, 230, 150, 59, 32, Image19) ;-
        StringGadget(#String_2, 20, 25, 270, 30, "",#PB_String_Numeric | #PB_Text_Right)


      EndIf
      

    EndIf
 
Repeat


    Select WaitWindowEvent()

      Case #PB_Event_Menu

        Select EventMenu()  ; To see which menu has been selected

          Case 1 ; Beenden
            End
          Case 2 ; Addieren
          Funktionen = 1
          Case 3 ; Subtrahieren
          Funktionen = 2
          Case 4 ; Multiplizieren
          Funktionen = 3
          Case 5 ; Dividieren
          Funktionen = 4
          Case 6 ; Ergebnis
          Funktionen = 5
          Case 7 ; Prozentrechnen
          Case 8 ; Anzeige leeren
          Funktionen.b = 0
          Case 9 ; Komma setzen
          Case 10; Vorzeichen +
          Case 11; Vorzeichen -
          Case 12; Binomische Formeln
          zweizeiler$ = "Die erste binomische Formel lautet : ( a + b ) ² = a ² + 2 a b + b ²   " + Chr(10) + "Die zweite binomische Formel lautet : ( a - b ) ² = a ² - 2 a b + b ² " + Chr(10) + "Die dritte binomische Formel lautet : ( a + b ) ( a - b )  = a ² - b ² "
          MessageRequester("Die binomischen Formeln",zweizeiler$,#PB_MessageRequester_Ok)
          Case 13; Pi berechnen
          Case 14; Anleitungen
          Case 15; Website
          Case 16; Über

        EndSelect

;Hier kommen die Rechenevente hin :

;Allgemeines
a = ValD(Eingabe)
SetGadgetText(#String_2, "")
Ergebnis.d = ValD(Eingabe)
x = Ergebnis.d + a

    EndSelect


  Until Quit = 1


End 


  
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Code: Alles auswählen

wenn irgendein rechenknopp gedrückt wird
  Eingabe.s = GetGadgetText(...
  Zahl.d = ValD(Eingabe.s)
  wenn Plus
    Ergebnis + Zahl
  wenn Minus
    Ergebnis - Zahl
  wenn Gleich
    Ausgabe(Ergebnis)
  wenn C
    Ergebnis = 0
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Beitrag von Fusselohr »

Mein Rechenteil sind jetzt so aus :

Code: Alles auswählen

Eingabe.s = GetGadgetText(#String_2)
  Zahl.d = ValD(Eingabe.s)
  If Funktion = 1
    Ergebnis + Zahl
    EndIf
  If Funktion = 2
    Ergebnis - Zahl
    EndIf
  If Funktion = 5
    SetGadgetText(StrD(Ergebnis))
    EndIf
  If Funktion = 8
    Ergebnis = 0
    EndIf
bekomme ich folgende Meldung :

SetGadgetText() . Incorrect number of parameters.

Was hab ich jetzt schon wieder falsch gemacht :o ?
Mein Projekt besteht immernoch und wächst stündlich.

Du willst die Entwicklung mitverfolgen ?
Dann besuche jetzt den Entwicklungsblog unter
http://rpg-fire-games.blogspot.com/
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

so... das ist SO einfach, dass du selber drauf kommst.

...drück im zweifel einfach mal F1 aus dem befehl der den fehler ausspuckt.

...was bedeutet denn wohl "incorrect number of parameters"?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fusselohr
Beiträge: 236
Registriert: 02.04.2007 10:43
Kontaktdaten:

Beitrag von Fusselohr »

Es heißt :

Code: Alles auswählen

SetGadgetText(StrD,Ergebnis$)
Mein Projekt besteht immernoch und wächst stündlich.

Du willst die Entwicklung mitverfolgen ?
Dann besuche jetzt den Entwicklungsblog unter
http://rpg-fire-games.blogspot.com/
Antworten