[alg] slechtste prog voorbeelden. Overzicht Volgende deel Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 3 ... 11 Laatste
Acties:
  • 18.951 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-07 20:18
whoami schreef op 10 April 2003 @ 22:39:
Waarom als het snel moet een while?
een for is afaik de snelste lus als je weet hoeveel iteraties je moet doen.
Ik zou me kunnen voorstellen dat een hele brakke compiler een lus als deze:
C:
1
2
for(n = 0; n < 10; ++n)
     { ... }

vertaalt naar:
GAS:
1
2
3
4
5
6
7
    mov [n], 0
x:  cmp [n], 10
    jge y
    ...
    inc n
     jmp x
y:   

En de variant:
C:
1
2
3
n = 10;
while(--n)
    { ... }

naar:
C:
1
2
3
4
5
6
7
mov [n], 10
x:  dec [n]
    jge y
    ...
    inc n
     jmp x
y:   

Waardoor je je dus de compare-instructie uitspaart. Maar dit is allemaal zo hypothetisch en afhankelijk van het huidige platform en de (versie van) de gebruikte compiler, dat ik me niet kan voorstellen dat het ooit de moeite waard is om je code hier voor te mishandelen.

(Er is sowieso nog veel meer mis met mijn code: de onconditionele jump-instructie kan in het geheel ge-elimineert worden door de statements in een beetje andere volgorde te zetten, maar dat heb ik niet gedaan om de 1-op-1 vertalling van een slechte 1-pass compiler te demonstreren).

Het hele voorbeeld gaat ook niet meer op als je de for-variant herschrijft naar:
C:
1
for(n = 9; n--; )

[ Voor 6% gewijzigd door Soultaker op 10-04-2003 22:58 ]


Acties:
  • 0 Henk 'm!

Anoniem: 25556

Waarom hoor ik niemand over repeat .. until? of is dat delphi specifiek?

Wat betreft uit for-loops springen... BAH

Je code wordt er helemaal niet overzichtelijker van, zeker niet als het veel gebeurd. Ik zal morgen even een stukje delphi code posten hier van iemand die gek is op dat soort constructies.. je ziet dan gelijk dat het MINDER leesbaar is.

Gevaar ervan is dat je domweg de verkeerde algoritmes gaat opstellen, omdat je uitgaat van zulke constructies. Gewoon normaal programmeren en als het echt, _echt_ niet anders kan zoiets..

* Anoniem: 25556 is lid van het anti-break en anti-exit front..

Acties:
  • 0 Henk 'm!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Waarom hoor ik niemand over repeat .. until? of is dat delphi specifiek?
vaak do while in andere talen.

Mooi stukje code toch? (Heb trouwens een kleine aanpassing gemaakt, dit is een visit methode, maar heb er voor het gemak ff return types ingezet ipv aan de 'result' te pielen).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public boolean visit(RecordTy thisRecTy) {
    if(!(_otherTy instanceof RecordTy))
        return false;
    
    RecordTy otherRecordTy = (RecordTy)_otherTy;
    if(otherRecordTy.getCon()!=thisRecTy.getCon())
        return false;
    
    Iterator<Type> otherItt = otherRecordTy.getAppTyList().iterator();
    for(Iterator<Type> thisItt = thisRecTy.getAppTyList().iterator();thisItt.hasNext();){
        if(!isEqual(thisItt.next(),otherItt.next()))
            return false;
    }
    
    return = true;
}

[ Voor 14% gewijzigd door Alarmnummer op 10-04-2003 23:34 ]


Acties:
  • 0 Henk 'm!

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 11:51
Helaas kan ik het niet meer vinden, maar het meest erge uit m'n herinnering was toch wel een handleiding programmeren (ik denk voor een bedrijfscursus, lang lang geleden) in C64 basic waarbij ontbrekende loop constructs zoals while, repeat-until, etc. gebouwd werden met het misbruiken van de for-next loop constructie die de taal wel ondersteunde met bepaalde parameterisering en het binnen de loop aanpassen van de iterator.

Acties:
  • 0 Henk 'm!

Anoniem: 35513

Het gaat hier om command line opties. flags.aflag is standaard TRUE, alleen wordt dat op een vreemde manier gedaan:

code:
1
2
    if (!(flags.vflag || flags.aflag || flags.bflag))
        flags.aflag = TRUE;


Natuurlijk wordt aflag niet TRUE gemaakt als aflag TRUE is. :)

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
[quote]Soultaker schreef op 10 april 2003 @ 22:32:
De conditie in een for-lus wordt in C-achtige talen ook de eerste keer gecontroleerd hoor. De volgende twee constructies zijn semantisch equivalent:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
// for-constructie
for(INITIALISATIE; ITERATIE; !EINDCONDITIE)
{
   // OPERATIE
}

// while-constructie
INITIALISATIE;
while(!EINDCONDITIE)
{
    // OPERATIE
    // ITERATIE
}

Het verschil zicht puur in de zelfbeschrijvende kwaliteit van de code. Gebruik van een for-statement drukt net iets anders uit dan een while-statement, maar het is niet gezegd dat je per se de een of de ander moet gebruiken.
Ik heb het opgezocht in Kernighan-Ritchie en inderdaad heb je gelijk vwb de test op de eindconditie in C. Ik weet niet hoe ik er dan bij kom, dat die test achteraan de loop zat. Kernighan-Ritchie spreken over equivalente constructies en welke je neemt hangt af van je persoonlijke voorkeur.

Hmmm. Mja, het is er zo ingesleten om while loops te mijden en do while al helemaal, dat ik er eigenlijk niet zo bij nadenk als ik een loop nodig heb, welke constructie te nemen. Ik vind het van mijn kant wel behoorlijk treurig dat ik deze vergissing gemaakt heb ;)
Feit is dat je for-statement in C-achtige talen veel veelzijdiger is dan in andere talen (die zich vaak beperken tot een voorgeprogrammeerde initialisatie, iteratie en eindconditie);
Klopt, daarom zijn die talen ook zo leuk en daarom zijn er mensen die talen uit de mouw van Wirth verafschuwen.
Dat ben ik dus met je eens. Hij zit er toch in, zoals al ik zei, omdat het gebruik van een for-statement een bepaald patroon is, dat door andere programmeurs eenvoudig begrepen wordt. Door het op de juiste manier te gebruiken, beschrijft de code zijn eigen werking beter. Volgens jouw redenatie is een do-while-constructie ook overbodig, omdat je die ook wel met een 'normale' while-constructie (en wat dubbele code) kan construeren. Eigenlijk heb je helemaal geen while-statement nodig als je labels en goto ondersteund (zoals in C het geval is).
Herzienend met de afgestofte, ondergesneeuwde kennis kun je concluderen dat de while overbodig is en de do while niet. (darn, ik twijfel nu ook aan het feit of het niet een serie while's was die 'niet mochten' ipv do while's)
Tja, lullig voor je dat je nu met zo'n trauma opgescheept zit ( ;) grapje, ey) maar dat neemt niet weg dat het nuttig is als verschillende programmeurs eenzelfde stijl aanhouden. Dat maakt het simpelweg eenvoudiger om elkaar's code te lezen (en ook je eigen code terug te lezen). Ook blijkt in de praktijk gewoon dat bepaalde oplossingen beter geschikt zijn in bepaalde situaties dan anderen. Je kunt daar "je neus voor ophalen" maar daar verdwijnen die voordelen niet mee.
Nou, als developers in een groepje werken, dan is het wellicht verstandig wat af te spreken mbt stijl/naamgeving etc. Ik ga me echter niet conformeren aan een of andere standaard voor het illustere geval dat iemand anders ooit de code gaat lezen terwijl ik die standaard verafschuw. Ik programmeer ook nog vrolijk met Hungarian Notation in C# en blijf dat ook doen.

Even nog over die while/for, ik denk wel dat je in C-achtige talen de while links moet laten liggen, omdat je de initialisatie van je teststatement niet in hetzelfde statement hebt, wat leesbaarheid doet doen afnemen (tests of results van functieaanroepen daargelaten, dus bv while(CheckSomething()) {} ).
In de oorspronkelijke versie van C mocht je helemaal geen lokale variabelen in een for-statement declareren. In C99 mag dat weer wel en daar zijn verder ook geen problemen mee, voor zover ik weet. Wel speelt een soortgelijk probleem een rol in C++: in ieder geval de C++ compiler van Microsoft plaatste de for-variabelen (onterecht) in de outer scope.
Klopt. Variabelen declareerde je bovenaan je method, daarna kwam je initialisatie blok en daarna je code. Een while gebruiken is dan dus nog minder interessant. (dat heeft me nog wel het meest moeite gekost in OO talen: variabelen declareren op de plek waar je ze nodig hebt ipv bovenin)

Goed, concluderend is dus dat ene EfBe zn taalconstructies niet kent :P * EfBe = }:O

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Over die clock minder door de --i ipv de i++: dat komt doordat je bij --i andere asm instructies gebruikte die een clocktick minder nodig hadden dan bij i++. Lekker belangrijk bij 2+ghz ;)
Anoniem: 25556 schreef op 10 april 2003 @ 23:09:
Waarom hoor ik niemand over repeat .. until? of is dat delphi specifiek?
Ieks! Wirth! ;)
Wat betreft uit for-loops springen... BAH
Je code wordt er helemaal niet overzichtelijker van, zeker niet als het veel gebeurd. Ik zal morgen even een stukje delphi code posten hier van iemand die gek is op dat soort constructies.. je ziet dan gelijk dat het MINDER leesbaar is.
Waarom? Jij gaat ook hele kerstbomen opzetten om maar 1 returnpoint te hebben in een method? Bij elk statement moet je je afvragen: moet ik daar zijn? Nee? wegwezen. Methods die vooraf niet testen op of je uberhaupt in de method moet zijn, zijn veelal krakkemikkig opgezet want nemen veelal die test ong 3 keer mee, maar dan testen ze dus of je WEL in die method moet zijn en indien ja doen ze iets.

Springen uit forloops kan nuttig zijn, maar veelal is een continue genoeg. Echter bij 2 geneste forloops en in de binnenloop constateer je dat je uit de buitenste moet springen is lastiger.
Gevaar ervan is dat je domweg de verkeerde algoritmes gaat opstellen, omdat je uitgaat van zulke constructies. Gewoon normaal programmeren en als het echt, _echt_ niet anders kan zoiets..
Als je algoritmen gaat opstellen met in het achterhoofd een serie taalconstructies dan ben je verkeerd bezig, maar dat heeft niets met breaks uit forloops te maken.
Eenzelfde discussie woedt al sinds mensenheugenis over 'goto'.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

Anoniem: 37864

Ach ja... een mooi stukje broddelwerk van eigen makelij dan. Ooit heb ik op een blauwe maandag een device drivertje in elkaar geklust voor NT wat tussen de TDI netwerklaag gaat zitten en op die manier bij kan houden wie waarheen netwerk verbindingen maakt. Daarin had ik de volgende constructie zitten:
code:
1
2
3
4
5
while (DoIets());
{
  <alloceer hele boel variabelen op de stack>
  DoIetsAnders();
}

...omdat in een device driver stackruimte beperkt is en ik anders verderop in de code problemen kreeg. Een paar weken later ontdek ik een bug in de code en blader voor de zekerheid de rest ook maar even door. 'hee, wat doet die ; daar 8)7 ' denk ik vervolgens, en ik haal 'm weg. Gruwelijke crashes waren het gevolg. Het heeft me even gekost om uit te vinden waardoor dat nou weer kwam... Commentaar bij dat soort constructies is ZO belangrijk...

[ Voor 2% gewijzigd door Anoniem: 37864 op 11-04-2003 10:27 . Reden: Tikvaudt ]


Acties:
  • 0 Henk 'm!

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 11:59
Alarmnummer schreef op 08 April 2003 @ 14:00:
Er zijn volgens mij veel docenten die hun vak niet meester zijn. En ik ben maar 1 docent tegengekomen die werkelijk gemotiveerd was: Theo Sinnema (HIO Groningen). Geweldige man, die mensen goed kan afbranden >:) Maar er zelf ook wel wat van af wist.
En toch was ik blij dat hij vorig jaar met pensioen ging :z

Je kon werkelijk niks goed doen bij die man.

Acties:
  • 0 Henk 'm!

  • EXX
  • Registratie: Juni 2001
  • Laatst online: 15-06 18:26

EXX

EXtended eXchange

Rukapul schreef op 10 april 2003 @ 23:51:
Helaas kan ik het niet meer vinden, maar het meest erge uit m'n herinnering was toch wel een handleiding programmeren (ik denk voor een bedrijfscursus, lang lang geleden) in C64 basic waarbij ontbrekende loop constructs zoals while, repeat-until, etc. gebouwd werden met het misbruiken van de for-next loop constructie die de taal wel ondersteunde met bepaalde parameterisering en het binnen de loop aanpassen van de iterator.
Ja, dat gaat dus in BASIC. Weet je meteen waarom je in Pascal oorspronkelijk de iteratorvariabele in een "for to/downto do" loop niet kon veranderen met een assign; je werd direct door de compiler getrakteerd op een foutmelding (en terecht).


* EXX vindt het eigenlijk erg jammer dat Pascal (en zijn opvolgers) verdrongen zijn door C, C++ etc.

[ Voor 9% gewijzigd door EXX op 11-04-2003 13:55 ]

For it is the doom of men that they forget...           Huidige en vroegere hardware specs         The Z80 is still alive!


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
EXX schreef op 11 april 2003 @ 13:49:
[...]

* EXX vindt het eigenlijk erg jammer dat Pascal (en zijn opvolgers) verdrongen zijn door C, C++ etc.
Nouja, Delphi (die Object Pascal gebruikt) is toch redelijk populair hoor. ;)

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
EfBe schreef op 11 april 2003 @ 09:49:
Over die clock minder door de --i ipv de i++: dat komt doordat je bij --i andere asm instructies gebruikte die een clocktick minder nodig hadden dan bij i++. Lekker belangrijk bij 2+ghz ;)
wel dat is eigenlijk gek he? vroeger was code zoveel keren 'beter' dan nu vanwege de mentaliteit : pc is toch snel genoeg. Geloof me het zeker winnen van 1 clocktick in de binnenste loop van een imageprocessing is nog steeds belangrijk (zeker als het aankomt met 'jmp' - gevallen). Waarom denken jullie dat NVidia drivers zoveel beter waren - omdat die dat oog voor detail hadden...

Ik moet steeds terugdenken aan een spel dat ik had op mijn 286 - B17 Flying Fortress (ik had het gekocht voor m'n 486) dat ging even goed - een hele 3D wereld met heel wat AI, graphics and sound... en dat op 4 floppies en zonder FPU... MicroProse rulede - oh en dat was allemaal pure ASM :) (F1 ook geloof ik - pas nu kunnen 3d kaarten Phong aan). Dus que slechte prog voorbeelden zijn er overal vergeleken met toen...

We programmers got better compilers, faster pc, dedicated hardware en nog is er niets beters dan Tetris :). Beste code: Win2000 kernel. (Sorry Linux people maar de kernel is het beste stukje code op de planeet), Slechtste: Win9x gevallen...

Acties:
  • 0 Henk 'm!

Anoniem: 49627

Als je compiler nog een verschil maakt tussen ++x of x++ op plekken waar het niet nodig is, is het tijd voor een nieuwe compiler...

Acties:
  • 0 Henk 'm!

Anoniem: 3747

Luie programmeurs, dat is het ergste wat er is!

code:
1
2
3
4
If  a = a
then 
   blaat
end if;


Dan vervalt een if-statement en hebben ze geen zin de 'end if ' te zoeken :(

In SQL & PL/SQL :

code:
1
2
3
SELECT *
FROM  grote_tabel_met_veel_kolommen
INTO veel_variabelen

lekker onderhoudbaar jongens! Geeft niks, als er een datamodel wijziging plaatsvind crasht gewoon je hele programma! (Houdt mij van de straat natuurlijk) ;)

