dynamische if then statment

Pagina: 1
Acties:

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Hoe kan ik een dynamisch if then statement bouwen?

ik heb
if [variable] [voorwaarde] [waarde] then [variable]:=1;

de eerste en laatste variable kan ik wel veranderen
dan vervang ik eerst de waarde van een vaste variable

ook de waarde zelf kan je makkelijk er in zetten

dan wordt het:
if tempvar [voorwaarde] waarde then tempvar2:=

maar hoe kun je die [voorwaarde] (>, <, ==, >=, <= !=) uit een variable halen.

This message was sent on 100% recyclable electrons.


  • Servowire
  • Registratie: September 2000
  • Laatst online: 14-09 21:39

Servowire

prutser:~#

welke taal?


uit de FAQ :)
Vermeld om welke taal het gaat. [php][C/C++][JAVA] enz enz

met papier mache kun je alles maken!!


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
is niet taal gebonden

maar het is voor Delphi, of VB of C++

This message was sent on 100% recyclable electrons.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je taal geen eval() oplossing ondersteund.
Dan kan je altijd nog een methode maken die 3 elementen pakt.
Bijvoorbeeld: (php voorbeeldje is louter als voorbeeld, andere talen kan precies hetzelfde mee)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$var1 = 2;
$compare = '<';
$var2 = 3;

if(compare_params($var1, $compare, $var2))
{
   ...
}

function compare_params($var1, $compare, $var2)
{
    switch($compare)
    {
        case '<' :
        {
           $return = ($var1 < $var2);
        }
        case '>' :
        {
           $return = ($var1 > $var2);
        }
    }
    return $return;
}
?>

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
wat bedoel je met eval()?
(ik zit nu op school, kan niet in een help kijken)

maar ik gebruik dan in dit geval delphi, ondersteund die 'eval()'?

edit:

heb eval opgezocht, het is toch hetzelfde als copy() in delphi, en $mid() is VB?

dan een ander vraagje:
kun je daarmee ook de ">" of "!=" in een if statment veranderen (lees=dynamich maken)?

zo van:
if %a %b 2 then c=1;
waar %b dus die ">" ofzo is

(lijkt mij niet btw)

This message was sent on 100% recyclable electrons.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik ken delphi niet goed genoeg daarvoor :)

Maar eval van php: www.php.net/eval
De kans is vrij klein dat delphi het ondersteund en C/C++ zowiezo niet.

  • Servowire
  • Registratie: September 2000
  • Laatst online: 14-09 21:39

Servowire

prutser:~#

Op vrijdag 21 december 2001 08:47 schreef basiep het volgende:
wat bedoel je met eval()?
(ik zit nu op school, kan niet in een help kijken)

maar ik gebruik dan in dit geval delphi, ondersteund die 'eval()'?
Zet dan in je topic dat je Delphi bedoeld....

}:O

met papier mache kun je alles maken!!


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 08:53 schreef Servowire het volgende:
Zet dan in je topic dat je Delphi bedoeld....
Mwoh, dit zelfde probleem kan je ook in java, c, etc hebben...

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Ez :)

Je maakt gewoon een c++ functietje :
code:
1
2
3
4
void f(double G1,bool Expr,double G2,double *T)
{
  (Expr==true)?*T=G2:T=G1;
}

Ik ben niet 100% zeker, want je hebt je vraag heel onduidelijk gesteld, maar zelfs als ik het fout berepen heb kan je dit aanpassen naar wat je wou.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Op vrijdag 21 december 2001 08:57 schreef XTerm89D het volgende:
Je maakt gewoon een c++ functietje :
code:
1
2
3
4
void f(double G1,bool Expr,double G2,double *T)
{
  (Expr==true)?*T=G2:T=G1;
}
Euh....
:?

mkay... ik ben niet ZO goed in C++ (eigenlijk beetje n00b)
wat bedoel je precies met

(Expr==true)?*T=G2:T=G1;

*T is een pointer naar G2, en wat doet dat vraagteken, en wat doet die ':' ??

edit:

net ff mijn C++ leraar gevraagt, en die zei dat dat alleen maar een manier was om een if statment op te scrijven.. ;)

dat betekent dus dat als expr waar is dat de pointer T naar G2 wijst, en zo niet dat T gelijk wordt aan G1

dat bedoel ik dus niet, ik bedoelde:
hoe kan ik het '>' '<' of '!=' operator veranderen in een if statement

dus:

if %a %b waarde then %c=1;
waar %b dus een '>' teken, een '<' teken, of iets in die geest is.

This message was sent on 100% recyclable electrons.


Verwijderd

zoek naar 'pascal interpreter' op www.torry.net :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Heb je bovenstaand stuk code van mij al es geprobeerd?

Dat doet precies wat je vraagt. En kan eventueel veel meer...

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
ja dat stuk van jouw werkt perfect, maar je hebt nog wel een aantal regels nodig voor de '
code:
1
2
case ">" 
case "<"

maar dat zijn er maar 6
Bedankt iig als ik thuis ben zal ik het gaan testen

This message was sent on 100% recyclable electrons.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

basiep vroeg e.e.a.
Ik vraag me heel erg af wat voor programmastructuren jij aan het verzinnen bent...

Ben wel benieuwd... Laat eens wat zien, horen :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 09:46 schreef basiep het volgende:
ja dat stuk van jouw werkt perfect, maar je hebt nog wel een aantal regels nodig voor de
:)

Dat is natuurlijk domweg copy&pasten en dan de if aanpassen :P

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Op vrijdag 21 december 2001 09:52 schreef drm het volgende:

[..]

Ik vraag me heel erg af wat voor programmastructuren jij aan het verzinnen bent...

Ben wel benieuwd... Laat eens wat zien, horen :)
het is voor LCD smartie
www.rendo.dekooi.nl/~fjbgp/smartie
de matrix orbital LCD's hebben de mogenlijkheid om dingen aan te sturen

dan heb ik iets gemaakt waarmee je kunt instellen wanneer je bijv een ledje aanstuurd of een fan laat draaien.
dus je kan instellen:
als (en dan bijv fan1, of mail) (>,<,=,<=,>=,<>) (een waarde) dan (aanturing 1, aanturing2, aanturing3)

This message was sent on 100% recyclable electrons.


Verwijderd

Bedoel je niet zoiets als
PHP:
1
2
3
<?
if($$variabele) {
?>

ofzoiets.
Heel anders kan ik een dynamische if statement niet opvatten eigenlijk.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 10:30 schreef daniel_hoenderdos het volgende:
Bedoel je niet zoiets als
Heel anders kan ik een dynamische if statement niet opvatten eigenlijk.
Hij wil 1 if, waar eventueel "groter dan", "kleiner dan" etc in uitgebeeld kan worden.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:11
Op vrijdag 21 december 2001 08:49 schreef ACM het volgende:

De kans is vrij klein dat delphi het ondersteund en C/C++ zowiezo niet.
:(
( Die smile hierboven is rood )

Tuurlijk kan het in C++. Sterker nog, daar heeft de functie zelfs al een naam: std::less etcetera. Kun je gewoon het address van nemen en dus op die manier in een variabele zetten.
In C heb je overigens iets meer gelijk - dan moet je zelf
code:
1
BOOL less ( int rhs, int lhs ) { return ( rhs < lhs ) ; }

schrijven voordat je het over &less kunt hebben.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

daniel_hoenderdos:
Bedoel je niet zoiets als
PHP:
1
2
3
<?
if($$variabele) {
?>

ofzoiets.
Heel anders kan ik een dynamische if statement niet opvatten eigenlijk.
:D
dus dit:
code:
1
2
if ( 1 > 2 )
  ;

is een statisch if statement :? :D
basiep:
(...)
als (en dan bijv fan1, of mail) (>,<,=,<=,>=,<>) (een waarde) dan (aanturing 1, aanturing2, aanturing3)
Aha, het is dus een kleine parse-engine ;)
Dan snap ik het. Anders leek het me behoorlijk vreemd om te gebruiken :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 21 december 2001 10:56 schreef MSalters het volgende:
Tuurlijk kan het in C++.
Ow?
Kan dit in C++:
PHP:
1
2
3
4
<?
$phpcode = "echo 'Hello world';";
eval($phpcode);
?>

?

Wat ik dus bedoelde in dit geval:
PHP:
1
2
3
4
5
6
7
<?
$var1 = 4;
$compareelement = '<';
$var2 = 5;
$compare_string = "if($var1 $compareelement $var2)functie_naam();";
eval($compare_string);
?>

(Overigens is de code niet getest enzo ;) )

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
die laatste is idd wat ik bedoel, maar ik geloof niet dat Delphi of VB zo'n commando hebben (C++ iig niet als ik dit hierboven lees)

maar bedankt, ik zal er wel uitkomen

This message was sent on 100% recyclable electrons.

Pagina: 1