[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 ... 4 ... 11 Laatste
Acties:
  • 18.984 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 09:27

Kaastosti

Vrolijkheid alom!

Ik heb ook nog een leuke.. net helemaal zelf gedaan (en gelukkig gevonden):
PHP:
1
2
3
4
5
6
7
8
9
echo $username."<br>";
if(!is_null($username)){
  include('dbconnect.php');
  $result = mysql_query("SELECT password FROM users WHERE username=".$username."");
  while($row = mysql_fetch_object($result)){
  blahblah
  blahblah
  }
}


En dat ding maar gillen dat die $username niet bekend is, terwijl ik 'm toch netjes echo, waar een goed resultaat uit komt. Wat blijkt...

in dbconnect.php wordt voor de database _ook_ $username gebruikt, waar ik 'm netjes op 'root' zet. AAAAAAARGH dom dom dom |:( ...kost je toch weer 10 minuten puzzelen 8)7

[ Voor 9% gewijzigd door Kaastosti op 02-07-2003 12:36 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 14-09 07:49
Dit kom ik net tegen @work:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
public class .. extends ...
{
public int save_pdf_floating_offset,vulling_pdf_floating_offset, opi_object,i_pagfaktor,
mstpage_objnr, xref_max, xref_index, pdf_images, pdf_paginanr, max_blokkenkeys,
hor_vulling_index,  t_regelsindex, h_index,hv_pagfaktor,b_paginas,vert_vulling_index,
t_regelsindexmax, i_blokbreedte, i_paginabn, i_rotatie, t_fontsmax, i_font,i_rechts,
max_links, i_fontsmax, max_rechts, c_straal,t_xref_max,
v_index,  begin_v_index, eind_v_index, begin_h_index,
eind_h_index, max_boven, vert_index, hor_index, max_onder, begin_hoek_index,
ver_index, max_index, tab_index,  i_index, c_links, c_bovenkant

etc, etc


In totaal worden er bijna 200 integers, ruim 70 booleans, 100 strings en 60 chars zo gedefinieerd, samen met een handje van FileOutputStreams, Vectoren, doubles en files. Allemaal als globale variabelen, ja.

:X

[ Voor 2% gewijzigd door Brainstorm op 14-07-2003 13:05 . Reden: ff layout redden ]

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
hehe ut is wat, als je geen arrays, collections of structs kent. :P

Sterkte, NoLife.

[ Voor 10% gewijzigd door EfBe op 14-07-2003 13:12 ]

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


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 16:19

alienfruit

the alien you never expected

zoiets had je nou mooi in een object kunnen opslaan :)

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 13:17

Dido

heforshe

kvdveer schreef op 02 July 2003 @ 12:08:
Ach - dat soort dingen worden er door de optimizer wel uitgehaald...
Dat is nou net het gevaar met brakke if constructies... alles lijkt te wreken, maar bedoelde de programmeur ook wat ie opschreef?

In het genoemde voorbeeld denk ik dat er iets bedoeld werd als IF A<>1 AND A<>2, ipv OR. Heel vaak zie je dat mensen niet overweg kunnen met elementaire logische begrippen als AND en OR.

(Ik wil alle rode en alle blauwe auto's selecteren:
code:
1
SELECT * FROM tabel WHERE kleur="blauw" AND kleur="rood"

En er dan nog niet achter komen waarom ie niks teruggeeft.

Optimizers die dit soort dingen automatisch verbeteren zijn imho een ramp.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Behalve het soort optimizer dat het automatisch verbetert door de dader te ontslaan, natuurlijk :)

Als je dit fout doet moet je niet in de buurt van programma's komen.

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


Acties:
  • 0 Henk 'm!

  • The_Eternal
  • Registratie: Oktober 2001
  • Laatst online: 26-08 16:59
Heb ook wel is leuke code gezien in een quake3 mod ergens ;)
een of andere vage gast die er delen van had geprogrammeerd (weet niet precies meer hoe het ging maar hier zijn paar voorbeelden ;)

waar is de koe?! }:O
code:
1
2
    int   xmoo;
    int   ymoo;


jaja die had ook indenteren geleerd |:(
code:
1
2
3
4
5
6
7
   if   (xmoo > 10)
                       {
      if(ymoo > 10)
{
               // doe iets
                 }
}


en dat ging door voor HOPEN code regels :S
ben er uiteindelijk nog wijs uit geworden ook..... 8)7
(had wel een week bij een psychiater nodig ofzow maja :+)

Uhm... ja


Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
NoLife schreef op 14 July 2003 @ 13:04:

etc, etc
[/code]
In totaal worden er bijna 200 integers, ruim 70 booleans, 100 strings en 60 chars zo gedefinieerd, samen met een handje van FileOutputStreams, Vectoren, doubles en files. Allemaal als globale variabelen, ja.
:X
wel grappig dat ie/ze allemaal mooi heeft geprefixed :).

Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
hobbit_be schreef op 14 juli 2003 @ 20:00:
[...]
wel grappig dat ie/ze allemaal mooi heeft geprefixed :).
Maar wel met random prefixes :) soms i_, soms niks, some t_... :)

Die code is ong van dezelfde kwaliteit als het 1e javascript dat mijn vrouw ooit bouwde. Ze wist niet dat er loop constructies als for en while bestonden maar wel hoe je een timer moest zetten (ooit eens ergens gelezen). Dus die zette een timertje voor de volgende loop iteratie. Geen grapje :)

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


Acties:
  • 0 Henk 'm!

  • SkyStreaker
  • Registratie: Juni 2002
  • Laatst online: 14-09 22:17

SkyStreaker

Move on up!

LauPro schreef op 29 March 2003 @ 13:41:
Houd op over docenten VB :X, op mijn vorige toets moest ik een bepaalde oefening uitvoeren met het volgende statement: Een Do-Went lus
offtopic:
En ik ze nog vertellen dat dat helemaal niet kon, nou dat moest ik dan maar gaan melden bij degene die de toetsen had gemaakt. Donder dan maar op dacht ik toen, moet ik een beetje jullie wijzen op dit soort dingen :r.
Tuurlijk niet ben je gek?! Een beetje eigenbelang tonen is natuurlijk te gek voor woorden...

Altijd klagen over zulke dingen, menselijke fouten gebeuren nou eenmaal. Als je nooit wat zegt, wordt er ook nooit wat gedaan. Men kan niet alles ruiken wat er mis is he?

Fractal Define R6 | ASRock B650M PG Lightning | AMD 8700G | G.Skill Flare X5 6000-CL30-38-38-96-134 (10ns) 2x16GB | Noctua NH-D15 Black | Seasonic Focus PX-750 Platinum | 4x2TB Kingston Fury NVMe | Shitty Gigabyte 24" Curved TN ding


Acties:
  • 0 Henk 'm!

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Dat OO-prgrammeren in C++ is leuk, maar 't is wel een heel geklooi om bij je 'private' variabelen te komen. Onder het motto 'eenvoud siert de kunst' is dit toen als volgt opgelost:
C++:
1
#define private public


Of, ooit eens gezien tijdens een software-project op school: Toen was er een groep met een java-applicatie, die ong. 1 keer per minuut een NullPointerException kreeg. Omdat dit gebeurde in een andere thread (zodat de hoofd-thread niet op z'n gat ging), en omdat ze niet zo snel uit konden vogelen waar de Exception gebeurde, hebben ze het toen als volgt opgelost:
Java:
1
2
3
4
5
6
7
8
9
public static void main(String args[]){
  try{
    //
    //Hier loopt het hele programma
    //
  }catch(NullPointerException e){
    //Don't print anything
  }
}


Gewoon 1 dikke try/catch die alle errors stilletjes afvangt :D

Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
EfBe schreef op 15 July 2003 @ 08:57:
[...]
Maar wel met random prefixes :) soms i_, soms niks, some t_... :)
idd - duidelijk een teken van creativiteit :).
Die code is ong van dezelfde kwaliteit als het 1e javascript dat mijn vrouw ooit bouwde. Ze wist niet dat er loop constructies als for en while bestonden maar wel hoe je een timer moest zetten (ooit eens ergens gelezen). Dus die zette een timertje voor de volgende loop iteratie. Geen grapje :)
[/quote]

dat vind ik eigenlijk heel mooi - met wat je kent het probleem oplossen - is heel menselijks..

Acties:
  • 0 Henk 'm!

  • Red Sonja
  • Registratie: Juli 2001
  • Laatst online: 30-04 11:42

Red Sonja

Linux: power to de wortel

Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if( -e "$dir$file")
{
        if($updatePrices)
        {
            if(my $result = $dbh->query($Delete))
            {
        
                if($result = $dbh->query($import))
                {
       }#einde if updateprices
                --knip--
                        }
                --knip--
                }
        if($updatePrices)
        {
}
        }#einde if updateprices

Ooit es tot erg laat doorgewerkt. Wou een functie toevoegen zodat je via --noUpdatePrices het updaten van de prijzen kon uitzetten, het werkte toen niet, ging er de volgende dag wel mee verder. :O

De volgende dag kreeg ik een hartverzakking toen ik erachter kwam wat ik fout had gedaan. |:( }:O 8)7

And the beast shall be made legion. Its numbers shall be increased a thousand thousand fold. The din of a million keyboards like unto a great storm shall cover the earth, and the followers of Mammon shall tremble. from The Book of Mozilla, 3:31


