Toon posts:

[delphi] and- en orretjes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik vraag me af -> zou dit ook simpeler kunnen:

Zo ja? op welke manier?
code:
1
2
3
4
5
6
7
8
9
10
11
if (((cb1 < 0) or (cb1 > 1)) and ((cb2 < 0) or (cb2 > 1)) and ((cb3 < 0) or (cb3 > 1)) and ((cb4 < 0) or (cb4 > 1)) and ((cb5 < 0) or (cb5 > 1)) and ((cb6 < 0) or (cb6 > 1)) and ((cb7 < 0) or (cb7 > 1)) and ((cb8 < 0) or (cb8 > 1)) and ((cb9 < 0) or (cb9 > 1)) and ((cb10 < 0) or (cb10 > 1)) and 
((cb11 < 0) or (cb11 > 1)) and ((cb12 < 0) or (cb12 > 1)) and ((cb13 < 0) or (cb13 > 1)) and ((cb14 < 0) or (cb14 > 1)) and ((cb15 < 0) or (cb15 > 1)) and ((cb16 < 0) or (cb16 > 1)) and ((rb1 <> 1) or (rb1 <> 0)) and ((rb2 <> 2) or (rb2 <> 0))  and 
((rb3 <> 3) or (rb3 <> 0))  and ((rb4 <> 4) or (rb4 <> 0)) and ((rb5 <> 5) or (rb5 <> 0)) and ((l < 0) or (l > cxscreen - form1.width)) and ((t < 0) or (t > cyscreen - form1.Height)) and
  (((rb1 = 0) and (rb2 = 0) and (rb3 = 0) and (rb4 = 0) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 2) and (rb3 = 0) and (rb4 = 0) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 2) and
 (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
 ((rb1 = 1) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 5)) or ((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 0) and (rb5 = 5)) or
 ((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or ((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and
 (rb4 = 0) and (rb5 = 5)) or ((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 5)) or ((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or ((rb1 = 0) and (rb2 = 2) and (rb3 = 0) and (rb4 = 4) and (rb5 = 0)) or
  ((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or ((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 5)) or ((rb1 = 0) and (rb2 = 2) and
 (rb3 = 0) and (rb4 = 4) and (rb5 = 5)) or ((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
 ((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 5)) or ((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 5)) or ((rb1 = 0) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 5)))) then begin

Want geef nou toe -> het is onleesbaar (bijna erger dan machinetaal ;) )

  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 15-08 12:40
Ik ga uiteraard niet alles uitpluizen, maar
code:
1
((cb1 < 0) or (cb1 > 1))

is hetzelfde als
code:
1
(not(cb1=1))

toch?

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 04-09 17:09

Knutselsmurf

LED's make things better

Het kan vast simpeler. Maar daarvoor is het wel leuk als je even aangeeft wat de bedoeling is van dit gedrocht. De mensen hier weten heel veel, maar zijn ook ontzettend lui en gaan dat dus niet zelf uit proberen te zoeken..... :)

- This line is intentionally left blank -


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 04-09 17:09

Knutselsmurf

LED's make things better

Op donderdag 27 juni 2002 00:41 schreef ajvdvegt het volgende:
Ik ga uiteraard niet alles uitpluizen, maar
code:
1
((cb1 < 0) or (cb1 > 1))

is hetzelfde als
code:
1
(not(cb1=1))

toch?
is gelijk aan
code:
1
 (cb<>1)

- This line is intentionally left blank -


Verwijderd

Topicstarter
Nee, :) je hoeft ook niks uit te zoeken maar ok heb in een groepbox een aantal radiobuttons staan. Er zijn 5 mogelijkheden die wel kunnen de rest niet. Maar de oplossing is, denk ik al gegeven in dat geval.

Als ik de 5 die wel kunnen opschrijf met een not zou dat ook kunnen of niet?

Verwijderd

Topicstarter
Ik vind het wel uitzonderlijke code...

Ik denk dat ik em ga uitprinten en inlijsten >:)

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

code:
1
2
3
4
5
if (GoedeInstelling1 or GoedeInstelling1 or ... or GoedeInstelling5) then begin
   doe dingen
end else begin
   mekker over foutief ingevulde checkboxen enzo
end;

Siditamentis astuentis pactum.


  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 04-09 00:34

Delphi32

Heading for the gates of Eden

Ik zou dit aanpakken middels het veel overzichtelijker
code:
1
2
3
4
5
6
7
8
9
10
11
12
if (
  (IsCombination1) 
  or (IsCombination2) 
  or (IsCombination3)
  or (IsCombination4)
  or (IsCombination5)
) then begin
  ThisIsAValidChoice
end
else begin
  ThisIsNotAVAlidChoice;
end;

waarbij de IsCombinationx dingen natuurlijk boolean functies zijn die ieder precies 1 combinatie beoordelen.

Waarbij opgemerkt zij, dat een user interface waarin zoveel keuzes mogelijk zijn en de gebruiker pas aan het eind weet of hij een goeie keuze heeft gemaakt, nou niet bepaald mijn idee van fraaie GUI is :7

[edit]Varienaja, je was me net voor :)

Verwijderd

Topicstarter
Waarbij opgemerkt zij, dat een user interface waarin zoveel keuzes mogelijk zijn en de gebruiker pas aan het eind weet of hij een goeie keuze heeft gemaakt, nou niet bepaald mijn idee van fraaie GUI is :7
Ik begrijp wat je bedoeld al is dat bij mij niet zo relevant omdat dit plaatsvind in een OnActivation event.

(ophalen van data uit een bestand)

  • the_dgc
  • Registratie: Augustus 2001
  • Laatst online: 18-11-2022

the_dgc

raar he..... leven!!

ach ja ik hoop alleen voor je dat je de rest van je programma in een iets simpelere code schrijft want anders ben je strakt een heletijd bezig om je programma te compilen :P

een wereld zonder vrede.. raar?? kijk om je heen dan merkje dat het heel normaal is...
neeeh ik ben niet druk, jij bent gewoon te rustig !!
dual xeon 2.4, 1024 intern, gf3 ti200, maxtor 60 gb 7200 rpm en nog wat opvulling


  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Op donderdag 27 juni 2002 00:41 schreef ajvdvegt het volgende:
Ik ga uiteraard niet alles uitpluizen, maar
code:
1
((cb1 < 0) or (cb1 > 1))

is hetzelfde als
code:
1
(not(cb1=1))

toch?
Ik kan me vergissen hoor ('t is laat) maar je bedoelt denk ik (not((cb1=0)or(cb1=1)) ;)

Bnet pindle#2913


Verwijderd

code:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
if (((cb1 < 0) or (cb1 > 1)) and
((cb2 < 0) or (cb2 > 1)) and
((cb3 < 0) or (cb3 > 1)) and
((cb4 < 0) or (cb4 > 1)) and
((cb5 < 0) or (cb5 > 1)) and
((cb6 < 0) or (cb6 > 1)) and
((cb7 < 0) or (cb7 > 1)) and
((cb8 < 0) or (cb8 > 1)) and
((cb9 < 0) or (cb9 > 1)) and
((cb10 < 0) or (cb10 > 1)) and
((cb11 < 0) or (cb11 > 1)) and
((cb12 < 0) or (cb12 > 1)) and
((cb13 < 0) or (cb13 > 1)) and
((cb14 < 0) or (cb14 > 1)) and
((cb15 < 0) or (cb15 > 1)) and
((cb16 < 0) or (cb16 > 1)) and

((rb1 <> 1) or (rb1 <> 0)) and
((rb2 <> 2) or (rb2 <> 0)) and 
((rb3 <> 3) or (rb3 <> 0)) and
((rb4 <> 4) or (rb4 <> 0)) and
((rb5 <> 5) or (rb5 <> 0)) and

((l < 0) or (l > cxscreen - form1.width)) and
((t < 0) or (t > cyscreen - form1.Height)) and

(((rb1 = 0) and (rb2 = 0) and (rb3 = 0) and (rb4 = 0)and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 2) and (rb3 = 0) and (rb4 = 0) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 2) and (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 5)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 0) and (rb5 = 5)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 5)) or
((rb1 = 1) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 5)) or
((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 0) and (rb5 = 0)) or
((rb1 = 0) and (rb2 = 2) and (rb3 = 0) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 0) and (rb2 = 2) and (rb3 = 3) and (rb4 = 4) and (rb5 = 5)) or
((rb1 = 0) and (rb2 = 2) and (rb3 = 0) and (rb4 = 4) and (rb5 = 5)) or
((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 4) and (rb5 = 0)) or
((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 5)) or
((rb1 = 0) and (rb2 = 0) and (rb3 = 3) and (rb4 = 0) and (rb5 = 5)) or
((rb1 = 0) and (rb2 = 0) and (rb3 = 0) and (rb4 = 4) and (rb5 = 5))
))then begin

zo eerst even uit gelijnd
waarom stop je de genummerde waarde niet in een array? dan kun gemakkelijk dingen controleren met een loopje.
De ena en tweena laatste regel zijn het zelfde dus dat klopt niet.

  • the_dgc
  • Registratie: Augustus 2001
  • Laatst online: 18-11-2022

the_dgc

raar he..... leven!!

Op donderdag 27 juni 2002 01:07 schreef porn het volgende:

[..]

Ik kan me vergissen hoor ('t is laat) maar je bedoelt denk ik (not((cb1=0)or(cb1=1)) ;)
boeiend men begreep wat ie bedoelde bovendien werd er niet veel later een veel kortere oplossing gegeven...

een wereld zonder vrede.. raar?? kijk om je heen dan merkje dat het heel normaal is...
neeeh ik ben niet druk, jij bent gewoon te rustig !!
dual xeon 2.4, 1024 intern, gf3 ti200, maxtor 60 gb 7200 rpm en nog wat opvulling


  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Op donderdag 27 juni 2002 01:14 schreef the_dgc het volgende:

[..]

boeiend men begreep wat ie bedoelde bovendien werd er niet veel later een veel kortere oplossing gegeven...
Nee want knutselsmurf zegt precies hetzelfde, waarbij ik dus aangaf dat het niet zo kort kan omdat er dan niet staat wat bovenin bedoeld wordt.

Bnet pindle#2913


  • the_dgc
  • Registratie: Augustus 2001
  • Laatst online: 18-11-2022

the_dgc

raar he..... leven!!

Op donderdag 27 juni 2002 01:19 schreef porn het volgende:

[..]

Nee want knutselsmurf zegt precies hetzelfde, waarbij ik dus aangaf dat het niet zo kort kan omdat er dan niet staat wat bovenin bedoeld wordt.
ow

een wereld zonder vrede.. raar?? kijk om je heen dan merkje dat het heel normaal is...
neeeh ik ben niet druk, jij bent gewoon te rustig !!
dual xeon 2.4, 1024 intern, gf3 ti200, maxtor 60 gb 7200 rpm en nog wat opvulling


Verwijderd

Topicstarter
Thanks Borganism.

Ziet er idd wel een stuk beter uit :) + foutjes die je beter ziet. In het vervolg toch maar eens een iets betere indeling kiezen.

*o_o gaat het hoofdstuk over de arays maar eens doorlezen.

Verwijderd

Zoals borganism al zegt : Array gebruiken
Dit werkt vele malen fijner.

Een voorbeeldje :
code:
1
2
3
for i := 1 to 15 do if ((cb[i] < 0) or (cb[i] > 1)) then stillTrue:=True else stillTrue:=False;

if stillTrue:=True then for j := 1 to 5 do if ((rb[j] <> j) or (rb[j] <> 0)) else stillTrue:=False

Weet niet of het helemaal klopt en het is natuurlijk ook nog niet compleet als je het idee maar begrijpt.

Verwijderd

Lijkt me dat je allemaal opties wilt controleren. Ik zou het doen met Backtracking.

Het is niet het meest gemakkelijke :( maar het is wel efficiënt. Recursief is natuurlijk helemaal TOP! :P

  • Paul
  • Registratie: September 2000
  • Laatst online: 04-09 17:50
code:
1
for i := 1 to 15 do if ((cb[i] < 0) or (cb[i] > 1)) then stillTrue:=True else stillTrue:=False;

Dan kun je net zo goed meteen met cb[15] gaan checken, want stillTrue wordt nu IEDERE iteratie geset...
code:
1
2
3
4
5
6
7
8
stillTrue := true;
i      := 1;
while (stillTrue and (i <= 15)) do 
  begin
    if cb[i] = 1 then 
    stillTrue := False;
    inc(i);
  end;


code:
1
if stillTrue:=True then for j := 1 to 5 do if ((rb[j] <> j) or (rb[j] <> 0)) else stillTrue:=False

Compiled niet :) Ten eerste staat er := in je if, ten tweede heb je geen then binnen je loop.
code:
1
2
3
4
5
6
7
8
i      := 1;
if stillTrue then
while (stillTrue and (i <= 5)) do 
  begin
    if not ((rb[j] <> j) or (rb[j] <> 0)) then
    stillTrue := False
    inc(i);
  end;

Ik lees trouwens je 2e post nog een keer, en zie dat je een groupbox hebt met daarin radiobuttons? Euh.. Dan zijn er dus exact evenveel combinaties als dat er radiobuttons zijn, want Check je er eentje, dan gaat de ene andere uit.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:16
Op donderdag 27 juni 2002 09:09 schreef ridde100 het volgende:
Lijkt me dat je allemaal opties wilt controleren. Ik zou het doen met Backtracking.

Het is niet het meest gemakkelijke :( maar het is wel efficiënt. Recursief is natuurlijk helemaal TOP! :P
:? :? :? :? :? :? :? :?

Nou ja, ik hoop dan maar dat iemand anders hier de zin wel van inziet. :)

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 12:47

Dido

heforshe

Sorry, beetje laat, maar uit de "uitgelijnde code":
code:
1
((rb1 <> 1) or (rb1 <> 0))

Komt in een aantal variaties voor, is te herschrijven tot
code:
1
TRUE

:)

Wat betekent mijn avatar?

Pagina: 1