mhoek2 / pycalculator

0 stars 2 forks source link

addSymbolToEquation() momenteel iets te strikt #12

Closed nidunc closed 5 hours ago

nidunc commented 8 hours ago

Deze functie is iets te strikt: https://github.com/mhoek2/pycalculator/blob/adc7a3eb24c4868668b9d4e0c0f979fcce1b352e/modules/gui/gui.py#L188-L203

Op dit moment worden de volgende legitieme berekeningen niet toegestaan:

Misschien zijn er nog meer voorbeelden, maar dit zijn in ieder geval degenen die ik tot dusver kon bedenken.

nidunc commented 7 hours ago

Het is hierbij natuurlijk ook belangrijk om te overwegen wat al in de UI gedaan moet worden, en wat beter is om achter de schermen door de calculator module te laten doen. Bijvoorbeeld: willen we bij voorbaat al verbieden dat je 1+-+-+-+-0 of 1:0 in kan voeren, of is het beter om deze invoer te accepteren en code aan de calculator module toe te voegen die ervoor zorgt dat de berekening geldig is (of, in het laatste geval, dat er een foutmelding als het resultaat wordt teruggekoppeld) voordat deze gebruikt wordt? (Overigens wordt het eerste voorbeeld al geaccepteerd door de package die ik gebruik voor het evalueren van de berekening, maar dat even terzijde.)

mhoek2 commented 6 hours ago

Het is hierbij natuurlijk ook belangrijk om te overwegen wat al in de UI gedaan moet worden, en wat beter is om achter de schermen door de calculator module te laten doen. Bijvoorbeeld: willen we bij voorbaat al verbieden dat je 1+-+-+-+-0 of 1:0 in kan voeren, of is het beter om deze invoer te accepteren en code aan de calculator module toe te voegen die ervoor zorgt dat de berekening geldig is (of, in het laatste geval, dat er een foutmelding als het resultaat wordt teruggekoppeld) voordat deze gebruikt wordt? (Overigens wordt het eerste voorbeeld al geaccepteerd door de package die ik gebruik voor het evalueren van de berekening, maar dat even terzijde.)

Invoer als "+-+-+-+-" is onnodig om te accepteren lijkt mij.

Ik ben het eens met het idee om devision by zero case te handelen in calculator.py. Die bijvoorbeeld dan de tekst "Kan niet delen door nul".

De calculator van windows doet dit ook zo:

image

nidunc commented 6 hours ago

Invoer als "+-+-+-+-" is onnodig om te accepteren lijkt mij.

Eens; het was vooral een willekeurig voorbeeld wat in me opkwam, dat in principe wel ‘geldig’ is, maar verder obscuur genoeg is dat er inderdaad geen rekening mee gehouden hoeft te worden.

Ik ben het eens met het idee om devision by zero case te handelen in calculator.py. Die bijvoorbeeld dan de tekst "Kan niet delen door nul".

Hier ben ik mee bezig. Op dit moment heb ik gewoon een simpel try, except blok toegevoegd dat alle foutmeldingen opvangt en dan een return "Ongeldige berekening" doet als er errors zijn.

mhoek2 commented 6 hours ago

Ok, ik zal het testen en mergen als je het klaar hebt :)

nidunc commented 6 hours ago

Ik heb pull request #14 aangemaakt.