Lernspiel binomische
Formeln (funktioniert unter Xorg aber nicht
unter Wayland)
Die Ausführungen der
vorherigen Seiten über Programmfenster werden hier weitergeführt. Hier gibt es ein weiteres Lernspiel. Mathematik lebt von der Anwendung folgerichtigen Denkens und der Verwendung von Bausteinen. Das ist auch beim Schreiben von scripten so, denn es werden yad-Fenster-Bausteine sed-Bausteine Bausteine zum Erzeugen zufälliger Zahlen Bausteine zum Schließen von Fenstern usw. benutzt. Die Kombination von Bausteinen durch folgerichtiges Denken ist beinahe universell. Hier wird die Verwendung von den Bausteinen binomische Formeln geübt. Beim Aufruf des script wird die Aufgabenstellung angezeigt: |
Die binomischen Formeln sind ganz oben nochmals notiert. Es werden 5 zufällige Zahlen zwischen -9 und +9 erzeugt und damit eine Aufgabe mit bestimmtem Typ angezeigt. Es gibt eine Schaltfläche um die Lösung anzuzeigen |
Nun kann man entscheiden ob man eine zufällige neue Aufgabe haben will
oder das Spiel beenden will. Das script wird wieder in dem Ordner ~/Bla abgelegt: |
nano ~/Bla/binomischeFORMEL.sh |
Eingabe in den Editor |
#!/bin/bash Uu=$(whoami) aA=9 while (( $aA == 9 )) do aXa=$(echo -e "1\n-1\n1\n-2\n1\n2\n1\n-3\n1\n3" | sort -R | head -n 1) aAb=$(echo -e "1\n-1\n2\n-2\n3\n-3\n4\n-4\n5\n-5\n6\n-6\n7\n-7\n8\n-8\n9\n-9" | sort -R | head -n 2 | tail -n 1) aAc=$(echo -e "1\n-1\n2\n-2\n3\n-3\n4\n-4\n5\n-5\n6\n-6\n7\n-7\n8\n-8\n9\n-9" | sort -R | head -n 4 | tail -n 1) aAe=$(echo -e "1\n-1\n2\n-2\n3\n-3\n4\n-4\n5\n-5\n6\n-6\n7\n-7\n8\n-8\n9\n-9" | sort -R | head -n 6 | tail -n 1) aAd=$(echo $(($RANDOM % 9 + 1)) ) aGa=$( echo "(${aXa}x+$aAb)² = (${aXa}x+$aAd)(${aXa}x-$aAd)+${aAc}x+$aAe" | sed 's/+-/-/g' | sed 's/1x/x/g' | sed 's/-1x/-x/g' ) yad --title "ony" --picture --geometry=780x500+160+160 --no-focus --no-buttons --undecorated --borders=0 --filename=/home/$Uu/Bla/dea63-91.gif & sleep 0.2s; GTK_THEME=Adwaita-dark yad --title "faq" --geometry=700x120+200+240 --no-focus --undecorated --no-buttons --borders=0 --justify=center --text-info --back='#DD91D3' --fore=black --fontname="Monospace bold 20" <<<$(echo -e "\n $aGa \n verwende obige binomische Formeln") & aT=$(GTK_THEME=Adwaita-dark yad --title "prt" --geometry=700x60+200+360 --on-top --no-buttons --undecorated --columns="3" --form --field='!/home/'"$Uu"'/Bla/dea63-02.png!BEENDEN:BTN' ' bash -c "echo 5 ; wmctrl -F -c ony; sleep 0.1s; wmctrl -F -c faq; sleep 0.1s; wmctrl -F -c prt" ' --field='!/home/'"$Uu"'/Bla/dea63-18.jpg!:BTN' '' --field='!/home/'"$Uu"'/Bla/dea63-03.png!Loesung:BTN' ' bash -c "echo 9 ; wmctrl -F -c ony; sleep 0.1s; wmctrl -F -c faq; sleep 0.1s; wmctrl -F -c prt" ') Ax=$(echo $aT) Az=$(echo $aT) if (( Az == 5 )) ; then exit fi aGb=$( echo "$(( 2*aXa*aAb ))x+$(( aAb*aAb )) = $(( -aAd*aAd+aAe ))+${aAc}x" | sed 's/+-/-/g' ) xS=$(( 2*aAb*aXa-aAc )) zS=$(( -aAd*aAd-aAb*aAb+aAe )) if (( xS == 0 )); then if (( zS == 0 )); then aIa=$( echo -e "\n$aGa\n\nx läßt sich nicht berechnen \njede Zahl ist Lösung") else aIa=$( echo -e "\n$aGa\n\nx läßt sich nicht berechnen \nes gibt keine Lösungen ") fi else gcd() { ! (( $1 % $2 )) && echo $2 || gcd $2 $(( $1 % $2 )); } ggT=$(gcd $(echo $zS | sed 's/-//') $(echo $xS | sed 's/-//')) Z/N () { if (( $1%$2==0 )); then echo $1/$2 = $(( $1/$2 )); else echo $1/$2 = $(( $1/$2 )) + $(( $1%$2 ))/$2 ; fi; } if (( xS < 0 )); then aIa=$( echo -e "\n$aGa\n\nx=$(Z/N $(( -zS/ggT )) $(( -xS/ggT )) | sed s'#+ -#-#g')\n\nEin Schritt zur Lösung lautet:\n$aGb") else aIa=$( echo -e "\n$aGa\n\nx=$(Z/N $(( zS/ggT )) $(( xS/ggT )) | sed s'#+ -#-#g')\n\nEin Schritt zur Lösung lautet:\n$aGb") fi fi yad --title "any" --picture --geometry=780x512+160+160 --no-focus --no-buttons --undecorated --borders=0 --filename=/home/$Uu/Bla/dea63-93.gif & sleep 0.2s; GTK_THEME=Adwaita-dark yad --title "haq" --geometry=700x280+200+200 --undecorated --no-buttons --borders=0 --on-top --justify=center --text-info --back='#DD91D3' --fore=black --fontname=" Monospace bold 20" <<<"$aIa" & aW=$(GTK_THEME=Adwaita-dark yad --title "krt" --geometry=700x60+200+480 --on-top --no-buttons --undecorated --columns="3" --form --field='!/home/'"$Uu"'/Bla/dea63-02.png!BEENDEN:BTN' ' bash -c "echo 5 ; wmctrl -F -c any; sleep 0.1s; wmctrl -F -c haq; sleep 0.1s; wmctrl -F -c krt" ' --field='!/home/'"$Uu"'/Bla/dea63-18.jpg!:BTN' '' --field='!/home/'"$Uu"'/Bla/dea63-05.png!Aufgabe:BTN' ' bash -c "echo 9 ; wmctrl -F -c any; sleep 0.1s; wmctrl -F -c haq; sleep 0.1s; wmctrl -F -c krt" ') Ax=$(echo $aW) aA=$(echo $aW) done |
Nun muß man das script ausführbar machen. |
chmod +x ~/Bla/binomischeFORMEL.sh |
Die yad-Fenster verwenden die unten gezeigten Bild-Dateien die Sie auf Ihren Computer kopieren müssen. Diese Bild-Dateien müssen in dem Ordner liegen auf den das script verweist. Hier ist es der Ordner ~/Bla. Ansonsten müssen Sie die Pfade anpassen. |
Sollte ein Info-Bild wie unten angezeigt werden so bedeuted dies daß die CPU zuviel zu tun hat. Man kann auf das Info-Fenster klicken und das Yad-Fenster sichtbar machen. Sollte dies öfters vorkommen so kann man die sleep-Zeiten im script vergrößern damit die CPU etwas durchschnaufen kann. |