Seite 1 von 1

doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 18:48
von Pitwheazle
Schon wieder was:
Die Kids sollen Terme vereinfachen. Für zB. "Vereinfache den Term '4v ·5v' so weit wie möglich, wird 20v² und 20v^2 akkzeptiert. Es kann aber auch vorkommen, dass unbegabte SuS '20vv' eingeben. Ich vermute, man kann man mit regulären Ausdrücken überprüfen, ob irgendein Buchstabe doppelt vorkommt - ich bekomme es nicht hin.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 19:14
von Sirius3
Daneben gibt es noch 20*v^2 oder 20·v² oder v^2*20.
Du mußt also die Eingabe in eine Normalform bringen, um sie vergleichen zu können.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 21:25
von Pitwheazle
Ja, klar, da lege ich eine Regel fest. Koeffizient vorne, Buchstaben nach dem Alphabet. Und bei weiteren Termen auch höhere Potenzen zuerst, Konstanten zuletzt. Es gibt Stimmen, das müsse nicht sein - ich finde es gut.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 22:34
von __deets__
Ich würde da auf die richtige(n) Schreibweise pochen. Alles andere ist doch eh unmöglich. v5v ist auch korrekt im mathematischen Sinne. Wer vv schreibt, hat halt verloren. Soll beim lernen ja vorkommen.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 22:36
von Pitwheazle
Ich will es ja auch nicht als richtig akkzeptieren, ich will auf den Fehler hinweisen.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Freitag 8. Dezember 2023, 23:05
von __deets__
Das ist halt ne Frage des Anspruches. Klar kann ich das verstehen, aber warum ist es 5vv, und nicht vv5 oder v5v, oder 5v^3/v? Wenn es falsch eingegeben wurde, kannst du eben nur generische Hinweise geben. Weil ehrlich gesagt ein System, das so gut ist, dass es eine Lösung nur deswegen nicht akzeptiert, weil sie “falsch” normalisiert ist, ist ja schon fast arschig. Denn 5vv ist nunmal richtig, rein algebraisch. Dann muss man das auch nicht korrigieren.

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Samstag 9. Dezember 2023, 10:33
von noisefloor
Hallo,

sehe ich auch so. Entweder muss man explizit _vor_ den Aufgaben darauf hinweisen, wie die Eingabe bitte auszusehen hat (also quasi die Konvention festlegen) - oder man akzeptiert es.

Das wäre in der Schule hat (hoffentlich) nicht anders. 5v^2 ist halt die gängige Schreibweise zumindest Computer-Umfeld, aber rein vom Ergebnis ist halt 5*v^2, 5vv, v5v, vv5, v*v*5 usw. das gleiche, d.h. es kommt das gleiche raus. Und für Python wäre die richtige Schreibweise 5*v**2.

Und wenn man eine Konvention festlegt (wie z.B. "Mal-Zeichen sollen nicht nicht eingegeben werden, also 5v und nicht 5*v) sollte man die Eingabe so validieren und zur Korrektur anbieten, dass nicht erwünschte Zeichen wie in dem Fall das * / Mal-Zeichen nicht erwünscht / nötig sind.

Wenn man Frust generiert, weil eine mathematisch richtige Lösung nur aufgrund der Notation als falsch deklariert wird bringt das auch nix.

Gruß, noisefloor

Re: doppelte Buchstaben un reguläre Ausdrücke

Verfasst: Samstag 9. Dezember 2023, 17:33
von Pitwheazle
Ihr habt sicher recht, es gibt keine allgemeingültige Regel und alle eure Alternativen sind sicher algebraisch korrekt. Bei Polynomen hat sich aber eine Schreibweise wie "P(x):=9x³+x²+7x-3,8" eingebürgert. Auch da ist mir nicht bekannt, dass das zwingend wäre. Aber eine Aufgabe "Mach mit dem Term irgendwas - ohne dass sich der Wert ändert" erscheint mir nicht wirklich sinnvoll. Die Aufgabe lautet auch "Vereinfache den Term". Ich weise auserdem in einer Anmerkung im Text darauf hin, dass die Buchstaben nach dem Alphabet sortiert werden und Konstanten ans Ende geschrieben werden sollen. Außerdem überprüfe ich, ob der eingegebene Term algebraisch richtig ist und, wenn ja, werte ich ihn auch nicht als falsch, ich gebe eine passende Rückmeldung - auch z.B, dass man "1x" nicht schreibt. "1x" satt "x" ist natürlich auch nicht falsch, wenn die Kids das aber nicht wissen, können sie auch eine Aufgabe wie "2x+x" nicht lösen.
Ich hoffe, eure Bedenken damit berücksichtigt zu haben.
Zu meiner Ausgangsfrage: Die habe ich im Code jetzt so gelöst:

Code: Alles auswählen

    erlaubt = ['a','b','c','x','y','z','u','v','w','1', '2','3','4','5','6','7','8','9','0','+','-','*','(',')','^','²','³']
    for e in erlaubt[:8]:
        if e+e in term:
            rueckmeldung = 'Anstelle von "{}" schreibt man "{}²".'.format(e+e,e)