MIN: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 33: Line 33:
; Example 1: Showcasing the [[_MIN]] and [[_MAX]] functions.
; Example 1: Showcasing the [[_MIN]] and [[_MAX]] functions.
{{CodeStart}}
{{CodeStart}}
{{Text|<nowiki>'maximum of two values</nowiki>|#919191}}
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}})
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}})
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|5.0001|#F580B1}}, {{Text|5.0|#F580B1}})
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|5.0001|#F580B1}}, {{Text|5.0|#F580B1}})
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|-34|#F580B1}}, {{Text|-1.0E|#F580B1}}+{{Text|1|#F580B1}})
{{Cl|PRINT}} {{Cl|_MIN}}({{Text|-34|#F580B1}}, {{Text|-1.0E|#F580B1}}+{{Text|1|#F580B1}})
{{Cl|PRINT}}
{{Cl|PRINT}}
{{Text|<nowiki>'minimum of two values</nowiki>|#919191}}
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|5.0001|#F580B1}}, {{Text|5.0|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|5.0001|#F580B1}}, {{Text|5.0|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|-34|#F580B1}}, {{Text|-1.0E|#F580B1}}+{{Text|1|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Text|-34|#F580B1}}, {{Text|-1.0E|#F580B1}}+{{Text|1|#F580B1}})
{{Cl|PRINT}}
{{Text|<nowiki>'min/max of multiple values</nowiki>|#919191}}
{{Cl|PRINT}} {{Cl|_MIN}}({{Cl|_MIN}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}}), {{Text|255|#F580B1}})
{{Cl|PRINT}} {{Cl|_MAX}}({{Cl|_MAX}}({{Cl|_MAX}}({{Text|345|#F580B1}}, {{Text|123|#F580B1}}), {{Text|413|#F580B1}}), {{Text|255|#F580B1}})
{{CodeEnd}}
{{CodeEnd}}


Line 50: Line 56:
{{Ot| 5.0001}}
{{Ot| 5.0001}}
{{Ot|-10}}
{{Ot|-10}}
{{Ot| 123}}
{{Ot| 413}}
{{OutputEnd}}
{{OutputEnd}}
----
; Example 2: Find the minimum and maximum values in a numeric array.
{{CodeStart}}
{{Text|<nowiki>'min/max in array</nowiki>|#919191}}
{{Cl|DIM}} a({{Text|5|#F580B1}}): {{Cl|RANDOMIZE}} {{Cl|TIMER (function)|TIMER}} {{Text|<nowiki>'some random values</nowiki>|#919191}}
a({{Text|0|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}}): a({{Text|1|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}}): a({{Text|2|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}})
a({{Text|3|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}}): a({{Text|4|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}}): a({{Text|5|#F580B1}}) = {{Cl|INT}}({{Cl|RND}} * {{Text|10|#F580B1}})
{{Cl|PRINT}} {{Text|<nowiki>"array values:"</nowiki>|#FFB100}}
{{Cl|FOR}} i = {{Text|0|#F580B1}} {{Cl|TO}} {{Text|5|#F580B1}}: {{Cl|PRINT}} a(i);: {{Cl|NEXT}} i: {{Cl|PRINT}}: {{Cl|PRINT}} {{Text|<nowiki>'print array</nowiki>|#919191}}
minimum = {{Cl|_MIN}}(a({{Text|0|#F580B1}}), a({{Text|1|#F580B1}})) {{Text|<nowiki>'initial min/max</nowiki>|#919191}}
maximum = {{Cl|_MAX}}(a({{Text|0|#F580B1}}), a({{Text|1|#F580B1}}))
{{Cl|FOR}} i = {{Text|2|#F580B1}} {{Cl|TO}} {{Text|5|#F580B1}}
    minimum = {{Cl|_MIN}}(minimum, a(i)) {{Text|<nowiki>'check remaining indexes</nowiki>|#919191}}
    maximum = {{Cl|_MAX}}(maximum, a(i))
{{Cl|NEXT}} i
{{Cl|PRINT}} {{Text|<nowiki>"array minimum ="</nowiki>|#FFB100}}; minimum
{{Cl|PRINT}} {{Text|<nowiki>"array maximum ="</nowiki>|#FFB100}}; maximum
{{CodeEnd}}




{{PageSeeAlso}}
{{PageSeeAlso}}
* [[_MAX]]
* [https://qb64phoenix.com/forum/showthread.php?tid=3383 Featured in our "Keyword of the Day" series]
* [[_MAX]], [[_CLAMP]]
* [[FIX]], [[INT]], [[CINT]], [[CLNG]]
* [[FIX]], [[INT]], [[CINT]], [[CLNG]]




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 13:11, 16 January 2025

The _MIN function returns the lesser of two given numeric values.


Syntax

minimum## = _MIN(value1, value2)


Parameters

  • value1 and value2 are the two numbers to compare, any integer or floating point type is supported.
  • minimum## is the lesser of both values returned as _FLOAT type (suffix ##).


Description

  • The function compares the given numeric values and then returns the lesser of both numbers.
  • Will return value1 if the values are equivalent.


Availability


Examples

Example 1
Showcasing the _MIN and _MAX functions.
'maximum of two values
PRINT _MIN(345, 123)
PRINT _MIN(5.0001, 5.0)
PRINT _MIN(-34, -1.0E+1)
PRINT
'minimum of two values
PRINT _MAX(345, 123)
PRINT _MAX(5.0001, 5.0)
PRINT _MAX(-34, -1.0E+1)
PRINT
'min/max of multiple values
PRINT _MIN(_MIN(345, 123), 255)
PRINT _MAX(_MAX(_MAX(345, 123), 413), 255)
 123
 5
-34

 345
 5.0001
-10

 123
 413

Example 2
Find the minimum and maximum values in a numeric array.
'min/max in array
DIM a(5): RANDOMIZE TIMER 'some random values
a(0) = INT(RND * 10): a(1) = INT(RND * 10): a(2) = INT(RND * 10)
a(3) = INT(RND * 10): a(4) = INT(RND * 10): a(5) = INT(RND * 10)
PRINT "array values:"
FOR i = 0 TO 5: PRINT a(i);: NEXT i: PRINT: PRINT 'print array

minimum = _MIN(a(0), a(1)) 'initial min/max
maximum = _MAX(a(0), a(1))
FOR i = 2 TO 5
    minimum = _MIN(minimum, a(i)) 'check remaining indexes
    maximum = _MAX(maximum, a(i))
NEXT i

PRINT "array minimum ="; minimum
PRINT "array maximum ="; maximum


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link