Of als je echt de performance wilt nekken:
code:
1
2
3
select zooi
from grote_tabel
where LOWER(code_1) = LOWER( 'A' )


Even voor de duidelijkheid: als je een functie rond een database-kolom zet negeert Oracle de index. Zou basiskennis moeten zijn maar wordt nogal eens vergeten.
Nieuwste Oracle versie kan er overigens beter mee omgaan!!!

[ Voor 3% gewijzigd door Anoniem: 3747 op 11-04-2003 14:56 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 11:40
Anoniem: 35513 schreef op 11 april 2003 @ 00:18:
Het gaat hier om command line opties. flags.aflag is standaard TRUE, alleen wordt dat op een vreemde manier gedaan:

code:
1
2
    if (!(flags.vflag || flags.aflag || flags.bflag))
        flags.aflag = TRUE;


Natuurlijk wordt aflag niet TRUE gemaakt als aflag TRUE is. :)
Ik zie je probleem hiermee niet.

Er staat volgens mij 'als geen van deze drie flags true is maak dan deze flag true'.

Dat is wat anders dan standaard flag a op true zetten.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

farlane schreef op 11 april 2003 @ 18:47:
[...]


Ik zie je probleem hiermee niet.

Er staat volgens mij 'als geen van deze drie flags true is maak dan deze flag true'.

Dat is wat anders dan standaard flag a op true zetten.
Volgens mij is het:
Als niet vflag of niet aflag of niet bflag waar is dan wordt aflag waar

Als uitkomst zal aflag dus altijd waar zijn.

"The shell stopped unexpectedly and Explorer.exe was restarted."


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

hobbit_be schreef op 11 April 2003 @ 14:12:
[...]


wel dat is eigenlijk gek he? vroeger was code zoveel keren 'beter' dan nu vanwege de mentaliteit : pc is toch snel genoeg. Geloof me het zeker winnen van 1 clocktick in de binnenste loop van een imageprocessing is nog steeds belangrijk (zeker als het aankomt met 'jmp' - gevallen). Waarom denken jullie dat NVidia drivers zoveel beter waren - omdat die dat oog voor detail hadden...
Helemaal mee eens. Bovendien heeft niet iedereen een 10GHz CPU met 20GB aan RAM. Er zijn ook VEEL mensen die wat oudere hardware hebben, omdat die het gewoon nog goed doet (mezelf incluis.)
[..]
We programmers got better compilers, faster pc, dedicated hardware en nog is er niets beters dan Tetris :). Beste code: Win2000 kernel. (Sorry Linux people maar de kernel is het beste stukje code op de planeet), Slechtste: Win9x gevallen...
Ik als linux persoon moet daar toch even op reageren, maar mag ik die sources ook hebben dan? Kan ik het zelf even beoordelen ;)

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 08-12-2024

megamuch

Tring Tring!

Hmm heb dit topic de afgelopen dagen redelijk bijgehouden, en ik als n00b die wel wat kan in php (maar ongetwijfeld functies compleet verkeerd gebruikt) en ooit wel is wat in delphi heeft gemaakt, zou het prettig vinden als deze foute voorbeelden ook in N00b taal werden uitgelegd waarom ze dan zo slechts zijn :)

Bijv.
<insert brakke code hier>

uitleg: omdat de cpu nu 5 x extra moet checken of value $foo nu true of false is en dit 200 mb extra aan geheugen vreet :P

Met die uitleg erbij is het namelijk voor mij (en maybe voor vele anderen) veel eenvoudiger te begrijpen waarom iets fout is :) Leren we allemaal weer van en scheelt een hoop 'moron' topics ;)

dank voor uw aandacht :+

[ Voor 7% gewijzigd door megamuch op 12-04-2003 02:26 ]

Verstand van Voip? Ik heb een leuke baan voor je!


Acties:
  • 0 Henk 'm!

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 11-06 04:49

KompjoeFriek

Statsidioot

LOL @ CyBeR :P

maare, ik wou ff zegge dat dit een heel nuttig topic kan zijn als je het goed gebruikt. Kijk goed naar de "fouten" van anderen, en LEER er van, zodat je een betere code krijgt.

[LOL]
en dus sneller kunt compilen, sneller testen, meer tijd over/meer progs. kunt schrijven :P
[/LOL]

Zelf schrijf ik ook behoorlijk brakke code (nee, ga ik nie posten nee... nou, misschien dan) die ik na het nalezen (lees: verbeteren/optimaliseren) met een kwart aan regels kan verkorten :D, maar als ik die hier post, hij zeker nog wel een kwart korter kan!

Ik heb trouwens ook "geleerd" dat je voldoende commentaar moet opnemen in je code (volgens mij al over gehad in dit topic?) maar ik zie het hier nergens.
ow ja |:( , 't ging hier over brakke code ja ;)
edit:
good one, megamuch. Ben het helemaal met je eens (vooral bij die assembly code)

[ Voor 8% gewijzigd door KompjoeFriek op 12-04-2003 02:16 ]

WhatPulse! - Rosetta@Home - Docking@Home


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-07 20:18
farlane schreef op 11 April 2003 @ 18:47:
Ik zie je probleem hiermee niet.
Ok, dan zal ik het even uitleggen.
Delphi schreef op 11 April 2003 @ 22:31:
Volgens mij is het:
Als niet vflag of niet aflag of niet bflag waar is dan wordt aflag waar

Als uitkomst zal aflag dus altijd waar zijn.
Nee, dat staat er niet. De expressie ! (flags.vflag || flags.aflag || flags.bflag) is equivalent aan (!flags.vflag) && (!flags.aflag) && (!flags.bflag). (Wie weet ook alweer hoe de bijbehorende stelling heet?). Die aflag wordt dus alleen geset wanneer hij op false staat; het is een beetje zinloos om dat te controleren. (Als 'ie op true staat, mag je 'm best nogmaals toekennen). De controle op aflag mag er dus uit en het resultaat wordt dan:
code:
1
2
if( ! (flags.vflag || flags.bflag) )
    flags.aflag = TRUE;

Of, eventueel als alternatief (maar dat is minder mooi):
code:
1
flags.aflag |= ( ! (flags.vflag || flags.bflag));

Acties:
  • 0 Henk 'm!

Anoniem: 13874

Soultaker schreef op 12 April 2003 @ 02:30:
[...]

Ok, dan zal ik het even uitleggen.

[...]

Nee, dat staat er niet. De expressie ! (flags.vflag || flags.aflag || flags.bflag) is equivalent aan (!flags.vflag) && (!flags.aflag) && (!flags.bflag). (Wie weet ook alweer hoe de bijbehorende stelling heet?).
De Morgan is de stelling waar je naar zoekt waarschijnlijk ;)

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-07 20:18
Anoniem: 13874 schreef op 12 April 2003 @ 03:00:
De Morgan is de stelling waar je naar zoekt waarschijnlijk ;)
Inderdaad, die bedoelde ik! :>

Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 10:02
Vaag...
Ik zou die code zo zien:
code:
1
2
    if (!(flags.vflag || flags.aflag || flags.bflag))
        flags.aflag = TRUE;

Eerst de hoogst geneste bekijken. Als er één of meer true zijn, krijg je het volgende:
code:
1
2
    if (!(TRUE))
        flags.aflag = TRUE;

Dan gebeurt er dus niets, omdat ! 'm omdraait.
Als ze allemaal false zijn:
code:
1
2
    if (!(FALSE))
        flags.aflag = TRUE;

Dan wordt aflag dus wel geset.

Maw: als géén true is, wordt aflag true.
Wat doe ik fout in mijn redenering?

Verbouwing


Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
nog sneller:
flags.aflag |= !(flags.vflag||flags.bflag);

Dit komt omdat een if(expressie) { booleanvar=true) } altijd meteen geschreven kan worden als booleanvar|=expressie .

[ Voor 53% gewijzigd door EfBe op 12-04-2003 12:14 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
CyBeR schreef op 12 April 2003 @ 01:52:
Ik als linux persoon moet daar toch even op reageren, maar mag ik die sources ook hebben dan? Kan ik het zelf even beoordelen ;)
zie attached ;) - nee serieus zelfs linux kernel programmeurs zijn daar over eens en ze proberen zoveel mogelijk bepaalde technieken gebruikt in de 'NT kernel over te nemen (behalve dan de GDI geval - wat eigenlijk een wonder van technologie is). In NT kernel zit niets rommel wat wel het geval is de meeste linux gevallen (ik neem aan dat de user geen kernel hoeft te gaan compilen)... Vooral de threading management op NT is fenomenaal beter.

Acties:
  • 0 Henk 'm!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
[offtopic]
Ik heb ooit eens gehoord dat de NT-kernel is gebaseerd op die van Unix. Klopt dit?

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Alarmnummer schreef op 12 april 2003 @ 13:20:
[offtopic]
Ik heb ooit eens gehoord dat de NT-kernel is gebaseerd op die van Unix. Klopt dit?
Nee.

Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
:) kort en krachtig - waarom zouden ze het anders NT noemen als ze het zouden rippen van *NIX. (omdat het M$ is hoor ik mijn rechterschouder zeggen). Nee natuurlijk zijn bepaalde punten wel hetzelfde - je kunt maar x-aantal wegen op voor een kernel die op verschillende architectuur moet draaien. Maar ze zijn daar echt wel met een clean-sheet begonnen. NT en C# (als ze dat nu eens zouden echt cross-platform porten ipv mono) zijn Microsofts beste bijdragen. (oh en de muis met het LED-je mag er ook zijn ;) . En nu krijg ik vast op mijn dak dat ze die allemaal overgekocht hebben :)

Acties:
  • 0 Henk 'm!

Anoniem: 16053

Alarmnummer schreef op 12 april 2003 @ 13:20:
[offtopic]
Ik heb ooit eens gehoord dat de NT-kernel is gebaseerd op die van Unix. Klopt dit?
VMS that is

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
En dat klopt ook niet.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
Dat zou inderdaad wel zeer goed kunnen.
MS heeft nl. één van DEC's belangrijkste programmeurs en schrijver van DEC's VMS besturingssysteem, Dave Cutler weggekocht.
Nouja, Cutler was gefrustreerd bij DEC omdat ze 3 van z'n projecten hadden afgeblazen.
Cutler was echter niet zo onder de indruk van MS. Hij vond pc's maar speelgoed en wilde zich enkel bezig houden met 'echte' computers. Cutler wou dus alleen maar naar MS komen als Gates hem kon garanderen dat hij niet aan PC-besturingssystemen hoefde te werken.
Cutler wou een overdraagbaar OS bouwen voor minicomputers en hij wilde ook z'n eigen programmeursteam meenemen.
Gates stemde ermee in want hij zag Cutler als zeer getalenteerd en een echte aanwinst voor MS.
In 1988 kwam Cutler met z'n DEC team MS binnen en ze begonnen te werken aan een product dat één van MS belangrijkste producten zou worden: NT.
bron: De barbaren van Bill Gates

NT is dus niet gebaseerd op VMS, maar aangezien het van de hand van dezelfde persoon is, zullen er waarschijnlijk wel veel ideeën van VMS in NT zitten.

[ Voor 7% gewijzigd door whoami op 12-04-2003 15:45 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 09-07 11:03

alienfruit

the alien you never expected

Ach. OS/2 blijft toch altijd nog beter ;)

Acties:
  • 0 Henk 'm!

  • WildernessChild
  • Registratie: Februari 2002
  • Niet online

WildernessChild

Voor al uw hersenspinsels

EfBe schreef op 11 April 2003 @ 09:49:
... Echter bij 2 geneste forloops en in de binnenloop constateer je dat je uit de buitenste moet springen is lastiger.
Inderdaad. In C(++) heb je hier hulp-booleans voor nodig, terwijl PHP (eigenlijk een ontzettend smerig taaltje waarin je heel gauw lelijke dingen gaat doen) gewoon een break(n) kent die uit n loops tegelijk springt. Dat wil ik ook in C!

Maker van Taekwindow; verplaats en resize je vensters met de Alt-toets!


Acties:
  • 0 Henk 'm!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Je kan toch ook nog een goto doen ;) (Jumpen naar een label).

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
WildernessChild schreef op 13 april 2003 @ 10:47:
[...]

Inderdaad. In C(++) heb je hier hulp-booleans voor nodig, terwijl PHP (eigenlijk een ontzettend smerig taaltje waarin je heel gauw lelijke dingen gaat doen) gewoon een break(n) kent die uit n loops tegelijk springt. Dat wil ik ook in C!
Je hebt geen hulp-boolean nodig. Je kunt de lus-conditie checken om te kijken of de for voortijdig is afgebroken.

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
OlafvdSpek schreef op 13 April 2003 @ 12:17:
[...]
Je hebt geen hulp-boolean nodig. Je kunt de lus-conditie checken om te kijken of de for voortijdig is afgebroken.
Dit lukt niet als je dit doet:

code:
1
2
3
4
5
6
7
for(int i=0;i<iFoo;i++)
{
    for(int j=0;j<iBar;j++)
    {
        // do something.
    }
}

In de buitenste lus is 'j' undefined.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
EfBe schreef op 13 April 2003 @ 12:42:
In de buitenste lus is 'j' undefined.
Dan zet je toch int j voor de for?

Acties:
  • 0 Henk 'm!

Anoniem: 28958

Beetje dubbelop..., wordt nog vaak fout gedaan...
if(eenOfAndereWaardeHeidsWaarde==True){
dinges;
}

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
Anoniem: 28958 schreef op 13 April 2003 @ 13:53:
Beetje dubbelop..., wordt nog vaak fout gedaan...
if(eenOfAndereWaardeHeidsWaarde==True){
dinges;
}
Wat is daar fout aan?
Je kunt natuurlijk wel
code:
1
2
3
if(eenOfAndereBoolWaarde)
{
}

schrijven in plaats, maar het is niet fout als je daar == True achter zet. Ik vind het persoonlijk in sommige gevallen zelfs duidelijker als die == true daar staat.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Leuk voorbeeld, maar if (a) en if (a == true) zijn niet equivalent.

[ Voor 6% gewijzigd door Olaf van der Spek op 13-04-2003 14:56 ]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
hobbit_be schreef op 11 April 2003 @ 14:12:
We programmers got better compilers, faster pc, dedicated hardware en nog is er niets beters dan Tetris :). Beste code: Win2000 kernel. (Sorry Linux people maar de kernel is het beste stukje code op de planeet), Slechtste: Win9x gevallen...
Heb jij de code gezien dan?
En is de code goed of het ontwerp goed?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

OlafvdSpek schreef op 13 April 2003 @ 14:55:
Leuk voorbeeld.
Maar if (a) en if (a == true) zijn niet equivalent.
idd, die a wordt eerst gecast naar een boolean en daar komt dus true of false uit, en bij die tweede wordt daarna OOK nog eens gekeken of die overeenkomt met true om vervolgens true of false door te geven als resultaat :)

daarnaast is "a" als varname niet echt duidelijk :+

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Erkens schreef op 13 April 2003 @ 14:58:
[...]

idd, die a wordt eerst gecast naar een boolean en daar komt dus true of false uit, en bij die tweede wordt daarna OOK nog eens gekeken of die overeenkomt met true om vervolgens true of false door te geven als resultaat :)
Ook die uitleg klopt niet.
Erkens schreef op 13 April 2003 @ 15:03:
[...]

