Wie zieht man im App Inventor die Wurzel?
Hallo,
ich bin gerade dabei, mit dem App Inventor (Python Programm zu APK hat nicht funktioniert) einen Taschenrechner zu programmieren. Leider funktioniert das Zeichen "√" nicht als Wurzel, wenn ich auf "=" drücke...
Von "sqrt()" habe ich schon gehört, jedoch muss ich nach der Zahl, von der ich die Wurzel ziehen möchte, eine Klammer zu setzen. Wenn das aber ein Nutzer nicht weiß, kann er keine Wurzel ziehen.
Weiß jemand, wie ich die Wurzel mit einem anderen Zeichen ziehen kann?
Freue mich auf Antworten, Alex.
Die Extension, die ich benutze, um Rechnungen auszurechnen:
Der "Code":
Warum muss der Nutzer zum Wurzel rechnen eine Klammer setzen?
Bei sqrt() muss die Zahl, von der man die Wurzel ziehen möchte, in die Klammern gesetzt werden, da sonst ein Fehler kommt. Bei "√" muss man keine Klammer setzen.
Sagtest du nicht, du benutzt AppInventor? Was hat das mit sqrt() zu tun? AppInventor selbst nutzt doch Bausteine?
Also ich benutze die Extension KI04_JS, mit der ich ohne verschiedene Umwege eine bestimmte Aufgabe ausrechnen kann. Genau hier funktioniert das Zeichen "√" nicht.
Ich konnte nach Recherche leider nichts zu der Erweiterung finden. Könntest du vielleicht nochmal ein Bild deines Codes an die Frage anhängen?
Ja.
Hast du auch eine Version der Bilder, wo du die Bezeichnungen ordentlich benamt hast? Beispiel:Label2 mag für dich eindeutig sein, aber nicht für jemanden, der den Code nicht kennt
Bringt es dir denn viel? Ich meine das sind die Tasten, zu den Zahlen, fürs Löschen und zu den Rechentasten...
Naja, ich will versuchen dir zu helfen und müsste dafür den Code nachvollziehen können. Mit nur Button, Label und co kann ich wenig anfangen
Ich habe jetzt die Frage bearbeitet, und in der Frage steht jetzt der "Code", indem auch die umbenannten Sachen drinn sind.
2 Antworten
Mit deinem neuen Code ist es direkt einfacher zu verstehen.
Meine Idee dafür:
- Merken in einer Variable, wenn Wurzel gedrückt und sobald ein anderes Zeichen gedrückt wird, wird vor dem anderen Zeichen abgefragt: Wenn Wurzel Variable true, dann setze zuerst Klammer zu. Und später vorm Rechnen ein replace, um das Zeichen zur Funktion zu ändern.
- Sollte es einen Löschen Knopf geben, um einzelne Zeichen zu löschen, ist das natürlich ein Problem, weil der Nutzer dann die Klammer entfernen kann. An dieser Stelle kann ich nur ein weiteres Plugin empfehlen (habe es selbst nie getestet, weil ich echte Programmiersprachen nutze): https://community.appinventor.mit.edu/t/free-extension-xreg-v1-2-pcre-regular-expressions-for-app-inventor/85818 . Das Plugin ermöglicht dir RegEx anzuwenden, um die Wurzelstellen vorm finalen Rechnen zu ermitteln und zu ersetzen, obwohl du nicht weißt, welche Zahlen verwendet wurden.
Ich habe vor Jahren mit AppInventor gearbeitet, bevor ich mit richtiger App Entwicklung begonnen habe. Zu dem Zeitpunkt war noch alles auf Englisch. War echt verwundert über die Screenshots in deutscher Sprache ^^
ich wollte sowas eingentlich umgehen, da ich bei deinem ersten Lösungsvorschlag alle Operator-Funktionen nochmal umändern muss...
Inwiefern musst du alle noch mal umändern?
Und naja, trotzdem bleibt ja auch meine Option 2
Ich habe selbst auch mit Python gearbeitet, jedoch konnte ich mein Programm leider nicht in eine APK umwandeln,
Python ist auch nicht wirklich eine Sprache, für die ein solches Verhalten angedacht ist. Es gibt meist Frickellösungen, um so etwas doch zu schaffen, aber dafür nutzt man meist doch eher andere Sprachen. Ich selber bin Fan von C#, da es so ziemlich alles kann, einfach ist und doch so mächtig.
Im App inventor gibt es mitlerweile übrigens sehr viele Sprachen.
Interessant, aber einige Jahre zu spät, haha. Naja, egal. Richtig programmieren finde ich trotzdem interessanter :)
Hier ist mein "Code" einmal kommplett mit den umbenannten Sachen:



Danke für deine Antwort, ich werde mal schauen, ich wollte sowas eingentlich umgehen, da ich bei deinem ersten Lösungsvorschlag alle Operator-Funktionen nochmal umändern muss...
Ich habe selbst auch mit Python gearbeitet, jedoch konnte ich mein Programm leider nicht in eine APK umwandeln, und da ich mir weitere -Jahre- Sucharbeit sparen wollte, bin ich zum App Inventor rübergewechselt.
Im App inventor gibt es mitlerweile übrigens sehr viele Sprachen.