abonnement Unibet Coolblue Bitvavo
pi_115463769


Het topic over de programmeertalen C en C++. Als je vragen over C of C++ hebt, zit je hier goed. Natuurlijk kan je ook gewoon mee kletsen.

Let er bij het stellen van een vraag op dat je zo veel mogelijk revelante informatie geeft, zoals:
- wat je probeert te doen;
- welk besturingsysteem je hebt;
- welke compiler en versie je gebruikt;
- de eventuele foutmelding die je ziet;
- een minimaal codevoorbeeld dat je fout veroorzaakt.

FAQ

Wat is het verschil tussen C en C++?

De programmeertalen C en C++ hebben veel overeenkomsten. C++ is begonnen als een uitbreiding op C en ondersteunt bijna de volledige C-taal. Dit betekent dat een computerprogramma geschreven in C meestal ook een geldig C++-programma is.

C++ heeft onderdelen aan de C-taal toegevoegd en ondersteunt verschillende programmeerstijlen beter. C++ heeft onder andere sterkere typechecking, betere manieren om data te encapsuleren en eenvoudigere structuren om algemene code te schrijven. C is echter nog steeds beter ondersteund op 'afwijkende' platformen en wordt mede daarom nog veel gebruikt.

Zie Stroustrups FAQ voor meer informatie.

Ik wil beginnen met C of C++; welke moet ik kiezen?

Dat hangt van jou af: er is geen direct 'betere' keuze. Je hoeft zeker geen C te leren voordat je aan C++ begint: het is waarschijnlijk zelfs beter van niet. Zorg in de eerste plaats voor een goed leerboek, de online informatie en 'cursussen' laat vaak te wensen over voor de beginneling.

Wat is een goed boek voor C of C++

Zie wederom Stroustrups FAQ.

Links

Naslagwerken

C/C++ Reference
The C Library Reference Guide
C++ Documentation
C++ Annotations

Achtergrond
The Association of C and C++ Users
Stroustrup's homepage

Deze OP vind je hier.
pi_115463850
w00t OP is al een stuk beter, goed gedaan GS42!

Ik kijk later zelf wel even wat we kunnen toevoegen.
pi_115464227
quote:
0s.gif Op zondag 12 augustus 2012 14:42 schreef thenxero het volgende:

[..]

Dat is misschien het beste, misschien heb ik dat in de toekomst ook nog voor andere dingen nodig. Hoe installeer die nieuwe gcc?
Hier haal ik gcc 4.7.1 ( http://www.equation.com/servlet/equation.cmd?fa=fortran )

En dan in Code::Blocks:
Settings -> Compiler and debugger settings
Ik copy dan meestal de oude gcc
En dan in "Toolchain executables" gooi ik de nieuwe compiler install dir erin

En vergeet niet om de nieuwe compiler profile de default te maken.
Some people should be around your entire life; others should just make an appearance.
pi_115465168
quote:
0s.gif Op zondag 12 augustus 2012 15:39 schreef ari_zahav het volgende:

[..]

Hier haal ik gcc 4.7.1 ( http://www.equation.com/servlet/equation.cmd?fa=fortran )

En dan in Code::Blocks:
Settings -> Compiler and debugger settings
Ik copy dan meestal de oude gcc
En dan in "Toolchain executables" gooi ik de nieuwe compiler install dir erin

En vergeet niet om de nieuwe compiler profile de default te maken.
Bedankt. Heb dit nu gedaan. Volgens mij werkt hij goed (heb het getest op mijn eigen oude bestanden), alleen als ik de class/header van GS42 wil gebruiken dan krijg ik:

"It seems like this project has not been built yet. Do you want to build it now?" Vervolgens druk je op "Ja" en dan krijg ik weer hetzelfde bericht. Ik heb net een minuut lang enter ingedrukt maar het bericht blijft maar terugkomen :P
pi_115465743
Geen idee wat dat zou kunnen zijn. Ik zou de error even googlen als ik jou was :)
Some people should be around your entire life; others should just make an appearance.
pi_115466611
quote:
0s.gif Op zondag 12 augustus 2012 16:23 schreef ari_zahav het volgende:
Geen idee wat dat zou kunnen zijn. Ik zou de error even googlen als ik jou was :)
Gefixt, het werkt nu :D
pi_115467107
quote:
0s.gif Op zondag 12 augustus 2012 16:46 schreef thenxero het volgende:

