Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mittelwert von Myarray (https://www.delphipraxis.net/120409-mittelwert-von-myarray.html)

Bericender 10. Sep 2008 17:29


Mittelwert von Myarray
 
Hallöchen
Ich muss in unserem momentanem Info Projekt per Buttonklick den Mittelwert der Zufallszeilen des Myarray berechnen. ENimal soll das ganze Zeilenweise (aus einem 2 Dimensionalem Array) und einmal aus dem kompletten Array auf Buttonklick erfolgen. ;)
Nur irgendwie komm ich ums verrecken nicht dahinter was ich machen soll. :gruebel:

toms 10. Sep 2008 17:32

Re: Mittelwert von Myarray
 
Hallo

Überleg dir mal, was der Mittelwert bedeutet, wie du ihn von einer Menge Zahlen berechnen kannst.
Danach kommt die Delphi Umsetzung. (Tipp: For..To verwenden)

Bericender 10. Sep 2008 17:36

Re: Mittelwert von Myarray
 
Na ja ich berechne ihn in dem ich die Zahlen der Zeile addiere und durch die Anzahl der Zahlen teile. Die einzelnen Zahlen sind Integers das Ergebnis Real. Ich weiß nur nicht wie ich mit For .. To auf Myarray zugreifen kann ;)

toms 10. Sep 2008 17:49

Re: Mittelwert von Myarray
 
Myarray[0] gibt den Wert des 1. Elements zurück (falls Myarray bei 0 beginnt)

Low(Myarray) gibt den Index des 1. Elements von Myarray zurück
High(Myarray) gibt den Index des letzten Elements von Myarray zurück

D.h du kannst in einer Schleife von Low(Myarray) bis High(Myarray) die Werte durchlaufen und addieren und danach den Mittelwert bestimmen.

Bericender 10. Sep 2008 19:01

Re: Mittelwert von Myarray
 
irgendwie bringt mich das auch nicht direkt weiter :gruebel:

mkinzler 10. Sep 2008 19:02

Re: Mittelwert von Myarray
 
Welche Typ hat der Array?

Bericender 10. Sep 2008 19:25

Re: Mittelwert von Myarray
 
integer :D irgendwie hab ich einfach nur ne totale Denkblockade

so siehts bis jetzt aus

procedure TForm1.Button6Click(Sender: TObject);
var summe:integer; mitte:real;
i: integer;
begin
edit2.Visible:=true;
for i := Low(Myarray) to High(Myarray) do
summe := Integer + Myarray[i];
mitte := summe / 4;
end;
edit2.Text:= inttostr(summe);
end;

DeddyH 10. Sep 2008 19:26

Re: Mittelwert von Myarray
 
Zitat:

Delphi-Quellcode:
summe := Integer + Myarray[i];

Das kann ja nicht stimmen, gell?

toms 10. Sep 2008 19:28

Re: Mittelwert von Myarray
 
Die Zeile
Delphi-Quellcode:
summe := Integer + Myarray[i];
ist fehlerhaft.

Sollte
Delphi-Quellcode:
summe := summe + Myarray[i];
heissen.

Zudem sollte die summe initialisiert werden. D.h vor der Schleife auf 0 gesetzt werden.

Bericender 10. Sep 2008 19:33

Re: Mittelwert von Myarray
 
procedure TForm1.Button6Click(Sender: TObject);
var
i,summe:integer; mitte:real;
begin
edit2.Visible:=true;
summe := 0;
for
i := Low(Myarray) to High(Myarray) do
summe := Summe + Myarray[i];
mitte := summe / 4;
summe := summe + Myarray[i];
end;
edit2.Text:= inttostr(summe);

end;

Dann heisst es allerdings bei summe := summe + Myarray[i]; Inkompatible Datentypen

mkinzler 10. Sep 2008 19:35

Re: Mittelwert von Myarray
 
Bist du sicher, das sich wirklich Integer-Werte im Array befinden?

Bericender 10. Sep 2008 19:36

Re: Mittelwert von Myarray
 
unit uZufall;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TMyarray = Array [1..2,1..5] Of Integer;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Edit3: TEdit;
StringGrid1: TStringGrid;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit4: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
MyArray: TMyarray;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := 'neu';
Button2.Caption := 'memo';
Button3.Caption := 'grid';
Button4.Caption := 'edit';
Button5.Caption := 'MWZeile';
Button6.Caption := 'MWKomplett';
Button7.Caption := 'close';
StringGrid1.ColCount := 4;
StringGrid1.RowCount := 2;
Memo1.Clear;
Edit1.Visible := false;
Edit2.Visible := false;
Edit3.Visible := false;
Edit4.Visible := false;
Stringgrid1.Visible :=false;
Memo1.Visible := false;
end;

procedure fuellen;
var z,sp:integer;
begin
randomize;
for z:=1 to 4 do
for sp:=1 to high(Myarray)do
myarray[sp,z]:=random(101)
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
fuellen;
end;

procedure TForm1.Button2Click(Sender: TObject);
var a1,a2 : string; sp : integer;
begin
memo1.Visible := true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
memo1.lines.add (a1);

a2 := '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
memo1.lines.add (a2);
end;

procedure TForm1.Button3Click(Sender: TObject);
var row,col : integer;
begin
stringgrid1.Visible:= true;
for row:= 0 to 2 do
for col:= 0 to 4 do
stringgrid1.cells[col,row]:=inttostr(myarray[row+1,col+1])
end;

procedure TForm1.Button4Click(Sender: Tobject);
var a1,a2 : string; sp : integer;
begin
edit3.Visible:=true;
Edit1.Visible:= true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
edit3.text := a1;

a2:= '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
edit1.text := a2;
end;


procedure TForm1.Button7Click(Sender: TObject);
begin
close
end;


procedure TForm1.Button6Click(Sender: TObject);
var
i,summe:integer; mitte:real;
begin
edit2.Visible:=true;
summe := 0;
for
i := Low(Myarray) to High(Myarray) do
summe := Summe + Myarray[i];
mitte := summe / 4;
end;
edit2.Text:= inttostr(summe);

end.

DeddyH 10. Sep 2008 19:37

Re: Mittelwert von Myarray
 
Das ist ja auch ein 2-dimensionales Array.

mkinzler 10. Sep 2008 19:38

Re: Mittelwert von Myarray
 
Myarray[i] ist das ein Array of Integer.

Bericender 10. Sep 2008 19:38

Re: Mittelwert von Myarray
 
o__O hatte ich vergessen zu erwähnen :oops:
Es handelt sich auch um Delphi 6

DeddyH 10. Sep 2008 19:40

Re: Mittelwert von Myarray
 
@Markus:
Zitat:

Delphi-Quellcode:
type
TMyarray = Array [1..2,1..5] Of Integer;


mkinzler 10. Sep 2008 19:42

Re: Mittelwert von Myarray
 
Delphi-Quellcode:
for i := Low(Myarray) to High(Myarray) do
  for j := Low( MyArray[i] to High( MyArray[i]) do
       Summe := Summe + MyArray[i,j];

Bericender 10. Sep 2008 19:46

Re: Mittelwert von Myarray
 
Code:
procedure TForm1.Button6Click(Sender: TObject);
var
i,j,summe:integer; mitte:real;
begin
edit2.Visible:=true;
  summe := 0;
for i := Low(Myarray) to High(Myarray) do
  for j := Low( MyArray[i]) to High( MyArray[i]) do
       Summe := Summe + MyArray[i,j];
     end;
     mitte:= Summe/4;
  edit2.Text:= inttostr(mitte);
end;
Jetz gehts schon besser aber irgendwie bekomme ich die Fehlermeldung "[Hinweis] uZufall.pas(133): Auf 'summe' zugewiesener Wert wird niemals benutzt" und "[Hinweis] uZufall.pas(130): Variable 'mitte' wurde deklariert, aber in 'TForm1.Button6Click' nicht verwendet"

mkinzler 10. Sep 2008 19:48

Re: Mittelwert von Myarray
 
Delphi-Quellcode:
for i := Low(Myarray) to High(Myarray) do
  for j := Low( MyArray[i]) to High( MyArray[i]) do
  begin
       Summe := Summe + MyArray[i,j];
       inc( anzahl);
  end;
mitte:= Summe/ anzahl;
edit2.Text:= inttostr(mitte);

Bericender 10. Sep 2008 21:08

Re: Mittelwert von Myarray
 
edit: hab das Problem gelöst :D
danke für ale die zeit geopfert haben um mir zu helfen ;)

