Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#20

AW: Memos und Buttons

  Alt 4. Apr 2013, 16:26
Ist doch ein schönes Beispiel mal was über Array's zu lernen. Hier mal ein Ansatz, aber ohne Gewähr, da nur hier in den Editor grtippt:

Delphi-Quellcode:
interface

Type
 TNotenliste = array of integer;

 TForm1=class(TForm)
    //alles was man so auf der Form hat
  private
    //...
    Notenliste:TNotenliste;
    function NotenAnzahl:integer;
    function NotenSumme:integer;
    function NotenDurschnitt:Float;
  public
    //...
    procedure NoteHinzu(Note:integer);
    procedure NoteWeg;
    procedure MemoSchreiben;
  end;

implementation

procedure TForm1.NoteHinzu(Note:integer);
begin
  //Hier ggf. erst prüfen, ob Note zw. 1 und 6
  //Hier ggf. erst prüfen, ob maximale Notenzahl (z.B. 15) schon voll ist
  SetLength(Notenliste,High(Notenliste)+2) //Array um einen Platz vergrößern
                                           //High(Array)+2=Length(array)+1
  Notenliste[High(Notenliste)]:=Note;
end;

procedure TForm1.NoteWeg;
begin
  //Einfach Array mit SetLength um 1 verkleinern und so das letzte Element löschen
end;

procedure TForm1.MemoSchreiben;
var i:integer;
begin
  Memo1.Clear;
  for i:=Low(Notenliste) To High(Notenliste) do
    Memo1.Lines.Add(IntToStr(Notenliste[i]));
  Memo1.Lines.Add('Durschnitt: '+FloatToStr(Notendurschnitt));
end;

function TForm1.NotenAnzahl:integer;
begin
  //Funktion Length benutzen
end;

function TForm1.NotenSumme:integer;
begin
  //Über das Array iterieren wie bei MemoSchreiben
end;

function TForm1.NotenDurschnitt:Float;
begin
  if NotenAnzahl>0 then
    Result:=NotenSumme/NotenAnzahl //ggf. noch runden
  else
    Result:=0;
end;
Ralph

Geändert von Jumpy ( 4. Apr 2013 um 16:28 Uhr)
  Mit Zitat antworten Zitat