Wie 2-Bit-Schieberegister programmieren

n00blesupp

Lt. Commander
Registriert
Aug. 2002
Beiträge
1.893
Moin,
wir müssen im Informatikunterricht kleinere Programme erstellen.
Da ich am Tag, an dem die verschiedenen DelphiProgs vom Lehrer verteilt wurden, nicht anwesend war, wurde mir im nachhinein durch unseren netten Lehrer ein 2-Bit-Schieberegister Programm aufgetragen.

Andere Programme hätte ich womöglich noch mastern können, jedoch bin ich bei diesem Programm überfragt!

Wir programmieren noch in Delphi 3 (sehr unnötig das). Also PASCAL.
Vll ist ja hier irgendwo ein Hobbyprogrammierer, der mir ein wenig bei der Programmierung des Programms helfen kann. ;)
Könnte ja auch sein, dass manche hier sowas in der Richtung schon durchgenommen haben.

Ich poste hier mal die Aufgabenstellung:

Beschreiben sie ein 2-Bit-Schieberegister, also ein Schaltwerk, in dem auf ein hier nicht zu berücksichtigendes Taktsignal hin zweistellige Dualzahlen gespeichert, geladen und nach rechts oder links verschoben werden können.

Bei den Schiebeoperationen sollen in die jeweils freiwerdenden Stellen Nullen nachgeschoben werden.

Inhalt des Schieberegisters vor dem Taktsignal
1 1

Operation Rechtsschieben

Inhalt des Schieberegisters nach dem Taktsignal
0 1
__________

Inhalt des Schieberegisters vor dem Taktsignal
1 1

Operation Linksschieben

Inhalt des Schieberegisters nach dem Taktsignal
1 0
__________

Inhalt des Schieberegisters vor dem Taktsignal
beliebig

Operation Null-Laden

Inhalt des Schieberegisters nach dem Taktsignal
0 0
__________

Inhalt des Schieberegisters vor dem Taktsignal
beliebig

Operation Drei-Laden

Inhalt des Schieberegisters nach dem Taktsignal
1 1

__________


Eingabealphabet: R, L, 0, 3




=> Soweit ist mir vom Prinzip her alles klar, aber es hängt halt noch an der Umsetzung in PASCAL.
Es muss ein Prog sein, das 2 Editfenster enthält, in die der Benutzer die 2 Zahlen eintragen kann. Außerdem müssen 4 Buttons für die 4 verschiedenen Aktionen (z.B Rechtsshieben) eingebaut werden.
Es ist also relativ klein, dieses Prog.


Könnte mir jemand helfen, auch wenn es nur ein Link zu dem Prog ist, oder so. :D



Danke euch.

MfG Flo
 
Also eine Hausaufgaben solltest Du schon alleine machen -

Mit Delphi helf ich Dir aber gern weiter ;)

Das wichtigste ist wohl das Bit-Schieben:

var
i: Integer;

......

begin
I := 3; // drei laden ;-)
I := 0; // null laden


I := (I shl 1) and 3; // um 1 Bit nach links schieben. and 3, uns nur die ersten beiden Bits interessieren. von recht wird mit nullen aufgefüllt

i := I shr 1; // hier brauchen wir kein and, da von links eh immer nullen kommen
end;
 
n00ble°suPP schrieb:
Es muss ein Prog sein, das 2 Editfenster enthält, in die der Benutzer die 2 Zahlen eintragen kann. Außerdem müssen 4 Buttons für die 4 verschiedenen Aktionen (z.B Rechtsshieben) eingebaut werden.

Wenn du die beiden BITs einzeln abspeicherst wirds einfacher.

Zuerst speicherst du die eingaben des Benutzers in die zwei war

Bit1 : char; //Abspeichern des 1 Bits
Bit2 : char; //Abspeichern des 2 Bits

Dann einfach die Onklick-Methoden ausprogrammieren

//Funktion die aufgerufen wird wenn der Button Rechtsschieben gedrückt wird
Bit2 := Bit1;
Bit1 := 0;

//Funktion die aufgerufen wird wenn der Button Linksschieben gedrückt wird
Bit1 := Bit2;
Bit2 := 0;

//Funktion die aufgerufen wird wenn der Button Null-Laden gedrückt wird
Bit1 := 0;
Bit2 := 0;

//Funktion die aufgerufen wird wenn der Button Drei-Laden gedrückt wird
Bit1 := 1;
Bit2 := 1;
 
Einen Link zu so einem Programm wirst du wohl kaum finden. Man muss aber sagen, dass die Aufgabenstellung sehr ausführlich ist und alle gewünschten Funktionen gut erklärt sind. Wenns nur am Ansatz hapert mal ein paar Vorschläge wie man das machen könnte (ob Sinn und Unsinn jetzt besser nichts sagen):
a) 2 Edit Felder nutzen und jedes als ein 1-Bit Register nutzen (nicht toll sollte aber funktionieren)
b) die Edit-Felder als Maske nutzen für das jeweilige Bit
usw.

Da du nur 2-Bits verwenden sollst ist das ganze nicht sonderlich schwierig.
 
Zurück
Oben