[DUG] Maths problem for the day

Ross Levis ross at stationplaylist.com
Tue Jan 11 15:49:23 NZDT 2011


Thanks everyone.  It was for efficiency purposes.  It can be documented
separately.  I'll use one of these solutions.

 

Cheers.

 

From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On
Behalf Of Jolyon Smith
Sent: Tuesday, 11 January 2011 3:25 PM
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Maths problem for the day

 

Yep - I think in this case there may be a middle ground, something like:

 

  Case High(Files) of

      0..29    : factor := 1;

    30..299 : factor := 2;

    ..

  Else

     ..

  End

 

  Max := Bias.Position * factor;

 

 

More efficient than if/else if/else if and arguably even clearer in
establishing that the threshold values of High(files) affect a multiplier
that is applied to a consistent value to obtain the result (something that
the if/else if/else if itself obfuscates by spreading that detail over
multiple repeated lines)

 

Of course, that assumes that the question was attempting to reduce the
statement to a one-liner with the aim of improving efficiency and code
legibility.  

 

J

 

From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On
Behalf Of Colin/Mina
Sent: Tuesday, 11 January 2011 15:08
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Maths problem for the day

 

That was my point, the original describes exactly what was intended. One
liners generally don't and tend to introduce errors

 

C.

 

 

----- Original Message ----- 

From: Jolyon Smith <mailto:jsmith at deltics.co.nz>  

To: 'NZ Borland <mailto:delphi at delphi.org.nz>  Developers Group - Delphi
List' 

Sent: Tuesday, January 11, 2011 2:47 PM

Subject: Re: [DUG] Maths problem for the day

 

Darn, I got carried away... it's not quite that straightforward (unless your
algorithm can be adjusted accordingly).

 

 

From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On
Behalf Of Ross Levis
Sent: Tuesday, 11 January 2011 14:25
To: 'NZ Borland Developers Group - Delphi List'
Subject: [DUG] Maths problem for the day

 

Convert the following into one line.

 

if High(Files) < 30 then Max := Bias.Position

else if High(Files) < 300 then Max := Bias.Position*2

else if High(Files) < 3000 then Max := Bias.Position*3

else if High(Files) < 30000 then Max := Bias.Position*4

etc

 

I think there must be a way. Probably using the Power function, but I can't
get my head around it.

 


  _____  


_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi at delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
unsubscribe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20110111/628d25a5/attachment.html 


More information about the Delphi mailing list