 
		 
			 
			
			
			| 1 2 3 4 | int a[10] = {0}; int *b = &a[1]; b[-1] = 0xCAFE; printf("%X %X", a[0], a[9]); | 
 
			 
			
			
			 
			 
			
			
			Dus, zoals al is gezegd, is a[i] gelijk aan *(a + i) en hier mag de compiler niets aan veranderen. Met een negatieve i zou dit vrijwel altijd betekenen dat je uit je array loopt, wat resulteert in ongedefinieerd gedrag en dus gevaarlijk is. Als je echter midden in een array zit, kan een negatieve index geldig zijn.quote:8.3.4.6:
Except where it has been declared for a class (13.5.5), the subscript operator [] is interpreted in such a way that E1[E2] is identical to *((E1)+(E2)).
| 1 2 3 4 5 | int const size = 42; int *arr = new int[size]; if (arr[-1] == size) { // Compiler slaat array-grootte voor array op } | 
 
			 
			
			
			SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.maar nu werkt dit niet meer onder de compiler die ik nu dus gebruik (schijnt oud te zijn oid) ik weet dat threads tegenwoordig door C++ ondersteund worden en ik dus geen specifieke Windows code meer nodig heb, maar is het dan ook mogelijk om toets (en muis) aanslagen te registreren buiten Windows om?
dan heb ik nog een vraag: Zelfs met de optie: -std=c++0x kan ik de volgende code niet compileren omdat thread geen member van std zou zijn:
1 
2
3
4
5
6
7
8#include <thread> 
int main(){
std::thread mythread;
return 0;
}Beware of the Raping Zebra's
 
			 
			
			
			 
			 
			
			
			ik krijg de volgend foutmelding als ik de eerder geplaatste code probeer te compileren:quote:Op donderdag 7 juni 2012 17:47 schreef Ai_KaRaMBa het volgende:
Als je een windows applicatie bouwt, ben je sowieso aan de windows API gebonden. Die CreateThread functie zit daar (nog steeds) in, dus ik zou niet weten waarom je oude code het niet meer zou doen? Link je wel goed? Include je windows.h wel?
En die threads functionaliteit zit pas sinds kort in de nieuwste C++ specificatie; mogelijk ondersteund je compiler ze nog niet?
Het hele user interface gebeuren (oa muis en toetsenbord aanslagen) zijn platform specifiek en daarvoor zit je nog steeds aan een GUI toolkit vast. Dat kan gewoon de Win32 API zijn. Als je het platform onafhankelijk wil doen, kun je ook kijken naar Qt, wxWidgets of OpenGL/GLUT.
| 1 2 | error: ambiguates old declaration 'long unsigned int Threader_Key(vo id*)' | 
 
			 
			
			
			 
			 
			
			
			Ja, dat weet ik idd maar de vorige compiler gaf dus problemen als WINAPI in een class stond en werkte deze code. Heb net voor de zekerheid nog even gecheckt maar krijg deze melding:quote:Op donderdag 7 juni 2012 22:26 schreef Ai_KaRaMBa het volgende:
Komt dat niet omdat je je functie Threader_Key binnen je Key klasse anders declareert, dan bij het implementeren van de functie?
(hint: je implementeert het met een WINAPI calling convention, terwijl je 'm daar niet mee declareert)
En voor wat betreft de C++11 threads, gaf google me: http://stackoverflow.com/(...)cy-features-in-mingw
| 1 | error: 'WINAPI' is neither function nor member function; cannot be declared friend | 
 
  
			 
			
			
			 
											 
			 
			
			
			 
			 
			
			
			 
			 
			
			
			nee, C++ is niet ouderwets heel veel word nog steeds in C++ geschreven in veel games zijn de belangrijke delen geschreven in C++, ook word C++ vaak voor modellen gebruiktquote:Op woensdag 13 juni 2012 16:33 schreef Faux. het volgende:
Vraagje, ik wil wel weer 's een nieuwe programmeertaal leren, maar is C++ niet een beetje ouderwets? Kan ik dan niet beter een iets recentere taal leren?
 
			 
			
			
			C++ is een hele goede taal om te leren programmeren, maar zodra je het eenmaal kunt raad ik je aan naar andere talen over te stappen.quote:Op woensdag 13 juni 2012 16:33 schreef Faux. het volgende:
Vraagje, ik wil wel weer 's een nieuwe programmeertaal leren, maar is C++ niet een beetje ouderwets? Kan ik dan niet beter een iets recentere taal leren?
 
			 
			
			
			Ik kan al programmeren, maar ben wel geïnteresseerd in hoe computers vanbinnen werken en zo.quote:Op woensdag 13 juni 2012 18:27 schreef thabit het volgende:
[..]
C++ is een hele goede taal om te leren programmeren, maar zodra je het eenmaal kunt raad ik je aan naar andere talen over te stappen.
 
			 
			
			
			Als ik je goed begrijp, dan staat je antwoord al in de opgave. Je vraagt hoe een karakter 'x' om te zetten naar getal n, toch? We nemen aan dat je op een of andere manier de karakters individueel aan kunt spreken. Nu moet je 'a' omzetten naar 1, 'b' naar 2 enzovoorts.quote:Op woensdag 13 juni 2012 15:33 schreef -tape- het volgende:
Ik heb een probleem; ik heb een tentamen van vorig jaar bekeken over programmeren in C#. Nu snap ik eigenlijk alle opdrachten alleen kom ik er uit 1 niet uit:
[ afbeelding ]
Ik hoef niet de volledige uitwerking, alleen maar even een opzetje hoe dit aangepakt zou moeten worden. Ik dacht zelf aan een for-loop of een while-loop maar kan er niet achter komen hoe je dan individueel al die karakters omzet naar een getal. Iemand enig idee? Alvast bedankt
 
			 
			
			
			Ik ben wel nieuwsgierig - waarom denk je dat C++ ouderwets is?quote:Op woensdag 13 juni 2012 16:33 schreef Faux. het volgende:
Vraagje, ik wil wel weer 's een nieuwe programmeertaal leren, maar is C++ niet een beetje ouderwets? Kan ik dan niet beter een iets recentere taal leren?
 
			 
			
			
			In dat opzicht kan C++ handig zijn. Het dwingt je om te 'denken' als de computer/compiler.quote:Op woensdag 13 juni 2012 19:10 schreef Faux. het volgende:
[..]
Ik kan al programmeren, maar ben wel geïnteresseerd in hoe computers vanbinnen werken en zo.
 
			 
			
			
			ahh, ik wist het!quote:Op woensdag 13 juni 2012 21:05 schreef thabit het volgende:
[..]
In dat opzicht kan C++ handig zijn. Het dwingt je om te 'denken' als de computer/compiler.
 
											 
			 
			
			
			Programmeren doe ik inderdaad voor de lol. Het is natuurlijk wel handig om er uiteindelijk een mooi programma mee te kunnen schrijven, maar het is niet zo dat ik persé de beste programmeertaal wil leren.quote:Op woensdag 13 juni 2012 19:39 schreef GS42 het volgende:
[..]
Ik ben wel nieuwsgierig - waarom denk je dat C++ ouderwets is?
Een antwoord op je vraag is natuurlijk niet te geven. Het klinkt alsof je het voor de lol doet. In dat geval maakt het natuurlijk niet uit hoe nuttig de programmeertaal is en zou ik zeggen: kies wat je leuk lijkt.
Dat lijkt me leuk. Ik ga het proberen, dank julliequote:Op woensdag 13 juni 2012 21:05 schreef thabit het volgende:
[..]
In dat opzicht kan C++ handig zijn. Het dwingt je om te 'denken' als de computer/compiler.
 
											 
			 
			
			
			quote:Op woensdag 13 juni 2012 15:33 schreef -tape- het volgende:
Ik heb een probleem; ik heb een tentamen van vorig jaar bekeken over programmeren in C#. Nu snap ik eigenlijk alle opdrachten alleen kom ik er uit 1 niet uit:
[ afbeelding ]
Ik hoef niet de volledige uitwerking, alleen maar even een opzetje hoe dit aangepakt zou moeten worden. Ik dacht zelf aan een for-loop of een while-loop maar kan er niet achter komen hoe je dan individueel al die karakters omzet naar een getal. Iemand enig idee? Alvast bedankt
| 1 2 3 4 | string outp = string.empty; foreach( char c in string.ToLower()) outp+='-' + (((int)c - 'a')+1).ToString(); return outp.Substring(1); | 
 
			 
			
			
			Dat is in C toch niet heel veel moeilijker?quote:Op donderdag 14 juni 2012 10:07 schreef ralfie het volgende:
[..]
[ code verwijderd ]
Vergeleken met c++ is C# zoo makkelijk.
| 1 2 3 4 5 6 7 8 | char tmp[33]; char outp[1024] = {0}; for(char *c=in; *c; c++) { strcat(outp, "-"); strcat(outp, itoa(toupper(*c)-'A'+1, tmp, 10)); } return strdup(&outp[1]); | 
 
			 
			
			
			| 1 2 3 4 5 | std::string encode(std::string const &input) { std::ostringstream ss; std::for_each(input.begin(), input.end(), [&ss](char c){ ss << c - 96 << '-'; }); return ss.str(); } | 
 
			 
			
			
			
 
			 
			
			
			Volgens de opgave is de input altijd in kleine letters en mag de laatste '-' blijven staan. Wel lezen he?quote:Op donderdag 14 juni 2012 13:11 schreef Ai_KaRaMBa het volgende:
Je vergeet de laatste '-' eraf te strippen, en een toupper/tolower ergens

Maar je hebt gelijk, natuurlijk. De oplossingen zijn precies hetzelfde. De programmeertaal is voorkeur.quote:Maar goed: de algemene aanpak in C, C++ en C# is hetzelfde; zitten wat kleine API/syntax verschillen in, maar ik zie niet waarom het ene fundamenteel makkelijker zou zijn dan het andere
 
			 
			
			
			quote:Op donderdag 14 juni 2012 10:07 schreef ralfie het volgende:
[..]
[ code verwijderd ]
Vergeleken met c++ is C# zoo makkelijk.
| 1 | return "-".join([str(ord(c) - ord("a") + 1) for c in string]) | 
 
			 
			
			
			Oh, ik had de opgave niet gelezen... Ik had mijn code gelijk getrokken aan die van ralfiequote:Op donderdag 14 juni 2012 13:13 schreef GS42 het volgende:
[..]
Volgens de opgave is de input altijd in kleine letters en mag de laatste '-' blijven staan. Wel lezen he?
 
											 
			 
			
			
			 
			 
			
			
			Tsja, uiteindelijk doet Python het ook in C. Er zijn natuurlijk ook parsergeneratoren die het parsen van tekst prachtig doen, zoals de combinatie van Flex en Bison. Daarmee kan je tekst parsen in een soort meta-taaltje waarna de parsergenerator de broncode voor je genereert en je zelf niets hoeft te schijven. De programma's worden daarom ook wel compiler-compilers genoemd.quote:Op donderdag 14 juni 2012 13:17 schreef thabit het volgende:
Nog makkelijker! String parsing moet je niet in C-watdanook willen doen.

 
			 
			
			
			Zeker, erg leuke site! Ik moet bekennen dat ik er uit zelfbescherming niet te vaak op zit, omdat ik anders hele dagen niks anders doe.quote:Op donderdag 14 juni 2012 14:44 schreef GS42 het volgende:
[..]
Trouwens, nu we zo enthousiast met een simpel opdrachtje bezig zijn, vraag ik me af of jullie Project Euler ook kennen. Het is een website met programmeerpuzzels, meestal gecombineerd met een beetje wiskunde. Het begin is goed te doen, maar de opgaves worden steeds lastiger. Iemand die het kent of zelfs meedoet?
 
			 
			
			
			 
											
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |