Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tenary operator in QB64 with 4 numbers
#1
These _Max/_Min functions are excellent. Applying the tenary operator to more than two numbers is much easier in QB64 than in C, for example. Even determining four numbers is easy in Basic, but a monster in C.

This is interesting if, for example, one want to determine maximum/minimum for temperature values etc., and the program should then react accordingly.

Basic rulez!  Tongue

Code: (Select All)
'Tenaeren Operators in QB64 ab Vers. 4.0 - 16. Dez. 2024
'Dank an a740g und RhoSigma - 17/18 Dez 2024
Option _Explicit
Dim As Long zahl1, zahl2, zahl3, zahl4, max, min, mittelWert
Locate 3, 3
Print "Vierfach tenaerer Operator in QB64"
Locate 4, 3
Print "=================================="
Locate 6, 3
Input "Zahl 1: ", zahl1
Locate 7, 3
Input "Zahl 2: ", zahl2
Locate 8, 3
Input "Zahl 3: ", zahl3
Locate 9, 3
Input "Zahl 4: ", zahl4
'Anwendung des tenaeren Operators auf 4 Zahlen
max = _Max(_Max(_Max(zahl1, zahl2), zahl3), zahl4)
min = _Min(_Min(_Min(zahl1, zahl2), zahl3), zahl4)
Locate 11, 3
Print Using "Die groesste Zahl ist: ####"; max
Locate 13, 3
Print Using "Die kleinste Zahl ist: ####"; min
Locate 15, 3
mittelWert = (max + min) / 2
Print Using "Der mittlere Wert betraegt: ###"; mittelWert
End

And here with the call to the corresponding C program
Code: (Select All)
'Aufruf des tenaeren Operators in C mit 4 Zahlen - 18. Dez. 2024
Option _Explicit
'In QB64 mit "Declare Library" wie angegeben
Declare Library "D:\Lab\QuickBasic64\Extern-nicht-Basic\Basic-ruft-C\btenaerVierfach"
  Function btenaerVierfach& (ByVal Zahl1 As Long, Byval Zahl2 As Long, Byval Zahl3 As Long, Byval Zahl4 As Long)
End Declare
Dim As Long zahl1, zahl2, zahl3, zahl4
Locate 3, 3
Print "Vierfachen tenaeren Operator in C aufrufen"
Locate 4, 3
Print "=========================================="
Locate 6, 3
Input "Zahl 1: ", zahl1
Locate 7, 3
Input "Zahl 2: ", zahl2
Locate 8, 3
Input "Zahl 3: ", zahl3
Locate 9, 3
Input "Zahl 3: ", zahl4
Locate 11, 3
Print Using "Die groesste Zahl ist      : ####"; btenaerVierfach&(zahl1&, zahl2&, zahl3&, zahl4&)
End

And the C-function (a monster!):
Code: (Select All)
//Maximum + Minimum von 4 Zahlen mit tenären Operator - 18. Dez. 2024
#include <stdio.h>
#include <stdlib.h>
long btenaerVierfach(long zahl1, long zahl2, long zahl3, long zahl4)
{
long max;
max = zahl1 >= zahl2
? zahl1 >= zahl3
? zahl1 >= zahl4 ? zahl1 : zahl4
: zahl3 >= zahl4 ? zahl3 : zahl4
: zahl2 >= zahl3
? zahl2 >= zahl4 ? zahl2 : zahl4
: zahl3 >= zahl4 ? zahl3 : zahl4;
return(max);
}
Reply


Messages In This Thread
Tenary operator in QB64 with 4 numbers - by Kernelpanic - 12-18-2024, 05:28 PM



Users browsing this thread: 1 Guest(s)