Acties:
  • 0 Henk 'm!

  • WildernessChild
  • Registratie: Februari 2002
  • Niet online

WildernessChild

Voor al uw hersenspinsels

LOL @ MrBucket...
Zo kende ik iemand die net Delphi had... kon wel sleuren & pleuren maar niet echt programmeren. Die maakte variabelen met onzichtbare TEdit's, arrays met onzichtbare TListBoxen enzovoort... |:(

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


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 16:19

alienfruit

the alien you never expected

WildernessChild, vind dat eigenlijk nog best wel slim bedacht, als je niet bekend bent met arrays en variables e.d. :)

Acties:
  • 0 Henk 'm!

  • Solid Seal
  • Registratie: September 2001
  • Laatst online: 03-09 08:34

Solid Seal

3D Printer N00b

code:
1
2
3
4
5
6
7
10 Screen 2
20 For i=1 to 300 step 2
30 Circle (100-a,100+b),i,i
40 Next i
50 a=a+1
60 b=b-1
70 Goto 20

(Weet eigenlijk nieteens of het werkt :D ..Qbasic is al zo'n tijd terug :) )

Zo .. hiermeer wil ik laten zien dat iedereen op zijn eigen manier iets neerzet..
Dus waarom jullie lopen te zeuren van, vooral in eertse pagina, die stagiare die en dat.. nou hartstikke jammer dan dat hij/zij dat zo doet .. iedereen doet het op zijn of haar manier ....

Jullie zijn er, als profs :+ , om hun erop te wijzen dat het ook anders kan i.p.v hier een beetje te zeggen dat het he-le-maal fout of overbodig is.

En mmm... wie zegt dat zij het fout hebben .. misschien posten jullie wel dingen die je zelf heb gemaakt .. en dan hard zeggen: nah, die gozah ken er helemaal niks van ....

Zo, ik heb gespro.... getiept :)

code:
1
10 if solidsealheeftgetiept = 1 then end

:P

Verwijderd

Ik laatst een klein progje geschreven in java om een string (max length 31) om te zetten naar hexadecimaal, met eventuele trailende 00 en. Dit leverde de volgende ranzige functies op, die veel handiger en korter konden (had geen zin om de if'jes uit te vogelen in functie 2 om de uitvoer goed te hebben..) :P

Ik heb een paar regels weggehaald om de post niet te lang te maken.. Ook is er geen gebruik gemaakt van StringBuffer maar dat boeit me niet :). Het programma werkt en voor maximaal 32 iteraties vind ik het onzin om een String anders om te zetten.

Java:
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
    public static void zetOm(String s){
        int i = 0;
        String tmp = "";
        for (i = 0; i < s.length(); i++){
            tmp += Zucht.zetOm2(s.charAt(i));
        }
        
        for (; i< 31; i++){
            tmp+="00";
        }
        System.out.println(tmp);
    }
    
    public static String zetOm2(char i){
        int blaat = i;
        String out = "";
        switch (blaat / 16){
            case 0:
                 ....
            case 9:
                out += "" + blaat/16;
                break;
            case 10:
                out += "A";
                break;
                ...
            case 15:
                out += "F";
                break;
            default:
                System.out.println("delen nie goed!!!1" + (char) i + ", " + (int) i);
                System.exit(0);
        }
        
        switch (blaat % 16){
            case 0:
               ...
            case 9:
                out += "" + blaat%16;
                break;
            case 10:
                out += "A";
                break;
                ...
            case 15:
                out += "F";
                break;
            default:
                System.exit(0);
        }        
        return out;
    }



Waarschijnlijk is het zelfs mogelijk om gehele woorden (of karakters) om te zetten in java naar hex middels een api call, maar dit voldeed wel, en het werkte redelijk. Let vooral op de klassenaam :+ ("Zucht").

Weer een stuk vakcode afgeleverd!!!1 Je had trouwens niet moeten zien wat voor ranzige oplossingen ik meer heb bedacht.. ;).

Vooral de code in de laatste functie kon stukken makkelijker door wat if'jes. Ook de default's zijn gruwelijk netjes gedaan, maar dat boeit niet voor een simpel progje om string naar hex te gaan :).

  • mkleinman
  • Registratie: Oktober 2001
  • Laatst online: 08:38

mkleinman

8kWp, WPB, ELGA 6

Verwijderd schreef op 11 April 2003 @ 14:55:

In SQL & PL/SQL :


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!!!
Zo ken ik er nog 1, kwam laatst in code hetvolgende tegen

code:
1
2
3
4
5
6
7
8
9
10
11
12
declare
   l_new_id number;
begin
   
   select blaat_seq.nextval into l_new_id from dual;

-- wanneer error.
exception
    when others
    then
       select max(id)+1 into l_new_id from <tabelnaam>;
end;


Voor de plsql'ers onder ons moet nu het bloed onder je nagels wegkruipen :P

Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

EfBe schreef op 15 July 2003 @ 08:57:
Die code is ong van dezelfde kwaliteit als het 1e javascript dat mijn vrouw ooit bouwde. Ze wist niet dat er loop constructies als for en while bestonden maar wel hoe je een timer moest zetten (ooit eens ergens gelezen). Dus die zette een timertje voor de volgende loop iteratie. Geen grapje :)
Enigszins late reactie, maaruh: dat is wel typisch een geval van 'de voor- en nadelen van creatieve geesten'. Soms kom je code tegen waarvan je niets begrijpt, tot je erachter komt dat het veel simpeler had gekund, maar dat je toch ook wel moet erkennen dat de oplossing buitengewoon inventief is.

Wie trösten wir uns, die Mörder aller Mörder?


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
mkleinman64 schreef op 21 augustus 2003 @ 18:14:
[...]


Zo ken ik er nog 1, kwam laatst in code hetvolgende tegen

code:
1
2
3
4
5
6
7
8
9
10
11
12
declare
   l_new_id number;
begin
   
   select blaat_seq.nextval into l_new_id from dual;

-- wanneer error.
exception
    when others
    then
       select max(id)+1 into l_new_id from <tabelnaam>;
end;


Voor de plsql'ers onder ons moet nu het bloed onder je nagels wegkruipen :P
Ik snap het niet hoor. Een sequence zorgt er toch voor dat je altijd een unique value hebt. Dus die value kan nooit 2x voorkomen.
Maar die gast gaat wel zelf zijn integriteit mogelijk gaan vernaggelen door met die select max() te gaan prutsen.
Djeez. Vage gasten.

https://fgheysels.github.io/


Verwijderd

een slecht voorbeeld?
mensen die code zo schrijven

if($a==1){
donothing}
else{ doeiets();
doenogiets();}

of terwijl
if($a!=1)
{
doeiets();
doenogiets();
}

of

start:
if a=1 then
goto start:
endif

Acties:
  • 0 Henk 'm!

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 14:37
Ik kwam deze ranzige manier van array's uitlezen tegen:

Java:
1
2
3
4
5
6
try {
    int i = 0;
    while(true)
        a[i++].f();
    } catch(ArrayIndexOutOfBoundsException e) {
}

[ Voor 3% gewijzigd door JeroenTheStig op 05-09-2003 08:57 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
Jawadde, wie haalt het in z'n hoofd om zo'n (ranzige) constructie op te zetten terwijl een simpel for-loopje gewoon veel sneller , duidelijker, en eenvoudiger is?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04 20:48
whoami schreef op 05 september 2003 @ 09:00:
Jawadde, wie haalt het in z'n hoofd om zo'n (ranzige) constructie op te zetten terwijl een simpel for-loopje gewoon veel sneller , duidelijker, en eenvoudiger is?
En dit is, denk ik, nog een bewuste keuze geweest ook. De gedachte is dan een performance overweging: als java toch controleert of ik de array niet uitloop, waarom zou ik dat dan zelf ook nog doen?

Maar het blijft ranzig! :r

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


Acties:
  • 0 Henk 'm!

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06 10:52
Ik heb zelfs artikelen gelezen waarin het gebruik van exceptions voor/ipv reguliere flowcontrol wordt beschreven.

Ik vind het ranzig, maar er valt wel iets voor te zeggen. Als je je code zo opschrijft dat je weet dat er altijd een exception op zal treden en hier je flowcontrol op baseert kan dat in sommige situaties beter zijn dan code zo op te schrijven dat je denkt dat er nooit een exceptie op zal treden en dan voor het gemak daar ook maar geen exception handeling voor progt. Je bent op zo'n manier heel bewust bezig met dat exceptions kunnen en zullen optreden en dat is beter dan ze maar helemaal vergeten.

He who knows only his own side of the case knows little of that.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:54

crisp

Devver

Pixelated

flow control dmv exception handling zal zeker overhead met zich meebrengen aangezien de code in een soort van 'protected mode' uitgevoerd moet worden.
Het eerder genoemde voorbeeld kan beter zo geschreven worden, sneller en duidelijker (mits volgorde niet uitmaakt):
JavaScript:
1
2
3
4
var i = a.length;
while (i-- > 0)
  a[i].f();
}

