abonnement Unibet Coolblue
pi_182820388
quote:
0s.gif Op zondag 28 oktober 2018 18:58 schreef ralfie het volgende:

[..]

C# repositories? Nuget?? of wat bedoel je
Je moet je inlezen in wat je nodig hebt of interessant vindt, niet meer niet minder. Als je met P2P wil beginnen zul je wat exotischere kanten van C# moeten exploreren. Geen idee of WCF daar de beste oplossing voor is, maar het lijkt een goede kanshebber.
quote:
12s.gif Op zondag 28 oktober 2018 21:14 schreef thabit het volgende:

[..]

Misschien pas verdergaan zodra je weer nuchter bent? B:)B
quote:
0s.gif Op maandag 29 oktober 2018 10:32 schreef Rodgrod het volgende:

[..]

Bedoel je het repository pattern?
Dat is in het algemeen wel een nuttige om eens gedaan te hebben :)

En persoonlijk zal ik er mee door gaan, des te moeilijker des te meer voldoening en zelfvertrouwen het je geeft als het uiteindelijk is gelukt
Ghehe, sorry voor de verwarring. Ik heb wel ervaring met dergelijke designpatronen hoor, begrijp me niet verkeerd. Ik had het idee te switchen richting de .NET wereld, maar ik weet niet of het nou zo mijn taal/omgeving is.
pi_182821882
Voor mijn studie moeten wij nu het boek Concepts of Programming Languages lezen, vind het wel een boeiend boek en het gaat ook over de werking van een compiler en de semantiek en syntax van een programmeertaal.

Heeft hier iemand ooit eens een compiler of interpreter gemaakt voor een zelfbedachte taal?

Pelu anu ni mo ki yin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182821955
Ah ja en nog een leuk boek waar ik bezig ben is Exercises in Programming Style, boek gaat over een triviaal programma om de woorden in een tekst te tellen, en de 25 meestvoorkomende woorden te printen. Dit programma wordt vervolgens volgens 33 verschillende paradigma gemaakt.

Ystävällisin terveisin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  maandag 29 oktober 2018 @ 20:56:58 #244
85514 ralfie
!Yvan eht nioj
pi_182823223
quote:
16s.gif Op maandag 29 oktober 2018 19:59 schreef FlippingCoin het volgende:
Voor mijn studie moeten wij nu het boek Concepts of Programming Languages lezen, vind het wel een boeiend boek en het gaat ook over de werking van een compiler en de semantiek en syntax van een programmeertaal.

Heeft hier iemand ooit eens een compiler of interpreter gemaakt voor een zelfbedachte taal?

Pelu anu ni mo ki yin Flip.
jaaren geleden ooit gepoogd in C++ een soort javascript achtige taal te bouwen. Parser en lexer zijn redelijk makkelijk te schrijven (en leuk als het dan eenmaal werkt), maar het implementeren van basislogica (o.m. standaard operators voor alle basis datatyes) is verschrikkelijk saai (en daar is het dus ook bij gebleven :)).
pi_182823296
quote:
0s.gif Op maandag 29 oktober 2018 20:56 schreef ralfie het volgende:

[..]

jaaren geleden ooit gepoogd in C++ een soort javascript achtige taal te bouwen. Parser en lexer zijn redelijk makkelijk te schrijven (en leuk als het dan eenmaal werkt), maar het implementeren van basislogica (o.m. standaard operators voor alle basis datatyes) is verschrikkelijk saai (en daar is het dus ook bij gebleven :)).
Ah ja dat kan ik mij redelijk voorstellen. :D

Cool. ^O^

Niet een klein stukje werkende taal gekregen? :P

दयालु सादर Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 11:06:47 #246
27682 crew  Bosbeetle
terminaal verdwaald
pi_182832048
Ik ontdek net pas de tenary operator dus

1int a = test ? b : c;

ipv

1
2
3
4
5
if(test){
     a = b;
} else{
     a = c;
}

had hem volgensmij al eens eerder gezien maar nog nooit gebruikt dus hij zit niet in mijn systeem...
Ben even opzoek gegaan in mijn code of ik wat kon vervangen maar ik gebruik het ook niet zo vaak :P
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 11:12:58 #247
27682 crew  Bosbeetle
terminaal verdwaald
pi_182832158
quote:
16s.gif Op maandag 29 oktober 2018 20:02 schreef FlippingCoin het volgende:
Ah ja en nog een leuk boek waar ik bezig ben is Exercises in Programming Style, boek gaat over een triviaal programma om de woorden in een tekst te tellen, en de 25 meestvoorkomende woorden te printen. Dit programma wordt vervolgens volgens 33 verschillende paradigma gemaakt.

