Deutsch
Forum

Beim Taschenrechner programmieren! Kapier da was nicht. Bzw. Kann Fehler nicht verstehen

 
- Seite 1 -



Gary12345
Hallo,
KompilierenMarkierenSeparieren
Window 0,0-400,400

Proc Hauptprogramm

    declare wert%, wert2%, wert3%, wert4%, wert5%, wert6%, wert7%, wert8%, wert9%, wert10%
    var Button1& = CREATE("Button",%HWND,"1", 50, 50, 50, 50)
    var Button2& = CREATE("Button",%HWND,"2",50, 100, 50, 50)
    var Button3& = CREATE("Button",%HWND,"3",50,150,50,50)
    var Button4& = CREATE("Button",%HWND,"4",50,200,50,50)
    var Button5& = CREATE("Button",%HWND,"5",50,250,50,50)
    var Button6& = CREATE("Button",%HWND,"6",100,50,50,50)
    var Button7& = CREATE("Button",%HWND,"7",100,100,50,50)
    var Button8& = CREATE("Button",%HWND,"8",100,150,50,50)
    var Button9& = CREATE("Button",%HWND,"9",100,200,50,50)
    var Button10& = CREATE("Button",%HWND,"0",100,250,50,50)
    var Button11& = CREATE("Button",%HWND,"+",200,50,50,50)
    var Button12& = CREATE("Button",%HWND,"-",200,100,50,50)
    var Button13& = CREATE("Button",%HWND,":",200,150,50,50)
    var Button14& = CREATE("Button",%HWND,"*",200,200,50,50)
    var Button15& = CREATE("Button",%HWND,"=>",200,250,50,50)
    var ButtonClear& = CREATE("Button", %HWND, "TEST100", 250,100,100,100)

    While 1

        WaitInput

        If clicked(Button1&)

            wert% = 1
            Print wert%

        EndIf

        If clicked(Button2&)

            wert2% = 2
            print wert2%

        EndIf

        If clicked(Button3&)

            wert3% = 3
            print wert3%

        EndIf

        If clicked(Button4&)

            wert4% = 4
            print wert4%

        EndIf

        If clicked(Button5&)

            wert5% = 5
            print wert5%

        EndIf

        If clicked(Button6&)

            wert6% = 6
            print wert6%

        EndIf

        If clicked(Button7&)

            wert7% = 7
            print wert7%

        EndIf

        If clicked(Button8&)

            wert8% = 8
            print wert8%

        EndIf

        If clicked(Button9&)

            wert9% = 9
            print wert9%

        EndIf

        If clicked(Button10&)

            wert10% = 0
            print wert10%

        EndIf

        If clicked(Button11&)

            var Ergebnis$[wert1%,wert2%,wert3%,wert4%,wert5%,wert6%,wert7%,wert8%,wert9%,wert10%] = wert%+wert2%+wert3%+wert4%+wert5%+wert6%+wert7%+wert8%+wert9%+wert10%
            print Ergebnis$

        EndIf

        If clicked(ButtonClear&)

            cls

        EndIf

    EndWhile

EndProc

While 1

    WaitInput
    Hauptprogramm

EndWhile


Wie ich vorgegangen bin:

1. Habe überlegt, ob ich Buttons verwenden soll oder nur ein Editierfeld. Ich habe mich für die schwierigere Variante entschieden, nämlich die Buttons.
2. Das Hauptprogramm in eine Prozedur gestellt. Externe Funktionen werden in einem Extra-Proc behandelt.
3. Alle Buttons einen Wert zuweisen (natürlich integer) => wert% - wert10%
4. Falls Button "+" gedrückt wurde, alle Werte addieren. Zu guter letzt sie mit print darstellen lassen (Das Ergebnis natürlich)

Mein Problem:

1. Es addiert alles richtig, nur wenn ich das zweite mal addiert habe (also das zweite mal rechne ohne ClearUp) kommt eine Fehlermeldung, dass ich die Variable Ergebnis doppelt deklariert habe. Kann diesen Fehler nicht nachvollziehen.
2. Wenn ich nur einmal zwei Werte addiere und dann zu guter Letzt auf den Button100 klicke, kommt beim zweiten Rechnen auch eine Fehlermeldung. Das ist wiederum die gleiche wie in Problem1 beschrieben.
3. Ich kann nur Werte 0-9 darstellen. Keine Werte über 9. Warum? Warum hängt es immer eine Zahl drunter statt neben der Zahl? Kann ich auch nicht nachvollziehen.

Wie ihr mir helfen könntet

Ich will keinen Lösungscode. Ich will nur Hinweise auf die Ursache dieses Fehlers. Was ich genau falsch gemacht habe und noch weitere andere Sachen. Dazu würde ich das Problem nicht alles auf einmal machen, sondern alles Schritt für Schritt. Ich war es früher gewohnt einfach nur Codes zu bekommen, aber diesmal will ich wirklich lernen. Wenn ich was nicht verstehe, dann frag ich eben nach. Aber Hinweise statt der ganzen Lösung ist oft sinnvoller als man denkt.

Daher vielen Dank schon in vorraus!
 
XProfan X2
MfG
Gary12345
26.01.2013  
 



 
- Seite 3 -


Dafür gibts ja diese Bereiche, damit jeder was vorstellen kann.
 
27.01.2013  
 




Gary12345
Da isset: [...] 

Mal sehen, ob diese Include meine Arbeit erleichtert.

LG
 
XProfan X2
MfG
Gary12345
27.01.2013  
 



Hab das Posting  [...]  mal abgeändert -

externe File-Uploader machen hier keinen Sinn, da hier jeder unendlich viele
Dateianhänge an Beiträge anhängen kann. Zudem hast Du absolute Kontrolle über
Deine Anhänge und Zähler, die man auch serverseitig abrufen kann. Ausserdem
sind erfahrungsgemäß externe Seiten weniger zuverlässig und echte Beständigkeit/
Verfügbarkeit von Downloads ist meist nur über direkte Dateianhänge an Beiträgen
gewährleistet. Es spricht jedoch nichts dagegen, zusätzliche weitere Download-
Möglichkeiten zu z.B. externen Seiten anzubieten aber als Dateianhang ist sozusagen
"Pflicht" damit zukünftige Interessenten nicht irgendwann nur noch auf Deadlinks
zurückgreifen müssen. So bietet die Rubrik "Includes" beispielsweise Includes statt
Links zu Includes.
 
27.01.2013  
 




Gary12345
Es wird ja immer geiler in Deinem Forum
Nochmals vielen Dank.

Bin beim Taschenrechnercode (neuen Code) auf ein Problem gestoßen, werde es hoffentlich alleine schaffen, das zu beseitigen
 
XProfan X2
MfG
Gary12345
27.01.2013  
 



Weiterführendes zum Thema findest Du auch hier [...]  und hier [...]  . ^^
 
27.01.2013  
 




Gary12345
Include in Action:
KompilierenMarkierenSeparieren
 $I MatheLeicht.inc
cls
declare Summe!
var edit1! = CREATE("Edit",%HWND,"",0,0,100,100)
var edit2! = CREATE("Edit",%HWND,"",100,0,100,100)
var button& = CREATE("Button",%HWND,"Rechnen",100,100,100,100)

While 1

    WaitInput

    If clicked(button&)

        Summe! = Summe(edit1!,edit2!)
        print Summe!

    EndIf

EndWhile


Wann man den Button Rechnen drückt, kommt ein anderer Wert raus, als den ich eigentlich haben will. Ich muss den irgendwie umwandeln, aber wie?
 
MfG
Gary12345
27.01.2013  
 



Ein Edit ist ein Control und create("edit liefert ein Control-Handle -
dies ist vom Typ long -

also:
KompilierenMarkierenSeparieren
var edit1& = CREATE("Edit"

Und statt:
KompilierenMarkierenSeparieren
Summe! = Summe(edit1!,edit2!)

funktioniert:
KompilierenMarkierenSeparieren
Summe! = Summe(val(getText(edit1&)),val(getText(edit2&)))
 
27.01.2013  
 




Gary12345
Und Du hast bei getText was falsch

gettext ist falsch, richtig wäre gettext$

Vielen Dank!
 
XProfan X2
MfG
Gary12345
27.01.2013  
 



Stimmt, das hat man davon wenn mans ungetestet direkt in den Beitragseditor
pinselt.

Zu meiner Ehrenrettung hätte getText ohne Dollarzeichen im nativen Profan
(nProcs) absolut genügt.
 
27.01.2013  
 




Gary12345
Darf ich wissen, was NProcs sind? Ist das schon wichtig für mich? Oder erst später?
 
XProfan X2
MfG
Gary12345
27.01.2013  
 



Die können später mal durchaus wichtig sein für Dich.

Damit kannst Du native Funktionen programmieren, die haben viele Vorteile z.B.
sind sie um ein Vielfaches schneller und thread- und APC ( [...]  ) -sicher und Du
kannst auch direkt in Assembler programmieren und Funktionen programmieren
die z.B. schneller sind als wären sie mit C programmiert.

Du kannst damit also Dein XProfan "pimpen" in dem Du den Präkompilierer
XPSE vor den eigentlichen Kompilierer schaltest: [...] 

Beispiel: [...] 

Auch schön: [...]  , [...] 
 
27.01.2013  
 




Gary12345
OK Ich versag schon beim Verständnis der Begriffe. Aber kann sicher später für mich wichtig sein. Jetzt progge ich erstmal am Taschenrechner weiter

PS: BKA Remover kann etwas dauern
 
XProfan X2
MfG
Gary12345
27.01.2013  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

24.928 Betrachtungen

Unbenanntvor 0 min.
ecki29.12.2023
MrZebulon05.08.2018
rawerra30.12.2016
Peter Max Müller30.10.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie