CCZwei

Aktuelles

Allgemeines

Priv@tes

Unterhaltung

Lallus

Visual Basic

PDA/PPC2002

Navigation

Mischmasch

Chat / Webcam

 

| impressum | feedback | g�stebuch | home |  

 

Knowhowcomputer

Der Know - how Computer

Ein Computer, der mit Streichh�lzern arbeitet.


Von Wolfgang Back

Wir schreiben das Jahr 1983. Die Computersituation in der Bundesrepublik war noch sehr bescheiden. Es gab ein paar (tausend) Leute, die sich zur Avantgarde z�hlten und 4000 Mark und mehr ausgaben, um sich einen Apple anzuschaffen. Nat�rlich gab es bereits andere Modelle auf dem Markt. Fast jeden Monat kam ein neues exotisches Modell hinzu.

Der Computerclub hatte damals das gro�e Problem, dass die Sendung auf Zuschauerinteresse stie�, obwohl ein Gro�teil der Seher gar keinen Computer zur Verf�gung hatte. Aus diesem Grunde entwickelten Ulrich Rohde und ich einen Papiercomputer, der schon bald �von der St�ckzahl her- die Nummer Eins in der Bundesrepublik war. Mehr als 300 Tausend Exemplare wurden unter die interessierte Zuschauerschaft verteilt.

Die Idee, das Funktionieren eines Computers in einfachster Form darzustellen, fand bald in der schulischen Ausbild ihren Einzug. Selbst heute noch soll er an manchen Berufsschulen im Einsatz sein - so wurde es mir best�tigt.

Somit war mit dem Papiercomputer ein Lehrmittel geschaffen, das jeden in die Lage versetzte, die Denkstrukturen beim Programmieren zu erlernen. Nat�rlich ist es kein Computerersatz, doch mit den 5 vorhandenen Befehlen lassen sich s�mtliche mathematischen Probleme l�sen.

Es ist ja auch verst�ndlich. Wenn man sich klarmacht, dass die Multiplikation auf der Addition aufbaut, denn 3 * 6 ist nichts anderes als 6 + 6 + 6.

Die n�chste mathematische Stufe: das Potenzieren ist entsprechend:
2 hoch 3 ist 2 * 2 * 2.
Da man s�mtliche Probleme in der Mathematik letztendlich mit den Grundrechenarten Addition / Subtraktion l�sen kann, kommt der vorgestellte Computer mit nur 5 Befehlen aus.

Wenn Sie sp�ter in die Assemblersprache einsteigen wollen, so ist der Knowhow � Computer das richtige Lernmittel, um Denkstrukturen in Maschinensprache zu trainieren.

Ein Computer besteht aus einem Rechenwerk, normalerweise die CPU (die mu� allerdings mit der Hand bewegt werden), einem Datenspeicher und aus dem Programm, das Befehle und Anweisungen enth�lt. Letztendlich mu� noch eine Eingabe- und Ausgabem�glichkeit geschaffen werden. All dies ist mit diesem einfachen Modell m�glich.

Die Daten werden in der Papierversion mit Streichh�lzern dargestellt. In der Computerversion wurde dies mit virtuellen H�lzern beibehalten.

Der rechte Teil (Datenregister) dient daher zur Ein- und Ausgabe.
Unser Rechner hat also 8 Datenregister, die wir f�r alles m�gliche benutzen k�nnen.

Die Bedienung der Computerversion ist einfach.
Die Streichh�lzer bekommt man auf dreierlei Weise in die Register.
1.) Mausklick links auf das Register f�gt ein Holz hinzu.
Mausklick rechts auf das Register nimmt ein Holz weg.
Ein Klick auf das + f�gt ein Holz hinzu,
auf � entsprechend wird ein Holz entfernt.

Am effektivsten - bei hoher Anzahl von H�lzern - ist die direkte Eingabe im kleinen Textfenster �ber dem -+ Knopf.

Die linke Seite des Knowhow � Computers ist f�r das Programm vorgesehen. Hier kommen die erw�hnten 5 Befehle zum Zuge.

Die Befehle sind sicherlich leicht zu merken.

1.) stp � dieses ist der Stoppbefehl. Wird die Zelle mit diesem Befehl erreicht, so ist die gestellte Aufgabe abgearbeitet, das Programm ist zu Ende.

2.) inc � dieser Befehl wurde aus dem englischen Wort increment abgeleitet. Es bedeutet, dass der Wert in dem angesprochenen Datenregister um 1 erh�ht wird � ein Holz wird dazugelegt. Dieser Befehl ist auch im Assembler sehr wichtig, wie Sie sp�ter noch sehen werden.

3.) dec � das Pendant zu inc. Decrement bedeutet, dass der Registerwert um 1 erniedrigt wird. Auch diesen Befehl werden Sie sp�ter wieder entdecken.

4.) jmp � ist ein Sprungbefehl, abgeleitet von jump. Der Inhalt der in der Zelle zeigt an, wohin im Programm jetzt gesprungen werden soll. Ein jmp 99 1 bedeutet also: Wir sind in der Programmzelle 1. Beim n�chsten Takt soll in die letzte Zelle 99 gesprungen werden. Finden wir hier jmp 1 99 vor, so haben wir eine Endlosschleife programmiert: von 1 nach 99, von 99 nach 1 usw. Sprungbefehle sind sp�ter wichtige Befehle im Assembler. Von Basic her kennt man diese Befehle ebenso: hier heisst es goto.

