Moin Serb973,
eine iterative Lösung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TNSystem.RechneClick(Sender: TObject); var Rest,Basis,DezZahl:Int64; Ergebnis:String; begin if Eingabe.Text='' then begin MessageDlg('Es gibt NICHTS zu tun!!!',mtError,[mbOk],0); exit end; DezZahl:=StrToInt64(Eingabe.Text); Basis:=StartBasis.Value; Ergebnis:=''; repeat Rest:=DezZahl mod Basis; DezZahl:=DezZahl div Basis; Ergebnis:=Ziffern[Rest+1]+Ergebnis until DezZahl=0; Ausgabe.Text:=Ergebnis end; |
Eine rekursive Lösung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| const Ziffer='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
procedure TRekursion.Umwandeln(N:Int64;Basis:Integer); begin if N>0 then begin Umwandeln(N div Basis,Basis); Ausgabe.Items.Add(Ziffer[N mod Basis+1]); end end;
procedure TRekursion.StartClick(Sender: TObject); var Zahl:Int64; Basis:Integer; begin Zahl:=StrToInt(Edit1.Text); Basis:=SpinEditN.Value; Ausgabe.Clear; Umwandeln(Zahl,Basis); end; |
Das Flussdiagramm müsstest Du aus dem Quelltext erstellen können.
Ein Struktogramm ist überflüssig wenn Du folgendes beachtest:
jede Schleife hat genau einen Eingang und genau einen Ausgang.
Viel Spaß beim Studieren.
Gruß Fiete
p.s. ist die Aufgabe für die Schule oder Uni?
Welche Algorithmen kennst Du?