(even JS omdat ik geen java ken ;) )

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
crisp schreef op 05 September 2003 @ 11:32:
flow control dmv exception handling zal zeker overhead met zich meebrengen aangezien de code in een soort van 'protected mode' uitgevoerd moet worden.
Het eerder genoemde voorbeeld kan beter zo geschreven worden, sneller en duidelijker (mits volgorde niet uitmaakt):
JavaScript:
1
2
3
4
var i = a.length;
while (i-- > 0)
  a[i].f();
}

(even JS omdat ik geen java ken ;) )
of gewoon zoals het hoort
Java:
1
2
3
4
for( int i = 0; i < a.length; i++ )
{
    a[ i ].f();
}

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
Daarnaast is het throwen van een exception duurder dan gewoon een if statementje ofzo.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:54

crisp

Devver

Pixelated

rwb schreef op 05 September 2003 @ 11:44:
[...]

of gewoon zoals het hoort
Java:
1
2
3
4
for( int i = 0; i < a.length; i++ )
{
    a[ i ].f();
}
dit is trager om 2 redenen:
1) je vraagt nu elke iteratie de length property uit
2) een afvraging tov 0 is sneller dan een afvraging tov een ander getal

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

crisp schreef op 05 September 2003 @ 11:57:
[...]

dit is trager om 2 redenen:
1) je vraagt nu elke iteratie de length property uit
2) een afvraging tov 0 is sneller dan een afvraging tov een ander getal
En zo?

Java:
1
2
3
4
for(var i in a)
{
    a[i].f();
}

Acties:
  • 0 Henk 'm!

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06 10:52
C++:
1
2
3
4
for( int i = a.length-1; i >= 0; i-- )
{
    a[ i ].f();
}

He who knows only his own side of the case knows little of that.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
crisp schreef op 05 September 2003 @ 11:57:
[...]

dit is trager om 2 redenen:
1) je vraagt nu elke iteratie de length property uit
In een for lus wordt de conditie (het uitlezen van de length property hier dus), slechts 1x uitgevoerd dacht ik, en niet bij iedere iteratie? :?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

whoami schreef op 05 September 2003 @ 12:10:
[...]

In een for lus wordt de conditie (het uitlezen van de length property hier dus), slechts 1x uitgevoerd dacht ik, en niet bij iedere iteratie? :?
Nee alleen als het in het eerste argument staat!

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(arg1; arg2; arg3)
{
}

// wordt elke keer uitgelezen
for( var i = 0; i < a.length; i++ )
{
    a[i].f();
}

// wordt 1 keer uitgelezen
for( var i = 0, j = a.length; i < j; i++ )
{
    a[i].f();
}

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:54

crisp

Devver

Pixelated

whoami schreef op 05 September 2003 @ 12:10:
[...]

In een for lus wordt de conditie (het uitlezen van de length property hier dus), slechts 1x uitgevoerd dacht ik, en niet bij iedere iteratie? :?
In sommige talen misschien wel, maar in javascript wordt de conditie elke iteratie geevalueerd; je kan dus ook dynamische condities opnemen.

sheeponfire: in sommige talen (jaja, weer javascript) krijg je bij dit soort iteraties behalve de properties ook de methods en events terug, en dat wil je niet
RickN: waarom zou je iteratie en conditie los van elkaar uitvoeren, combineren is vaak toch echt sneller.

Uiteraard is er hier een verschil tussen scripttalen en gecompileerde talen. Een compiler zal ws van de meeste constructies toch wel geoptimaliseerde code weten te bakken, maar in scripttalen maken dit soort dingen vaak procenten verschil uit.
Niet dat je dat vaak nodig zult hebben, in dat geval gaat leesbaarheid boven performance, maar soms zal je echt behoefte hebben aan pure performance. Veel testen met verschillende constructies kan je dan veel winst opleveren :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

modbreak: Microsoft-flame + totaal nutteloze post verwijderd.

Uit FAQ's: "Het bedrijf waar Steve Ballmer CEO is heet Microsoft en kort je af met MS. Termen als M$ en Mickeysoft zijn enkel kinderachtige verbasteringen en voegen niets toe. Dus ajb niet doen. Ditzelfde geldt ook voor Linsux etc. Een gefundeerde discussie over pro en cons mag natuurlijk, maar dit is enkel flamen."

[ Voor 73% gewijzigd door curry684 op 05-09-2003 12:26 ]


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

De 'condition' en 'modifier' van een for-loop worden idd iedere iteratie geevalueerd, de 'setup' maar 1 keer. Binnen C++ is dit overigens twijfelachtig, zolang de te evalueren waarde niet als 'volatile' is gedefinieerd mag de compiler de conditions 'cachen' in stack of registers waardoor lookups worden vermeden. Dit is dmv goed gebruik van const perfect te sturen.

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Ik kom net een stuk code tegen:

code:
1
2
SELECT BLABLA FROM TABEL WHERE (X=3) AND
(Y=3) OR (Y=4) OR (Y=5)


Terwijl die X=3 voor ieder voorkomen van Y moet gelden |:(
Bovendien presteren dit soort verkeerde queries ook nog eens vreselijk slecht.
En als klap op de vuurpijl zit dit al meer dan een jaar in ons produkt.

* Varienaja huil

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
Varienaja schreef op 05 September 2003 @ 12:32:
Ik kom net een stuk code tegen:

code:
1
2
SELECT BLABLA FROM TABEL WHERE (X=3) AND
(Y=3) OR (Y=4) OR (Y=5)


Terwijl die X=3 voor ieder voorkomen van Y moet gelden |:(
Bovendien presteren dit soort verkeerde queries ook nog eens vreselijk slecht.
En als klap op de vuurpijl zit dit al meer dan een jaar in ons produkt.

* Varienaja huil
Mjah, misschien kan je dat wel onder de noemer 'defensief programmeren' plaatsen?

Zou een
code:
1
... AND Y IN (3, 4, 5)

hier trouwens sneller zijn?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

whoami schreef op 05 September 2003 @ 12:34:
Mjah, misschien kan je dat wel onder de noemer 'defensief programmeren' plaatsen?
Het had zo gemoeten:
code:
1
2
SELECT BLABLA FROM TABEL WHERE (X=3) AND
( (Y=3) OR (Y=4) OR (Y=5) )
Zou een
code:
1
... AND Y IN (3, 4, 5)

hier trouwens sneller zijn?
Volgens mij maakt een stapel OR's of een grote IN niet echt wat uit.

Zelf had ik wel een IN gebruikt, met name bij grote selecties een stuk leesbaarder.

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
Varienaja schreef op 05 September 2003 @ 12:37:
[...]

Het had zo gemoeten:
code:
1
2
SELECT BLABLA FROM TABEL WHERE (X=3) AND
( (Y=3) OR (Y=4) OR (Y=5) )
Idd. Leverde die query dan al die jaren geen foute resultaten op?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

paulgielens schreef op 30 maart 2003 @ 22:12:
Ik zou willen dat iedere programmeur deze boeken doodgebladerd in de kast heeft staan:

- GOF
- Distributed Systems, Concepts and Design
- Patterns of the Enterprise Architect
Heb je ISBN-nummers voor bij? :)

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:50
Verwijderd schreef op 05 September 2003 @ 12:44:
[...]


Heb je ISBN-nummers voor bij? :)
Zoek eens op Amazon ofzo, op basis van de titels en je hebt ze zo gevonden.
Dit topic gaat niet direct over boeken, breng het dus aub niet offtopic.

[ Voor 14% gewijzigd door whoami op 05-09-2003 12:45 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 14:16
Ik weet het, oud topic. Maar toch:
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
<%
function dropdown_list_int(a,b)
  If (a - b = 0) Then
    Response.write("selected=""true""")
  End If
end function
%>

<select name="geb_dag"> 
        <option value="0" <%=dropdown_list_int("0",Session("geb_dag"))%>>Dag</option> 
        <option value="1" <%=dropdown_list_int("1",Session("geb_dag"))%>>1</option> 
        <option value="2" <%=dropdown_list_int("2",Session("geb_dag"))%>>2</option> 
        <option value="3" <%=dropdown_list_int("3",Session("geb_dag"))%>>3</option> 
        <option value="4" <%=dropdown_list_int("4",Session("geb_dag"))%>>4</option> 
        <option value="5" <%=dropdown_list_int("5",Session("geb_dag"))%>>5</option> 
        <option value="6" <%=dropdown_list_int("6",Session("geb_dag"))%>>6</option> 
        <option value="7" <%=dropdown_list_int("7",Session("geb_dag"))%>>7</option> 
        <option value="8" <%=dropdown_list_int("8",Session("geb_dag"))%>>8</option> 
        <option value="9" <%=dropdown_list_int("9",Session("geb_dag"))%>>9</option> 
        <option value="10" <%=dropdown_list_int("10",Session("geb_dag"))%>>10</option> 
        <option value="11" <%=dropdown_list_int("11",Session("geb_dag"))%>>11</option> 
        <option value="12" <%=dropdown_list_int("12",Session("geb_dag"))%>>12</option> 
        <option value="13" <%=dropdown_list_int("13",Session("geb_dag"))%>>13</option> 
        <option value="14" <%=dropdown_list_int("14",Session("geb_dag"))%>>14</option> 
        <option value="15" <%=dropdown_list_int("15",Session("geb_dag"))%>>15</option> 
        <option value="16" <%=dropdown_list_int("16",Session("geb_dag"))%>>16</option> 
        <option value="17" <%=dropdown_list_int("17",Session("geb_dag"))%>>17</option> 
        <option value="18" <%=dropdown_list_int("18",Session("geb_dag"))%>>18</option> 
        <option value="19" <%=dropdown_list_int("19",Session("geb_dag"))%>>19</option> 
        <option value="20" <%=dropdown_list_int("20",Session("geb_dag"))%>>20</option> 
        <option value="21" <%=dropdown_list_int("21",Session("geb_dag"))%>>21</option> 
        <option value="22" <%=dropdown_list_int("22",Session("geb_dag"))%>>22</option> 
        <option value="23" <%=dropdown_list_int("23",Session("geb_dag"))%>>23</option> 
        <option value="24" <%=dropdown_list_int("24",Session("geb_dag"))%>>24</option> 
        <option value="25" <%=dropdown_list_int("25",Session("geb_dag"))%>>25</option> 
        <option value="26" <%=dropdown_list_int("26",Session("geb_dag"))%>>26</option> 
        <option value="27" <%=dropdown_list_int("27",Session("geb_dag"))%>>27</option> 
        <option value="28" <%=dropdown_list_int("28",Session("geb_dag"))%>>28</option> 
        <option value="29" <%=dropdown_list_int("29",Session("geb_dag"))%>>29</option> 
        <option value="30" <%=dropdown_list_int("30",Session("geb_dag"))%>>30</option> 
        <option value="31" <%=dropdown_list_int("31",Session("geb_dag"))%>>31</option> 
       </select>


Vooral dat stukje "If(a - b =0)" _/-\o_ . Dit is dus gemaakt door HBO Informatica studenten 8)7

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:14