Ystävällisin terveisin Flip.
het is wel ernstig heb nu dus een werkend R pakket, dat hopelijk snel gepubliceerd wordt en ik ben nu alweer bezig met een versie 2 ervan... ik wil zoveel dingen anders aanpakken.... volgensmij is dat ook iets wat je eindeloos kunt blijven doen. Tijdens het maken van software introduceer je ideeën die later wel of niet handig blijven.. nu begin ik opnieuw en denk ik alles glad te strijken, totdat er weer nieuwe ideeën komen :X
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833013
quote:
2s.gif Op dinsdag 30 oktober 2018 11:06 schreef Bosbeetle het volgende:
Ik ontdek net pas de tenary operator dus
[ code verwijderd ]

ipv
[ code verwijderd ]

had hem volgensmij al eens eerder gezien maar nog nooit gebruikt dus hij zit niet in mijn systeem...
Ben even opzoek gegaan in mijn code of ik wat kon vervangen maar ik gebruik het ook niet zo vaak :P
Die is soms wel echt fijn ja, maar soms maakt die het alleen maar meer onleesbaar daar zou ik mee oppassen. :P

亲切的问候 Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182833041
quote:
2s.gif Op dinsdag 30 oktober 2018 11:12 schreef Bosbeetle het volgende:

[..]

het is wel ernstig heb nu dus een werkend R pakket, dat hopelijk snel gepubliceerd wordt en ik ben nu alweer bezig met een versie 2 ervan... ik wil zoveel dingen anders aanpakken.... volgensmij is dat ook iets wat je eindeloos kunt blijven doen. Tijdens het maken van software introduceer je ideeën die later wel of niet handig blijven.. nu begin ik opnieuw en denk ik alles glad te strijken, totdat er weer nieuwe ideeën komen :X
Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt. :P

Hom regards Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:00:56 #250
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833081
quote:
16s.gif Op dinsdag 30 oktober 2018 11:59 schreef FlippingCoin het volgende:

[..]

Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt. :P

Hom regards Flip.
Wat bij mij het probleem is ik maak code omdat ik het gebruik... en waarvoor ik het gebruik komt op mijn pad tijdens het maken van de code... en dat blijft zo door loopen. Ik zit niet in de positie om goed af te bakenen wat moet die software nou eigenlijk kunnen, en dat wil ik ook eigenlijk niet :D
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833111
quote:
2s.gif Op dinsdag 30 oktober 2018 12:00 schreef Bosbeetle het volgende:

[..]

Wat bij mij het probleem is ik maak code omdat ik het gebruik... en waarvoor ik het gebruik komt op mijn pad tijdens het maken van de code... en dat blijft zo door loopen. Ik zit niet in de positie om goed af te bakenen wat moet die software nou eigenlijk kunnen, en dat wil ik ook eigenlijk niet :D
Waarom wil je dat niet?

Ar cieņu Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:16:09 #252
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833347
quote:
16s.gif Op dinsdag 30 oktober 2018 12:02 schreef FlippingCoin het volgende:

[..]

Waarom wil je dat niet?

Ar cieņu Flip.
Omdat ik altijd vind dat we meer moeten kunnen dan ik van te voren bedacht....

Meestal schrijf ik programma's om data heen, dus als de data iets interesants laat zien wat ik van te voren niet bedacht had dan moet de software ineens meer kunnen.... Als je alles netjes dichttimmert krijg je nooit nieuewe functionaliteit... :P

Laatste paar stukjes software die ik geschreven heb zijn nearest neighbour analyses (zowel tussen twee puntensets of binnen één, en zowel los (elk punt heeft een dichte buurman) als strikt (elk punt kan maar aan één paar toe behoren).... Heb dit eindelijk eens goed in elkaar gezet omdat ik al tig scripts had waarin ik dit ook deed maar nu heb ik gewoon een goed stukje snelle code :D

heb trouwens wel een vraagje aan jullie, hoe kan ik dit handiger aanpakken:

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
        this.x = x;
        this.y = y;
        MakeDistmat(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        this.x = x1;
        this.y = y1;
        this.x2 = x2;
        this.y2 = y2;
        MakeDistmat(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        if(z == null){
            z = new double[x.length];

            for(int i=0;i<z.length;i++){
                z[i] = 0;
            }

        }

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        if(z1 == null || z2 == null){

            z1 = new double[x1.length];
            z2 = new double[x2.length];

            for(int i=0;i<z1.length;i++){
                z1[i] = 0;

            }

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;

            }


        }

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}


Het probleem is ik heb dus datasets met een z coordinaat en zonder, en ik heb dus een distance matrix binnen 1 groep of tussen 2 groepen maar het voelt zo redundant.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833379
quote:
2s.gif Op dinsdag 30 oktober 2018 12:16 schreef Bosbeetle het volgende:

[..]

Omdat ik altijd vind dat we meer moeten kunnen dan ik van te voren bedacht....

Meestal schrijf ik programma's om data heen, dus als de data iets interesants laat zien wat ik van te voren niet bedacht had dan moet de software ineens meer kunnen.... Als je alles netjes dichttimmert krijg je nooit nieuewe functionaliteit... :P

Laatste paar stukjes software die ik geschreven heb zijn nearest neighbour analyses (zowel tussen twee puntensets of binnen één, en zowel los (elk punt heeft een dichte buurman) als strikt (elk punt kan maar aan één paar toe behoren).... Heb dit eindelijk eens goed in elkaar gezet omdat ik al tig scripts had waarin ik dit ook deed maar nu heb ik gewoon een goed stukje snelle code :D
Maar je kan toch abstraheren en uitbreidbaar ontwerpen?

आपला आभारी Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:19:30 #254
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833395
quote:
16s.gif Op dinsdag 30 oktober 2018 12:18 schreef FlippingCoin het volgende:

[..]

Maar je kan toch abstraheren en uitbreidbaar ontwerpen?

आपला आभारी Flip.
Ik ben ook geen programmeur, kun jij misschien naar mijn edit kijken of daar handiger op lossingen voor zijn....

Ik bedenk me dat ik die constructors voor data met alleen x en y weg zou kunnen laten en dan een null in z gooien maar dat ziet er dan weer lelijk uit als je het aanroept.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833473
quote:
2s.gif Op dinsdag 30 oktober 2018 12:19 schreef Bosbeetle het volgende:

[..]

Ik ben ook geen programmeur, kun jij misschien naar mijn edit kijken of daar handiger op lossingen voor zijn....

Ik bedenk me dat ik die constructors voor data met alleen x en y weg zou kunnen laten en dan een null in z gooien maar dat ziet er dan weer lelijk uit als je het aanroept.
Constructor overloading en dan de constructor met minder argumenten de Z waarden op 0 zetten? Denk dat dat de Java manier is. :P

мэндчилсэн Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:26:21 #256
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833515
quote:
16s.gif Op dinsdag 30 oktober 2018 12:23 schreef FlippingCoin het volgende:

[..]

Constructor overloading en dan de constructor met minder argumenten de Z waarden op 0 zetten? Denk dat dat de Java manier is. :P

мэндчилсэн Flip.
Ja ik zou liever één constructor hebben en één makedistmat... maar ik zie niet precies in hoe... En ik wil ook weer niet enorm gaan zitten iffen in de makedistmat... die 0 is gewoon een wiskundige truuk eigenlijk omdat je een 2d punt gewoon kun behandelen als een 3d punt met een z van 0.

Maarja dat krijg je als niet programmeurs gaan programmeren.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833547
quote:
2s.gif Op dinsdag 30 oktober 2018 12:26 schreef Bosbeetle het volgende:

[..]

Ja ik zou liever één constructor hebben en één makedistmat... maar ik zie niet precies in hoe... En ik wil ook weer niet enorm gaan zitten iffen in de makedistmat... die 0 is gewoon een wiskundige truuk eigenlijk omdat je een 2d punt gewoon kun behandelen als een 3d punt met een z van 0.
Java is even geleden maar je kan toch vanuit de minst specifieke constructor de specifiekere constructor aanroepen zodat de minst specifieke louter de z waarden op 0 zet en dan de "normale" constructor aanroept?

Saludos cordiales Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:57:10 #258
27682 crew  Bosbeetle
terminaal verdwaald
pi_182834122
quote:
16s.gif Op dinsdag 30 oktober 2018 12:27 schreef FlippingCoin het volgende:

[..]

Java is even geleden maar je kan toch vanuit de minst specifieke constructor de specifiekere constructor aanroepen zodat de minst specifieke louter de z waarden op 0 zet en dan de "normale" constructor aanroept?

Saludos cordiales Flip.
dat is wel een slimme :) ga ik doen :) Dat doe ik nu in de makedistmat maar dat is logischer in de constructor inderdaad.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:03:33 #259
27682 crew  Bosbeetle
terminaal verdwaald
pi_182834221
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
78
79
80
81
82
83
84
85
86
87
88
89
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
        
        double[] z_ = new double[x.length];

        for(int i=0;i<z.length;i++){
            z_ = 0;
        }

        this(x,y,z_);
    }

    coordinates(double[] x, double[] y, double[] z){
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        double[] z_ = new double[x1.length];
        double[] z2_ = new double[x2.length];

        for(int i=0;i<x.length;i++){
            z_ = 0;
        }        

        for(int i=0;i<x2.length;i++){
            z2_ = 0;
        }

        this(x1,y1,z_,x2,y2,z2_);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

Dit is al iets schoner :)

[ Bericht 4% gewijzigd door Bosbeetle op 30-10-2018 13:43:02 ]
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:44:07 #260
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835043
Kak je mag this() alleen aaroepen als eerste ding in een constructor }:| dan wil dit dus niet... Het probleem is ik weet de lengte van z niet.... anders kon ik gewoon een array met 0's klaar hebben staan.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:50:41 #261
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835217
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
       
        this(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){
        
        if(z==null){
            
            z = new double[x.length];

            for(int i=0;i<z.length;i++){
                z[i] = 0;
            }

        }
        
        
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        
        this(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        if(z1==null || z2 == null){

            z1 = new double[x1.length];
            z2 = new double[x2.length];
            
            for(int i=0;i<z1.length;i++){
                z1[i] = 0;
            }

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;
            }

        }
        
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

optie drie :P


nogsteeds vier constructors maar dan 2 roepen er 2 aan... ik kan nog naar één functionele constructor die dan door drie anderen wordt aangeroepen...

Maar ik begin me af te vragen of het duidelijker wordt.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:58:31 #262
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835418
optie vier:

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){

        this(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){

        this(x,y,z,null,null,null);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){

        this(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        
        
        if(z1==null){
            z1 = new double[x1.length];
            
            for(int i=0;i<z1.length;i++){
                z1[i] = 0;
            }
        }

        if(z2==null && x2 != null){
            z2 = new double[x2.length];

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;
            }
        }       

        this.x = x1;
        this.y = y1;
        this.z = z1;
        
        
        if(x2==null) {
            MakeDistmat(x1, y1, z1);
        }else{
            this.x2 = x2;
            this.y2 = y2;
            this.z2 = z2;
            MakeDistmat(x1, y1, z1, x2, y2, z2);
        }
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

hehe sorry voor de spam, nu de vraag welke zouden jullie gebruiken?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182836796
Kijk er vanavond even naar Bos, op mobiel beetje vervelend. :P

Su pagarba Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  dinsdag 30 oktober 2018 @ 19:20:55 #264
85514 ralfie
!Yvan eht nioj
pi_182842662
quote:
2s.gif Op dinsdag 30 oktober 2018 13:58 schreef Bosbeetle het volgende:
optie vier:
[ code verwijderd ]

hehe sorry voor de spam, nu de vraag welke zouden jullie gebruiken?
Ik moet moeite doen om je code te volgen, en dat is iha een teken dat je code te chaotisch is.

Code die specifiek is voor het aantal meegegeven argumenten aan een constructor zet je in de specifieke constructor, de rest prop je in een initialize methode. Dat this() is zoo lelijk, maar goed, ik heb een java-allergie :) Het gevaar zie je in je code. Als je de eerste constructor gebruikt (ctor(double[], double[])), moet je vier(!) constructors doorploegen voordat je weet wat je code doet...
  Moderator dinsdag 30 oktober 2018 @ 19:25:25 #265
27682 crew  Bosbeetle
terminaal verdwaald
pi_182842792
quote:
0s.gif Op dinsdag 30 oktober 2018 19:20 schreef ralfie het volgende:

[..]

Ik moet moeite doen om je code te volgen, en dat is iha een teken dat je code te chaotisch is.

Code die specifiek is voor het aantal meegegeven argumenten aan een constructor zet je in de specifieke constructor, de rest prop je in een initialize methode. Dat this() is zoo lelijk, maar goed, ik heb een java-allergie :) Het gevaar zie je in je code. Als je de eerste constructor gebruikt (ctor(double[], double[])), moet je vier(!) constructors doorploegen voordat je weet wat je code doet...
Ja dat versie 1 dus niet maar daar zit dan weer heel veel duplicatie in.

