Autor Beitrag
Serb973
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 30.11.20 11:52 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 30.11.20 16:13 
Hallo und :welcome:

was ist denn dein Ansatz und was hast du schon versucht?
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Mi 02.12.20 18:04 
Moin Serb973,
eine iterative Lösung:
ausblenden 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:
ausblenden 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?

_________________
Fietes Gesetz: use your brain (THINK)