Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   niedrigstes Ergebnis raussuchen (https://www.delphipraxis.net/118610-niedrigstes-ergebnis-raussuchen.html)

foofighter85 11. Aug 2008 14:50


niedrigstes Ergebnis raussuchen
 
hey leute, hab mehrere Rechnungen die alle das gleiche Ausrechnen nur mit unterschiedlichen Ausgangswerten jeweils....jetzt möchte ich das in meinem Label nur das geringste Ergebnis der Rechnungen angezeigt wird...hier ist mal mein code dafür....bin ein anfänger :)
Delphi-Quellcode:
procedure TForm1.ButtonBerechnenClick(Sender: TObject);
begin
 m       := StrToInt (EditPalettenlast.Text);
 g       := 10;
 n_eins  := 1;
 n_zwei  := 2;
 n_drei  := 3;
 n_vier  := 4;
 n_fuenf := 5;
 n_sechs := 6;

 //Berechnung für eine Palette
 Fa := ((n_eins*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := (Fa*0.45);
 LabelMoment.Caption := floatToStr(Mmax);

 //Berechnung für zwei Paletten
 Fa := ((n_zwei*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := (Fa*0.45);
 LabelMoment.Caption := floatToStr(Mmax);

 //Berechnung für drei Paletten
 Fa := ((n_drei*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := ((Fa*1.35)-(m*g*0.9));
 LabelMoment.Caption := floatToStr(Mmax);

 //Berechnung für 4 Paletten
 Fa := ((n_vier*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := (Fa*1.35-m*g*0.9);
 LabelMoment.Caption := floatToStr(Mmax);

 //Berechnung für 5 Paletten
 Fa := ((n_fuenf*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := (Fa*2.25-m*g*1.8-m*g*0.9);
 LabelMoment.Caption := floatToStr(Mmax);

 //Berechnung für 6 Paletten
 Fa := ((n_sechs*m*g)/2);
 LabelAuflager.Caption := floatToStr(Fa);
 Mmax := (Fa*2.25-m*g*1.8-m*g*0.9);
 LabelMoment.Caption := floatToStr(Mmax);
end;
[edit=Sharky]Delphi-Tags eingefügt. Bitte beim nächsten mal selber machen. Mfg, Sharky[/edit]

DeddyH 11. Aug 2008 14:53

Re: niedristes Ergebnis raussuchen
 
Schließe bitte Deinen Code künftig in Delphi-Tags ein, dann ist er besser zu lesen. Und zu Deinem Problem: schau mal in der Hilfe nach MinValue (Unit math).

foofighter85 11. Aug 2008 15:17

Re: niedrigstes Ergebnis raussuchen
 
bekomme es nicht hin...habs jetzt so geschrieben, aber funktioniert nicht, da er minValue als undefinierten Bezeichner meldet.

Fa := ((n_sechs*m*g)/2);
LabelAuflager.Caption := floatToStr(Fa);
Mmax := (Fa*2.25-m*g*1.8-m*g*0.9);

Mmax_min := minValue(Mmax);
LabelMoment.Caption := floatToStr(Mmax_min);

DeddyH 11. Aug 2008 15:25

Re: niedrigstes Ergebnis raussuchen
 
Zum Einen musst Du die Unit math einbinden, zum Anderen erwartet die Funktion ein Array of double. Hier mal ein sinnfreies Beispiel:
Delphi-Quellcode:
uses math;

procedure TFormMain.ButtonMinValClick(Sender: TObject);
var d_arr: array of double;
begin
  //das Array auf Größe "4 Elemente" setzen
  SetLength(d_arr,4);
  //und befüllen
  d_arr[0] := 0.3;
  d_arr[1] := 0.31;
  d_arr[2] := 0.123;
  d_arr[3] := 7.1;
  //kleinsten Wert ausgeben
  ShowMessage(FloatToStr(MinValue(d_arr)));
  //und Speicher wieder freigeben
  SetLength(d_arr,0);
end;

grenzgaenger 11. Aug 2008 22:25

Re: niedrigstes Ergebnis raussuchen
 
oder du speicherst immer den kleinsten wert zwischen... und wenn 'n neues ergebnis rauskommt, welches kleiner ist, datest dein kleinstes ergebnis ab...

damit ersparst dir 'n array...

kannst mit 1, 2 zusätzlichen variablen machen. wenn du allerdings mehrere zwischenergebnisse hast, solltest dir 'n record oder 'n object ansehen ...


<HTH> GG

marabu 12. Aug 2008 06:20

Re: niedrigstes Ergebnis raussuchen
 
Moin,

was soll das werden - eine Palettenstapel-Optimierung?

Ich würde zumindest die Lastberechnungen in eine Funktion auslagern:

Delphi-Quellcode:
const
  G = 9.81;

function CalcPallets(n, load: Word; var weight, momentum: Double): Boolean;
begin
  Result := n in [1..6];
  if Result then
  begin
    weight := n * load * G / 2;
    case n of
      1, 2: momentum := weight * 0.45;
      3, 4: momentum := weight * 1.35 - load * G * 0.9;
      5, 6: momentum := weight * 2.25 - load * G * 1.8 - load * G * 0.9;
    end;
  end;
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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