Andreas Schigold: Mini-Einführung in die Programmierung; Thema: Berechnungen

Beitrag lesen

Hi Michael,

In einer explizit auf Didaktik ausgelegten Sprache wie Pascal gibt es für
die Zuweisung einen Operator ":=" und für den Vergleich den Operator "=",
der eben auch in den einem Anwender üblichen sonstigen Quellen für Ver-
gleiche verwendet wird.

Ich hatte auch schon überlegt, ob ich Pascal noch mit reinbringe, wollte es dann aber lassen.

Denn alles andere ist falsch - und einem Einsteiger erst etwas Falsches
erklären und anschließen beichten zu müssen, daß man zwecks Vereinfachung
gelogen hat, ist noch viel schlimmer.

Okay, einwas war wohl unwahr, nämlich das es generell ein Fehler sei. Gut, dann möchte ich mich an dieser Stelle korrigieren. Aber ich denke, daß man nicht immer alle Facetten gleich anbringen muß, sondern immer nur dann , wenn sie gebraucht werden. Eins ist jedenfalls Fakt: Wenn man alle Fakten mit einmal vermittelt, versteht der andere nur Bahnhof. Das hatte der eine Dr. an der Uni drauf. Du hast ihm eine Frage gestellt und er hat Dir die halbe Statik erklärt. Die Aufgabe, um die es ging hat er Dir dreimal vorgerechnet, mal linksrum, mal rechtsrum und dann noch grafisch Zusammenhänge erklärt. Am Ende hat jeder nur noch Bahnhof verstanden.

Aber es wäre doch auch falsch, zu sagen, daß ich an dieser Stelle

if ($a==$b)

gedankenlos auch ein einfaches Gleich nehmen könnte, weil:
( $a == $b ) // ist false wenn $a==3 und $b==4
( $a == $b ) // ist true  wenn $a==0 und $b==0
( $a =  $b ) // ist true  wenn $a==3 und $b==4
( $a =  $b ) // ist false wenn $a==0 und $b==0

Und deshalb finde ich es richtiger, die Verwendung des einfachen Gleichheitszeichens beim _Vergleichen_ als falsch zu betiteln. Denn was ist denn das, wenn man das einfache Gleichheitszeichen verwendet? Eine Wertzuweisung! Und _kein_ Vergleich. Die Schreibweise

if ($a = $b)

impliziert doch einen ganz anderen Vergleich, nämlich:

if ( 0 != ($a = $b) )

Nur dann wäre es doch besser, dem Einsteiger diese ausführliche Schreibweise zu zeigen, um dann (in der gleichen Sitzung) die verkürzte Schreibweise zu zeigen. Bei anderen Sachen, wie z.B. "i++" fängt man doch auch nicht an und sagt "das ist jetzt ein Increment". Nein, man fängt doch erst beim "i=i+5" an, weil das häufig vorkommt, daß das Ergebnis in eine verwendete Variable zurückgeschrieben wird schreibt kann man es kürzer schreiben, also i+=5. Und für i+=1, weil man das nun noch häufiger braucht, gibts was noch kürzeres, nämlich "++i". Jetzt kann man den Begriff Increment erklären.

So, und wenn der arme Einsteiger jetzt noch aufnahmefähig ist, dann kann man noch die Unterschiede zwischen "++i" und "i++" erklären. Nur ich habs dann meistens gelassen, weil die Leute eben das erstmal verdauen mußten.

Ich fand es einfach nur unpassend, daß ich die einfachsten Zusammenhänge versucht hab, syntaktisch zu erklären, und nun kommen die Klugen aus der letzten Reihe und wissen alles besser, ohne die Zusammenhänge mit zu erklären.

Wenn den Thread jetzt ein Einsteiger liest, dann erfährt er nämlich folgendes:

von mir: aha, klare Trennung: "=" ist Zuweisung, "==" ist Vergleich
von Euch: aha, kann auch "=" für Vergleiche nehmen oder gar nichts geht auch, also ist es egal

und damit ist er aus meiner Sicht von Euch mehr in die Irre geführt worden, als durch mich.

Viele Grüße auch von mir
Andreas

PS: Ich weiß noch, wie ich mal als kleiner Stift sowas aufgeschnappt hatte, wie "5 - 7 rechnet man aus, indem man 7 - 5 rechnet und dann ein Minuszeichen davorsetzt, Ergebnis also: - 2". Nun wurde in der Grundschule so 'ne Aufgabe gestellt und ich nannte das richtige negative Ergebnis. Die Lehrerin sagt "falsch, Unsinn" oder so und freute sich über die "richtige" Antwort eines anderen Schülers: "nicht lösbar". Damals dachte ich für einen kurzen Moment "häää?" und hatte es wieder vergessen. Heute weiß ich's natürlich, warum sie abwiegeln mußte, weil sie nämlich froh war, daß die anderen Kinder erstmal mit den natürlichen Zahlen zurande kamen, und die negativen oder rationalen Zahlen kamen ja erst viel später. Oder wie war das bei Euch in der Schule?