Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.quote:Op vrijdag 29 maart 2013 13:10 schreef Tijn het volgende:
[..]
Ik denk dat je beter eerst goed kan leren hoe de if-statement werkt voordat je met loops aan de gang gaat.
Je zou bijvoorbeeld als oefening een programma kunnen maken dat 3 ingevoerde getallen sorteert van laag naar hoog zonder loops te gebruiken, maar puur met if-statements.
Als je wilt leren programmeren doe je imo liever wel een paar keer moeilijk. Wordt het belangrijk dat je foutloos en efficient efficiente code genereert, dan gebruik je bestaande libraries terwijl je weet wat die libraries achter de schermen doen (omdat je het zelf al eens hebt gezien).quote:Op zondag 31 maart 2013 01:00 schreef robin007bond het volgende:
[..]
Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.
Het gaat erom dat die jongen moet leren hoe de if-statement werkt, niet dat-ie een programma maakt om 3 getallen te sorteren natuurlijkquote:Op zondag 31 maart 2013 01:00 schreef robin007bond het volgende:
[..]
Dat is ook niet zo moeilijk als je sort van de klasse algorithms gebruikt i.c.m. een vector. Dan heb je niet eens een if statement nodig.
Punt was meer dat hij het ook zonder if-statements kan doen waardoor hij er alsnog niets van leert.quote:Op zondag 31 maart 2013 05:26 schreef Tijn het volgende:
[..]
Het gaat erom dat die jongen moet leren hoe de if-statement werkt, niet dat-ie een programma maakt om 3 getallen te sorteren natuurlijk
Daarom is de opdracht dat-ie er wel if-statements voor moet gebruikenquote:Op maandag 1 april 2013 18:33 schreef robin007bond het volgende:
[..]
Punt was meer dat hij het ook zonder if-statements kan doen waardoor hij er alsnog niets van leert.
Ik ben een laatkomer, maar ik heb wat kunnen vinden:quote:Op dinsdag 2 april 2013 23:10 schreef t4rt4rus het volgende:
[..]
Hadden we daar niet ook een topic over?
Dat is hem.quote:Op woensdag 3 april 2013 08:39 schreef robin007bond het volgende:
[..]
Ik ben een laatkomer, maar ik heb wat kunnen vinden:
DIG / Project Euler
Dat is idd niet goed neequote:Op zaterdag 27 april 2013 19:16 schreef robin007bond het volgende:
Ik zat leuk even screenshots van Plan 9 te kijken. Zag er leuk uit.
Maar toen werd ik verdrietig. Zie screenshot:
[ afbeelding ]
void main
Zeer handig juist. Stel je maakt een classe matrix dan kun je vervolgens * overloaden zodat de matrix A * matrix B = matrix C oplevert.quote:Op zondag 28 april 2013 19:58 schreef robin007bond het volgende:
Het hele nut van Operator Overloading ontgaat me overigens.
En met grote projecten? Dan moet je helemaal uitzoeken welke classes welke operator overloaden. Voor dat matrix a + matrix b = c kun je ook een aparte methode maken.quote:Op zondag 28 april 2013 20:10 schreef Dale. het volgende:
[..]
Zeer handig juist. Stel je maakt een classe matrix dan kun je vervolgens * overloaden zodat de matrix A * matrix B = matrix C oplevert.
Dat kun je doen maar dan worden complexe formules niet meer goed zichtbaar in dit geval. En het gene wat je zegt word idd vaak als een van de nadelen genoemd van operater overloading. Goede documentatie kan echter een verschil makenquote:Op zondag 28 april 2013 20:13 schreef robin007bond het volgende:
[..]
En met grote projecten? Dan moet je helemaal uitzoeken welke classes welke operator overloaden. Voor dat matrix a + matrix b = c kun je ook een aparte methode maken.
Ik denk dat het voor de formules niet veel uitmaakt. Als je de functies/methoden een goede naam geeft is het duidelijk wat de formules doen.quote:Op zondag 28 april 2013 20:16 schreef Dale. het volgende:
[..]
Dat kun je doen maar dan worden complexe formules niet meer goed zichtbaar in dit geval. En het gene wat je zegt word idd vaak als een van de nadelen genoemd van operater overloading. Goede documentatie kan echter een verschil maken
Die bottom lines hebben toch een heel groot duh-gehalte, maar het ergste is een van zijn eerste assumpties. Als x een std::vector is van lengte n, dan wijst &(x[0]) zeker wel naar een contiguous blok geheugen van n elementen. Zou hij de initialisatie van de vector buiten de loop halen (d.w.z., een propere buffer aanleggen), dan was er niets aan de hand; C++ en C zijn verschillende talen en daar moet je ook naar programmeren.quote:Op zondag 28 april 2013 19:16 schreef robin007bond het volgende:
Interessant stukje over de performance-verschillen tussen normale C-arrays en vectors:
http://assoc.tumblr.com/p(...)or-vs-plain-c-arrays
nja, toch is het wel handig als je gewoon A*B=C kan doen en a*B=c of 6*A=B (waar de hoofdletters voor matrices staan en de kleine letters voor vectoren)quote:Op zondag 28 april 2013 20:18 schreef robin007bond het volgende:
[..]
Ik denk dat het voor de formules niet veel uitmaakt. Als je de functies/methoden een goede naam geeft is het duidelijk wat de formules doen.
Die extra documentatie vind ik verspilde uren. Het lijkt zo net eigen werkverschaffing
Klopt niks van. Hij zegt dat vector niet continous is, dat is het wel.quote:Op zondag 28 april 2013 19:16 schreef robin007bond het volgende:
Interessant stukje over de performance-verschillen tussen normale C-arrays en vectors:
http://assoc.tumblr.com/p(...)or-vs-plain-c-arrays
Andere member functies moet je ook opzoeken...quote:Op zondag 28 april 2013 20:13 schreef robin007bond het volgende:
[..]
En met grote projecten? Dan moet je helemaal uitzoeken welke classes welke operator overloaden. Voor dat matrix a + matrix b = c kun je ook een aparte methode maken.
);
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // The IP header struct IPHeader { char h_len:4; // Length of the header in dwords char version:4; // Version of IP char tos; // Type of service unsigned short total_len; // Length of the packet in dwords unsigned short ident; // unique identifier unsigned short flags; // Flags char ttl; // Time to live char proto; // Protocol number (TCP, UDP etc) unsigned short checksum; // IP checksum unsigned long source_ip; unsigned long dest_ip; }; SOCKET hSocket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | std::cout << "Receiving... "; recv_buff = new IPHeader + 1024; char buff[1024+sizeof(IPHeader)]; int i = recv(hSocket,buff,1024+sizeof(IPHeader),0); if(i == 0) std::cout << "Connection closed\n"; else if(i == SOCKET_ERROR){ std::cout << "Failed!\n"; if(WSAGetLastError() == WSAEMSGSIZE) std::cout << "Buffer is too small!\n"; throw Error(); } else{ std::cout << "Done.\n"; std::cout << '\n'; for(int j = 0; j < i; j++){ //std::cout << tempbuff[j]; } |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |