[Prog]Wat te maken voor practicum

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#16 » Thu Dec 27, 2007 4:46 pm

ccat wrote:
Shinta wrote:Je kan dat overlopen simuleren door zo'n for-lus zoals ik in het begin heb uitgelegd he. Je houdt de lengte bij van je lijst en je vraagt dan een element op dat op positie i staat binnen die lijst. Die getNodeAtPosition(i) methode zal dan intern i-1 keer de next pointer volgen, aangenomen dat je vanaf de head begint. Je kunt idd in je TrackList een operatie "gotoNext()" toevoegen dat naar het volgende element gaat.
mmm~ ja, je kan dat doen maar in principe wordt dat na een tijdje (grote lijsten) redelijk onoptimaal vrees'k omdat je iedere keer i keer - 1 moet doorlopen... en dat is eigenlijk een for lus genest in een andere for lus, iets wat we liever ni als't echt anders kan denk ik hé ;)
Dus ik persoonlijk zou dat wel proberen te vermijden als het kan. Want als je alles kan doen door de lijst één keer af te lopen is dat echt wel veel optimaler dan dat je voor ieder element in je lijst iedere keer je lijst meot aflopen tot dat element. Maar allee... zo belangrijk is het misschien nu niet veronderstel ik maar kom :d
Neen maar het is wel een goed punt dat je maakt :) Als je computer graphics in tweede semester traag loopt, is het soms dat je voor elk element de hele lijst afloopt ipv 1 for lusje :)

User avatar
Shinta
WOZ
Posts: 1122

Post#17 » Thu Dec 27, 2007 5:43 pm

ccat wrote:
Shinta wrote:Je kan dat overlopen simuleren door zo'n for-lus zoals ik in het begin heb uitgelegd he. Je houdt de lengte bij van je lijst en je vraagt dan een element op dat op positie i staat binnen die lijst. Die getNodeAtPosition(i) methode zal dan intern i-1 keer de next pointer volgen, aangenomen dat je vanaf de head begint. Je kunt idd in je TrackList een operatie "gotoNext()" toevoegen dat naar het volgende element gaat.
mmm~ ja, je kan dat doen maar in principe wordt dat na een tijdje (grote lijsten) redelijk onoptimaal vrees'k omdat je iedere keer i keer - 1 moet doorlopen... en dat is eigenlijk een for lus genest in een andere for lus, iets wat we liever ni als't echt anders kan denk ik hé ;)
Dus ik persoonlijk zou dat wel proberen te vermijden als het kan. Want als je alles kan doen door de lijst één keer af te lopen is dat echt wel veel optimaler dan dat je voor ieder element in je lijst iedere keer je lijst meot aflopen tot dat element. Maar allee... zo belangrijk is het misschien nu niet veronderstel ik maar kom :d
Dan moet gij uw implementatie van uwe lijst efficienter make he :). Ne currentnode bijhouden en ne integer datte huidige positie aangeeft, en dan relatief tegenover uw huidige positie de gevraagde positie opzoeken, zodat uw for lus altijd maar 1 stap doet maar nog altijd krachtig genoeg is om meerdere stappen uit te voeren.
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
ccat
Posts: 29

Post#18 » Fri Dec 28, 2007 8:40 pm

Ik heb het bij mij wel wat anders aangepakt ja ;)

maar dat laatste wat je zegt is wel interessant eigenlijk... ge zou kunnen werken waar ge altijd een element kunt opvragen tot aan het einde ge niks meer terug krijgt maar dan moet je ook iets implementeren om dat te resetten en dat is ni echt zo heel erg mooi want nogal foutgevoelig precies. Maar 't zou op zichzelf wel een leuk systeem zijn ^^

Dat laatste ideetje zal'k nog is wat beter bekijken want dat is ook wel interessant.

Maar ik bedoelde dat trouwens niet bekritiserend hé... ik was gewoon maar een beetje aan't denken over dat systeem van i-de elementje op te vragen ;)
anarchy in the cellophane.
supernintendo girl rules!!!!

pidot
Posts: 30

Post#19 » Wed Jan 16, 2008 5:27 pm

uw initialiseer procedure uit diene oolijst, wat initialiseert die van diene lijst?
Hebt ge daar ook een soort veld empty zoals in de oolists van Arickx?

User avatar
Sebastiaan
Posts: 1184

Post#20 » Wed Jan 16, 2008 10:25 pm

pidot wrote:uw initialiseer procedure uit diene oolijst, wat initialiseert die van diene lijst?
Hebt ge daar ook een soort veld empty zoals in de oolists van Arickx?
ik zou percies ni te veel overnemen uit den arickx zijn modules, die zijn namelijk vrij omslachtig

User avatar
Fristi
WOZ
Posts: 4565

Post#21 » Thu Jan 17, 2008 12:07 am

vrij omslachtig maar alles werkt wel en is vri jduidelijk.
Het is mss niet de meest efficiente manier maar mijn lijstmodule is bijna een kopie van de zijn, beetje uitgebreider en alles werkt toch dus.

User avatar
Sebastiaan
Posts: 1184

Post#22 » Fri Jan 18, 2008 2:31 pm

Voor het praktijk van programmeren staat er dat wij in

lokaal US213 en US103 moeten zijn, maar weet er iemand waar dat is?

:D

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#23 » Fri Jan 18, 2008 2:43 pm

Sebastiaan wrote:Voor het praktijk van programmeren staat er dat wij in

lokaal US213 en US103 moeten zijn, maar weet er iemand waar dat is?

:D
awel, ge komt van de T-hal, ge gaat richting cafetaria (Passage) en dan verderdoor richting cursusdienst. Voor ge rechts uitwijkt om naar de cursusdienst te gaan, gaat ge de trappen recht voor u op. US103 is op het eerste verdiep rechts achter de hoek en US213 is een verdieping hoger.
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

User avatar
Nynek
WOZ
Posts: 1160
Contact:

Post#24 » Fri Jan 18, 2008 3:14 pm

hm,toch maar al tegen 8.30 komen dan ^^

User avatar
Sebastiaan
Posts: 1184

Post#25 » Sat Jan 19, 2008 1:55 pm

Robbe wrote:
Sebastiaan wrote:Voor het praktijk van programmeren staat er dat wij in

lokaal US213 en US103 moeten zijn, maar weet er iemand waar dat is?

:D
awel, ge komt van de T-hal, ge gaat richting cafetaria (Passage) en dan verderdoor richting cursusdienst. Voor ge rechts uitwijkt om naar de cursusdienst te gaan, gaat ge de trappen recht voor u op. US103 is op het eerste verdiep rechts achter de hoek en US213 is een verdieping hoger.
k thx Robbe :D

User avatar
Tom
Posts: 602

Post#26 » Sat Jan 19, 2008 2:52 pm

Normaal gezien kan je de basis opdracht (mits je 2 opdrachten hebt geoefend) in een uur afkrijgen.
Dan zie je zelf maar of je jouw code efficienter en duidelijker maakt of aan de extras wil beginnen.


Als er wordt gevraagd om iets alfabetisch te sorteren dan moet je er gewoon voor zorgen dat je jouw elementen alfabetisch toevoegt. Je loopt dus gewoon de lijst af en kijkt of het in te voegen woord alfabetisch voor het huidige woord komt, in dat geval voeg je in en stop je met de lijst door te lopen.

Kijken of een woord voor een ander woord komt kan zo:
Psuedo-code (Oberon-achtig, recursief)

Code: Select all

PROC WoordVolgorde(woord1, woord2, index)

IF ORD(woord1[index]) < ORD(woord2[index]) THEN
RETURN TRUE;
ELSIF ORD(woord1[index]) > ORD(woord2[index]) THEN
RETURN FALSE;
ELSE
INC(index);
RETURN WoordVolgorde(woord1, woord2, index);
END WoordVolgorde;
Aanroepen met WoordVolgorde("Appel", "Peer", 0) zal TRUE geven en WoordVolgorde("Peer", "Appel", 0) zal FALSE geven.

Het maken van tabellen is ook niet zo moeilijk. (Bijna alle karakters zijn even groot, achter kortere woorden kan je (kolombreedte - lengte) spaties toevoegen en getallen rechts uitlijnen doe je met de tweede parameter van OutExt.Int)

Rechts uitlijnen met dank aan Pieter :D

User avatar
racekakje
WOZ
Posts: 740

Post#27 » Sat Jan 19, 2008 3:31 pm

Tom wrote:Het maken van tabellen is ook niet zo moeilijk. (Bijna alle karakters zijn even groot, achter kortere woorden kan je (kolombreedte - lengte) spaties toevoegen en getallen rechts uitlijnen doe je met de tweede parameter van OutExt.Int)
Zie dan wel dat je dat doet in een OutExt venster, want afdrukken in de System.Log is echt een hel.
Geen enkele letter is evengroot, spaties zijn veel kleiner als letters.. niks mee aan te vangen

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#28 » Sat Jan 19, 2008 5:13 pm

Tom wrote:Kijken of een woord voor een ander woord komt kan zo:
Psuedo-code (Oberon-achtig, recursief)

Code: Select all

PROC WoordVolgorde(woord1, woord2, index)

IF ORD(woord1[index]) < ORD(woord2[index]) THEN
RETURN TRUE;
ELSIF ORD(woord1[index]) > ORD(woord2[index]) THEN
RETURN FALSE;
ELSE
INC(index);
RETURN WoordVolgorde(woord1, woord2, index);
END WoordVolgorde;
Aanroepen met WoordVolgorde("Appel", "Peer", 0) zal TRUE geven en WoordVolgorde("Peer", "Appel", 0) zal FALSE geven.
Amai, good thinking :) Maar om het gebruiksvriendelijker te maken zou ik dit ding toch als subprocedure van "PROC WoordVoor(woord1, woord2): BOOLEAN" gebruiken, tenzij ge deze procedure ga hacken om ook andere dingen te doen.

Gij gaat programmeerparadigma's leuk vinden :)
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Pieter Belmans
Posts: 593
Contact:

Post#29 » Sat Jan 19, 2008 5:42 pm

racekakje wrote:
Tom wrote:Het maken van tabellen is ook niet zo moeilijk. (Bijna alle karakters zijn even groot, achter kortere woorden kan je (kolombreedte - lengte) spaties toevoegen en getallen rechts uitlijnen doe je met de tweede parameter van OutExt.Int)
Zie dan wel dat je dat doet in een OutExt venster, want afdrukken in de System.Log is echt een hel.
Geen enkele letter is evengroot, spaties zijn veel kleiner als letters.. niks mee aan te vangen
In de System.Log gebruik je geen fixed-width font à la Courier, in de TextViewer van OutExt wel. Het is mogelijk om System.Log fixed-width, of die OutExt TextViewer niet-fixed-width te maken, maar dat is redelijk pointless :P.

User avatar
Tom
Posts: 602

Post#30 » Sat Jan 19, 2008 6:14 pm

Robbe wrote:
Tom wrote:Kijken of een woord voor een ander woord komt kan zo:
Psuedo-code (Oberon-achtig, recursief)

Code: Select all

PROC WoordVolgorde(woord1, woord2, index)

IF ORD(woord1[index]) < ORD(woord2[index]) THEN
RETURN TRUE;
ELSIF ORD(woord1[index]) > ORD(woord2[index]) THEN
RETURN FALSE;
ELSE
INC(index);
RETURN WoordVolgorde(woord1, woord2, index);
END WoordVolgorde;
Aanroepen met WoordVolgorde("Appel", "Peer", 0) zal TRUE geven en WoordVolgorde("Peer", "Appel", 0) zal FALSE geven.
Amai, good thinking :) Maar om het gebruiksvriendelijker te maken zou ik dit ding toch als subprocedure van "PROC WoordVoor(woord1, woord2): BOOLEAN" gebruiken, tenzij ge deze procedure ga hacken om ook andere dingen te doen.

Gij gaat programmeerparadigma's leuk vinden :)
Ja, heb het ook maar snel geschreven om alfabetisch dingen te kunnen rangschikken. Inderdaad, een sub-procedure zou netter staan, maar dan heb je langst de andere kant weer meer code.

In C++ kan je parameters een default geven, in dat geval zou het gewoon " int index = 0 " zijn.

(Ik moet eens bekijken wat programmeerparadigma's zijn)

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 2 guests