Entwickler-Ecke
Alle Sprachen - Alle Plattformen - Rekursiver Algorithmus (Struktogramm, Flussdiagramm)
Serb973 - Mo 30.11.20 10:52
Titel: Rekursiver Algorithmus (Struktogramm, Flussdiagramm)
Hallo miteinander,
ich habe Schwierigkeiten diese Aufgabe zu lösen:
Beschreiben Sie einen rekursiven Algorithmus, der als Parameter B und die Dezimalzahl n erhält und als Rückgabewert die Darstellung von n im B-System liefert, als Flussdiagramm und zusätzlich auch als Struktogramm.
Ich habe mich daran versucht jedoch ohne Erfolg :(
Wäre sehr nett wenn mir jemand helfen könnte.
Th69 - Mo 30.11.20 15:13
Hallo und :welcome:
was ist denn dein Ansatz und was hast du schon versucht?
Fiete - Mi 02.12.20 17:04
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?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!