mkinzler 10. Sep 2008 21:10

Re: Mittelwert von Myarray
 
edit2.Text:= inttostr(mitte.mtrID);

toms 10. Sep 2008 21:11

Re: Mittelwert von Myarray
 
Warum schreibst du
Delphi-Quellcode:
mitte.mtrID
?

mitte genügt :-D

PS: Verwende doch Delphi-Code Tags :thumb:

Bericender 10. Sep 2008 21:38

Re: Mittelwert von Myarray
 
muss nochmal kurz :(

irgendwie berechnet der den Mittelwert falsch :gruebel:

der berechnet den doch für das 2d Array oder? :gruebel:

toms 10. Sep 2008 22:33

Re: Mittelwert von Myarray
 
Zitat:

Zitat von Bericender
muss nochmal kurz :(

irgendwie berechnet der den Mittelwert falsch :gruebel:

der berechnet den doch für das 2d Array oder? :gruebel:

2 For-Schleifen -> 2d Array
1 For-Schleife -> 1d Array

Bericender 10. Sep 2008 22:40

Re: Mittelwert von Myarray
 
ja aber das ändert nichts an der Tatsache das er den Mittelwert falsch berechnet.

So siehts jetzt aus
Code:
unit uZufall;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TMyarray = Array [1..2,1..4] Of Integer;
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Edit3: TEdit;
    StringGrid1: TStringGrid;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  MyArray: TMyarray;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := 'neu';
Button2.Caption := 'memo';
Button3.Caption := 'grid';
Button4.Caption := 'edit';
Button5.Caption := 'MWZeile';
Button6.Caption := 'MWKomplett';
Button7.Caption := 'close';
StringGrid1.ColCount := 4;
StringGrid1.RowCount := 2;
Memo1.Clear;
Edit1.Visible := false;
Edit2.Visible := false;
Edit3.Visible := false;
Edit4.Visible := false;
Stringgrid1.Visible :=false;
Memo1.Visible := false;
end;

procedure fuellen;
var z,sp:integer;
begin
randomize;
for z:=1 to 4 do
 for sp:=1 to high(Myarray)do
  myarray[sp,z]:=random(101)
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
fuellen;
end;

procedure TForm1.Button2Click(Sender: TObject);
var a1,a2 : string; sp : integer;
begin
memo1.Visible := true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
memo1.lines.add (a1);

a2 := '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
memo1.lines.add (a2);
end;

procedure TForm1.Button3Click(Sender: TObject);
var row,col : integer;
begin
stringgrid1.Visible:= true;
for row:= 0 to 2 do
for col:= 0 to 4 do
stringgrid1.cells[col,row]:=inttostr(myarray[row+1,col+1])
end;

procedure TForm1.Button4Click(Sender: Tobject);
var a1,a2 : string; sp : integer;
begin
edit3.Visible:=true;
Edit1.Visible:= true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
edit3.text := a1;

a2:= '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
edit1.text := a2;
end;

procedure TForm1.Button6Click(Sender: TObject);
 var
i,j,summe,anzahl :integer; mitte:real;
begin
edit2.Visible:=true;
  summe := 0;
  for i := Low(Myarray) to High(Myarray) do
  for j := Low(MyArray[i]) to High(MyArray[i]) do
  begin
       Summe := Summe + MyArray[i,j];
       inc(anzahl);
  end;
mitte:= Summe/ anzahl;
edit2.Text:= floattostr(mitte);
end;


procedure TForm1.Button7Click(Sender: TObject);
begin
 close
end;

end.
Ich steh hier kurz vorm Lappi durchs Zimmer schmeissen weil mich der Mittelwert schon über 6 Stunden gekostet hat :wall:

Mackhack 10. Sep 2008 23:03

Re: Mittelwert von Myarray
 
Zitat:

Zitat von Bericender
edit: hab das Problem gelöst :D
danke für ale die zeit geopfert haben um mir zu helfen ;)

Das bezweifle ich aber! Ich glaub eher Markus und DeddyH haben das Problem fuer DICH geloest!

Hm, 6h, musst du morgen wohl abgeben das ganze was? :roll:

Bericender 10. Sep 2008 23:07

Re: Mittelwert von Myarray
 
nich direkt aber ich sitz jetz einmal dabei und will das jetz fertig machen :stupid: habt ihr noch ne Idee? ;)

