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. Zitieren
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 Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.