5.) isz � dieser Befehl ist vielleicht etwas schwieriger zu verstehen. Es ist ein Verzweigungsbefehl. Er leitet sich hier von der Fragestellung is zero ?, also ist es null ? ab.
Und zwar wird hiermit das Datenregister abgefragt. isz 1 6 bedeutet im Klartext: Wir sind in der Programmzelle 6. Das Datenregister 1 wird auf 0 gepr�ft. Und was geschieht nun? Sind in dem Datenregister H�lzer � es ist also nicht 0 -, so wird das Programm mit der n�chsten Programmzelle abgearbeitet. Ist das Datenregister jedoch ohne H�lzer, so erfolgt ein Sprung in die �bern�chste Zelle. Solche Verzweigungen sind sehr wichtig und sie werden sp�ter h�ufig gebraucht.

Vergleichbar in Basic ist der IF � Befehl, vergleichbar im Assembler bne = branch not equal oder beq = branch if equal.

10 IF A=0 then goto 30
20 goto 40
30 END
40 print �HALLO�

Dieses Basicprogr�mmchen wird also immer HALLO schreiben, wenn A ungleich 0 ist. Ist A = 0, so wird das Programm beendet.

Das w�r�s auch schon. Anhand der vorgelegten einfachen Addition in dem Bild erkl�re ich den Ablauf einmal genauer. Sie sollten dann versuchen, andere Rechenarten selbst zu programmieren.

Die Grundrechenarten Addition, Subtraktion, Multiplikation und Division sind nat�rlich schon als vorgefertigte Programme vorhanden. Sie sind etwas ausgefeilter und k�nnen als �ordentliches� Programmieren angesehen werden.

Doch zun�chst einmal ein einfaches Beispiel, eine Addition ohne Schn�rkel:

In diesem Beispiel sind 2 H�lzer in Datenregister 1 und 2 H�lzer in Datenregister 2. Das Programm auf der linken Seite (Addition) wird 2 + 2 = 4 errechnen.

Wir beginnen mit unserem Programmz�hler (der Kugelschreiber) in der Zelle 1, wie es jeder Computer macht.
Hier finden wir die Programmzeile isz 2 1 vor.
Wir wissen jetzt, was es bedeutet. Ist das Datenregister 2 leer?
Nein, hier liegen 2 H�lzer. Also weitermachen mit der n�chsten Anweisung: jmp 4 2 .

Ein Sprung zur Programmzelle 4 ist hier die Anweisung.
In 4 dann die erste Aktion: dec 2 4 .
Decrementiere, nimm ein Holz aus Datenregister 2 weg.

Im n�chsten Befehl wird ein Holz in das Datenregister 1 hinzugef�gt: inc 1 5 .
Danach wieder der Sprungbefehl in die Programmzelle 1 � das gleiche Spiel beginnt � bis Datenregister 2 leer ist.

Nach der Befehlsdefinition wird dann die folgende Programmzelle �bersprungen und wir landen auf dem Stoppbefehl stp � das Programm ist beendet.

Jetzt sollten Sie versuchen, einige Programme selbst zu schreiben.
Probieren Sie es mit einer Endlosschleife, kopieren Sie Inhalte in andere Datenregister usw.

Man kann das alles auf Papier realisieren, indem die Vorlage so kopiert wird, wie oben gezeigt. Echte Streichh�lzer qwerden in die Register gelegt und ein Kugelschreiber dient als Programmz�hler.

Auf gehts!!

Es ist sicherlich kein dummes Geschw�tz, wenn ich behaupte, dass das Vertrautwerden mit dieser Programmiertechnik das Verst�ndnis f�r die Funktion eines Computers f�rdert. Hier ist eine Art Maschinensprache realisiert, deren Verst�ndnis f�r sp�tere Programmieranwendungen in anderen Hochsprachen sicherlich von Vorteil ist.

Es wird auf meinen Seiten ein Internet - Knowhow-Computer entstehen. Daf�r muss ich mich noch ein wenig mit javaskript auseinandersetzen. Dann kann man es direkt auf der entsprechenden Seite ausprobieren.

Bis dahin kann man sich ein Programm laden, das als EXE-File auf dem Computer l�uft. Die Runtimebibliothek vbrun300.dll und das Contril GRID.VBX ist im ZIP-File vorhanden.
Ansonsten gibt es diese auch bei mir im Programm unter Visual Basic.

Das Programm habe ich schnell in Visual Basic geschrieben.
Es mag sein, dass sich die eine oder andere kleine Macke auftut. Vor allem beim Einf�gen neuer Programmzeilen k�nnen sich evtl. kleine Fehler bei der Neuberechnung der Sprungadressen auftun.

Ich habe hier eine RENUMBER � Funktion eingebaut (eigentlich Quatsch).
Da dieser Rechner aber nur das Prinzip zeigen soll und nicht zum Standardrechner aufsteigen soll, sollte die Funktionalit�t des Programmes gen�gen.

Der kleine Taschenrechner im Programm soll eigentlich alles auf den Kopf stellen:
Ein Papiercomputer, der im Computer simuliert wird � nutzt dann die denkbar umst�ndlichste Methode, um ein Ergebnis zu erzielen.

In den kleinen Farbfenstern kann man die pers�nliche Note einstellen.
Sowohl Schriftfarbe wie auch der Hintergrund k�nnen eingestellt werden.
Die Gridlinien k�nnen entfernt werden, der Programmz�hler kann individuell in seiner Farbe bestimmt werden usw..

Knowhow Computer Zip-File(269 KB) laden

 
   

   © 2003 by Wolfgang Back •  [email protected]