hoe wel dan?
hier heb ik niets aan en leer ik dus ook niet hoe het wel moet |:(
Ik gaf jou en anderen de gelegenheid zelf de fout te vinden en te verbeteren.

> if (a)

a wordt niet gecast, er wordt gekeken of a niet 0 is.

> if (a == true)

er wordt gekeken of a 1 is

if (a) en if (a != false) zijn wel equivalent

if (2 == true) is bijvoorbeeld false

[ Voor 40% gewijzigd door Olaf van der Spek op 13-04-2003 15:06 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

OlafvdSpek schreef op 13 April 2003 @ 15:00:
[...]

Ook die uitleg klopt niet.
hoe wel dan?
hier heb ik niets aan en leer ik dus ook niet hoe het wel moet |:(

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
OlafvdSpek schreef op 13 april 2003 @ 15:00:
[...]


> if (a == true)

er wordt gekeken of a 1 is
Ben je dat zeker?
Is het niet zo dat er gekeken wordt of a niet gelijk is aan 0 ?
Is True niet equivalent aan alles wat niet gelijk is aan 0 ?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Anoniem: 58296

dit vond ik in mijn oude code:
If Request.Cookies("Username") <> "" Then
If Session("Email") = "" Then
Response.Redirect "login.asp?mlnfvpobpoufnbdnfdufpbsponbponqvloginzpnqprbnpqnupfdubpsfddboifjbdfbhsdutzegfhdgbctisfqidfgyeudvjsbdvuseuyzdevgfuysgduyfgusydgusgydsbvsyudvsubvysbdvubvuysbydvbusbdubsyudgbvsudgdvysguydvjshvusguyvgsu=" & Request.Cookies("Username") & "&l=" & Request("SCRIPT_NAME")
End If
Else
Response.Redirect "default.asp"
End If
Ik denk dat je de string niet zomaar raadt ;)

Of wat dacht je van dit:
...
If topic = "allround" Then
WriteLine "<b>Gent</b><br><font>Een Chinees werd verrassend eerste op het WK in Gent op 1 november l.l. Hij werd eerste voor Ivan Ivan Ivankov een Wit-Rus, met maar enkele tienden van een punt verschil!"
WriteLine "<br>Meer info op <a href=""http://www.worldchampgym2001.com"" target=""llll"">de site van het WK</a>"
ElseIf topic = "team" Then
WriteLine "<b>Gent</b><br><font>Rusland werd verrassend maar 7 de op het WK in Gent op woensdag 31 oktober. Korea werd achtste door de blessure van een van hun turners aan de ringen. Wit-Rusland werd eerste en Amerika 2 de, brons was voor Oekraïne!"
WriteLine "<br>Meer info op <a href=""http://www.worldchampgym2001.com"" target=""llll"">de site van het WK</a>"
ElseIf topic = "hc" Then
... -> een hele pagina lange If Then Else...
Mijn eerste dynamische nieuwspagina ;) ik had toen het nut van databases niet echt door!

[ Voor 54% gewijzigd door Anoniem: 58296 op 13-04-2003 15:32 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

offtopic:
handig reply'en in een edit :X
OlafvdSpek schreef op 13 april 2003 @ 15:00:

Ik gaf jou en anderen de gelegenheid zelf de fout te vinden en te verbeteren.

> if (a)

a wordt niet gecast, er wordt gekeken of a niet 0 is.
ehm, toch moet er gecast worden want if moet een expressie hebben en een expressie kan alleen true of false zijn niet een integer/string of whatever
> if (a == true)

er wordt gekeken of a 1 is
wat als a een string is?
if (a) en if (a != false) zijn wel equivalent
dus (a!=false) != (a==true) :?
if (2 == true) is bijvoorbeeld false
dit is true hoor!
edit:
http://oege.ie.hva.nl/~erkens04/test.php
PHP:
1
2
3
<?
if (2==true){ echo "true"; }else{ echo "false";}
?>

[ Voor 9% gewijzigd door Erkens op 13-04-2003 15:31 ]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
whoami schreef op 13 April 2003 @ 15:18:
[...]

Ben je dat zeker?
Is het niet zo dat er gekeken wordt of a niet gelijk is aan 0 ?
Is True niet equivalent aan alles wat niet gelijk is aan 0 ?
Ja.
Nee, true == 1, true != 0 en true != 2.
Nee.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Erkens schreef op 13 april 2003 @ 15:29:
offtopic:
handig reply'en in een edit :X
Ik wou gezeur over quote in plaats van edit vermijden.
ehm, toch moet er gecast worden want if moet een expressie hebben en een expressie kan alleen true of false zijn niet een integer/string of whatever
Ik heb het over C++. Over welke taal heb jij het?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

OlafvdSpek schreef op 13 April 2003 @ 15:30:
[...]
Ik wou gezeur over quote in plaats van edit vermijden.
[...]

Ik heb het over C++. Over welke taal heb jij het?
java, php, basic, perl etc

Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
OlafvdSpek: Leuk voorbeeld, maar if (a) en if (a == true) zijn niet equivalent.
Zoiets kan je niet opmerken zonder vast te stellen over welke taal het gaat. Je loopt dus vast zodra blijkt dat jullie het over verschillende talen hebben. Je "scherpe" opmerking is dus een beetje te kort door de bocht ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Toen Erkens over strings begon dacht ik daar inderdaad aan ja. (Is eigenlijk de schuld van gang-ster).

Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
OlafvdSpek: Toen Erkens over strings begon dacht ik daar inderdaad aan ja.
Het gaat nog veel verder: wie zegt dat true een keyword is? Misschien is het wel een variabele? Misschien a juist wel een keyword? Misschien is == wel pointer vergelijking en zijn alle variabelen reference types?

Persoonlijk vind ik het allemaal nogal een gezeik, als iemand "expression == true" (in Java/C#) duidelijk vindt, laat hij dan lekker == true schrijven. Het hangt veel af van de expression of dit nuttig is of niet. Het hangt nog meer van de taal af: Java of een taal als PHP maakt nogal wat verschil.

Ik kom in ieder geval wel schokkendere zaken tegen ...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Erkens schreef op 13 april 2003 @ 14:58:
[...]
idd, die a wordt eerst gecast naar een boolean en daar komt dus true of false uit, en bij die tweede wordt daarna OOK nog eens gekeken of die overeenkomt met true om vervolgens true of false door te geven als resultaat :)
C kent geen boolean als type. Booleans zijn standaard gedefineerd als int.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

EfBe schreef op 13 april 2003 @ 17:15:
[...]

C kent geen boolean als type. Booleans zijn standaard gedefineerd als int.
mja, dat kan ik ook niet weten ;)
er was immers geen taal gespecificeerd ;)

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
mbravenboer schreef op 13 april 2003 @ 15:44:
Het gaat nog veel verder: wie zegt dat true een keyword is? Misschien is het wel een variabele? Misschien a juist wel een keyword? Misschien is == wel pointer vergelijking en zijn alle variabelen reference types?
Een pointer vergelijking als je alleen reference types hebt lijkt me niet logisch.
Persoonlijk vind ik het allemaal nogal een gezeik, als iemand "expression == true" (in Java/C#) duidelijk vindt, laat hij dan lekker == true schrijven. Het hangt veel af van de expression of dit nuttig is of niet. Het hangt nog meer van de taal af: Java of een taal als PHP maakt nogal wat verschil.

Ik kom in ieder geval wel schokkendere zaken tegen ...
Ik vind het ook niet zo'n probleem.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
mbravenboer schreef op 13 April 2003 @ 15:36:
Zoiets kan je niet opmerken zonder vast te stellen over welke taal het gaat. Je loopt dus vast zodra blijkt dat jullie het over verschillende talen hebben. Je "scherpe" opmerking is dus een beetje te kort door de bocht ;) .
Bij nader inzien ben ik het daar eigenlijk niet mee eens. ;->
Als de taal undefined is, is elke uitspraak (inclusief die van mij) over die taal waar.

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
OlafvdSpek schreef op 14 April 2003 @ 09:20:
[...]

Bij nader inzien ben ik het daar eigenlijk niet mee eens. ;->
Als de taal undefined is, is elke uitspraak (inclusief die van mij) over die taal waar.
Nee. "Waar" is een toestand die bewijsbaar correct is. Een 'stelling' is bv bewezen waar, maar een hypothese niet, maar een stelling was wel ooit een hypothese.

Uitspraken over materie X, waarbij X undefined is, zijn niet 'waar', ze zijn nl. niet bewijsbaar waar want je kent X niet, ze zijn hypothetisch gesteld en kunnen waar zijn maar ook niet. De toestand van jouw uitspraken mbt waar/onwaar over X is daarom dan net als X ook undefined.

:P

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • mae-t.net
  • Registratie: Maart 2003
  • Niet online
