Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im
Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich müsste nun einige Meldungen des Compilers und des Laufzeitsystems ändern und möchte das "quick-and-dirty" tun. Wie finde ich Meldungen, wie "Nothing more expected" oder "Message not understood"? Ich möchte keine prinzipielle Diskussion über Übersetzungen lostreten, ich brauche nur die Lösung dieses kleinen Problems. Grüße Klaus Füller |
Am 15.11.2003 um 14:21 schrieb Klaus Füller: > Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im > Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich > müsste nun einige Meldungen des Compilers und des Laufzeitsystems > ändern und möchte das "quick-and-dirty" tun. > > Wie finde ich Meldungen, wie "Nothing more expected" oder "Message not > understood"? > Ok. Nothing more expected. Das macht der Parser. dort findet sich eine methode "expected:": expected: aString "Notify a problem at token 'here'." tokenType == #doIt ifTrue: [hereMark _ hereMark + 1]. hereType == #doIt ifTrue: [hereMark _ hereMark + 1]. ^ self notify: aString , ' expected' at: hereMark + requestorOffset Aha. die bekommet einen String, haengt "expected" ran und ruft eine andere Methode auf. Hier koennte man sich reinhaengen, am einfachsten testet man, was in "aString" ist, uebersetzt es, also so: expected: aString | transString | "Notify a problem at token 'here'." tokenType == #doIt ifTrue: [hereMark _ hereMark + 1]. hereType == #doIt ifTrue: [hereMark _ hereMark + 1]. transString := aString. aString = 'Nothing more' ifTrue: [ transString := 'Nichts mehr']. ^ self notify: transString , ' erwartet' at: hereMark + requestorOffset das kann man dann nach bedarf erweitern. Bei MessageNotUnderstood ist die sache etwas ungeschickter, das das der Name des Klasse ist. Hier koennte man folgendes machen: 1) Eine Subklasse "NachrichtNichtVerstanden" von "MessageNotUnderstood" erstellen. und 2) dann aendert man Object>>#doesNotUnderstand so, dass die neue Klasse aufgerufen wird: doesNotUnderstand: aMessage "Handle the fact that there was an attempt to send the given message to the receiver but the receiver does not understand this message (typically sent from the machine when a message is sent to the receiver and no method is defined for that selector)." "Testing: (3 activeProcess)" (Preferences autoAccessors and: [self tryToDefineVariableAccess: aMessage]) ifTrue: [^ aMessage sentTo: self]. ^ NachrichtNichtVerstanden new message: aMessage; receiver: self; signal -- Marcus Denker [hidden email] |
Marcus Denker wrote:
> Am 15.11.2003 um 14:21 schrieb Klaus Füller: > >> Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im >> Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich >> müsste nun einige Meldungen des Compilers und des Laufzeitsystems >> ändern und möchte das "quick-and-dirty" tun. >> >> Wie finde ich Meldungen, wie "Nothing more expected" oder "Message not >> understood"? Es gibt eine String-Suchfunktion: Wort markieren, Strg-E drücken. By "Nothing more" findet man dabei eine Methode in Parser, die diesen Ausdruck enthält: [self expected: 'Nothing more'] Das kann man einfach ändern. Man kann dann nach weiteren Benutzern von #expected: suchen (Alt-N) und finded die anderen erwarteten Dinge. Aber natürlich kann man auch #expected selbst ändern, so wie Marcus das beschreibt. > Bei MessageNotUnderstood ist die sache etwas ungeschickter, das das der > Name des Klasse ist. Hier koennte man folgendes machen: > [...] Nee, das will man nicht wirklich machen ;-) Der Fenstertitel wird erzeugt, in dem #description an die Exception gesandt wird. Die Default-Implementierung ist in Exception und hängt den #messageText an den Klassennamen an. Durch Überschreiben von #description in einer Unterklasse wie z.B. MessageNotUnderstood kann man sich also leicht eigene Meldungen erzeugen: description "Return a textual description of the exception." | mt | ^(mt := self messageText) == nil ifTrue: ['Nachricht unbekannt'] ifFalse: ['Das verstehe ich nicht: ', mt] -- Bert |
In reply to this post by Klaus Füller
Klaus Füller wrote:
> Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im > Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich müsste > nun einige Meldungen des Compilers und des Laufzeitsystems ändern und > möchte das "quick-and-dirty" tun. Hmm, warum verwendest du nicht einfach etoys dafuer (http://www.squeakland.org)? Die etoy tiles schalten sich auch auf Deutsch um, wenn man die Sprache in Squeak umschaltet. Michael |
Michael Rueger schrieb:
> Klaus Füller wrote: > >> Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im >> Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich >> müsste nun einige Meldungen des Compilers und des Laufzeitsystems >> ändern und möchte das "quick-and-dirty" tun. > > > Hmm, warum verwendest du nicht einfach etoys dafuer > (http://www.squeakland.org)? > Die etoy tiles schalten sich auch auf Deutsch um, wenn man die Sprache > in Squeak umschaltet. Ich habe zu wenig Ahnung von EToys, habe mit ihnen herumgespielt und bin nicht richtig überzeugt. Ich gebe aber zu, dass es bei mir einen Moment dauert, bis ich ein Gefühl für ein derartiges System entwickelt habe. Ich bin (u.a.) Mathematik-Lehrer. Es kommt im Moment darauf an, dass die Schülerinnen und Schüler den Winkelbegriff lernen und mit Winkeln umgehen. Ich will also, dass die Schüler sagen: 'igel rechts: 72' und dann feststellen, dass der Winkel falsch war und sie sich genauer Gedanken machen müssen. (Das ist Papers Turtle-Ansatz.) Sie können außerdem kleine Prozeduren schreiben in der Form: 4 mal: [igel rechts: 90; vor: 20] Für meine Schüler ist es kein Problem, einen Fetzen Text zu markieren und [Alt]+D zu tippen (6. Klasse, Gymnasium). _Eine_ mögliche Erweiterung ist dann der Einstieg in die Programmierung, indem ich diesen Code in eine Methode verwandele. _Eine andere_ Erweiterung ist ein System, wie Dynageo (nur besser), in dem die Schülerinnen und Schüler eine Konstruktionsbeschreibung eintippen und die Konstruktion angelegt wird: Punkt name: 'A' x: 3 y: 4. ... Strecke name: 'a' von: 'A' nach: 'B'. In der erzeugten Konstruktion muss man dann Teile interaktiv verschieben können. Wer ist hier eigentlich Lehrer? Wer ist an der Grundschule, wer an weiterführenden Schulen? (Nur als Ergänzung: Ich setzt Squeak noch in einem Informatik-Grundkurs in der 12 ein.) |
Klaus Füller (2003-11-16 11:18):
> > Wer ist hier eigentlich Lehrer? Wer ist an der Grundschule, wer an > weiterführenden Schulen? Ich wäre fast Lehrer (M/Ph Gym) geworden ... zählt das? :-) s. -- Stefan Schmiedl +-------------------------------+----------------------------------------+ |Approximity GmbH | EDV-Beratung Schmiedl | |http://www.approximity.com | Am Bräuweiher 4, 93499 Zandt, Germany | |mailto:[hidden email] | Tel. (09944) 3068-98, Fax -97 | +-------------------------------+----------------------------------------+ |
In reply to this post by Klaus Füller-2
Hi,
On Sun, 16 Nov 2003 11:18:47 +0100, Klaus Füller <[hidden email]> wrote: > Michael Rueger schrieb: >> Klaus Füller wrote: >> >>> Ich habe eine einfache Turtle-Graphik in squeak geschrieben, um sie im >>> Jahrgang 6 in Mathematik einzusetzen (es geht da um Winkel). Ich müsste >>> nun einige Meldungen des Compilers und des Laufzeitsystems ändern und >>> möchte das "quick-and-dirty" tun. >> >> >> Hmm, warum verwendest du nicht einfach etoys dafuer >> (http://www.squeakland.org)? >> Die etoy tiles schalten sich auch auf Deutsch um, wenn man die Sprache >> in Squeak umschaltet. > > Ich habe zu wenig Ahnung von EToys, habe mit ihnen herumgespielt und bin > nicht richtig überzeugt. Ich gebe aber zu, dass es bei mir einen Moment > dauert, bis ich ein Gefühl für ein derartiges System entwickelt habe. > > Ich bin (u.a.) Mathematik-Lehrer. Es kommt im Moment darauf an, dass die > Schülerinnen und Schüler den Winkelbegriff lernen und mit Winkeln > umgehen. Ich will also, dass die Schüler sagen: 'igel rechts: 72' und > dann feststellen, dass der Winkel falsch war und sie sich genauer > Gedanken machen müssen. (Das ist Papers Turtle-Ansatz.) > > Sie können außerdem kleine Prozeduren schreiben in der Form: > > 4 mal: [igel rechts: 90; > vor: 20] > > Für meine Schüler ist es kein Problem, einen Fetzen Text zu markieren und > [Alt]+D zu tippen (6. Klasse, Gymnasium). > > _Eine_ mögliche Erweiterung ist dann der Einstieg in die Programmierung, > indem ich diesen Code in eine Methode verwandele. > > _Eine andere_ Erweiterung ist ein System, wie Dynageo (nur besser), in > dem die Schülerinnen und Schüler eine Konstruktionsbeschreibung eintippen > und die Konstruktion angelegt wird: > > Punkt name: 'A' x: 3 y: 4. > ... > Strecke name: 'a' von: 'A' nach: 'B'. > > In der erzeugten Konstruktion muss man dann Teile interaktiv verschieben > können. > > Wer ist hier eigentlich Lehrer? Wer ist an der Grundschule, wer an > weiterführenden Schulen? Gym M/Inf. > > (Nur als Ergänzung: Ich setzt Squeak noch in einem Informatik-Grundkurs > in der 12 ein.) > > Gruss, Torge -- Der Mensch kann wohl tun, was er will, aber er kann nicht wollen, was er will. (Schopenhauer) |
In reply to this post by Klaus Füller-2
Klaus Füller wrote:
> Ich habe zu wenig Ahnung von EToys, habe mit ihnen herumgespielt und bin > nicht richtig überzeugt. Ich gebe aber zu, dass es bei mir einen Moment > dauert, bis ich ein Gefühl für ein derartiges System entwickelt habe. Hab mal ein ecken Projekt angehaengt :-) Waere sehr wichtig fuer uns zu erfahren, was dich gestoert hat oder warum es dich nicht angesprochen hat. Doku ist ein wenig duenn, obwohl wir hoffentlich bald mehr haben, u.a. die deutsche Uebersetzung des Buches von BJ und KIm. > Sie können außerdem kleine Prozeduren schreiben in der Form: > > 4 mal: [igel rechts: 90; > vor: 20] Schleifen gehen zu Zeit nicht (einfach), ist aber hoch auf unserer Prioritaetenliste! Michael ecken.002.zip (58K) Download Attachment |
Free forum by Nabble | Edit this page |