Mackhack 10. Sep 2008 23:17

Re: Mittelwert von Myarray
 
Zitat:

Zitat von Bericender
nich direkt aber ich sitz jetz einmal dabei und will das jetz fertig machen :stupid: habt ihr noch ne Idee? ;)

Du sagst ja net wirklich was falsch ist. :glaskugel: ist im Urlaub!

Bericender 10. Sep 2008 23:20

Re: Mittelwert von Myarray
 
Hatte vorhin zum Beispiel bei den Zufallszahlen
71 + 28 + 84 + 42 + 29 + 75 + 15 + 54
einen Mittelwert von 9,10890 :gruebel:

Mackhack 10. Sep 2008 23:23

Re: Mittelwert von Myarray
 
Und was machen die Buttons und so???
Dein Code ist Null formatiert und null kommentiert. Macht wenig Freude zu helfen (meiner Meinung nach)!

//Edit: Hier mal der Code richtig formatiert:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TMyArray = Array [1..2,1..4] Of Integer;
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Edit3: TEdit;
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Memo1: TMemo;
    procedure Button7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  MyArray: TMyarray;

implementation

{$R *.dfm}

procedure Fuellen;
var
  Z, SP: Integer;
begin
  Randomize;
  for Z := 1 to 4 do
    for SP := 1 to High(MyArray)do
      MyArray[SP, Z] := Random(101)
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Fuellen;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  A1, A2: String;
  SP: Integer;
begin
  Memo1.Visible := True;
  A1 := '';
  for SP := 1 to 4 do
    A1 := A1 + ' ' + IntToStr(MyArray[1, SP]);
  Memo1.Lines.Add(A1);

  A2 := '';
  for SP := 1 to 4 do
    A2 := A2 + ' ' + IntToStr(MyArray[2, SP]);
  Memo1.Lines.Add (A2);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Row, Col: Integer;
begin
  StringGrid1.Visible := True;
  for Row := 0 to 2 do
    for Col := 0 to 4 do
      StringGrid1.Cells[Col, Row] := IntToStr(MyArray[ Row + 1, Col + 1])
end;

procedure TForm1.Button4Click(Sender: Tobject);
var
  A1, A2 : String;
  SP : Integer;
begin
  Edit3.Visible := True;
  Edit1.Visible := True;
  A1 := '';
  for SP := 1 to 4 do
    A1 := A1 + ' ' + IntToStr(MyArray[1, SP]);
  Edit3.Text := A1;

  A2 := '';
  for SP := 1 to 4 do
    A2 := A2 + ' ' + IntToStr(MyArray[2, SP]);
  Edit1.Text := A2;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  I,J, Summe, Anzahl: Integer;
  Mitte: Real;
begin
  Edit2.Visible := True;
  Summe := 0;
  for I := Low(Myarray) to High(Myarray) do
    for J := Low(MyArray[i]) to High(MyArray[i]) do
    begin
      Summe := Summe + MyArray[I, J];
      Inc(Anzahl);
  end;
  Mitte := Summe / Anzahl;
  Edit2.Text := FloatToStr(Mitte);