Alarmnummer schreef op 12 April 2003 @ 13:20:
[offtopic]
Ik heb ooit eens gehoord dat de NT-kernel is gebaseerd op die van Unix. Klopt dit?
Nee, maar NT 3.51 is wel gemaakt door een aantal voormalige VMS programmeurs (neem voor elke letter in WNT maar eens de vorige letter van het alfabet).

Acties:
  • 0 Henk 'm!

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 11:33

Tomatoman

Fulltime prutser

mae-t.net schreef op 14 April 2003 @ 23:23:
[...]
Nee, maar NT 3.51 is wel gemaakt door een aantal voormalige VMS programmeurs (neem voor elke letter in WNT maar eens de vorige letter van het alfabet).
Hartelijk bedankt voor deze overtuigende en onweerlegbare bewijsvoering. |:(

[ Voor 30% gewijzigd door Tomatoman op 15-04-2003 01:55 ]

Een goede grap mag vrienden kosten.


Acties:
  • 0 Henk 'm!

Anoniem: 27915

EfBe schreef op 13 April 2003 @ 17:15:
C kent geen boolean als type. Booleans zijn standaard gedefineerd als int.
C99 kent stdbool.h, en daarmee het type 'bool' en de values 'true' en 'false'.

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Anoniem: 27915 schreef op 15 April 2003 @ 07:39:
C99 kent stdbool.h, en daarmee het type 'bool' en de values 'true' en 'false'.
jaaaaaaaa C99! ;) Die ken ik uiteraard niet, dus er zal ongetwijfeld meer zijn verbeterd ivm de ansi-C versie van het beroemde boek :)

(overigens levert zowat elke C compiler een #define voor TRUE en FALSE mee, dus ach, :) )

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

Anoniem: 27915

EfBe schreef op 15 April 2003 @ 09:27:
jaaaaaaaa C99! ;) Die ken ik uiteraard niet, dus er zal ongetwijfeld meer zijn verbeterd ivm de ansi-C versie van het beroemde boek :)

(overigens levert zowat elke C compiler een #define voor TRUE en FALSE mee, dus ach, :) )
C99 is de huidige "officiele" versie van ISO C, en is daarmee (geloof ik) ANSI C. ;). Als je bedoelt t.o.v. de vorige ISO versie van C, ja, kleine dingetjes, zo kun je variabelen declareren binnen een loop-scope. Verder kan ik me niet zo snel een belangrijke verandering voor de geest halen.

C:
1
2
3
for (int i = 0; i < 10; i++) {
        ..
}


Vind ik niet echt netjes, dus ik gebruik 't zelf niet...

Overigens levert (leverde) gcc (GNU C compiler, wordt o.a. onder Linux gebruikt) geen macro's mee voor TRUE/FALSE (d.w.z., ik kan hem zelf niet zo snel in een van de standard headers vinden). Wat andere compilers doen weet ik niet.

Acties:
  • 0 Henk 'm!

  • Scarfish
  • Registratie: Maart 2002
  • Laatst online: 06-05 17:53
Ik heb zelf verdomd slechte code geschreven waar ik niet echt tevreden over was :o |:(

Ik dacht dat het een klein progje werd dus had geen zin om het netjes te doen. Nu kreeg ik een methode die echt ontiegelijk groot was en die erg diep ging.
* Scarfish schaamt zich diep

Ben maar eens begonnen met dat hele ding te structureren en overal methodes voor te maken.

Erm...


Acties:
  • 0 Henk 'm!

Anoniem: 63393

Op http://gathering.tweakers.net/forum/list_messages/740630 kwam ik deze tegen:

C++:
1
2
3
4
5
6
7
8
9
10
11
    for(kolom=1;kolom<=7;kolom++){  
        cout  <<setw((7-counter)) <<setfill(' '); 
        for(int rij=1;rij<=counter;rij++){  
            cout << "*" ;  
        } 
        for(rij=1;rij<=counter;rij++){  
            cout << "*" ;  
        } 
        counter++;  
        cout << endl;  
    }


Maar hij tekent wél een piramide! :P

Acties:
  • 0 Henk 'm!

  • PKP B-Man
  • Registratie: November 2002
  • Laatst online: 19-07-2023
Wat me ook wel eens een tijd heeft gekost om achter te komen waarom de code toch werd uitgevoerd terwijl de conditie false was is dit:
C++:
1
2
3
4
if(aboolean==true) ;
{
 [...code...]
}

Een leuk dubbele punt waardoor ie eigenlijk helemaal niets doet met die functie, behalve kijken :) Het is ook leuk om slechts een enkele = teken te gebruiken...

Acties:
  • 0 Henk 'm!

  • Scarfish
  • Registratie: Maart 2002
  • Laatst online: 06-05 17:53
Het is ook leuk om slechts een enkele = teken te gebruiken...
Idd erg leuk. Vooral als je m vergeet op een tentamen |:(
* Scarfish voelt zich erg dom

Erm...


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
8)7

Deze heb ik net gezien in een stored procedure in een Oracle DB:

code:
1
2
3
...aantal SQL statements....
commit;
rollback;


Die 2 laatste statements staan dus achter elkaar en worden alletwee altijd uitgevoerd. De rollback staat niet in een exception-catch blok ofzo, neen. Er gebeurd eerst een commit, dan een rollback. :+

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
whoami schreef op 20 mei 2003 @ 11:56:
8)7

Deze heb ik net gezien in een stored procedure in een Oracle DB:

code:
1
2
3
...aantal SQL statements....
commit;
rollback;


Die 2 laatste statements staan dus achter elkaar en worden alletwee altijd uitgevoerd. De rollback staat niet in een exception-catch blok ofzo, neen. Er gebeurd eerst een commit, dan een rollback. :+
Die rollback wordt toch genegeerd dan?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
Niet genegeerd, maar hij kan idd niet uitgevoerd worden aangezien de gegevens al gecommited zijn.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
hij kan toch best uitgevoerd worden?
na de commit begint een nieuwe transactie. vervolgens wordt de transactie afgebroken. dat er geen statements zijn die niet uitgevoerd hoeven te worden, maakt niet uit.
of niet?

Pas de replâtrage, la structure est pourrie.


Acties:
  • 0 Henk 'm!

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

Ooit in een stuk c code gezien:

int a,b;

/* a en b krijgen een waarde */

a^=b^=a^=b;

Programmeur dacht dat dit sneller zou gaan (swappen van 2 variabelen).
Compiler maakte korte mette met dit, en gebruikte netjes een register om te swappen.

:-)

If you choose to criticise you choose your enemies


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 21-02 17:33
Van dichtbij meegemaakt: iemand had bij een zoekmachine op een website op de 'geen-resultaten-gevonden'-pagina de code van de zoekmachine gecopy-pasted. Gevolg; als er geen resultaten waren gevonden kreeg je een oneindige lus die meer en meer geheugen ging vreten. Tot php er na 30 seconden er een eind aan maakt.

Toen er voldoende gebruikers tegelijk op de site waren ging-ie plat.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Apollo_Futurae schreef op 20 May 2003 @ 18:56:
hij kan toch best uitgevoerd worden?
na de commit begint een nieuwe transactie. vervolgens wordt de transactie afgebroken. dat er geen statements zijn die niet uitgevoerd hoeven te worden, maakt niet uit.
of niet?
Dat bedoelde ik eigenlijk, de rollback heeft geen effect.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Even inhakend op de discussie over if ( a == true ) en if ( a ) te gebruiken:

Ik geloof dat ik dat wel de meest zinloze discussie ooit vind, aangezien er helemaal niet gezegd is over welke taal het gaat.

Om even mbravenboer's punt te staven:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>

typedef enum my_bool_t { 
   a, 
   b 
} my_bool_t;

int main () {
   int true = 169;
   
   printf ( "a is %s", ( ( a == true ) ? "true" : "false" ) );
   return 0;
}

geeft bij mij toch echt
a is false
als output.

Praat dan liever over wat semantisch beter is.

Dan gaat voor mij de
code:
1
if ( a == true )
toch echt door voor de koelkast.

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


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 10-07 15:04
op www.vrom.nl staat een javascript:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script language="JavaScript" TYPE="text/javascript"><!--
  var lastPages = getCookie('last_visited_pages');
  if (lastPages !=null) {
    var lastPages_array = lastPages.split("^^");
  }
  if ('1' == '3884') {
    var new_cookie = savePageList('vrom.nl||1', 4);
    setCookie('last_visited_pages', new_cookie);
  }
  printLVPages2(lastPages_array, 0);
// -->

</SCRIPT>


if '1'=='3884' 8)7
ik snap het niet ...

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 09:02
mocean schreef op 20 May 2003 @ 23:58:
op www.vrom.nl staat een javascript:
code:
1
...


if '1'=='3884' 8)7
ik snap het niet ...
Hier is idd werkelijk helemaal niets van te maken. Moet wel een stom copy/paste foutje zijn oid. Of het is een script dat automatisch door iets is gegenereerd.

Maar de site is sowieso inconsistent gecode. Een van de dingen waardoor je je afvraagt waarom je niet een paar basis afspraken zou maken binnen een team oid voordat je ergens aan begint:

HTML:
1
2
3
4
5
6
7
  <script language="JavaScript" src="css/metrixlab_v2.js" type="text/javascript"></script>
  <SCRIPT TYPE="text/javascript" LANGUAGE="Javascript"><!--
   if (top.document.URL.indexOf('www.minvrom.nl') != -1) {
    top.document.URL=replaceSubstring(top.document.URL,'www.minvrom.nl','www.vrom.nl');
  }  
  // -->
  </SCRIPT>


Tags in hoofd en kleine letters, .js bestanden in een mapje dat css heet en zo staan er nog legio voorbeelden in de source.

[ Voor 16% gewijzigd door Limhes op 21-05-2003 00:20 ]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
EfBe schreef op 14 april 2003 @ 09:46:
[...]

Nee. "Waar" is een toestand die bewijsbaar correct is. Een 'stelling' is bv bewezen waar, maar een hypothese niet, maar een stelling was wel ooit een hypothese.

Uitspraken over materie X, waarbij X undefined is, zijn niet 'waar', ze zijn nl. niet bewijsbaar waar want je kent X niet, ze zijn hypothetisch gesteld en kunnen waar zijn maar ook niet. De toestand van jouw uitspraken mbt waar/onwaar over X is daarom dan net als X ook undefined.

:P
Ik dacht meer aan het geval dat als de taal undefined is, er geen regels gedefined zijn waar die taal aan moet voldoen. En zonder regels valt alles binnen die taal, niet?

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Limhes schreef op 21 May 2003 @ 00:18:
Tags in hoofd en kleine letters, .js bestanden in een mapje dat css heet en zo staan er nog legio voorbeelden in de source.
Als dat JS bestand een stylesheet genereerd kan dat toch?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
OlafvdSpek schreef op 20 mei 2003 @ 22:01:
[...]

Dat bedoelde ik eigenlijk, de rollback heeft geen effect.
Idd, maar dat maakt die code er zeker niet minder ranzig op.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Anoniem: 51640

laats kwam ik op iemand z'n hdd ops chool een script tegen wat hij met .php had benoemt. Echter zat er alleen maar javascript in.
En de mensen van smasung zijn ook lekker slim zie hier
De validatie clientside doen.....

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Anoniem: 51640 schreef op 21 May 2003 @ 09:23:
laats kwam ik op iemand z'n hdd ops chool een script tegen wat hij met .php had benoemt. Echter zat er alleen maar javascript in.
En de mensen van smasung zijn ook lekker slim zie hier
De validatie clientside doen.....
Doen ze de validatie niet dubbel dan?

Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 31-05 12:14

BdR

TV is gooder then books

Anoniem: 51640 schreef op 21 May 2003 @ 09:23:
En de mensen van smasung zijn ook lekker slim zie hier
De validatie clientside doen.....
ja, dat is inderdaad slim, want zo voorkom je dat de server onnodig cpu tijd verspilt aan onzinnige aanvragen :{ dus..

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Acties:
  • 0 Henk 'm!

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 01:57

Delphi32

Heading for the gates of Eden

...

[ Voor 100% gewijzigd door Delphi32 op 21-05-2003 10:27 . Reden: Domme opmerking, zat verkeerd te kijken :) ]


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 25-06 13:32

koli-man

Bartender!!!!

Ik weet niet of het "ranzige code" is maar ik doe zelf altijd if(blaat!=NULL){ doe iets; }; i.p.v.
if(blaat){ doe iets;};
Tja kweet ook niet waarom

[ Voor 5% gewijzigd door koli-man op 21-05-2003 10:30 ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
koli-man schreef op 21 mei 2003 @ 10:29:
Ik weet niet of het "ranzige code" is maar ik doe zelf altijd if(blaat!=NULL){ doe iets; }; i.p.v.
if(blaat){ doe iets;};
Tja kweet ook niet waarom
Dat heeft niets met ranzige code te maken hoor. (Een beetje hetzelfde verhaal als if(bVar == true) vervangen door if(bVar) ).
Ikzelf vind jouw manier ook duidelijker, en gebruik die dan zelf ook.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:48
BdR schreef op 21 mei 2003 @ 10:10:
[...]

ja, dat is inderdaad slim, want zo voorkom je dat de server onnodig cpu tijd verspilt aan onzinnige aanvragen :{ dus..
Idd, maar dat maakt het wel mogelijk om de validatie te omzeilen. Als je safe wilt spelen, dan moet je de validatie ook op server-niveau doen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • xtra
  • Registratie: November 2001
  • Laatst online: 07-06 16:44
Limhes schreef op 21 May 2003 @ 00:18:
[...]


Hier is idd werkelijk helemaal niets van te maken. Moet wel een stom copy/paste foutje zijn oid. Of het is een script dat automatisch door iets is gegenereerd.
Een gegenereerd script inderdaad. Op de pagina http://www.vrom.nl/pagina.html?id=6992 is de voorwaarde wel waar.
code:
1
2
3
4
  if ('6992' == '6992') {
    var new_cookie = savePageList('Groene Hart ||6992', 4);
    setCookie('last_visited_pages', new_cookie);
  }

Persoonlijk zou ik het server-side regelen.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

whoami:
Dat heeft niets met ranzige code te maken hoor. (Een beetje hetzelfde verhaal als if(bVar == true) vervangen door if(bVar) ).
Ikzelf vind jouw manier ook duidelijker, en gebruik die dan zelf ook.
Sterker nog, meestal evalueren de volgende expressies ook "waar", dus dan er is ook nog 's een degelijk verschil :)
code:
1
2
(0 != NULL)
(false != NULL)

i.t.t. de expressies
code:
1
2
(0)
(false)
etcetera.

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


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
In deze draad kwam ik de volgende code tegen om twee versienummers te vergelijken ("2.2.1" vs. "2.2.4" ofzo).
Visual Basic:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Function DeGrootste(inp1 As String, inp2 As String) As Integer
    'als inp1 grootste dan waarde 1
    'als inp2 grootste dan waarde 2
    'anders waarde 0
    Dim p1 As Integer
    Dim p2 As Integer

    DeGrootste = 0
    p1 = InStr(inp1, ".")
    p2 = InStr(inp2, ".")
    While p1 > 0 And p2 > 0 And DeGrootste = 0
        If Mid(inp1, 1, p1 - 1) > Mid(inp2, 1, p2 - 1) Then
            DeGrootste = 1
        Else
            If Mid(inp1, 1, p1 - 1) < Mid(inp2, 1, p2 - 1) Then
                DeGrootste = 2
            End If
        End If
        
        inp1 = Mid(inp1, p1 + 1)
        inp2 = Mid(inp2, p2 + 1)
        p1 = InStr(inp1, ".")
        p2 = InStr(inp2, ".")
    Wend

    If DeGrootste = 0 Then
        If p1 = 0 Then
            If p2 = 0 Then
                If inp1 > inp2 Then
                    DeGrootste = 1
                Else
                    If inp1 < inp2 Then
                        DeGrootste = 2
                    End If
                End If
            Else
                If inp1 > Mid(inp2, 1, p2 - 1) Then
                    DeGrootste = 1
                Else
                    If inp1 < Mid(inp2, 1, p2 - 1) Then
                        DeGrootste = 2
                    End If
                End If
            End If
        Else
            If p2 = 0 Then
                If Mid(inp1, 1, p1 - 1) > inp2 Then
                    DeGrootste = 1
                Else
                    If Mid(inp1, 1, p1 - 1) < inp2 Then
                        DeGrootste = 2
                    End If
                End If
            End If
        End If
    End If

    If DeGrootste = 0 Then
        If p1 > 0 Then DeGrootste = 1
        If p2 > 0 Then DeGrootste = 2
    End If
End Function


Woei!!!

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Dinictus208
  • Registratie: November 2000
  • Niet online

Dinictus208

Tele romeo

lol,

Zo ken ik er ok nog paar.
Laatst kwam er iemand naar mij toe dat zijn wreed geavanceerd excel VBA ding telkens vastliep en geheugen niet vrijgaf etc.

Dus ik even kijken: bleek dat hij in de sub Worksheet.beforesave iets had gebouwd dat automatisch file ook nog ergens anders wegschreef.

save..save...save...save...save. hee??save save save save save save save, wat duurt dat lang?? save save save save save......

I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 06-07 21:56
O-) Ik ben bezig met een software 3d-engine, en ik had er een FPS-teller in gemaakt:
C++:
1
2
3
4
DWORD time = GetTickCount();
// berg code
DWORD t = time-GetTickCount();
DWORD fps = 1000/t;


Resultaat: de code werkte niet op snelle computers, waar het geheel minder dan 1ms duurde, of GetTickCount op de een of andere manier dezelfde waarde teruggaf (delen door nul B)) *schaam*

Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 31-05 12:14

BdR

TV is gooder then books

MisterData schreef op 23 May 2003 @ 22:42:
O-) Ik ben bezig met een software 3d-engine, en ik had er een FPS-teller in gemaakt:
kweet niet of die FPS teller nu wel zo jofel werkt, want ik neem aan dat je het over deze 3d test hebt. Hij loopt bij mij zeer soepel en snel (amd XP2000, 512MB, geForce3 etc.) maar de FPS geeft 10 aan, en soms 50 (hij knippert heel snel tussen deze 2 waarden)

btw die knup roteert 69 x per minuut (heb het getelt :D) misschien dat je wat aan die info heb..

edit:
die es hier posten over die game :P (of is het alleen een benchmark ofzo)

[ Voor 12% gewijzigd door BdR op 24-05-2003 02:22 ]

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 06-07 21:56
BdR schreef op 24 mei 2003 @ 02:19:
[...]

kweet niet of die FPS teller nu wel zo jofel werkt, want ik neem aan dat je het over deze 3d test hebt.
Jahoe kom je daar nou weer terecht?
Hij loopt bij mij zeer soepel en snel (amd XP2000, 512MB, geForce3 etc.) maar de FPS geeft 10 aan, en soms 50 (hij knippert heel snel tussen deze 2 waarden)
Je hebt denk ik de versie van gisteren of vandaag? Anders moet je nog een keertje downloaden, nieuwe heeft ook backface culling enn dat scheelt een hoop...
btw die knup roteert 69 x per minuut (heb het getelt :D)
Hoe heb je dat gedaan dan :P
misschien dat je wat aan die info heb..

edit:
die es hier posten over die game :P (of is het alleen een benchmark ofzo)
Is verder geen benchmark ofzo, maar tis ook geen spel. Tis meer een soort library, een port van idx3dIII (www.idx3d.ch). Gewoon om es wat te klooien met 3D, maar het lukt al aardig (heb al lighting, texturing, phongshading, envmapping+een hele object en texture factory).

Wat 'ie nu doet is gewoon tellen hoe lang dit frame duurde, en dan 1000/tijd doen. Is niet zo netjes, ik denk dat ik er even een gemiddelde-teller in ga maken, die dus de laatste tien waarden bijelkaar optelt en zo de framerate bepaald :)

[ Voor 25% gewijzigd door MisterData op 24-05-2003 07:35 ]


Acties:
  • 0 Henk 'm!

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 11-07 12:44

johnwoo

3S-GTE

MisterData schreef op 24 mei 2003 @ 07:33:
[...]

Wat 'ie nu doet is gewoon tellen hoe lang dit frame duurde, en dan 1000/tijd doen. Is niet zo netjes, ik denk dat ik er even een gemiddelde-teller in ga maken, die dus de laatste tien waarden bijelkaar optelt en zo de framerate bepaald :)
Wat op zich efficienter is (denk ik), is om het juist andersom te meten. Nu meet je de tijd per aantal frames, en zat dat om naar fps. Volgens mij kun je beter gewoon direct het aantal frames per tijdseenheid bepalen. Neem voor die eenheid 1 seconde, dan hoef je ook niks meer om te rekenen :) En een increment instructie per frame geeft vrijwel geen overhead (iig stukken minder dan 2 GetTickCount calls). In je code waarin je gameticks vs tijd managet, zorg je dan dat je iedere seconde die waarde ophaalt en weer op 0 zet.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Acties:
  • 0 Henk 'm!

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

OlafvdSpek schreef op 21 May 2003 @ 09:39:
[...]

Doen ze de validatie niet dubbel dan?
Ja, dat doen ze ook:
http://www.samsung.com/Pr...s/DiskManager_process.asp
;)

"The shell stopped unexpectedly and Explorer.exe was restarted."


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 06-07 21:56
johnwoo schreef op 27 mei 2003 @ 16:43:
[...]

In je code waarin je gameticks vs tijd managet, zorg je dan dat je iedere seconde die waarde ophaalt en weer op 0 zet.
Zit er (nog) niet in.. nu doet 'ie gewoon PeekMessage, en als er geen message is, dan wordt er een frame getekend.... dit is tot nu toe de handigste oplossing, en het werkt op zich goed :)

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Ik heb ook nog een voorbeeld van baggercode. Het is een script waar iemand anders aan begonnen was en wat ik af mocht maken. Het script moest afspraken met klanten opslaan.

Er is een centrale pagina met vijf horizontale panes die je zichtbaar en onzichtbaar kunt maken. De hele pagina is eigenlijk een groot form en elke actie die je doet resulteert in een POST request, dus een pagina terug gaan of vernieuwen is niet mogelijk.
De ramp is compleet met het feit dat alle binnenkomende vars ook weer automatisch in het form gezet worden als hidden vars. Dus het script staat vol met statements als:
code:
1
$hidvals[p_klselect] = DO_NOT_PRINT;


Vergeet je zo iets dan werkt je form heel raar na de tweede keer.

Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 31-05 12:14

BdR

TV is gooder then books

nog iets uit de practijk..:
Delphi:
1
2
3
4
if (str <> '001') or (str <>'002') then
  strTotal := strTotal + str
else
   strTotal :=strTotal +'';

een compleet overbodige IF-statement, want altijd TRUE (of de ene is ongelijk, of de andere). Hij komt dus nooit bij regel 4, er zal altijd regel 2 worden uitgevoerd.

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

BdR schreef op 02 July 2003 @ 09:51:
nog iets uit de practijk..:
Delphi:
1
2
3
4
if (str <> '001') or (str <>'002') then
  strTotal := strTotal + str
else
   strTotal :=strTotal +'';

een compleet overbodige IF-statement, want altijd TRUE (of de ene is ongelijk, of de andere). Hij komt dus nooit bij regel 4, er zal altijd regel 2 worden uitgevoerd.
Ach - dat soort dingen worden er door de optimizer wel uitgehaald...

Nog een leuk voorbeeldje gegenereerde code (php dit keer).
PHP:
1
2
3
4
5
6
7
$item = $pageitems;
while(--$item) {
   $printed += 1;
}
if($printed >= $pageitems) {
   echo getNextBtn();
}


In dat loopje hoort eigenlijk een mysql_fetch en zo, maar de weergave ervan stond uit. |:(

Localhost, sweet localhost

Pagina: 1 ... 3 ... 11 Laatste

Dit topic is gesloten.

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes.