Seite 4 von 12

Verfasst: 03.04.2007 12:07
von Scarabol
So nach dem ersten Test kann ich sagen, der Rechner arbeitet genau so wie du es ihm gesagt hast. Du solltest vielleicht die Struktur deiner Rechnungen nochmals überdenken, weil ich denke das du es nach dem Addieren verallgemeinert hast.

Gruß
Scarabol

PS
Ich mach mal weiter und poste dann den Code

Coole Images :allright:

Verfasst: 03.04.2007 12:15
von Scarabol
Also der Code von der ersten Seite arbeitet wie der Windows Rechner man muss beachten, das man zuerst eine Zahl eingibt und dann auf subtrahieren klickt und dann die zweite Zahl eingibt.

Gruß
Scarabol

Verfasst: 03.04.2007 12:16
von Fusselohr
Danke für das Lob <)
Du solltest vielleicht die Struktur deiner Rechnungen nochmals überdenken, weil ich denke das du es nach dem Addieren verallgemeinert hast
Was meinst du damit ?

EDIT : Sollte ich das anders machen ? Das man bsw. zuerst die Zahlen eingibt und dann was man machen möchte ?

Verfasst: 03.04.2007 12:24
von Scarabol
Das Problem sehe ich darin, dass du die Rechenoperationen schon ausführst wenn der Benutzer sie auswählt, besser währe wenn du wie folgt vorgehst:

1. Benutzer gibt Zahl ein
2. Benutzer !wählt! Rechenart (hier noch nicht ausrechnen nur vielleicht einer Variable den wert 1 für Addition zuweisen)
3. If Abfrage
entweder Benutzer hat Zahl eingegeben
oder Benutzer hat ein weiteres Rechenzeichen eingegeben, dann sollte man das Ergebnis vorberechenen und mit dem neuen Zeichen und der neuen Zahl kombinieren.

Ergebnis sollte auch als Rechenzeichen gesehen werden.

Gruß
Scarabol

PS
hört sich komplizierter an als es ist, da ich nicht so der Erklärbär bin <)

Verfasst: 03.04.2007 12:24
von Kaeru Gaman
es scheint wirklich an der UPN* zu liegen:

[99] [-] => -99
[11] [=] => +11 => Ergebnis = -88

*bitte mal mein voriges posting lesen, das letzte auf der letzten seite, das wird immer gern übersehen...

Verfasst: 03.04.2007 12:35
von Scarabol
Kann man Rechenzeichen direkt in eine Variable speichern?

Gruß
Scarabol

Verfasst: 03.04.2007 12:49
von Fusselohr
Es tut mir Leid aber ich blick garnimmer durch ... sorry :?

Verfasst: 03.04.2007 12:52
von Scarabol
@Fusselohr
Schon gut meine letzte Frage war nicht direkt an dich gerichtet

Hab den Code überarbeitet, musst einfach nur weiter machen.

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

Enumeration 1
  #Equal
  #Add
  #Subtract
  #Divide
  #Multiply
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

Funktionen.b
Zahl.d
Eingabe.s
Ergebnis.d
 
  If OpenWindow(#Window_0, 541, 125, 311, 318, ".::Der RPG-Fire Rechner::.",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #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)          ;7
        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)
        SetActiveGadget(#String_2)
      EndIf
      
    
    EndIf
 
Repeat

    Select WaitWindowEvent()
    
      Case #PB_Event_Menu
        
        EventMenu = EventMenu()
        If EventMenu = 1
          End
        ElseIf EventMenu = 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)
        ElseIf EventMenu = 13; Pi berechnen
        ElseIf EventMenu = 14; Anleitungen
        ElseIf EventMenu = 15; Website
        ElseIf EventMenu = 16; Über
        Else ; hier kommen die Rechenoperationen rein
          Zahl = Val(GetGadgetText(#String_2))
          Select Operator
            Case #Add
              Ergebnis + Zahl
            Case #Divide
              Ergebnis - Zahl
            Default
              Ergebnis = Zahl
          EndSelect
          SetGadgetText(#String_2, "0")
          Select EventMenu
            Case 2 ; Addieren
              Operator = #Add
            Case 3 ; Subtrahieren
              Operator = #Subtract
            Case 4 ; Multiplizieren
              Operator = #Multiply
            Case 5 ; Dividieren
              Operator = #Divide
            Case 6 ; Ergebnis
              SetGadgetText(#String_2, Str(Ergebnis))
              Operator = #Equal
            Case 7 ; Prozentrechnen
            Case 8 ; Anzeige leeren
            Funktionen.b = 0
            Case 9 ; Komma setzen
            Case 10; Vorzeichen +
            Case 11; Vorzeichen -
          EndSelect
        EndIf
      
      Case #PB_Event_Gadget
        
      Case #PB_Event_CloseWindow
        End
      
    EndSelect
    
    
    
ForEver
Gruß
Scarabol

Verfasst: 03.04.2007 12:57
von Fusselohr
Erst Mal ein Großes DANKESCHÖN :lol: :lol: :lol:

Also jetzt muss ich einfach noch * und / hinzufügen oder ?

Verfasst: 03.04.2007 12:59
von Scarabol
jo