[..]

Gefixt, het werkt nu :D
En hoe?
pi_115467228
quote:
0s.gif Op zondag 12 augustus 2012 16:58 schreef t4rt4rus het volgende:

[..]

En hoe?
Moest gewoon nog een path aanpassen naar de goede compiler :P

PE 13 eindelijk opgelost. Vreemd genoeg duurde het 1sec om één Unlimited Int te lezen en te printen, dus ik had niet veel vertrouwen in de snelheid. Maar die 50 getallen bij elkaar optellen ging ook in ongeveer 1 sec, dus dat viel wel mee :)
pi_115467373
Met GMP duurt het 0.003s om op te lossen.
pi_115467897
quote:
0s.gif Op zondag 12 augustus 2012 17:04 schreef t4rt4rus het volgende:
Met GMP duurt het 0.003s om op te lossen.
Je kan het ook niet zo vergelijken, want er zit ook nog allerlei code van mezelf omheen om die dingen in te lezen. Kan best zijn dat het daar vandaan komt.

100! berekent ie ook binnen 50ms op mijn langzame netbookje

[ Bericht 5% gewijzigd door thenxero op 12-08-2012 17:28:28 ]
pi_115468907
Opdracht 25 is ook leuk :)
1000 digits :P
pi_115469779
Nu opdracht 24 doen zonder programmeren, moet lukken.