end;


procedure TForm1.Button7Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Caption := 'neu';
  Button2.Caption := 'memo';
  Button3.Caption := 'grid';
  Button4.Caption := 'edit';
  Button5.Caption := 'MWZeile';
  Button6.Caption := 'MWKomplett';
  Button7.Caption := 'close';
  StringGrid1.ColCount := 4;
  StringGrid1.RowCount := 2;
  Memo1.Clear;
  Edit1.Visible := False;
  Edit2.Visible := False;
  Edit3.Visible := False;
  Edit4.Visible := False;
  Stringgrid1.Visible := False;
  Memo1.Visible := False;
end;

end.

Bericender 10. Sep 2008 23:34

Re: Mittelwert von Myarray
 
Habs mal mit Comments versehen
Code:
unit uZufall;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TMyarray = Array [1..2,1..4] Of Integer;
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Edit3: TEdit;
    StringGrid1: TStringGrid;
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private-Deklarationen } 
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;
  MyArray: TMyarray;

implementation

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := 'neu';
Button2.Caption := 'memo';
Button3.Caption := 'grid';
Button4.Caption := 'edit';
Button5.Caption := 'MWZeile';
Button6.Caption := 'MWKomplett';
Button7.Caption := 'close';
StringGrid1.ColCount := 4;
StringGrid1.RowCount := 2;
Memo1.Clear;
Edit1.Visible := false;
Edit2.Visible := false;
Edit3.Visible := false;
Edit4.Visible := false;
Stringgrid1.Visible :=false;
Memo1.Visible := false;
end;

procedure fuellen;
var z,sp:integer;
begin
randomize;
for z:=1 to 4 do
for sp:=1 to high(Myarray)do
  myarray[sp,z]:=random(101)
end;


procedure TForm1.Button1Click(Sender: TObject);
//fuellt ein Array mit Zufallszahlen
begin
fuellen;
end;

procedure TForm1.Button2Click(Sender: TObject);
//schreibt den Inhalt des Arrays in ein memo
var a1,a2 : string; sp : integer;
begin
memo1.Visible := true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
memo1.lines.add (a1);

a2 := '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
memo1.lines.add (a2);
end;

procedure TForm1.Button3Click(Sender: TObject);
//schreibt den Inhalt des Arrays in ein Stringgrid
var row,col : integer;
begin
stringgrid1.Visible:= true;
for row:= 0 to 2 do
for col:= 0 to 4 do
stringgrid1.cells[col,row]:=inttostr(myarray[row+1,col+1])
end;

procedure TForm1.Button4Click(Sender: Tobject);
//schreibt den Inhalt des Skripts in Edit 1 + 3
var a1,a2 : string; sp : integer;
begin
edit3.Visible:=true;
Edit1.Visible:= true;
a1 := '';
for sp:=1 to 4 do
a1 := a1+ ' '+inttostr(myarray[1,sp]);
edit3.text := a1;

a2:= '';
for sp:=1 to 4 do
a2 := a2+ ' '+inttostr(myarray[2,sp]);
edit1.text := a2;
end;

procedure TForm1.Button6Click(Sender: TObject);
//soll den Mittelwert des Arrays in Edit 2 ausgeben
var
i,j,summe,anzahl :integer; mitte:real;
begin
edit2.Visible:=true;
  summe := 0;
  for i := Low(Myarray) to High(Myarray) do
  for j := Low(MyArray[i]) to High(MyArray[i]) do
  begin
       Summe := Summe + MyArray[i,j];
       inc(anzahl);
  end;
mitte:= Summe/ anzahl;
edit2.Text:= floattostr(mitte);
end;


procedure TForm1.Button7Click(Sender: TObject);
//beendet das Programm
begin
close
end;

end.

littleDave 10. Sep 2008 23:44

Re: Mittelwert von Myarray
 