Is er een elegantere oplossing hiervoor?

Hoe zou je het bijvoorbeeld doen zonder die methode? Elke constructor zelf een matrix laten berekenen?

Zoals ik zeg ik heb nooit leren programmeren ik doe maar wat :D
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  dinsdag 30 oktober 2018 @ 20:43:25 #266
85514 ralfie
!Yvan eht nioj
pi_182844790
quote:
1s.gif Op dinsdag 30 oktober 2018 19:25 schreef Bosbeetle het volgende:

[..]

Ja dat versie 1 dus niet maar daar zit dan weer heel veel duplicatie in.

Is er een elegantere oplossing hiervoor?

Hoe zou je het bijvoorbeeld doen zonder die methode? Elke constructor zelf een matrix laten berekenen?

Zoals ik zeg ik heb nooit leren programmeren ik doe maar wat :D
Tuurlijk heb je leren programmeren anders had je dit niet al gehad :) Ik ben zelf nu fullstack developer maar heb ook maar medische wetenschappen gestudeerd. De rest is hobby -->> werk

Om met het meest obvious antwoord te komen: je bent bezig met vectoren en daar zijn in Java standaard classes voor: Vector2D en Vector3D in java. (even snel gegoogled: https://docs.oracle.com/c(...)ecmath/Vector2d.html, geen idee of het wat is, heb nog nooit iets in Java gedaan). De standaard classes hebben standaard properties zoals length, wat feitelijk is wat je berekend. In jouw geval zou je twee arrays van vectoren doorlopen om de max length van elk item te bepalen.

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
class DistanceMatrix2D
{
  double[,] distances;
  double maxLength = 0;

  constructor(Vector2D[] points)
  {
    //OF this(points, points)
    distances= new double[points.length, points.length];
    for(int x=0;x<points.length;x++)
    {
        for(int y=0;y<points.length;y++)
        {
            this.distances[x,y] = (points[x] - points[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
  constructor(Vector2D[] points1, Vector2D[] points 2)
  {
    distances= new double[points1.length, points2.length];

    for(int x=0;x<points1.length;x++)
    {
        for(int y=0;y<points2.length;y++)
        {
            this.distances[x,y] = (points1[x] - points2[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
}
class DistanceMatrix3D
{
  double[,] distances;
  double maxLength = 0;

  constructor(Vector3D[] points)
  {
    //OF this(points, points)
    this.distances= new double[points.length, points.length];
    for(int x=0;x<points.length;x++)
    {
        for(int y=0;y<points.length;y++)
        {
            this.distances[x,y] = (points[x] - points[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
  constructor(Vector3D[] points1, Vector2D[] points 2)
  {
    this.distances= new double[points1.length, points2.length];

    for(int x=0;x<points1.length;x++)
    {
        for(int y=0;y<points2.length;y++)
        {
            this.distances[x,y] = (points1[x] - points2[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
}
(code geschreven in fok! 'IDE' en met 0 ervaring in Java, dus mogelijk vol met fouten (en ook mogelijk niet wat je bedoeling was). Maar je snapt het idee neem ik aan?

De code laat ook goed zien dat jouw code feitelijk uit twee distincte scenarios bestaat: 2d en 3d, met daarbinnen de mogelijkheid een array met zichzelf of met een andere array te vergelijken. Vandaar dat ik dit in twee classes zou doen. Leest net wat makkelijker.

Mocht je geen zin hebben in vectoren blijft de code qua structuur hetzelfde, alleen zit er iets meer wiskunde in sommige regels.
  Moderator dinsdag 30 oktober 2018 @ 23:16:41 #267
27682 crew  Bosbeetle
terminaal verdwaald
pi_182848066
quote:
0s.gif Op dinsdag 30 oktober 2018 20:43 schreef ralfie het volgende:

[..]

Tuurlijk heb je leren programmeren anders had je dit niet al gehad :) Ik ben zelf nu fullstack developer maar heb ook maar medische wetenschappen gestudeerd. De rest is hobby -->> werk

Om met het meest obvious antwoord te komen: je bent bezig met vectoren en daar zijn in Java standaard classes voor: Vector2D en Vector3D in java. (even snel gegoogled: https://docs.oracle.com/c(...)ecmath/Vector2d.html, geen idee of het wat is, heb nog nooit iets in Java gedaan). De standaard classes hebben standaard properties zoals length, wat feitelijk is wat je berekend. In jouw geval zou je twee arrays van vectoren doorlopen om de max length van elk item te bepalen.
[ code verwijderd ]

(code geschreven in fok! 'IDE' en met 0 ervaring in Java, dus mogelijk vol met fouten (en ook mogelijk niet wat je bedoeling was). Maar je snapt het idee neem ik aan?

De code laat ook goed zien dat jouw code feitelijk uit twee distincte scenarios bestaat: 2d en 3d, met daarbinnen de mogelijkheid een array met zichzelf of met een andere array te vergelijken. Vandaar dat ik dit in twee classes zou doen. Leest net wat makkelijker.

Mocht je geen zin hebben in vectoren blijft de code qua structuur hetzelfde, alleen zit er iets meer wiskunde in sommige regels.
Ah okay dit snap ik maar als wetenschapper heb ik liever toegang tot mijn eigen methodes :P een cartesian coordinaten paar behandelen als een vector zou ik niet doen, dan val te snel in valkuilen als length zien als een afstand terwijl dat in deze de lengte van de vector is wat voor coördinaten niet echt iets betekend. Een extra klasse maken voor 3d ten opzichte van 2D zorgt dat ik in de bovenliggende code veel meer moet gaan testen en aanroepen.

Wel tof om code van iemand anders te zien, ga wel een keer puzzelen om dit beter te krijgen.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 23:22:41 #268
27682 crew  Bosbeetle
terminaal verdwaald
pi_182848136
Ik heb helaas wel geleerd om zo min mogelijk van externe pakketen of functies afhankelijk te zijn omdat ze die nog wel eens willen veranderen.

:X hoevaak ik wel niet normalisatie functies heb gezien die echt rare dingen met je data doen, terwijl zo makkelijk zelf te schrijven zijn.... :X
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator woensdag 31 oktober 2018 @ 06:53:31 #269
27682 crew  Bosbeetle
terminaal verdwaald
pi_182850444
Opzich zou het misschien nog wel wat zijn om hier een klasse van te maken met twee subklassen voor 2 of 3D zodat ik bovenliggend met de super kan werken... Dat ga ik vandaag eens in elkaar zetten...
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator woensdag 31 oktober 2018 @ 09:13:19 #270
27682 crew  Bosbeetle
terminaal verdwaald
pi_182851394
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
78
79
80
81
82
83
package Neigbours;

public class coordinates {

    double[] x,y,x2,y2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){

        this.x = x;
        this.y = y;

        MakeDistmat(x,y,x,y);

    }

    coordinates(double[] x1, double[] y1,double[] x1, double[] y1){

        this.x = x1;
        this.y = y1;
        this.x2 = x2;
        this.y2 = y2;

        MakeDistmat(x1,y1,x2,y2);

    }


    private void MakeDistmat(double[] x1, double[] y1, double[] x2, double[] y2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) );

                this.max = Math.max(dmat[i][j],this.max);
            }
        }

        this.distmat = dmat;
    }

}

public class coordinates3D extends coordinates {

    double[] z,z2;

    coordinates3D(double[] x, double[] y, double[] z){

        super(x,y);
        this.z = z;
        addZdist(z,z);


    }

    coordinates3D(double[] x1, double[] y1,double[] z1, double[] x2, double[] y2, double[] z2){

        super(x1,y1,x2,y2);
        this.z = z1;
        this.z2 = z2;
        addZdist(z1,z2);

    }

    private void addZdist(double[] z1, double[] z2 ){

        super.max=0;

        for(int i=0;i<super.distmat.length;i++){
            for(int j=0;j<super.distmat[0].length;j++){
                super.distmat[i][j] = Math.sqrt( Math.pow(super.distmat[i][j],2) + Math.pow(z1[i]-z2[j],2) );
                super.max = Math.max(super.distmat[i][j],super.max);
            }
        }
    }

}

zo dan 2 klasses 1 voor 2D en een extend naar 3D, de construct method voor de matrix gereduceerd naar 1 method per klasse... en dus geen gedoe meer met de z naar 0 zetten...

Het enige wat ik me nu afvraag of ik bij de x en y cooordinaten kan vanuit de coordinates3D via this.x of this.y of dat ik daar nu getters voor moet schrijven die super.x kunnen returnen?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')