Programmeer opdrachten

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 157

Programmeer opdrachten

Om wat kennis te verwerven in een paar reguliere programmeerspraken ben ik opzoek naar programmeer opdrachten. De programmeertaal maakt in principe niet uit.

Nu vroeg ik me af of iemand hier een website weet of toevallig een bestand heeft met programmeer opdrachten (:

Gebruikersavatar
Berichten: 829

Re: Programmeer opdrachten

Kan je zeggen over wel niveau je het dan hebt, beginner, gevorderd, expert. Ik bedoel wil je echte uitdagingen, of is het eerder om de taal te leren beheersen?
"Als je niet leeft zoals je denkt, zul je snel gaan denken zoals je leeft."

--Vladimir Lenin-- (Владимир Ильич Ульянов)

Berichten: 18

Re: Programmeer opdrachten

Kan je zeggen over wel niveau je het dan hebt, beginner, gevorderd, expert. Ik bedoel wil je echte uitdagingen, of is het eerder om de taal te leren beheersen?


ja , goede vraag, plus welke toepassingsgebied ook

wil je iets doen met databases of bestanden of netwerken of gewoon algoritmen of graphics en animatie of of of ...
Knowledge of self is the key to the knowledge of God.

Re: Programmeer opdrachten

Voor gevorderden: Construeer een klasse waarvan slechts 1 instantie tegelijk kan bestaan.

Voor beginners: (zomaar enkele, zonder grote grafische impact)

Schrijf een programma dat bij invoer van 2 polynomen hun product als uitvoer heeft.

Schrijft een programma dat de grootste gemene deler van twee gehele getallen uitrekent.

Schrijf een zo kort en efficient mogelijk programma dat bij invoer n, het n-de Fibonaccigetal uitrekent.

Schrijf een programma dat bij invoer van twee woorden de verzameling van gemeenschappelijk letter geeft.

Gebruikersavatar
Berichten: 6.905

Re: Programmeer opdrachten

Voor gevorderden: Construeer een klasse waarvan slechts 1 instantie tegelijk kan bestaan.
Zou dit kunen in Python?
Schrijf een zo kort en efficient mogelijk programma dat bij invoer n, het n-de Fibonaccigetal uitrekent.
Dan gebruiken we toch
\(f_n = \frac{(1+\sqrt 5)^n - (1-\sqrt 5)^n}{2^n \sqrt 5}\)
:D

Ik voeg toe voor iets tussen gevorderden en beginners:

uitrekenen van determinanten

Je kan ook eens kijken op projecteuler.net. Daar zal je opgaven van alle niveaus vinden en gaande weg nemen je mogelijkheden toe.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Re: Programmeer opdrachten

Zou dit kunen in Python?
Tuurlijk.

Wat die Fibonacciopgave betreft, mag je alleen gebruik maken van de recursie.

(Anders weet ik nog wel een flauwe: Stop de eerst 100000 in een array). (Oei, overflow)

Berichten: 2.504

Re: Programmeer opdrachten

Voor gevorderden: Construeer een klasse waarvan slechts 1 instantie tegelijk kan bestaan.
Dat heb ik nog nooit gedaan, dus ik zou niet weten.

Trouwens, wil dit zeggen dat als ik een tweede instantie maak dat de eerste vernietigt wordt, of dat ik een error message moet krijgen?
"Invisible Pink Unicorns are beings of great spiritual power. We know this because they are capable of being invisible and pink at the same time. Like all religions, the Faith of the Invisible Pink Unicorns is based upon both logic and faith. We have faith that they are pink; we logically know that they are invisible because we can't see them."

Berichten: 18

Re: Programmeer opdrachten

Voor gevorderden: Construeer een klasse waarvan slechts 1 instantie tegelijk kan bestaan.
Er bestaat al een design pattern voor dit :P , de afkorting is:

Code: Selecteer alles

char[] afkorting = {'r','z','s'};

System.out.println((char)((int)(afkorting[0]+1)) + " " +

                (char)(afkorting[2]+1));
:D
Knowledge of self is the key to the knowledge of God.

Gebruikersavatar
Berichten: 4.810

Re: Programmeer opdrachten

Trouwens, wil dit zeggen dat als ik een tweede instantie maak dat de eerste vernietigt wordt, of dat ik een error message moet krijgen?
Nope, je kan zelf gewoon geen instanties aanmaken.

Voor de geïnteresseerden die de oplossing graag willen weten (oplossing staat hieronder, dus enkel kijken als je het geprobeerd hebt).

Verborgen inhoud
Op deze website wordt het deels uitgelegd (lezen tot de eerste blok code, de rest daarna is minder zinnig) http://radio.weblogs.com/0122027/stories/2...ternInJava.html

Nu, ik zal het zelf even proberen verduidelijken. Je zorgt dat je constructor van je klasse private (of protected) staat. Zo kan de gebruiker zelf geen objecten creëren omdat je private zaken niet kan aanroepen.

Nu zorg je voor een statische variabele met als type je singleton klasse, ik ga het hier nu even Singleton noemen maar dat hoeft niet!

private static Singleton singleton = new Singleton();

Wanneer java deze klasse gaat laden gaat ze zelf zorgen dat dit object wordt aangemaakt (een eigen klasse kan natuurlijk wel aan haar private methodes!).

Nu heb je enkel nog een getter nodig om die variabele op te halen. Meestal wordt deze getInstance() genoemd. Vermits je zelf geen objecten kan aanmaken kan je enkel je klasse aanspreken via static methodes (vandaar ook de variabele static maken, anders krijg je mooie errors natuurlijk).

Je krijgt dus iets in de vorm:

public static Singleton getInstance() {

return singleton;

}

Je constructor zelf kan gewoon leeg blijven (tenzij je zelf andere zaken wil gaan doen).

Nu kan je dit 1ne object (dat altijd hetzelfde zal zijn) overal in je programma oproepen zonder het altijd door te geven of iets dergelijks. Dit gaat gewoon via: Singleton singleton = Singleton.getInstance();

Dit soort objecten zijn handig voor bv instellingsklassen die overal nodig zijn omdat ze bepaalde waarden leveren, of als je simpelweg wil zeker zijn dat er altijd maximaal 1 object voor handen is.

Als je nog meer verduidelijking wil kan je zelf wat zoeken op het Singleton pattern, maar de meeste uitleg op internet is nogal aan de zware kant, voor een toch nogal simpel design pattern.

Gebruikersavatar
Berichten: 829

Re: Programmeer opdrachten

Voor de geïntresseerden. Ingdas kwam een paar dagen geleden op een goeie site: topcoder.com beheerd door de NSA (National Security Agency) Maar met zowel makkelijke als moeilijke opdrachten, ik denk dat mensen die hun skills willen verbeteren hier wel hun ding zullen vinden.
"Als je niet leeft zoals je denkt, zul je snel gaan denken zoals je leeft."

--Vladimir Lenin-- (Владимир Ильич Ульянов)

Gebruikersavatar
Berichten: 157

Re: Programmeer opdrachten

Bedankt alvast voor de vele antwoorden wel graag geen topic hijacking plz :D , wel sorry dat ik zo laat pas reply

Maar in principe was ik niet specifiek opzoek naar een bepaald soort programmeeropdracht. Ik hoef iig niet meer het idee achter while's, if's, for's, class's, pointer's te leren.

Ik ben dus opzoek naar wat gem. tot geavanc. oefeningen...
Mifen schreef:ja , goede vraag, plus welke toepassingsgebied ook

wil je iets doen met databases of bestanden of netwerken of gewoon algoritmen of graphics en animatie of of of ...
In principe maakt mij dit niet zoveel uit. Alle takken zijn leuk. Wel moet ik zeggen dat ik met netwerken en graphics, animatie geen ervaring heb maar sta er wel open voor.

Dus eigenlijk komt het gewoon hierop neer... dump hier gewoon oefeningen waarover je beschikt, of goeie websites

ps. ik was zelf wel van plan alle opdrachten in C++ of python te maken. In deze laatste heb ik nog geen kennis van maar dat hoop ik dus zo op te schroeven en te ontdekken wat de mogelijkheden zijn in deze taal.
Voor gevorderden: Construeer een klasse waarvan slechts 1 instantie tegelijk kan bestaan.
Singleton (: http://en.wikipedia.org/wiki/Singleton_pattern

Gebruikersavatar
Berichten: 157

Re: Programmeer opdrachten

even een kick ik heb namelijk een nogal leuke website gevonden voor programmeeropdrachten (of eigenlijk gewoon challenges zoals Vladimir Lenin 2 posts hierboven noemde)

Het gaat om projecteuler.net
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.
Ik denk dat ik hier best wat mensen een plezier mee doe ;)

Gebruikersavatar
Berichten: 6.905

Re: Programmeer opdrachten

Deze website kende ik al. Zeker een aanrader!

(is al een paar keer vernoemd op wsf)
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Reageer