Ich bin mal so frei und formatier dir das ganze mal etwas. Dann kann man es viel besser lesen :zwinker:

Außerdem hast du die Variable Anzahl nicht mit 0 initialisiert. Somit ist der Anfangswert von Anzahl nicht vorherzusehen - halt gerade das, was im Speicher steht - und dass kann alles mögliche sein.

Daher: Variablen initialisieren, so wie du es bei Summe gemacht hast.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var i, j         : integer; // Schleifenvariablen
    Summe, Anzahl : integer;
    Mitte        : real;   // der fertige Mittelwert
begin
  // Initialisierung
  Summe := 0; // das hattest du
  Anzahl := 0; // das ABER NICHT <----------------
  Edit2.Visible := True;

  // Summe & Anzahl berechnen
  for i := Low(MyArray) to High(MyArray) do
    for j := Low(MyArray[i]) to High(MyArray[i]) do
    begin
      Summe := Summe + MyArray[i, j];
      inc(Anzahl);
    end;

  // Mittelwert berechnen
  Mitte := Summe / Anzahl;
 
  // Ergebnis ausgeben
  Edit2.Text := FloatToStr(Mitte);
end;
PS: zwar ist der Ansatz der Kommentare schon mal nicht all zu schlecht, jedoch wird man aus denen nicht viel schlaucher. Unterteile deinen Quelltext in Blöcke und kommentiere jeden Block, was er bewirken soll.

Mackhack 10. Sep 2008 23:49

Re: Mittelwert von Myarray
 
Und warum macht ihr net einfach an meinem formatierten Quellcode weiter? :gruebel: :gruebel: :gruebel:

littleDave 10. Sep 2008 23:52

Re: Mittelwert von Myarray
 
Weil da auch schon der Fehler drinnen war :P

Ne, kleiner Scherz: hab ich nicht gesehen, sorry :oops:

Mackhack 10. Sep 2008 23:53

Re: Mittelwert von Myarray
 
Zitat:

Zitat von littleDave
Weil da auch schon der Fehler drinnen war :P

Ne, kleiner Scherz: hab ich nicht gesehen, sorry :oops:

OK, weil sein Muell i immer noch unleserlich!

Bericender 11. Sep 2008 00:01

Re: Mittelwert von Myarray
 
*Asche übers Haupt schütt*

Jetz muss ich nur noch rauskriegen wie ich den Mittelwert für einzelne Zellen des Arrays berechnen kann :angel2:

Mackhack 11. Sep 2008 00:03

Re: Mittelwert von Myarray
 
Entweder Vertikal durchs Array oder Horizontal durch und dann gleiches Spiel: Addieren dann Teilen!

Bericender 11. Sep 2008 00:05

Re: Mittelwert von Myarray
 
und wie geh ich vertikal durchs array? :gruebel: ;)

WS1976 11. Sep 2008 05:37

Re: Mittelwert von Myarray
 
Hallo,

Delphi-Quellcode:
i := Low(Myarray) to High(Myarray) do
summe := Summe + Myarray[i];
mitte := summe / 4;
die Summe nicht durch 4 dividieren, sondern durch: High(Myarray)-Low(Myarray). Aber vergiss die Klammer um diesen Ausdruck nicht.

Noch ne Bemerkung:
Jetzt haben wir dir alles gelöst ohne dass du nachdenken musstest.
Ist das nicht schön?

Grüsse
Rainer

Bericender 11. Sep 2008 06:26

Re: Mittelwert von Myarray
 
irgendwie komm ich mir grad total blöd vor, weil ich nichts selber gemacht hab. Aber irgendwie hab ich das einfach nicht hinbekommen (trotz mehr als 8 Stunden die ich davor gesessen hab). Den irgendwie hatten wir das im Informatik Unterricht noch nie behandelt und haben Arrays selbst auch nur 10 Minuten behandelt. ;)

In dem Zugedanke an alle die mir geholfen haben und jetz weiß ich wenigstens für die folgenden Male wie das ganze funktioniert


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz