AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mittelwert von Myarray

Ein Thema von Bericender · begonnen am 10. Sep 2008 · letzter Beitrag vom 11. Sep 2008
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Bericender

Registriert seit: 10. Sep 2008
22 Beiträge
 
#31

Re: Mittelwert von Myarray

  Alt 10. Sep 2008, 23:34
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.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#32

Re: Mittelwert von Myarray

  Alt 10. Sep 2008, 23:44
Ich bin mal so frei und formatier dir das ganze mal etwas. Dann kann man es viel besser lesen

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.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#33

Re: Mittelwert von Myarray

  Alt 10. Sep 2008, 23:49
Und warum macht ihr net einfach an meinem formatierten Quellcode weiter?
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#34

Re: Mittelwert von Myarray

  Alt 10. Sep 2008, 23:52
Weil da auch schon der Fehler drinnen war

Ne, kleiner Scherz: hab ich nicht gesehen, sorry
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#35

Re: Mittelwert von Myarray

  Alt 10. Sep 2008, 23:53
Zitat von littleDave:
Weil da auch schon der Fehler drinnen war

Ne, kleiner Scherz: hab ich nicht gesehen, sorry
OK, weil sein Muell i immer noch unleserlich!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Bericender

Registriert seit: 10. Sep 2008
22 Beiträge
 
#36

Re: Mittelwert von Myarray

  Alt 11. Sep 2008, 00:01
*Asche übers Haupt schütt*

Jetz muss ich nur noch rauskriegen wie ich den Mittelwert für einzelne Zellen des Arrays berechnen kann
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#37

Re: Mittelwert von Myarray

  Alt 11. Sep 2008, 00:03
Entweder Vertikal durchs Array oder Horizontal durch und dann gleiches Spiel: Addieren dann Teilen!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Bericender

Registriert seit: 10. Sep 2008
22 Beiträge
 
#38

Re: Mittelwert von Myarray

  Alt 11. Sep 2008, 00:05
und wie geh ich vertikal durchs array?
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#39

Re: Mittelwert von Myarray

  Alt 11. Sep 2008, 05:37
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
  Mit Zitat antworten Zitat
Bericender

Registriert seit: 10. Sep 2008
22 Beiträge
 
#40

Re: Mittelwert von Myarray

  Alt 11. Sep 2008, 06:26
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
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