Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Mathematiknachhilfe... (https://www.delphipraxis.net/168890-mathematiknachhilfe.html)

haentschman 16. Jun 2012 15:49


Mathematiknachhilfe...
 
Hallo alle...

irgendwie ist heute meine mathematische Gehirnzelle noch nicht wach... :oops:

Ich will einer Funktion einen Prozentwert (Integer) übergeben und den entsprechenden Integerwert zurückbekommen.
Hört sich leicht an... aber:

Wert 255 entspricht 0%
Wert 128 entspricht 100%

bedeutet 50% = 192

Danke für´s Helfen...

PS: umgekehrt (Wert in Prozent) geht so: 100 - ((aValue - 127) * 100) div 127

Namenloser 16. Jun 2012 16:02

AW: Mathematiknachhilfe...
 
128*x+255*(1-x), wobei x ein Wert zwischen 0 und 1 ist.

fkerber 16. Jun 2012 16:05

AW: Mathematiknachhilfe...
 
Hi,

die Zahlen sind etwas krumm ;)
Kann es sein, dass 127 die 100% sein sollen?

Dann wäre es so:
255 - (128 / 100 * Eingabe)

LG,
Frederic

Muellermilchtrinker 16. Jun 2012 16:06

AW: Mathematiknachhilfe...
 
127+128*(x/100). x von 0 bis 100 %.

EDIT: Erste 128 durch 127 geändert.

DeddyH 16. Jun 2012 16:09

AW: Mathematiknachhilfe...
 
Delphi-Quellcode:
function KomischerProzentwert(Prozent: integer): integer;
const
  VALMAX = 255;
  VALMIN = 128;
  OFFSET = VALMAX - VALMIN;
var
  PrzVal: integer;
begin
  PrzVal := Round(OFFSET / 100 * Prozent);
  Result := VALMAX - PrzVal;
end;
Danach sind die 50% allerdings 191, siehe Frederic.

haentschman 16. Jun 2012 16:31

AW: Mathematiknachhilfe...
 
Zum Verständnis:

Hex 00 - 7F = 0 - 127 -> 00 = 0% , 7F = 100%
Hex 80 - FF = 128 - 255 -> 80 = 100% , FF = 0%

Bitte gebt mir für´s testen noch einen Moment. Ich muß noch eine Kleinigkeit vorher fertig machen, damit sich der Quark kompillieren läßt...8-)

Aphton 16. Jun 2012 16:40

AW: Mathematiknachhilfe...
 
Anfangswert + (Endwert-Anfangswert) * ProzentuellerWert/100

Anfangswert = 255
Endwert = 128
ProzentuellerWert = 50

255 + (128-255) * 50/100
= 255 - 127 * 0.5
= 255 - 64
~ 191

Bjoerk 16. Jun 2012 16:45

AW: Mathematiknachhilfe...
 
Geradlinige Interpolation: y(x):= y1 + (y2-y1) / (x2-x1) * (x-x1)

ggf. y:= Round (...)

Jens01 16. Jun 2012 17:19

AW: Mathematiknachhilfe...
 
Ich hätt da auch noch eine...
Delphi-Quellcode:
{ lineare Interpolation }
function interpol(tabwert, tab1, tab2, ergebnis1, ergebnis2: Double): Double;
begin
  Result := (((tabwert - tab1) / (tab2 - tab1)) * (ergebnis2 - ergebnis1)) + ergebnis1;
end;

haentschman 16. Jun 2012 17:25

AW: Mathematiknachhilfe...
 
Danke an alle...

so paßt´s:
255 - Round((127 * (aPercent / 100)))

... und 50% ist 191... ihr habt ja Recht :zwinker:


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