Hi Leute!
Ich bräuchte wiedermal eure Hilfe. Ich soll mit RandomZahlen Messerwerte berechnen und das ganze ausgeben. Hört sich einfach an, ist es aber für mich leider irgendwie nicht. Bei mir gibt er ständig den Fehler das nicht genügende Parameter vorhanden sind. Ich schätze mal es ist ein einfacher Fehler, aber ich sitze schon seit einiger Zeit hier und komme einfach nicht darauf.
Außerdem wäre es nett von euch, wenn ihr eine bessere Lösung für die Berechnung des Mittelwertes Parat hättet, denn ich bin mir nicht sicher ob das tatsächlich so "richtig" funktioniert.
Hier anbei der Quellcode, die Kommentare sollten es einfacher verständlich machen. Danke für eure antworten im Vorraus.
Delphi-Quellcode:
unit mittelwertnew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
GroupBox1: TGroupBox;
mmAus: TMemo;
btStart: TButton;
procedure btStartClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//************************************************//
// //
// Name: Messwert //
// Datum: 03-05-30 //
// Zweck: Messwerte zuweisen. //
// //
//************************************************//
function Messwerte (s:
string; s2: integer; s3: integer):
string;
//Variablendeklaration
var
s4:
string;
begin
//Den Strings Zufallszahlen zuweisen
s2:= random(10)+8;
s3:= random(99);
//Wenn die Zahl von s2 kleiner als 10 ist,
if s2 < 10
then
//setze 0X.XX auf s4
s4:= '
0' + IntToStr(s2);
//Wenn sie Zahl von s3 kleiner 10 ist,
if s3 < 10
then
//Dann setze das Resultat auf XX.0X
result:= s4 + '
.0' + IntToStr(s3)
//sonst
else
//auf XX.XX
result:= s4 + '
.' + IntToStr(s3);
end;
//************************************************//
// //
// Name: Mittelwert //
// Datum: 03-05-30 //
// Zweck: Mittelwert von 10 Zahlen bilden. //
// //
//************************************************//
function Mittelwert(Mittel:
string):
string;
//Variablendeklaration
var
s2, s3, s4, s5, i, Anz, Mittel2: integer;
begin
//Zuweisungen auf 0
s4:= 0;
s5:= 0;
Anz:= 0;
//Von 1 bis 10, mache
for i:= 1
to 10
do
begin
//Addiert die Ergebnisse der Randomzahlen
s4:= s4 + s2;
s5:= s5 + s3;
//Während die Nachkommastellen bei 99 sind,
while s5 > 99
do
begin
//ziehe bei s5, 99 ab, und
s5:= s5-99;
//erhöhe die Vorkommastellen um 1.
s4:= s4+1;
end;
//Zähle zur Anzahl 1 hinzu
Anz:= Anz+1;
end;
//Dividiert die Nachkommastellen durch die Anzahl
Mittel2:= s5
div Anz;
//Setzt das Resultat auf den Mittelwert der beiden Zahlen
result:= IntToStr(s4
div Anz) + '
,' + IntToStr(Mittel2);
end;
procedure TForm1.btStartClick(Sender: TObject);
//Variablendeklaration
var
Mess, Mittel:
string;
begin
//Gibt den Messwert und den Mittelwert aus.
mmAus.Lines.Add('
VAC ' + Messwerte(Mess) + '
V'); [color=#e50000]
//hier erscheint der Fehler[/color]
mmAus.Lines.Add('
Der Mittelwert ist ' + Mittelwert(Mittel) + '
.');
end;
end.