edit:
het werkt niet echt... :(

a b c d e f g h i j
10! mogelijkheden om dit te sorteren
Als plek 1 vast staat zijn er nog 9! mogelijkheden om te sorteren, etc.

De miljoenste permutatie is dan
k * 10! + l * 9! + m * 8! + n * 7! + o * 6! + p * 5! + q * 4! + r * 3! + s * 2! + t * 1!

waarin k het k'ste element is uit de gesorteerde set van getallen 10 getallen;
waarin l het l'ste element is uit de gesorteerde set van de overgebleven 9 getallen;
etc.

Of heb ik dit fout?

[ Bericht 39% gewijzigd door t4rt4rus op 12-08-2012 19:02:23 ]
pi_115471698
quote:
0s.gif Op zondag 12 augustus 2012 18:06 schreef t4rt4rus het volgende:
Nu opdracht 24 doen zonder programmeren, moet lukken.

edit:
het werkt niet echt... :(

a b c d e f g h i j
10! mogelijkheden om dit te sorteren
Als plek 1 vast staat zijn er nog 9! mogelijkheden om te sorteren, etc.

De miljoenste permutatie is dan
k * 3628800 + l * 362880 + m * 40320 + n * 5040 + o * 720 + p * 120 + q * 24 + r * 6 + s * 2 + t * 1
waarin k het k'ste element is uit de gesorteerde set van getallen 10 getallen;
waarin l het l'ste element is uit de gesorteerde set van de overgebleven 9 getallen;
etc.

Of heb ik dit fout?
Ik snap de vraag niet eens want ze zeggen niet hoe je de elementen moet permuteren
pi_115471733
quote:
0s.gif Op zondag 12 augustus 2012 18:57 schreef thenxero het volgende:

[..]

Ik snap de vraag niet eens want ze zeggen niet hoe je de elementen moet permuteren
Staat er toch gewoon?
quote:
If all of the permutations are listed numerically or alphabetically, we call it lexicographic order.
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
pi_115471877
quote:
0s.gif Op zondag 12 augustus 2012 18:59 schreef t4rt4rus het volgende:

[..]

Staat er toch gewoon?

[..]

Na wat gegoogle begrijp ik dat je ze moet sorteren op grootte, maar dat haal ik niet echt uit de vraag
pi_115472992
quote:
0s.gif Op zondag 12 augustus 2012 19:03 schreef thenxero het volgende:

[..]

Na wat gegoogle begrijp ik dat je ze moet sorteren op grootte, maar dat haal ik niet echt uit de vraag
Het staat er gewoon...

quote:
If all of the permutations are listed numerically or alphabetically, we call it lexicographic order.
edit:
En zelf nog een voorbeeld
quote:
The lexicographic permutations of 0, 1 and 2 are:

012 021 102 120 201 210


[ Bericht 13% gewijzigd door t4rt4rus op 12-08-2012 19:39:07 ]
pi_115473384
quote:
0s.gif Op zondag 12 augustus 2012 19:33 schreef t4rt4rus het volgende:

[..]

Het staat er gewoon...

[..]

edit:
En zelf nog een voorbeeld

[..]

Ja, list numerically lees ik gewoon als numerieke waarden in een lijst zetten. Maar dat kan ook aan mij liggen.
quote:
0s.gif Op zondag 12 augustus 2012 18:06 schreef t4rt4rus het volgende:
Nu opdracht 24 doen zonder programmeren, moet lukken.

edit:
het werkt niet echt... :(

a b c d e f g h i j
10! mogelijkheden om dit te sorteren
Als plek 1 vast staat zijn er nog 9! mogelijkheden om te sorteren, etc.

De miljoenste permutatie is dan
k * 10! + l * 9! + m * 8! + n * 7! + o * 6! + p * 5! + q * 4! + r * 3! + s * 2! + t * 1!

waarin k het k'ste element is uit de gesorteerde set van getallen 10 getallen;
waarin l het l'ste element is uit de gesorteerde set van de overgebleven 9 getallen;
etc.

Of heb ik dit fout?

Volgens mij klopt dat wel


Je idee klopt wel maar volgens mij moet je met 9! beginnen... dus k * 9! + ... etc
pi_115473808
quote:
0s.gif Op zondag 12 augustus 2012 19:43 schreef thenxero het volgende:

[..]

Ja, list numerically lees ik gewoon als numerieke waarden in een lijst zetten. Maar dat kan ook aan mij liggen.
Nee list numerically is numeriek sorteren dus op grootte. ;)

quote:

Volgens mij klopt dat wel


Je idee klopt wel maar volgens mij moet je met 9! beginnen... dus k * 9! + ... etc
Je kan wel eens gelijk hebben ja :P

Dan wordt het dus
11M = k*9! + l*8! + m*7! + n*6! + o*5! + p*4! + q*3! + r*2! + s*1!
=>
11M = 2*9! + 6*8! + 6*7! + 2*6! + 5*5! + 1*4! + 2*3! + 2*2! + 0*1!

Dus dan lukt het wel... Ok nu zeg ik verder niks meer. :P

[ Bericht 5% gewijzigd door t4rt4rus op 12-08-2012 19:57:55 ]
pi_115474172
En dit klopt ook weer niet :S
pi_115474279
quote:
0s.gif Op zondag 12 augustus 2012 20:00 schreef t4rt4rus het volgende:
En dit klopt ook weer niet :S
Hmm, ik zal er even naar gaan kijken
pi_115475188
Ik snap al waar het fout gaat. Er zijn meerdere manieren om je coëfficiënten te bepalen. Je moet dus nog controleren of je een coëfficiënt kan veranderen door de volgende coëfficiënten te vergroten. Als dat kan moet je het ook zo laten staan.
pi_115476240
wacht eens even,
0 is de eerste permutatie...

Dus we moeten dit oplossen:
1999999 = k*9! + l*8! + m*7! + n*6! + o*5! + p*4! + q*3! + r*2! + s*1!

En dan kom je wel op de goede uit. ;)
pi_115476506
quote:
0s.gif Op zondag 12 augustus 2012 20:49 schreef t4rt4rus het volgende:
wacht eens even,
0 is de eerste permutatie...

Dus we moeten dit oplossen:
[ code verwijderd ]

En dan kom je wel op de goede uit. ;)
Ik zag het ja. Omdat je niet het aantal permutaties telt, maar het aantal keer dat je de originele permutatie gepermuteerd hebt. Samen met mijn vorige opmerking kom je goed uit.
pi_115476708
quote:
0s.gif Op zondag 12 augustus 2012 20:54 schreef thenxero het volgende:

[..]

Ik zag het ja. Omdat je niet het aantal permutaties telt, maar het aantal keer dat je de originele permutatie gepermuteerd hebt. Samen met mijn vorige opmerking kom je goed uit.
We tellen wel het aantal permutaties ;)
999 999 is de miljoenste permutatie van de set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
pi_115478016
Precies. Heb nu ook met de class van GS42 opgave 20 opgelost. In 0.2 seconde dus ik vind die klasse erg goed werken.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')