Entwickler-Ecke
Sonstiges (Delphi) - Hilfe! Kommentare im Quelltext
ang91 - Fr 27.08.10 17:05
Titel: Hilfe! Kommentare im Quelltext
Hallo Leute!
Ich habe ein riesen Problem. Wir müssen in der Schule einen Quelltext in Deplhi kommentieren. Und zwar jeden einzelnen Schritt bzw. jede Zeile! Hab schon einige Kommentare selbst gemacht,aber jede Zeile bekomm ich nicht hin.
Kann mir bitte jemand helfen? Wäre sehr nett!
Hier zunächst die Aufgabenstellung, zu welcher der Quelltext gefordert wurde.
- Auf einen Datenbestand von maximal 100 ganzen Zahlen sollen 50 Zufallszahlen aus einem Bereich von 1..20 abgelegt werden.
- Von diesem Datenbestand sollen folgende Aussagen gewonnen und ebenfalls im Speicher abgelegt werden:
- kleinstes und größtes Element, Summe aller Zahlen
- Mittelwert (arithmetisch)
- Anzahl der Zufallszahlen
- Anzahl der Zahlen, welche größer und kleines als Mittelwert sind
Nun der Quelltext, welcher kommentiert werden soll:
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: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129:
| procedure TForm1.Button2Click(Sender: TObjekt);
type tfeld = array [1..100] of integer; tdaten = record feld : tfeld; anzahl : integer; max : integer; min : integer; Summe : integer; mittelw : real; anzminmw : integer; (Anzahl der Werte, die kleiner sind als Mittelwert) anzmaxmw : integer; (Anzahl der Werte, die größer sind als Mittelwert) end;
procedure sortiere (var daten : tdaten); var lauf, lauf1,hilf : integer; begin for lauf := 1 to daten.anzahl do begin for lauf1 := 1 to daten.anzahl-1 do begin if daten.feld[lauf1] > daten.feld[lauf1+1] then begin hilf := daten.feld[lauf1]; daten.feld[lauf1] := daten.feld[lauf1+1]; daten.feld[lauf1+1] := hilf; end; end; end; end;
var daten : tdaten lauf : integer; zeile : string
begin
daten.anzahl := 50;
randomize; for lauf := 1 to daten.anzahl do begin daten.feld[lauf] := random(20)+1; end;
daten.Summe := 0; for lauf := 1 to daten.anzahl do begin daten.Summe := daten.Summe+daten.feld[lauf] end;
daten.mittelw := daten.Summe/daten.anzahl;
daten.max := -maxint; daten.min := maxint;
memo1.Lines.add(IntToStr(daten.max)+'absolut kleinstes Element'); memo1.Lines.add(IntToStr(daten.min)+'absolut größtes Element'); For lauf := 1 to daten.anzahl do begin if daten.feld[lauf] > daten.max then daten.max := daten.feld[lauf]; if daten.feld[lauf] < daten.min then daten.min := daten.feld[lauf]; end;
daten.anzminmw := 0; for lauf := 1 to daten.anzahl do begin if daten.feld[lauf] < daten.mittelw then daten.anzminmw :=aten.anzminmw+1; end;
daten.anzmaxmw := 0; for lauf := 1 to daten.anzahl do begin if daten.feld[lauf] > daten.mittelw then daten.anzmaxmw :=daten.anzmaxmw+1; end;
memo1.lines.add('Ergebnisübersicht')
zeile := ''; for lauf := 1 to daten.anzahl do begin zeile := zeile+IntToStr(daten.feld[lauf]+''; if lauf mod 20=0 then begin memo1.lines.add(zeile); zeile := ''; end; end; memo1.lines.add(zeile);
sortiere(daten); zeile := ''; for lauf := 1 to daten.anzahl do begin zeile := zeile+IntToStr(daten.feld[lauf])+';'; if lauf mod 20 = 0 then begin memo1.lines.add(zeile); zeile :=''; end; end; memo1.lines.add(zeile);
memo1.lines.add('Anzahl Elemente = '+IntToStr(daten.anzahl)); memo1.lines.add('kleinstes Element = '+IntToStr(daten.min)); memo1.lines.add('größtes Element = '+IntToStr(daten.max)); memo1.lines.add('Summe = '+IntToStr(daten.Summe.)); memo1.lines.add('Mittelwert = FloatToStr(daten.mittelw)); memo1.lines.add('Anzahl > Mw = '+IntToStr(daten.anzmaxmw)); memo1.lines.add('Anzahl < Mw = '+IntToStr(daten.anzminmw)); end; |
Moderiert von Gausi: Delphi-Tags hinzugefügt.
Flamefire - Fr 27.08.10 17:09
und wo ist dein problem?
ang91 - So 29.08.10 15:00
Ich muss nun jede einzelne Zeile kommentieren!
Marc. - So 29.08.10 15:33
ang91 hat folgendes geschrieben : |
Ich muss nun jede einzelne Zeile kommentieren! |
Richtig,
Du musst nun jede einzelne Zeile kommentieren. :think:
Hausagaben machen wir hier sicherlich keine. Wenn Du etwas nicht verstehst, helfen wir aber gerne. :zwinker:
glotzer - So 29.08.10 16:28
Marc. hat folgendes geschrieben : |
Hausagaben |
woll eher Beschäftigungstherapie
elundril - So 29.08.10 16:33
Wohl eher schaun ob man verstanden hat was der Quelltext macht, oder einfach nur C&P aus dem Internet und das wars. Außerdem wäre einem beim Kommentieren sicher aufgefallen das in Zeile 125 ein String nicht abgeschlossen wurde und die Unit deswegen vermutlich nie kompilieren wird. ;)
lg elundril
Tankard - So 29.08.10 18:16
Martok hat folgendes geschrieben : |
alle sinnvollen Kommentare sind doch schon drin!
|
das sehe ich leicht anderes. man koennte noch beschreiben, nach welchem algoritmus man sortiert.
er soll ja zeigen, dass er programmieren kann und den code verstanden hat was dort passiert.
spaeter schreibt man nur noch wichtige kommentare.
der folgende kommentar ist nur unnuetz.
Delphi-Quelltext
1: 2:
| procedure sortiere (var daten : tdaten); |
delfiphan - So 29.08.10 20:36
Es kommt etwas darauf an, um was es in der Aufgabe geht. Production-Code zu kommentieren oder für eine Schulaufgabe die einzelnen Schritte hinzuschreiben, damit der Lehrer sehen kann, ob du's verstanden hast.
Statt "dies ist nur die lokale Prozedur zum Sortieren des Datenbestandes" würde ich vielleicht noch schreiben nach was in welcher Richtung mit welchem Algorithmus sortiert wird.
Code sollte man übrigens so formatieren.
Reformatted Delphi-Code
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: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144:
| procedure TForm1.Button2Click(Sender: TObject);
type TFeld = array[1..100] of Integer;
TDaten = record Feld: TFeld; Anzahl: Integer; Max: Integer; Min: Integer; Summe: Integer; Mittelw: Real; Anzminmw: Integer; Anzmaxmw: Integer; end;
procedure Sortiere(var Daten: TDaten); var Lauf, Lauf1, Hilf: Integer; begin for Lauf := 1 to Daten.Anzahl do begin for Lauf1 := 1 to Daten.Anzahl - 1 do begin if Daten.Feld[Lauf1] > Daten.Feld[Lauf1 + 1] then begin Hilf := Daten.Feld[Lauf1]; Daten.Feld[Lauf1] := Daten.Feld[Lauf1 + 1]; Daten.Feld[Lauf1 + 1] := Hilf; end; end; end; end;
var Daten: TDaten; Lauf: Integer; Zeile: string;
begin
Daten.Anzahl := 50;
Randomize;
for Lauf := 1 to Daten.Anzahl do begin Daten.Feld[Lauf] := random(20) + 1; end;
Daten.Summe := 0;
for Lauf := 1 to Daten.Anzahl do begin Daten.Summe := Daten.Summe + Daten.Feld[Lauf] end;
Daten.Mittelw := Daten.Summe / Daten.Anzahl;
Daten.Max := -MaxInt; Daten.Min := MaxInt;
Memo1.Lines.Add(IntToStr(Daten.Max) + 'absolut kleinstes Element'); Memo1.Lines.Add(IntToStr(Daten.Min) + 'absolut größtes Element');
for Lauf := 1 to Daten.Anzahl do begin if Daten.Feld[Lauf] > Daten.Max then Daten.Max := Daten.Feld[Lauf]; if Daten.Feld[Lauf] < Daten.Min then Daten.Min := Daten.Feld[Lauf]; end;
Daten.Anzminmw := 0;
for Lauf := 1 to Daten.Anzahl do begin if Daten.Feld[Lauf] < Daten.Mittelw then Daten.Anzminmw := Daten.Anzminmw + 1; end;
Daten.Anzmaxmw := 0;
for Lauf := 1 to Daten.Anzahl do begin if Daten.Feld[Lauf] > Daten.Mittelw then Daten.Anzmaxmw := Daten.Anzmaxmw + 1; end;
Memo1.Lines.Add('Ergebnisübersicht');
Zeile := '';
for Lauf := 1 to Daten.Anzahl do begin Zeile := Zeile + IntToStr(Daten.Feld[Lauf]) + ''; if Lauf mod 20 = 0 then begin Memo1.Lines.Add(Zeile); Zeile := ''; end; end;
Memo1.Lines.Add(Zeile);
Sortiere(Daten); Zeile := '';
for Lauf := 1 to Daten.Anzahl do begin Zeile := Zeile + IntToStr(Daten.Feld[Lauf]) + ';'; if Lauf mod 20 = 0 then begin Memo1.Lines.Add(Zeile); Zeile := ''; end; end;
Memo1.Lines.Add(Zeile);
Memo1.Lines.Add('Anzahl Elemente = ' + IntToStr(Daten.Anzahl)); Memo1.Lines.Add('kleinstes Element = ' + IntToStr(Daten.Min)); Memo1.Lines.Add('größtes Element = ' + IntToStr(Daten.Max)); Memo1.Lines.Add('Summe = ' + IntToStr(Daten.Summe)); Memo1.Lines.Add('Mittelwert = ' + FloatToStr(Daten.Mittelw)); Memo1.Lines.Add('Anzahl > Mw = ' + IntToStr(Daten.Anzmaxmw)); Memo1.Lines.Add('Anzahl < Mw = ' + IntToStr(Daten.Anzminmw)); end; |
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!