Autor Beitrag
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 08.11.04 18:07 
Ich muss in einem Vortrag eine Speicherbelegung für mein Referat über die Primfaktorzerlegung erklären.

Der Quelltext des Programms lautet:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
function zerlege(i: integer): string;

var s: string;
  procedure zz(a: integer);  
  var i: integer;  
  begin  
    for i := (a div 2downto 2 do  
    begin  
      if (a mod i = 0then  
      begin  
        s := s+inttostr(a div i)+'*';  
        zz(i);  
        exit;  
      end;  
    end;  
    s := s+inttostr(a);  
  end;
  
begin  
  zz(i);  
  if pos('*',s) = 0 then s := 'Primzahl!';  
  result := s;  
end;


label1.caption := zerlege(strtoint(edit1.text));


Die Werte sollen 'a', 'i', 's', 'result' und 'label.caption' sein.
Das soll so eine Tabelle sein, in der Schritt für Schritt erklärt wird,
was der Computer rechnet.

Ich versteh echt nicht, wie ich das hinbekommen soll.
Wäre super froh, wenn mir jemand helfen könnte/würde... :wink:

Ganz lieben Gruss,
neo

Moderiert von user profile iconUdontknow: Code- durch Delphi-Tags ersetzt.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.11.04 20:55 
OK, halten wir also fest: Hausaufgabe oder Referat über unbekanntes Thema.

Weiterhin:
Geht es hier um die Speicherbelegung\Speicherbelastung oder die Algorithmen-Erklärung? Zweiteres wäre nämlich etwas komplett anderes.

Bitte frage, nach Abschnitt 1.2 der DF-Richtlinien, auf Grund der Deaktivierung der Edit-Funktion, einen Moderator nach der Änderung deines Thread-Themas in etwas aussagekräftigeres.

Wegen Algo-Erklärung:
Eigentlich das, was der Reihe nach da steht :D

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 08.11.04 22:19 
also ich find meinen titel doll...

das mit dem prog hab ich mir irgendwie so vorgestellt:
man(n) nehme die zahl 120!

ausblenden Quelltext
1:
2:
3:
4:
5:
a              | 120   60    30       15
i              |  60   30    15
s              | 2*   2*2*  2*2*2*  2*2*2*3*5
result         |
label1.caption |                    2*2*2*3*5



lol!

neja, ist doch schon mal ein anfang.
hättest du eine idee, wie ich das schöner bzw.
intelligenter schreiben kann, und was ich mit
'result' anfangen muss, das muss nämlich unbedingt
vorkommen im vortrag.

gruss, neo
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.11.04 23:46 
NeoAngel hat folgendes geschrieben:
also ich find meinen titel doll...

Er ist aber irreführend ;-) Normalerweise bezeichnet man damit die RAM-Auslastung, die durch ein Programm verursacht wird, nicht die Variablen-Belegung.

NeoAngel hat folgendes geschrieben:
das mit dem prog hab ich mir irgendwie so vorgestellt:
man(n) nehme die zahl 120!

ausblenden Quelltext
1:
2:
3:
4:
5:
a              | 120   60    30       15
i              |  60   30    15
s              | 2*   2*2*  2*2*2*  2*2*2*3* 2*2*2*3*5
result         |                             2*2*2*3*5
label1.caption |                                       2*2*2*3*5

Jedoch gehört das Label nicht zur Funktion und sollte daher komplett rausgelassen werden.

NeoAngel hat folgendes geschrieben:
lol!

tzzz!

NeoAngel hat folgendes geschrieben:
neja, ist doch schon mal ein anfang.
hättest du eine idee, wie ich das schöner bzw.
intelligenter schreiben kann, und was ich mit
'result' anfangen muss, das muss nämlich unbedingt
vorkommen im vortrag.

@Result: Siehe Einsteiger-Tutorial-Sparte "Funktionen"
@Besser schreiben: Siehe "Programm-Ablauf-Plan" (PAP)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 08.11.04 23:50 
Ich tippe mal darauf dass der Kollege morgen die Funktion erklären muss ;)
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 09.11.04 08:07 
Also ich hab weder ein Tutorial zu Funktionen noch was zum Programm Ablauf gefunden.
Ist meine 'Speicherbelegung' oder was auch immer ihr darunter versteht nun richtig,
wenn ich das Ergebnis anstatt unter Label1.Caption unter result schreibe?

Wenn nicht, schreibt doch bitte wie ich's richtig mach,
ich muss den Vortrag schon morgen halten.

Gruss, neo
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 09.11.04 09:09 
Eventuell solltest du mal überlegen, wie du klar ausdrückst, was du eigentlich von uns willst.

Ich habe mal meine Glaskugel bemüht und die sagt mir, du willst von uns, dass wir dir sagen wie deine Funktion arbeitet und welche Werte die Variablen nacheinander annehmen bis die Funktuion zurückkehrt. Wo ist da das Problem? Nimm dir Papier und Bleistift und rechne von Hand nach, was die Funktion macht. In einer Tabelle hältst du für jeden Schleifendurchlauf die Werte der Variablen fest.

Und was das mit dem result angeht: Result ist eine interne Variable von der Programmiersprache Delphi, in der Funktionen ihr Rückgabeergebnis ablegen bzw. zurückgeben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
add(a, b: Integer): Integer;
begin
  result := a + b;
end;

In Result steht jetzt das Ergebnis der Addition und ist auch gleichzeitig der Rückgabeweet der Funktion wenn selbige verlassen wird.