S. Bauermann Geschrieben 11. Februar 2001 Geschrieben 11. Februar 2001 Hi an alle bin gerade am knaupeln. Kann man eine Umrechnung für Dez zu Dualzahlen auch mit einer Rekursiven Funktion mit Procedures lösen ? Laufen soll das mit pascal. Hier mein Code hier zwar rekursiv aber nicht mit Procedures sonder mit Functions. Wer weiß Rat danke ? Beispiel: program dezimaldual; uses crt; var dezimalzahl:longint; dual:array [1..16]of integer; x,z:integer; function dezi(d:integer):integer; var y:integer; begin if d>0 then begin y:=d mod 2; dezi:=dezi(d div 2); write(y); end; end; begin clrscr; writeln; writeln('gieb dezimalzahl ein:'); readln(dezimalzahl); write(^j,'die dualzahl lautet : '); dezi(dezimalzahl); end.
Gast Geschrieben 12. Februar 2001 Geschrieben 12. Februar 2001 Hi, wenn ich Dich richtig verstehe, willst Du das ganze mit Procedures anstatt mit Funktionen lösen. Mein Vorschlag wäre: program dezimaldual; uses crt; type tdual=array[1..16] of boolean; var dezi:longint; dual:tdual; i:integer; procedure rech(dezi:integer;var dual:tdual;i:integer); var hilf:integer; begin if (dezi>0) and not(i>16) then begin dual:=dezi mod 2; dezi:=dezi div 2; rech(dezi,dual,i+1); end; end; begin for i:=1 to 16 do dual:=false; (* Setzt den Dual-Array auf False, d.h 0 *) clrscr; writeln; write('Gib die Dezimalzahl ein : '); readln(dezi); i:=1; rech(dezi,dual,i); writeln; write('Die Dualzahl lautet : '); for i:=16 downto 1 do if dual then write('1') else write('0'); writeln; readln; end. Müsste funzen MGF LoneGunman
Gast Geschrieben 12. Februar 2001 Geschrieben 12. Februar 2001 HALT/STOP Müßte was berichtigt werden: 1. Die Variable Hilf kanst Du steichen, ist unnütz. 2. Dann heißt es nicht "dual:=dezi mod 2" sondern if dezi mod 2 = 0 then dual:=false else dual:=true; Sorry waren Flüchtigkeitsfehler. MFG LoneGunman
S. Bauermann Geschrieben 12. Februar 2001 Autor Geschrieben 12. Februar 2001 Vielen Dank werde das geleich checken. Habe am Freitag eine Klausur und bin eigentlich nicht so recht mit den Informationen im Unterricht zu frinden. Nochmals Danke.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden