[Prog] Oberon vraagjes

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Oberon vraagjes

Post#1 » Fri Jan 06, 2006 12:15 pm

  • Waarom moest je nuweer oppassen met - op de computer?

    Van welke soorten typering mag een receiver parameter zijn? Waarom zijn volgens u enkel de door u opgesomds soorten toegelaten, en is er een verband tussen de verschillende mogelijkheden?
Die receiver parameter mag toch enkel van pointer type zijn, dacht ik.

User avatar
Shinta
WOZ
Posts: 1122

Post#2 » Fri Jan 06, 2006 1:48 pm

Nu vraagde wa, eeeuhmm, de receiver bestaat uit uw objectnaam, gevolgd door uw klasse. En wat het doet is uw procedure (methode) als een onderdeel maken van uw klasse, als een nieuw soort data die verwerkingen uitvoert. Ge kunt enkel onderdelen toevoegen aan records dus het is enkel mogelijk om een receiver van een recordtype of van een pointertype te maken, das al een deel vant antwoord.
Probeer het eens uit in een programma he, alle pointers verwijderen en enkel verwijzen naar de records en laat het ons weten.

Zie eens naar mijn oplossingen van de discussiesessie voor de betekenis van het -'etje.

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#3 » Fri Jan 06, 2006 2:44 pm

Shinta wrote:Nu vraagde wa, eeeuhmm, de receiver bestaat uit uw objectnaam, gevolgd door uw klasse. En wat het doet is uw procedure (methode) als een onderdeel maken van uw klasse, als een nieuw soort data die verwerkingen uitvoert. Ge kunt enkel onderdelen toevoegen aan records dus het is enkel mogelijk om een receiver van een recordtype of van een pointertype te maken, das al een deel vant antwoord.
Probeer het eens uit in een programma he, alle pointers verwijderen en enkel verwijzen naar de records en laat het ons weten.

Zie eens naar mijn oplossingen van de discussiesessie voor de betekenis van het -'etje.
Die eerste vraag bedoel ik mee: Ooit zei die in les "Aftrekken is gevaarlijk voor computer en daar moet ge dus mee oppassen."
Volgens mij had dit iets te maken met die floating point (dat na 8 na komma vanalles fout zou lopen ofzoiets)

Die tweede vraag komt uit examen van eerste zit van 2003-2004.
In cursus staat dat een object een instantie van ADT is en dat deze ALTIJD dynamisch moet zijn.
Dus m.a.w. met gebruik van een pointer.
Met een gewone record zal dit volgens mij niet lukken. Als je geen pointer gebruikt zal uw record een plaats toegewezen krijgen en niet meer te veranderen zijn. En dus zal je er volgens mij geen 'methoden' aan kunnen toevoegen.
Straks in ieder geval is proberen voor zekerheid.

User avatar
j0lle
WOZ
Posts: 396

Post#4 » Fri Jan 06, 2006 3:25 pm

Norfolk wrote:Die eerste vraag bedoel ik mee: Ooit zei die in les "Aftrekken is gevaarlijk voor computer en daar moet ge dus mee oppassen."
mja as ge ni oppast zit alles op e keyboard en plakt da.. en me heel veel pech mss kortsluiting \:D/
ik bern er klaar voor 8)
qwertyuiop

User avatar
Arutha
Posts: 20

't mag precies ook van nen record zen (ni dynamish dan)

Post#5 » Fri Jan 06, 2006 3:50 pm

Code: Select all

MODULE receivertest;

IMPORT 
  OutExt;
		
  TYPE
    test =  RECORD
               b : INTEGER;
               END;
					
  VAR
	
  PROCEDURE ( VAR a : test) Print*();
           VAR
           BEGIN
	a.b := 5;
	OutExt.Int(a.b,2);
  END Print;
		
  PROCEDURE testit*;
           VAR
                a : test;
           BEGIN
                OuExt.Open();
	a.Print();
  END testit;
		
  BEGIN
END receivertest.
Deze werkt ook 't is geen dynamisch record ma wel variabele record.
Da sta in de cursus heb't ma is geprobeerd.
Wss is da intern 't zelfde angezien da variabel parameters ook ni veel anders is dan ne pointer naar iets.
Da van die - met reals heb ik ook opgeschreve ma 'k zen 't ook vergete :(
Last edited by Arutha on Fri Jan 06, 2006 3:53 pm, edited 1 time in total.

User avatar
Shinta
WOZ
Posts: 1122

Post#6 » Fri Jan 06, 2006 3:51 pm

Norfolk wrote:
Shinta wrote:Nu vraagde wa, eeeuhmm, de receiver bestaat uit uw objectnaam, gevolgd door uw klasse. En wat het doet is uw procedure (methode) als een onderdeel maken van uw klasse, als een nieuw soort data die verwerkingen uitvoert. Ge kunt enkel onderdelen toevoegen aan records dus het is enkel mogelijk om een receiver van een recordtype of van een pointertype te maken, das al een deel vant antwoord.
Probeer het eens uit in een programma he, alle pointers verwijderen en enkel verwijzen naar de records en laat het ons weten.

Zie eens naar mijn oplossingen van de discussiesessie voor de betekenis van het -'etje.
Die eerste vraag bedoel ik mee: Ooit zei die in les "Aftrekken is gevaarlijk voor computer en daar moet ge dus mee oppassen."
Volgens mij had dit iets te maken met die floating point (dat na 8 na komma vanalles fout zou lopen ofzoiets)

Die tweede vraag komt uit examen van eerste zit van 2003-2004.
In cursus staat dat een object een instantie van ADT is en dat deze ALTIJD dynamisch moet zijn.
Dus m.a.w. met gebruik van een pointer.
Met een gewone record zal dit volgens mij niet lukken. Als je geen pointer gebruikt zal uw record een plaats toegewezen krijgen en niet meer te veranderen zijn. En dus zal je er volgens mij geen 'methoden' aan kunnen toevoegen.
Straks in ieder geval is proberen voor zekerheid.
Ik heb alles eens nagekeken op de cursus en wat hier boven staat is voornamelijk zever (mijn antwoord he ;)).
Ten eerste haddek je vraag verkeerd verstaan, kdacht daget verschil vroeg tussen '-' en '*'. Aftrekken is wel gevaarlijk maar volgens mij niet meer of minder dan optellen ofzo, ge hebt altijd preciezieverlies, probeert maar eens 9.50 in ne variabele te steke en dan die variabele af te drukke me 12 cijfers achter de komma, dan krijg ge meestal 9.4995 ... .

Ten tweede, er staat letterlijk in de cursus dat de receiver OFWEL een waardeparameter van een pointer naar een record variabele moet zijn (vb : PROCEDURE (l : Init) Pipikaka;)
OFWEL een variabele parameter van een record
(vb : PROCEDURE (VAR l : InitRecord) Pipikaka;)

De eerste mogelijkheid van de waardeparameter is te verklaren doordak een object een instantie is van een klasse en een klasse de type definitie is van een POINTER naar een record. Dus uw object is een pointer naar een record en dus een adres welke niet veranderd mag/moet worden in uw procedure Pipikaka.

De tweede mogelijkheid is te verklaren door de run-time stack, hierin staat dat een variabele parameter per definitie een ADRES is, dus een pointer, en het bevat een record, dus het is tevens een pointer naar een record eigenlijk, net zoals de waardeparameter van een pointer.

Snappie ?

UPDATE : bewijs : zie hierboven
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#7 » Fri Jan 06, 2006 3:56 pm

k merci Shinta voor uitleg, en Arutha voor het voorbeeldje :)
Shinta wrote:Ten tweede, er staat letterlijk in de cursus dat de receiver OFWEL een waardeparameter van een pointer naar een record variabele moet zijn (vb : PROCEDURE (l : Init) Pipikaka;)
OFWEL een variabele parameter van een record
(vb : PROCEDURE (VAR l : InitRecord) Pipikaka;)
Heb ik dus overgelezen :|

User avatar
Nickman
Posts: 391
Contact:

Post#8 » Sat Jan 07, 2006 11:29 am

De reden waarom "-" het gevaarslijkste was was volgende:

Code: Select all

 1.1234567891231231654
-1.1234567800000000000
------------------------------
 0
Je verliest dus alle digits na het 8ste (of de precisie waarmee u programeertaalz ou werken, meestal 8 dus...)

Daarom zou - het gevaarlijkste zijn.

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#9 » Sat Jan 07, 2006 4:06 pm

Nickman wrote:De reden waarom "-" het gevaarslijkste was was volgende:

Code: Select all

 1.1234567891231231654
-1.1234567800000000000
------------------------------
 0
Je verliest dus alle digits na het 8ste (of de precisie waarmee u programeertaalz ou werken, meestal 8 dus...)

Daarom zou - het gevaarlijkste zijn.
ja kdacht zoiets maar was niet 100% zeker :)

User avatar
Shinta
WOZ
Posts: 1122

Post#10 » Sat Jan 07, 2006 4:56 pm

Norfolk wrote:k merci Shinta voor uitleg, en Arutha voor het voorbeeldje :)
Shinta wrote:Ten tweede, er staat letterlijk in de cursus dat de receiver OFWEL een waardeparameter van een pointer naar een record variabele moet zijn (vb : PROCEDURE (l : Init) Pipikaka;)
OFWEL een variabele parameter van een record
(vb : PROCEDURE (VAR l : InitRecord) Pipikaka;)
Heb ik dus overgelezen :|
was geen kritiek ofzo, het was een deel van men antwoord ;) ik val proffen nogal graag aan als ze omdiepzinnige vragen stellen.
Last edited by Shinta on Sat Jan 07, 2006 11:59 pm, edited 1 time in total.
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
Gregg
Posts: 26

Post#11 » Sat Jan 07, 2006 5:13 pm

omdiepzinnig?
proffen vallen?

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#12 » Sat Jan 07, 2006 8:13 pm

Shinta wrote:was geen kritiek ofzo, het was een deel van men antwoord ;) ik val proffen nogal graag als ze omdiepzinnige vragen stellen.
Nee kweet het :) maar khad zo kei lang zitten zoeken naar da antwoord en niet gevonden :D Dus maar hier gevraagd, en uiteindelijk staat het er toch in :P heb het ondertussen wel al gevonden :)

En die laatste zin klopt niet echt neen :P

sammyke007

Post#13 » Sat Jan 07, 2006 8:59 pm

Wikipedia:
Objecten spelen de rol die variabelen) spelen in klassieke programmatuur. De klassen daarentegen spelen de rol van de types.

Als het maar zo simpel was :d

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#14 » Sat Jan 07, 2006 9:20 pm

Klopt wel met wat er in cursus staat :P

User avatar
EagleEye812
Posts: 406

Post#15 » Sat Jan 07, 2006 9:26 pm

Een object is een instantie van een ADT die karakteriserende data bevat en de operaties die erbij horen bevat, samengestopt in een record, en dynamisch van aard dus toegankelijk via pointers

zoiets :huh:

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 2 guests

cron