Forum | | | | Gary12345 | Salut,
simpler Code, simple Frage:
$I MatheLeicht.inc
Fenêtre 0,0-600,400
Fenêtre Style 15
Titre de la fenêtre "Taschenrechner by Gary12345"
declare edittext$
var edit1& = CREATE("Edit",%HWND,edittext$,10,10,550,30)
var button1& = CREATE("Button",%HWND,"+",20,50,100,50)
var button2& = CREATE("Button",%HWND,"-",150,50,100,50)
var button3& = CREATE("Button",%HWND,»,280,50,100,50)
var button4& = CREATE("Button",%HWND,"X",410,50,100,50)
var button5& = CREATE("Button",%HWND,"Wurzel",20, 120,100,50)
var button6& = CREATE("Button",%HWND,"ADreieck",150,120,100,50)
var button7& = CREATE("Button",%HWND,"AQuadrat",280,120,100,50)
var button8& = CREATE("Button",%HWND,"ARechteck",410,120,100,50)
var button9& = CREATE("Button",%HWND,"AKreis",20,190,100,50)
var button10& = CREATE("Button",%HWND,"ATrapez",150,190,100,50)
var button11& = CREATE("Button",%HWND,"AParallelogr.",280,190,100,50)
var button12& = CREATE("Button",%HWND,"VKegel",410,190,100,50)
Tandis que 1
WaitInput
IF clicked(Button1&)
edittext$ = "+"
EndIf
Endwhile
Comme je le disais, je vais Schritt pour Schritt avant et s'il te plaît euch pas um den richtigen Code, mais um Hinweise (z.B. dans welchem Part qui hilfe je nachlesen solle,etc.)
Problem1:
Aider dans XPROFAN trop Éditer:
N : LongInt - Handle des übergeordneten Fensters
S : String - Vorgabetext
X1,Y1 : Integer - Linke obere coin des Eingabefeldes
X2,Y2 : Integer - Taille des Eingabefeldes (Sonderfunktion; siehe Text)
eh bien habe je cet la ligne: edittext$ = "+" cette String ist qui Vorgabetext S. pourquoi fügt es pas chez Klick eines Buttons une "+" hinzu?
salut |
| | | | |
| | Julian Schmidt | Versuchs la fois per Settext! |
| | | | |
| | Gary12345 | merci, daran habe je wieder la fois pas gedacht. Sorry. Wird funken. Teste es maintenant la fois o.O |
| | | | |
| | Gary12345 | | | | | |
| | Gary12345 | KompilierenMarqueSéparation $I MatheLeicht.inc
Window 0,0-600,400
WindowStyle 15
WindowTitle "Taschenrechner by Gary12345"
declare Ergebnis!
var edit1& = CREATE("Edit",%HWND,"",10,10,550,30)
var button1& = CREATE("Button",%HWND,"+",20,50,100,50)
var button2& = CREATE("Button",%HWND,"-",150,50,100,50)
var button3& = CREATE("Button",%HWND,":",280,50,100,50)
var button4& = CREATE("Button",%HWND,"X",410,50,100,50)
var button5& = CREATE("Button",%HWND,"Wurzel",20, 120,100,50)
var button6& = CREATE("Button",%HWND,"ADreieck",150,120,100,50)
var button7& = CREATE("Button",%HWND,"AQuadrat",280,120,100,50)
var button8& = CREATE("Button",%HWND,"ARechteck",410,120,100,50)
var button9& = CREATE("Button",%HWND,"AKreis",20,190,100,50)
var button10& = CREATE("Button",%HWND,"ATrapez",150,190,100,50)
var button11& = CREATE("Button",%HWND,"AParallelogr.",280,190,100,50)
var button12& = CREATE("Button",%HWND,"VKegel",410,190,100,50)
var buttonGo& = CREATE("Button",%HWND,"Rechnen",210,250,100,50)
While 1
WaitInput
IF clicked(button1&)
settext edit1&, gettext$(edit1&) + "+"
EndIf
If clicked(button2&)
settext edit1&, gettext$(edit1&) + "-"
EndIf
If clicked(button3&)
settext edit1&, gettext$(edit1&) + "/"
EndIf
If clicked(button4&)
settext edit1&, gettext$(edit1&) + "*"
EndIf
If clicked(buttonGo&)
Ergebnis! = val(gettext$(edit1&))
print Ergebnis!
EndIf
Endwhile
Nächstes Problem:
voulais maintenant cela Ergebnis dans float konvertieren (alors avec @val()). mais pourquoi rechnet es pas?
EDIT: Habe une Vermutung: peux es daran liegen, dass + ne...aucune floatwert son peux? |
| | | | |
| | Julian Schmidt | Bien sûr funktioniert cela pas. Val() konvertiert seulement une Zeichenkette trop einer numéro. Du könntest cela so lösen, cela du une Zählervariable erstelltst. et chacun râteau- opération direct sur cet Variable ausführst. Beim drücken qui Ergebnis-bouton peux du ensuite qui Variable ausgeben et zurücksetzten.
Alternativ wäre qui Solution avec einem Parser possible. |
| | | | |
| | Gary12345 | Werde mich demain là la fois informer. suis aujourd'hui trop fatigué pour. |
| | | | |
| | Gary12345 | quoi un Parser ist, sais je maintenant. quoi une Zählevariable ist , peux je seulement quelque chose vermuten. alors tu veux, dass Je l' Text de edit dans un extra Variable abspeichere, cet ensuite pour float umwandle et ensuite rechnet? Verstehe cela pas so.
salut! |
| | | | |
| | Julian Schmidt | dans qui Aider findest du un simple Beispiel trop einem calculette sans Parser. qui Grundidee dabei ist, cela du une le vide Variable erstellt, et chacun opération sur qui ausführst et ensuite cela Ergebnis ausgibst. Beispiel: tu as une calculette avec Buttons de payons 0-9 et +, -, *, /, Claire. Am Anfang ist qui Variable Ans! juste 0. Sobald du sur den Button "+" drückst. Wird cette Operator dans einer weiteren Variable gespeichert. Sobald du eh bien sur une numéro klickst, wird Ans! avec dem gespeicherten Operator et qui gedrückten numéro erweitert et !Ans comme Ergebnis ausgegeben.
qui Grundüberlegung chez einem Parser ist, dass on qui komplizierteste Formel dans Bestandteile (substr) zerleget, qui pour dem Schema "Variable Operator Variable" aufgebaut sommes. on va dabei Rückwärts avant et cherchez pour qui am tiefsten verschachtelten Rechenoperation pour den régulariser qui mathématique. Sprich Klammer avant Potenz avant Punkt avant Strich. cette Vorgang wird solange wiederholt jusqu'à aucun Operatoren plus zufinden sommes. ici un Beispiel: 8*2+(7-4) 16+(7-4) 16+3 19
ici un Beispiel [...] |
| | | | |
| | Jörg Sellmeyer | je serait dir aussi empfehlen, toi erstmal sur qui Grundrechenarten trop beschränken et seulement simple Rechenoperation auszugeben, jusqu'à du cela Prinzip beim Programmieren so halbwegs verstanden la hâte. 10 Button avec den Les chiffres de 0-9 sommes vite erstellt. ensuite encore 4 pour qui Operanden et einer pour =. tu peux zB jeden Buttonkick eingabe dans einer liste Sauver et beim Klick sur den Ergebnisbutton, qui liste abarbeiten.
qui Eingabe per Button de 72 + 8 - 4 ergibt ensuite une liste de: "72" "+" "8" "-" "4"
si qui Ergebnisbutton gedrückt wird wandelst du cela ensuite dans un Rechenoperation um.+ cela Gleiche fais du ensuite avec Multiplikation et Division.
si cela funktioniert, peux du toi aussi à simple Kombinationsaufgaben ranwagen. zB 8 * 12 + 7 ici musst du ensuite qui ganze liste erstmal durcharbeiten, à Rechenregeln anzuwenden. Du "parst" alors qui liste.
comme nächstes peux du ensuite encore Klammern einbauen. là wird cela Parsen déjà quelque chose aufwendiger. Julians Beispiel nécessaire incidemment encore aucun Klammern, là es avec den Rechenregeln automatich funktioniert:
seulement so, sommes Klammern nötig et il y a naturellement un d'autre Ergebnis:
dans dem le cas serait je avec einer Gridlist travailler et qui Klammernblocks dans qui prochain Spalte mettons:
Spalte 1 | Spalte 2 | Spalte 3 | 8 | * | ( | | 2 | | + | | 7 | ) | - | 4
|
là brauchst du ensuite seulement sur chacun Spalte deine Parserprozedur anwenden et erhälst jeweils korrekte Ergebnisse. mais toujours une Schritt pour dem anderen. Erstmal qui simplen Grundrechenarten.
[OFFTOPIC]puh - ist cela un circonstance avec qui Tabelle mais maintenant hab je es zumindest geschnallt... malheureusement funktioniert chez mir qui "Vorschau"-Button pas. allez cela anderen aussi so ou bien ist cela un lokales Problem chez mir?[/OFFTOPIC] |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.02.2013 ▲ |
| |
| | | qui Vorschau Btn. allez chez mir sogar ici grad ausm Bett aufm Handy gg.
Zeigt Vorschau überm Editor - bisl hochscrollen, nécessaire JS.
|
| | | | |
| | Jörg Sellmeyer | je hab JS aktiviert et quand même aucun Vorschau |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.02.2013 ▲ |
| |
|
répondreOptions du sujet | 18.191 Views |
Themeninformationencet Thema hat 4 participant: |