Autor |
Beitrag |
NeoAngel
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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:
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 2) downto 2 do begin if (a mod i = 0) then 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...
Ganz lieben Gruss,
neo
Moderiert von Udontknow: Code- durch Delphi-Tags ersetzt.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
_________________ 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
|
Verfasst: 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!
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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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! |
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
      
Beiträge: 2088
|
Verfasst: 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
|
Verfasst: 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
|
Verfasst: 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:
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.
|
|
|