gorgi_19

Kruimeltjes zijn weer op :9

Afgezien dat het netter was geweest om het in een loopje te plaatsen, je de session beter kan gebruiken om er een complete datum in op te slaan en er impliciet gecast wordt van string naar integer...

Wat is er mis met die functie? Dat vind ik nu een van de nettere dingen, op het eerste gezicht?

[ Voor 40% gewijzigd door gorgi_19 op 06-04-2004 23:05 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 14:16
If (a - b = 0) lijkt mij een rare variant op If(a = b) :?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:14

gorgi_19

Kruimeltjes zijn weer op :9

DRAFTER86 schreef op 06 april 2004 @ 23:05:
If (a - b = 0) lijkt mij een rare variant op If(a = b) :?
Mja, om daar nu over te vallen? :X 'k zou me dan eerder druk maken om de anderen dingen; echt slecht is het niet. Sterker nog, in deze situatie moet het zelfs op die manier, aangezien "0" niet 0 is, en het me niets zou verbazen als vbscript hierover zou vallen.

[ Voor 23% gewijzigd door gorgi_19 op 06-04-2004 23:06 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 14:16
Natuurlijk mag het wel, toch beetje raar, en dan zoals jij al zei, een loopje was leuk geweest. Maar ik zal hier wel vaker posten komende tijd, heb nog 214 bestanden te gaan :r

a - b = 0 levert toch echt alleen True op als a gelijk is aan b... :?

[ Voor 20% gewijzigd door DRAFTER86 op 06-04-2004 23:08 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:14

gorgi_19

Kruimeltjes zijn weer op :9

DRAFTER86 schreef op 06 april 2004 @ 23:07:
Natuurlijk mag het wel, toch beetje raar, en dan zoals jij al zei, een loopje was leuk geweest. Maar ik zal heir wel vaker posten komende tijd, heb nog 214 bestanden te gaan :r

a - b = 0 levert toch echt alleen True op als a gelijk is aan b... :?
Indien a van het type string is, en geen nummer, zal vbscript iig proberen om er een getal van te maken, en kan de formule uitgevoerd worden. Bij een vergelijking vraag ik het me af of vbscript die omzetting maakt, aangezien je best een nummer met een string kan vergelijken (beiden variant), en dan best kans dat hij valt, aangezien het type verschilt, en dus ook de waarde verschilt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

Globaal irritant:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public boolean remove(Object obj)
{
    boolean found = find((Comparable)obj);
    if (!found)
        return false;
    ListNode nodeToRemove = cursor;
    ListNode beforeNodeToRemove = cursor.getPrev();
    cursor = cursor.getNext();
    cursor.setPrev(beforeNodeToRemove);
    beforeNodeToRemove.setNext(cursor);
    size--;
    return true;
}

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


Acties:
  • 0 Henk 'm!

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 13-07 01:53

Korben

() => {};

silentsnow schreef op 07 april 2004 @ 05:19:
Globaal irritant:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public boolean remove(Object obj)
{
    boolean found = find((Comparable)obj);
    if (!found)
        return false;
    ListNode nodeToRemove = cursor;
    ListNode beforeNodeToRemove = cursor.getPrev();
    cursor = cursor.getNext();
    cursor.setPrev(beforeNodeToRemove);
    beforeNodeToRemove.setNext(cursor);
    size--;
    return true;
}
Hmm dat kan voor een mooie NullPointerException zorgen :)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Acties:
  • 0 Henk 'm!

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
Function geefchilds(parent, level)
Dim arrDBData


    rsData.open "SELECT Naampje, Parent, Link_ID, Url, Beschrijving From 

Links Where Parent="&parent& " Order By Naampje", cnDB, adOpenStatic
On Error Resume Next
    arrDBdata = rsData.GetRows()
    iRecFirst   = LBound(arrDBData, 2)
    iRecLast    = UBound(arrDBData, 2)
rsData.close
    For I = iRecFirst To iRecLast
        If arrDBData(3,I) <> "" Then
            einde = einde & "<br/><br/>"& herhstring
("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", cint(level)) & "<a href=""" & 

arrDBData(3,I) & """ target=""_blank"" class=""link_link"" 

onmouseover=""doTooltip(event,'<b>"&linkje(arrDBdata(0,I))&"</b><br/>"&linkje

(arrDBdata(4,I))&"');"" onMouseout=""hideTip()"">" & arrDbData(0,I) & "</a>" &vbcrLF
        ElseIf arrDBData(1,I) = 0 Then
            einde = einde & "<br/><br/>"& herhstring
("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", cint(level)) & 
"<a onmouseover=""doTooltip(event,'<b>"&linkje(arrDBdata(0,I))&"</b><br/>"&linkje

(arrDBdata(4,I))&"');"" onMouseout=""hideTip()""><font 
class=""link_topcategorie"">" & arrDBdata(0,I) & ":</font></a>"&vbcrLF

        Else
            einde = einde & "<br/><br/>"& herhstring
("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", cint(level)) & 
"<a onmouseover=""doTooltip(event,'<b>"&linkje(arrDBdata(0,I))&"</b><br/>"&linkje
(arrDBdata(4,I))&"');"" onMouseout=""hideTip()"">
<font class=""link_categorie"">" & arrDBdata(0,I) & ":</font></a>"&vbcrLF
        End If

        einde = einde & geefchilds(arrDBData(2,I), level+1)
    Next
If Err.number <> 0 Then
End If
geefchilds=einde
End Function

Eigen brouwsel, maakt een tree uit een database.
Dit roept zichzelf steeds weer aan en als hij aan het einde van een tak zit, springt hij naar de volgende mbv. on error resume next O-)
En het werkt eigenlijk nog vlot ook, daarom niet echt veel zin om het opnieuw te maken :+

Staan veel te veel returns in maar de layout was echt megafucked up

[ Voor 157% gewijzigd door Verwijderd op 07-04-2004 15:40 ]


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 14:10

Robtimus

me Robtimus no like you

Msschien heb ik dit al eens gepost, maar ok, kan nog wel eens.
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def findport(self, portnr):
    found = 0
    while (not found) and (portnr < 65536):
        try:
            self.socket.bind("", portnr)
            # no error, so we have found a free port
            found = 1
        except socket.error:
            # binding went wrong; try the next port
            portnr = portnr + 1
    # found or portnr == 65536
    if (portnr == 65536):
        raise NoPortException
    else:
       self.portnr = portnr
       print "Working on port", self.portnr
"Probeer deze poort te gebruiken, lukt dat niet dan maar de volgende."
Ook dat gebruik van found is wel leuk, blijkbaar was ik vergeten dat er een break statement bestaat :P

Sterker nog, gewoon direct de laatste else clause uitvoeren en returnen... scheelt weer een if-statement (loop afgelopen => portnr == 65536 => error)

[ Voor 12% gewijzigd door Robtimus op 07-04-2004 15:45 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

Korben schreef op 07 april 2004 @ 09:17:
[...]
Hmm dat kan voor een mooie NullPointerException zorgen :)
Hoe precies :?

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 11-09 12:47
Mijn leraar kon een device driver maken voor linux die uit 1 regel bestond; een printer driver, dat was pas slecht.

Wel compact

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 09-09 13:57

pjvandesande

GC.Collect(head);

code:
1
cursor = cursor.getNext();

Acties:
  • 0 Henk 'm!

  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

questa schreef op 07 april 2004 @ 23:03:
[...]


code:
1
cursor = cursor.getNext();
Ik heb te weinig van de code latenz ien :) getNext() verwijst naar het volgende element. Het laatste element wijst terug naar het eerste, dus je hebt een soort loop. Een NullPointer in die code is niet mogelijk op die manier.

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


Acties:
  • 0 Henk 'm!

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 09-09 13:57

pjvandesande

GC.Collect(head);

silentsnow schreef op 08 april 2004 @ 02:03:
[...]


Ik heb te weinig van de code latenz ien :) getNext() verwijst naar het volgende element. Het laatste element wijst terug naar het eerste, dus je hebt een soort loop. Een NullPointer in die code is niet mogelijk op die manier.
|:( true!

Acties:
  • 0 Henk 'm!

  • Pathogen
  • Registratie: April 2004
  • Laatst online: 10:06

Pathogen

Shoop Da Whoop

Een van de meest nutteloze JavaScriptjes die ik ooit heb gebrouwd:
URLopener, geeft een balkje met een button weer waar je de url in ka voegen en vervolgens op Go kan klikken ;)
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
<html>
<head>
  <title>Linux.com</title>
<script language="JavaScript">
function linkURL(url)
{
this.url = url;
http = url.slice(0,4);
if(http != "http")
{
url = "http"+"://"+url
}
window.open(url, "window");
}
</script>
</head>
<body>
<center>
<form name="urlform">
<table border="1">
<th colspan="2">
Typ hier de URL waar je heen wilt gaan:
</th>
<tr>
<td><input type="text" name="url"></td>
<td><input type="button" value="Go!" onClick="linkURL(urlform.url.value)"></td>
</tr>
</table>
</center>
</body>
</html>


P.S.: De code op zich valt wel mee, het NUT ervan alleen...

Acties:
  • 0 Henk 'm!

  • unclero
  • Registratie: Juni 2001
  • Laatst online: 13-09 08:18

unclero

MB EQA ftw \o/

Gruwelijke (eeuwenoude) code:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
inline char AtoH(char c) {
    if('0' <= c && <= '9') return c - '0';
    if('A' <= c && <= 'F') return c - 'A' + 10;
    return 0;
}

void unHex(char *chHex) {
    char *buf;
    for(buf = chHex; *chHex; chHex++) {
        if(*chHex == '%') {
            *buf++ = (AtoH(*++chHex)<<4) + AtoH(*++chHex);
        } else if(*chHex == '+') {
            *buf++ = ' ';
        } else {
            *buf++ = *chHex;
        }
    }
    *buf++ = '\0';
    return buf;
}

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
unclero schreef op 08 april 2004 @ 11:20:
Gruwelijke (eeuwenoude) code:
Dat compiled niet eens.

Acties:
  • 0 Henk 'm!

  • bluuuurgh
  • Registratie: Maart 2004
  • Laatst online: 24-04 11:15
ook in de categorie nuttelooste prog voorbeeld :+

een randomgetalvinder! whoohoo! hij doet eerstegetal + tweedegetal - derdegetal (die alle drie random zijn!) = uitkomst en als uitkomst gelijk is aan randomuitkomst dan stopt ie, ook stopt ie als het maximaal ingestelde berekeningen is bereikt.

en hij zet voor elke som ook nog eens netjes een nummertje ;P

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
<?php
$randomuitkomst=rand(-500, 500);
$nummer=1;
for ($i=1; $i<=1000; $i++)
{
        while($nummer<=1001)
        {
                {
                        $eerstegetal=rand(-200, 200);
                        $tweedegetal=rand(-200, 200);
                        $derdegetal=rand(-200, 200);
                        $uitkomst=$eerstegetal + $tweedegetal - $derdegetal;
                        echo (" <b> " . $nummer . " </b> " . $eerstegetal . " + " . $tweedegetal . " - " . $derdegetal . " = " . $uitkomst . ".");
                        echo ("<BR>");
                }
                $nummer++;
                if($uitkomst==$randomuitkomst)
                {
                        echo("<br>Het ingestelde getal is in " . ($nummer - 1)  . " keer gevonden.");
                        echo("<br>Het getal dat gevonden moest worden was " . $randomuitkomst . ".");
                        exit();
                }
                if($i == 1001 or $nummer == 1001)
                {
                        echo("<br>Het maximaal aantal berekeningen waarin het getal gevonden moet worden is bereikt.");
                        echo("<br>Het getal waar we naar op zoek waren was " . $randomuitkomst . ".");
                        exit();
                }
        }
}
?>

iRacing Profiel


Acties:
  • 0 Henk 'm!

  • Pathogen
  • Registratie: April 2004
  • Laatst online: 10:06

Pathogen

Shoop Da Whoop

Kan je wel merken dat bluuuurgh en ik naats elkaar zitten op school ;)

Acties:
  • 0 Henk 'm!

  • Fairy
  • Registratie: Januari 2001
  • Niet online

Fairy

13kWp

Had ooid bij de kijkshop een zakagenda gekocht. Je kon hierbij ook nog voor veel geld een kabeltje en een diskette kopen om het eea op de pc te zetten en ook aan te passen.

Die software draaide alleen onder DOS en daarnaast, als je wat naar de pc zette, het aanpastte en weer terugzette naar de agenda stond alles DUBBEL in de agenda en je kon het er alleen maar via de agenda er stuk voor stuk met de hand uithalen :D .

Heb de hele rotzooi meteen teruggebracht :)

Acties:
  • 0 Henk 'm!

  • unclero
  • Registratie: Juni 2001
  • Laatst online: 13-09 08:18

unclero

MB EQA ftw \o/

Dan weet ik niet welke compiler jij gebruikt ;). Bij mij doet ie t namelijk nog steeds prima (Turbo C++ was dat destijds :D), en zowel gcc als bcc32 willen deze code nog accepteren, alleen Microsoft 32bit C++ Compiler doet t er niet mee ;).

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


Acties:
  • 0 Henk 'm!

Verwijderd

Een stuk code in een project in Powerbuilder dat ik moest overnemen van een collega.

(p.s. SQLCA is in powerbuilder de standaard transactie, waarbij een transactie in PB ongeveer hetzelfde is als een database connectie in bijv. VB of Delphi )

Het gaat hier over een stuk code waarmee een wijziging in de database moest worden gemaakt, en waarbij alle wijzigingen wel of niet moesten worden doorgevoerd. Zoals jullie allemaal wel zullen weten zijn daar "Begin/Commit/Rollback transaction" voor uitgevonden. Deze collega had daar ook wel eens van gehoord, maar had het een beetje verkeerd toegepast

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Update tabel1 set veld1 = getal where veld2 = 'Blaat' using sqlca ;
if sqlca.sqlcode <> 0 then
  sqlca.rollback
else
  sqlca.commit
end if

Update tabel2 set veld1 = getal where veld2 = 'Blaat' using sqlca ;
if sqlca.sqlcode <> 0 then
  sqlca.rollback
else
  sqlca.commit
end if

Update tabel3 set veld1 = getal where veld2 = 'Blaat' using sqlca ;
if sqlca.sqlcode <> 0 then
  sqlca.rollback
else
  sqlca.commit
end if

... en zo nog een paar wijzigingen...


Het mooiste komt nog.....Helemaal aan het begin van de code stond het volgende statement
code:
1
sqlca.autocommit = true

Acties:
  • 0 Henk 'm!

  • abeker
  • Registratie: Mei 2002
  • Laatst online: 05-05 11:32

abeker

...

unclero schreef op 08 april 2004 @ 13:59:
[...]


Dan weet ik niet welke compiler jij gebruikt ;). Bij mij doet ie t namelijk nog steeds prima (Turbo C++ was dat destijds :D), en zowel gcc als bcc32 willen deze code nog accepteren, alleen Microsoft 32bit C++ Compiler doet t er niet mee ;).
gcc compileert dit ook niet hoor, die ifjes in AtoH zijn niet zoals ze horen (tenzij er een gruwelijke extensie is waarbij deze constructie wel toegestaan wordt). Verder probeer je in unHex een char* te returnen in een void-functie... Verder heb je wel gelijk, het is idd lelijke code >:)

the less one forgets, the less one remembers


Acties:
  • 0 Henk 'm!

  • unclero
  • Registratie: Juni 2001
  • Laatst online: 13-09 08:18

unclero

MB EQA ftw \o/

abeker schreef op 08 april 2004 @ 15:09:
gcc compileert dit ook niet hoor, die ifjes in AtoH zijn niet zoals ze horen (tenzij er een gruwelijke extensie is waarbij deze constructie wel toegestaan wordt). Verder probeer je in unHex een char* te returnen in een void-functie... Verder heb je wel gelijk, het is idd lelijke code >:)
Hmmm, wat is er dan fout aan die ifjes? Bij mijn weten kan dat zo, heeft dat altijd gekunt, en zal dat ook nog altijd wel kunnen ;).

Nog eentje om het af te leren:

Recent (week) sappig stukje Perl in een Template-systeem dat ik had geschreven :D :
Perl:
1
$line =~ s/\<\?db_elif\s+\(\$$table\((.*)\)\\[(.*)\]\)==(.*)\:(.*)\|(.*)\?\>/defined ($tbl_data->{$1})[$2]?(($tbl_data->{$1})[$2]eq$3?$4:$5):"undefined value in $table\($1\)\\[$2\]!"/eg;

[ Voor 4% gewijzigd door unclero op 08-04-2004 16:31 ]

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 14:10

Robtimus

me Robtimus no like you

unclero schreef op 08 april 2004 @ 16:30:
Hmmm, wat is er dan fout aan die ifjes? Bij mijn weten kan dat zo, heeft dat altijd gekunt, en zal dat ook nog altijd wel kunnen ;).
if ('0' <= c && c <= '9') ...

DAT mag wel ja. Die 2e c achterwege laten keurt zowel mijn gcc als TurboC niet goed.

Blijkbaar heeft dat niet altijd gekund...

[ Voor 14% gewijzigd door Robtimus op 08-04-2004 19:08 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
4
5
6
7
#include "stdio.h"
main()
{
    int b=0,c=0,q=60,_=q;for(float i=-20,o,O=0,l=0,j,p;j=O*O,p=l*l,
    (!_--|(j+p>4)?fputc(b?q+(_/3):10,(i+=!b,p=j=O=l=0,c++,stdout)),
    _=q:l=2*O*l+i/20,O=j-p+o),b=c%q,c<2400;o=-2+b*.05);
}


Iemand nieuwsgierig wat deze code doet? Probeer het zelf!
Gemaakt door iemand om zijn code bewust onleesbaar te maken.

[ Voor 7% gewijzigd door Verwijderd op 09-04-2004 02:16 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 09 april 2004 @ 02:13:
code:
1
2
3
4
5
6
7
#include "stdio.h"
main()
{
    int b=0,c=0,q=60,_=q;for(float i=-20,o,O=0,l=0,j,p;j=O*O,p=l*l,
    (!_--|(j+p>4)?fputc(b?q+(_/3):10,(i+=!b,p=j=O=l=0,c++,stdout)),
    _=q:l=2*O*l+i/20,O=j-p+o),b=c%q,c<2400;o=-2+b*.05);
}


Iemand nieuwsgierig wat deze code doet? Probeer het zelf!
Gemaakt door iemand om zijn code bewust onleesbaar te maken.
Dit is de output die ik krijg :?
Afbeeldingslocatie: http://www.limburg.demon.nl/voutput.gif
Heb ik daar al die moeite voor gedaan?
(Er zit overigens een fout in :*) )

My mistake!
Correcte output:
Afbeeldingslocatie: http://www.limburg.demon.nl/voutput2.gif
Mandelbrotje :D
Overigens dien je wel "o" even te initialiseren dan:

code:
1
2
3
4
5
6
7
#include "stdio.h"
main()
{
    int b=0,c=0,q=60,_=q;for(float i=-20,o=0,O=0,l=0,j,p;j=O*O,p=l*l,
    (!_--|(j+p>4)?fputc(b?q+(_/3):10,(i+=!b,p=j=O=l=0,c++,stdout)),
    _=q:l=2*O*l+i/20,O=j-p+o),b=c%q,c<2400;o=-2+b*.05);
}


Zoek de verschillen :X

[ Voor 36% gewijzigd door RobIII op 09-04-2004 02:32 ]

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!

  • Soultaker
  • Registratie: September 2000
  • Nu online
Die code compileert bij mij niet ("error: invalid lvalue in assignment" op regel 6)
...en gek genoeg heb ik GEEN zin om het te debuggen. :P

Acties:
  • 0 Henk 'm!

Verwijderd

Hey dat klopt niet! Het programmaatje laat fractals-plaatje zien in ascii! Bij mij werkt(te) het destijds wel.. kan het nu ff niet controleren.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 09 april 2004 @ 02:31:
Hey dat klopt niet! Het programmaatje laat fractals-plaatje zien in ascii! Bij mij werkt(te) het destijds wel.. kan het nu ff niet controleren.
Had een foutje gemaakt. o != O :*)

Overigens is die code gewoon schaamteloos van het web gejat :+ .
Soultaker schreef op 09 april 2004 @ 02:30:
Die code compileert bij mij niet ("error: invalid lvalue in assignment" op regel 6)
...en gek genoeg heb ik GEEN zin om het te debuggen. :P
Heb ik al voor je gedaan :)

[ Voor 45% gewijzigd door RobIII op 09-04-2004 02:36 ]

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!

Verwijderd

Ok hij werktte dus al.

Ja komt idd van het web.

[ Voor 90% gewijzigd door Verwijderd op 09-04-2004 02:36 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 09 april 2004 @ 02:35:
Ok hij werktte dus al.

Ja komt idd van het web.
Komt van dezelfde pagina als vorige. Output:
Afbeeldingslocatie: http://www.limburg.demon.nl/voutput3.gif

edit:
Snel je post editten he? >:)

[ Voor 17% gewijzigd door RobIII op 09-04-2004 02:40 ]

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!

  • Soultaker
  • Registratie: September 2000
  • Nu online
Cool programma! Netjes gefixed, RobIII.

Acties:
  • 0 Henk 'm!

Verwijderd

Ja ik editte mijn post omdat jij je post editte toen hij wel werkte en maar toen replyde jij me voordat ik zag dat jij replyde! Snap je?

Acties:
  • 0 Henk 'm!

  • Markieman
  • Registratie: December 2001
  • Laatst online: 01-06 11:37
code:
1
2
3
If Not (Not bBooleanWaarde) Then
   'doiets
End If

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Acties:
  • 0 Henk 'm!

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 14-09 13:08

Maasluip

Frontpage Admin

Kabbelend watertje

Oeh, kom net dit topic tegen.

Mijn programming days zijn nu even over maar in mijn vorige baan tig voorbeelden van slechte / vreemde code gezien.

C:
1
2
3
4
5
if (true) {
...
} else {
...
}
Dit was natuurlijk een overblijfsel uit de tijd dat het nog geen if (true) was maar iets anders, maar dan nog 8)7

Een paar keer een SQL stored procedure gehad die ik 'enigszins' versneld heb. Meestal omdat er een cursor loop in een cursor loop gebouwd was die met een select over twee of drie tabellen met een cursor gedaan kon worden.
Als 'enigszins' lees dan gerust 'van 10 minuten naar 10 seconden'. Dan ben je aardig |:( bezig om zoiets te programmeren. Oorzaak: testen met 10 datasets in een testdatabank terwijl je livedatabank er 100.000 heeft.

Mijn eigen juweeltje: ik moest printen naar een labelprinter, serieel, beperkte baudrate, beperkte interne buffer. Ondanks de beperkte baudrate kon je veel sneller data sturen dan de printer kon printen (printer had een papiersnelheid van 50 mm/s of zo). Ik had dus een wachtloopje nodig om ervoor te zorgen dat de buffer niet overvol raakte (volle buffer -> nieuwe data wordt weggegooid -> corrupt label).
Ik kwam tot de conclusie dat ik een wachtloopje van ongeveer 2 seconden nodig had. Dus ik programmeer in VB:
Visual Basic .NET:
1
2
3
4
for i = 0 to lMaxCopies
    DoPrintLabel(sLabelData)
    Sleep(cLng(Format(Now(), "yyyy")))
next i

Sleep is een functie ergens in een windows DLL die de tijd in milliseconden verwacht.
Ik maakte dit in 1998 of 1999, dus met het risico een Y2K bug in te bouwen. Het werkt echter nog steeds. Alleen over een heel aantal jaren zullen ze zich gaan afvragen waarom de printer toch steeds langzamer wordt.

Signatures zijn voor boomers.


Acties:
  • 0 Henk 'm!

  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

Wat mij altijd een heel vreemd gevoel geeft als ik een lap code van iemand anders van 4 pagina's lang kan omzetten naar 4 regels code. Dan krijg je echt het gevoel: "mis ik niet iets?"

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
thisform.refresh
SELE status

thisform.text2.value = reccount()
GO TOP

THISFORM.dLasttime = DATETIME()

SCAN
    IF ABS(THISFORM.dLastTime - DATETIME()) > 60 THEN
        THISFORM.dLasttime = DATETIME()
        WAIT WINDOW "..." TIMEOUT 1
    ENDIF
    
    IF !LOCK() THEN
        STRTOFILE(LTRIM(STR(RECNO()))+CHR(13)+CHR(10),"skipped.txt",.T.)
        LOOP
    ENDIF
    
    thisform.text1.value = recno()
    thisform.refresh

    REPLACE URGENTIE WITH 'C'

    IF SOORT = 'W'
        REPLACE URGENTIE with '8'
    ENDIF
    IF INGEBRUIK = .T.
        REPLACE URGENTIE WITH '9'
    ENDIF
    IF afgehandeld = .t.
        REPLACE URGENTIE with '7'
    ENDIF
    IF URGENTIE <> '9'
        IF URGENTIE <> '7'
            IF URGENTIE <> '8'
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = 'AT' .AND. DATUMTBEL < DATE() .AND. AANTCONTR <= 4
                    REPLACE URGENTIE WITH '1'
                ENDIF
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = 'AT' .AND. DATUMTBEL = DATE() .AND. UUR <= HOUR(DATETIME()) .AND. AANTCONTR <= 4
                    REPLACE URGENTIE WITH '2'
                ENDIF
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = 'GG' .AND. DATUMTBEL < DATE() .AND. AANTCONTR <= 4
                    REPLACE URGENTIE WITH '3'
                ENDIF
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = 'GG' .AND. DATUMTBEL = DATE() .AND. UUR <= HOUR(DATETIME()) .AND. AANTCONTR <= 4
                    REPLACE URGENTIE WITH '4'
                ENDIF
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = '  ' .AND. DATUMTBEL = {} .AND. OPERATOR = '    ' .AND. SOORT = 'S'
                    REPLACE URGENTIE WITH '5'
                ENDIF
                IF afgehandeld = .F. .AND. INGEBRUIK = .F. .AND. STATUS = '  ' .AND. DATUMTBEL = {} .AND. OPERATOR = '    ' .AND. SOORT = 'N'
                    REPLACE URGENTIE WITH '6'
                ENDIF
            ELSE
* in wachtstand
            ENDIF
        ELSE
* afgehandeld
        ENDIF
    ELSE
* in gebruik
    ENDIF
    UNLOCK

    *IF HOUR(DATETIME())>=19 THEN
    *   bQuit = .T.
    *ENDIF

    IF bQuit THEN       && ADDED: WST 29-11-2002
        EXIT
    ENDIF               && ///
ENDSCAN

thisform.label3.visible = .t.
thisform.label4.visible = .t.
thisform.refresh


Very scary shit, maar ja foxpro is sowieso vreemd. Daar word '*' en '&&' gebruikt voor commentaar. En wat helemaal vreemd is dat de ';' gebruikt word om een regel code op te splitsen over meerdere regels (allemaal heel grappig als je tegelijkertijd in java/php bezig bent). Wat helemaal grappig is als je een regel begint met een '*' en eindigt met een ';', want dan word de volgende regel dus ook gezien als commentaar (hoewel de syntax-highlighter de regels niet op die manier kleurt).

code:
1
2
* Blabla commentaar over de volgende regel ;
Belangrijkefunctie()


Dat heeft me een dag werk gekost :'(

seweso's blog


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Maasluip schreef op 09 april 2004 @ 10:18:
Ik kwam tot de conclusie dat ik een wachtloopje van ongeveer 2 seconden nodig had. Dus ik programmeer in VB:
Visual Basic .NET:
1
2
3
4
for i = 0 to lMaxCopies
    DoPrintLabel(sLabelData)
    Sleep(cLng(Format(Now(), "yyyy")))
next i
Hahahaha dit is echt het meest geniale stukje nutteloze code dat ik ooit gezien heb. Hoe stoned was je toen je dit schreef? :D Kon je niet gelijk een int van 2000 meepaasen naar die sleep functie? :P

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 14-09 13:08

Maasluip

Frontpage Admin

Kabbelend watertje

Papa Eend schreef op 09 april 2004 @ 10:44:
[...]


Hahahaha dit is echt het meest geniale stukje nutteloze code dat ik ooit gezien heb. Hoe stoned was je toen je dit schreef? :D Kon je niet gelijk een int van 2000 meepaasen naar die sleep functie? :P
Het was meer frustratie [heel stukje over de sfeer op dat moment geknipt]. Natuurlijk kon ik gewoon Sleep(2000) schrijven. Sterker nog, als ik me goed herinner was 1700 ms ook wel voldoende geweest, maar het paste niet in de sfeer van het moment.

Elke programmeur zal het met me eens zijn: je kunt elk stukje code op 10 verschillende manieren schrijven. Welke manier je pakt hangt niet alleen af van hoe efficiënt het is maar ook van de maanstand, temperatuur, bloedsuikerniveau.

Maar ik vond het ook wel sterk ja.
Staat ook op mijn CV:
• schrijver van nutteloze stukjes code

Signatures zijn voor boomers.


Acties:
  • 0 Henk 'm!

  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 30-08 13:53
Nog even over stomme leraren / stomiteiten op school.

In willekeurige volgorde.

Wij moeten leren kleine java aplets te maken, leraar spreekt zelf geen woord java, compileren moet via dos waar we niet in mogen, alle pagina's die met http:// beginnen als adres worden geweigerd (je moet dus www.hotmail.com typen, niet knippen en plakken in url)

Als oplossing maar een text editor / compiler geschreven, werd toch echt vervelend om mensen iedere keer opnieuw uit te leggen hoe ze via een dode link e.d. in dos konden komen, en dan weer compileren.

Ander voorbeeld:

stukkie over databases, best leuk. Leraar geeft opdracht: Maak een website met een database. MySQl heeft ie nog nooit van gehoord, php komt hem onbekend over, jongens lever maar een presentatie erover in op een floppy (waarop ik weer zei: wasda? )

Nog erger, forumpje opgestart van leerlingenvereniging, wat gekloot gehad, was niet zo heel erg goed beveiligd, mensen konden leraren afzeiken (heej best leuk eigenlijk) zonder dat we ze konden kicken.
Zegt het schoolbestuur:
"Jullie moeten er een database aan koppelen, anders mag het niet meer" Sinds wanneer is een database het doel?

En zo kan ik nog wel uren doorgaan, maar das meer spammen volgens mij

modbreak: dit heeft niets met 'slechte voorbeelden' te maken, en is enkel het afzeiken van een leraar/school, wat hier de bedoeling niet is.
Laat dat dus aub

[ Voor 8% gewijzigd door whoami op 09-04-2004 18:33 ]


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

PHP:
1
2
3
4
5
6
7
8
<?php
for($i = 0; $i < count($aError_msg); $i++)
{

    echo $aError_msg[$i];
    
}
?>

Elke keer dat ie de for-lus doet, doet ie ook nog 'ns opnieuw een count op de array :(
Afgezien daarvan, doe je 't meestal gewoon zo:
PHP:
1
2
3
4
5
6
7
8
<?php
foreach($aError_msg as $sError_msg)
{

    echo $sError_msg;
    
}
?>

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 15-05 16:29

Macros

I'm watching...

blizt schreef op 09 april 2004 @ 18:52:
PHP:
1
2
3
4
5
6
7
8
<?php
for($i = 0; $i < count($aError_msg); $i++)
{

    echo $aError_msg[$i];
    
}
?>

Elke keer dat ie de for-lus doet, doet ie ook nog 'ns opnieuw een count op de array :(
Afgezien daarvan, doe je 't meestal gewoon zo:
PHP:
1
2
3
4
5
6
7
8
<?php
foreach($aError_msg as $sError_msg)
{

    echo $sError_msg;
    
}
?>
Foreach versie mag dan veel korter zijn, maar erg veel snelheids verschil zal er niet zijn. count() is in bijna alle talen het uitlezen van een veld in een struct, dus dat zal in php ook wel zo zijn.

"Beauty is the ultimate defence against complexity." David Gelernter


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
count is idd gewoon een waarde uitlezen in die struct volgens mij, en verder, maakt foreach een kopie van het array, dus vreet dat ook nog wel ff wat performance weg, denk ik zo.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Count telt het aantal waarden in een array.
Snelheidsverschil zal er misschien niet veel zijn (zal 't eens checken), het is gewoon een beetje vreemd ... waardoor niet gelijk duidelijk is waar je nu exact mee bezig bent.

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09 16:28

BdR

TV is gooder then books

Uit de practijk gegrepen, in Delphi, als de systeem code wordt uitgevraagd, moet er 'NTSC' of 'PAL' terug worden gegeven, dat is afhankelijk van welk land is geselecteerd ('USA' of 'EURO')

Dat doe je dus NIET als volgt :D (wie ziet de fout?)
code:
1
2
3
4
  if uppercase(strCountry) = 'EURO' then
    if(strKey = 'SYSTEM') then strValue := 'PAL'
  else
    if(strKey = 'SYSTEM') then strValue := 'NTSC';

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


Acties:
  • 0 Henk 'm!

Verwijderd

BdR schreef op 21 april 2004 @ 18:23:
Uit de practijk gegrepen, in Delphi, als de systeem code wordt uitgevraagd, moet er 'NTSC' of 'PAL' terug worden gegeven, dat is afhankelijk van welk land is geselecteerd ('USA' of 'EURO')

Dat doe je dus NIET als volgt :D (wie ziet de fout?)
code:
1
2
3
4
  if uppercase(strCountry) = 'EURO' then
    if(strKey = 'SYSTEM') then strValue := 'PAL'
  else
    if(strKey = 'SYSTEM') then strValue := 'NTSC';
Gokje: verkeerde if else combo? Fix:
code:
1
2
3
4
5
6
if(strKey = 'SYSTEM') then   
begin
  if uppercase(strCountry) = 'EURO' then strValue := 'PAL';
    else
  strValue := 'NTSC';
end;

[ Voor 26% gewijzigd door Verwijderd op 21-04-2004 19:06 ]


Acties:
  • 0 Henk 'm!

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 14-09 16:56

Tomatoman

Fulltime prutser

BdR schreef op 21 april 2004 @ 18:23:
Uit de practijk gegrepen, in Delphi, als de systeem code wordt uitgevraagd, moet er 'NTSC' of 'PAL' terug worden gegeven, dat is afhankelijk van welk land is geselecteerd ('USA' of 'EURO')

Dat doe je dus NIET als volgt :D (wie ziet de fout?)
code:
1
2
3
4
  if uppercase(strCountry) = 'EURO' then
    if(strKey = 'SYSTEM') then strValue := 'PAL'
  else
    if(strKey = 'SYSTEM') then strValue := 'NTSC';
De code even anders opmaken (regeleindes en inspringen zoals het hoort) en je ziet het probleem.
Delphi:
1
2
3
4
5
if uppercase(strCountry) = 'EURO' then
  if(strKey = 'SYSTEM') then
    strValue := 'PAL'
  else if(strKey = 'SYSTEM') then
    strValue := 'NTSC';
Daar had net zo goed kunnen staan:
Delphi:
1
2
if (uppercase(strCountry) = 'EURO') and (strKey = 'SYSTEM') then
  strValue := 'PAL';
strValue krijgt dus altijde de waarde 'PAL' òf is ongedefinieerd. In ieder geval zal het nooit 'NTSC' worden.

Een goede grap mag vrienden kosten.


Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 16:32
Dat is toch geen gok? :P Dat weet ik wel zeker ;)

Ik kwam laatst het volgende tegen. Ik moet programmeren in embedded Visual Basic, voor op een Pocket PC. Die dingen zijn al niet bijster snel, maar hier werd even het volgende gedaan:
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
Function getWaarde (tabel as String, indexCol as String, indexValue as String, _
  veld as String) as String
  Dim rs as ADOCE.resultset
  Dim sqlStr as string

  ' creer een resultset
  ' open de database connectie
  sqlStr = "SELECT " & veld & " FROM " & tabel
  sqlStr = sqlStr & " WHERE " & indexCol & " = " & indexValue
  ' voer statement aan ADOCE
  getWaarde = rs.Fields[0].Value
  'sluit de database connectie
End Function

Sub Form_Activate
  label1.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "voornaam")
  label2.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "achternaam")
  label3.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "adres")
  label4.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "schoenmaat")
  label5.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "IQ")
  .
  .
  label17.Caption = getWaarde(TBL_BLAAT, "ID", GLOBALE_VAR, "pincode")
End Sub

Als je dan ook nog eens weet dat het openen van een gesloten databaseconnectie (een geopende heeft een boolean die de rest van de code niet nog een keer uitvoert ;) ) relatief erg lang duurt...

En maar afvragen waarom het zo langzaam was :X

Dat hele ding kan in 1 select statement, en de connectie naar de db hoef je alleen maar bij het afsluiten van het programma te doen. (db is lokaal, maar 1 gebruiker, het is ten slotte een PDA :P )

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


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 08-09 14:12
BdR schreef op 21 april 2004 @ 18:23:
Uit de practijk gegrepen, in Delphi, als de systeem code wordt uitgevraagd, moet er 'NTSC' of 'PAL' terug worden gegeven, dat is afhankelijk van welk land is geselecteerd ('USA' of 'EURO')

Dat doe je dus NIET als volgt :D (wie ziet de fout?)
code:
1
2
3
4
  if uppercase(strCountry) = 'EURO' then
    if(strKey = 'SYSTEM') then strValue := 'PAL'
  else
    if(strKey = 'SYSTEM') then strValue := 'NTSC';
Hee Bas, leef jij ook nog? ;)
Best wel een slecht/goed ('t is maar hoe je het bekijkt...) voorbeeld :) Helaas heb ik de broncode van LieroM8 niet meer, ik weet zeker dat daar ook stomme fouten van mij inzitten...

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Achter Exact Globe 2000 zit een SqlServer database. Daar staat de volgende tabel in
SQL:
1
2
3
4
5
6
7
8
CREATE TABLE [dbo].[ExactOptions] (
    [opt_0] [bit] NOT NULL ,
    [opt_1] [bit] NOT NULL ,
    [opt_2] [bit] NOT NULL ,
    [opt_3] [bit] NOT NULL ,
    ...
    [opt_1023] [bit] NOT NULL 
) ON [PRIMARY]

1024 kolommen!!! Er staat 1 regel in. En hoe lees je zo'n optie? Nou gewoon zo:
SQL:
1
2
3
4
5
CREATE PROCEDURE dbo.efwGetOpt @OptNr smallint AS
  DECLARE @Stmt nvarchar(100)
  SET @Stmt = N'SELECT opt_' + CAST(@OptNr AS nvarchar) + N' FROM dbo.ExactOptions'
  EXECUTE sp_executesql @Stmt
GO


:'( :D

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09 16:28

BdR

TV is gooder then books

ZanderZ schreef op 21 april 2004 @ 20:17:
Hee Bas, leef jij ook nog? ;)
Best wel een slecht/goed ('t is maar hoe je het bekijkt...) voorbeeld :) Helaas heb ik de broncode van LieroM8 niet meer, ik weet zeker dat daar ook stomme fouten van mij inzitten...
yep alive and kicking :7 tja, tis een open deur maar je moet altijd backuppen..

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


Acties:
  • 0 Henk 'm!

  • psyBSD
  • Registratie: April 2004
  • Laatst online: 02-01-2021

psyBSD

Hates 0x00 bytes

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
                                                                                                                                           
#define IOValue "Hello World\n"
                                                                                                                                           
int main() {
        int i = 0;
        char *inputstream = (char *) malloc(13);
        char *outputstream;
                                                                                                                                           
        FILE *bestand1;
        fprintf(bestand1 = fopen("test.txt","w+"), 
              "%s",strcpy((outputstream = 
              (char *) malloc(strlen(IOValue))), IOValue));
        rewind(bestand1);
        while(!feof(bestand1) && 
              ((inputstream=(char *) realloc(inputstream,i+1))[i] = fgetc(bestand1))|1) {
                i++;
        }
        inputstream[i-1] = '\0';
        printf("%s",inputstream);
}

schrijft een string weg, alleen om hem weer uit te lezen :p
(let ook op de aanwezigheid van i++) 8)7

Was me eerste c-proggie

[ Voor 7% gewijzigd door psyBSD op 22-04-2004 22:48 ]

| Olympus OM-D EM10 mk2 | m.Zuiko 14-42mm f/3.5-5.6EZ | m.Zuiko 40-150mm f/4-5.6 R | m.Zuiko 60mm f/2.8 | 2x Godox v860 | Godox X1 |


Acties:
  • 0 Henk 'm!

  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

Heeft iemand een slecht voorbeeld van asm code posten :?

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


Acties:
  • 0 Henk 'm!

Verwijderd

Een van de eerste echte programma's die ik wou schrijven, was een programma dat alle bestanden uit een map en submappen haalde en deze tesamen in 1 map zette (soort van "flatten" voor mapstructuren). Enkel tijdens het programmeren (in visual basic nog), had ik het probleem dat ik niet wist hoe ik de mappenstructuur kon doorlopen. Het klinkt heel erg dom (en is het ook), maar ik had nooit iets gehoord van recursie en spijtig genoeg is het probleem dat ik probeerde op te lossen zuiver recursief. De oplossing die ik had gevonden was een listbox te "misbruiken" als queue en iedere keer als ik een submap tegenkwam, dan zette ik die in de lisbox, had ik een bepaald map afgewerkt dan werd deze uit de listbox gehaald en werd er aan de volgende in listbox begonnen. M.a.w er stonden 2 zware fouten (ok ik wist niet beter) in de het programma waardoor het eigenlijk wel heel erg traag was, maar het werkte (ongeveer ;) )

Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
Verwijderd schreef op 23 april 2004 @ 17:57:
Een van de eerste echte programma's die ik wou schrijven, was een programma dat alle bestanden uit een map en submappen haalde en deze tesamen in 1 map zette (soort van "flatten" voor mapstructuren). Enkel tijdens het programmeren (in visual basic nog), had ik het probleem dat ik niet wist hoe ik de mappenstructuur kon doorlopen. Het klinkt heel erg dom (en is het ook), maar ik had nooit iets gehoord van recursie en spijtig genoeg is het probleem dat ik probeerde op te lossen zuiver recursief. De oplossing die ik had gevonden was een listbox te "misbruiken" als queue en iedere keer als ik een submap tegenkwam, dan zette ik die in de lisbox, had ik een bepaald map afgewerkt dan werd deze uit de listbox gehaald en werd er aan de volgende in listbox begonnen. M.a.w er stonden 2 zware fouten (ok ik wist niet beter) in de het programma waardoor het eigenlijk wel heel erg traag was, maar het werkte (ongeveer ;) )
Eigenlijk is het niet eens een gek idee, om de submappen die je tegenkomt op te sparen in een lijst en later te verwerken. Ik heb ook een keer een oplossing op die manier bedacht, ik weet niet meer precies maar ik dacht dat het was om de bestanden op volgorde van nesting-niveau te kunnen kopiëren.

Acties:
  • 0 Henk 'm!

  • WildernessChild
  • Registratie: Februari 2002
  • Niet online

WildernessChild

Voor al uw hersenspinsels

Zo kende ik iemand die net Delphi geleerd had, maar nog nooit van variabelen gehoord had... die maakte allemaal editboxjes en listboxjes met Visible op False om zijn data in op te slaan...

Erg creatief, maar handig is anders :)

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
*schaamt zich bijna dat dit topic al zo lang open is* :P
Zo kende ik iemand die net Delphi geleerd had, maar nog nooit van variabelen gehoord had... die maakte allemaal editboxjes en listboxjes met Visible op False om zijn data in op te slaan...
Die moeten we onthouden ;)

[ Voor 69% gewijzigd door Alarmnummer op 23-04-2004 18:42 ]

Pagina: 1 ... 4 ... 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.