2015 juni examen
Deel 1
Deel 1.1
Code:
int main() {
IObject* s1 = new Square(Point(1,4),2.2);
cout << s1->getPosition() << endl;
cout << s1->getSize() << endl;
Square s2 = new Square(Point(4,5),5);
Square* s3 = new RotatedSquare(Point(5,5),8,60);
cout << s2;
cout << &s3;
}
uitvoer:
(1,4)
2.2
Position: (4,5) size: 5
Position: (5,5) size: 8 angle: 60
opdracht:
Schrijf de klassen IObject, Square en RotatedSquare.
Schrijf code zoals je zou verwachten van een professionele programmeur.
De klasse Point bestaat al. Je mag er vanuit gaan dat deze de << operator al ondersteunt.
Codeduplicatie is niet toegestaan.
IObject is een interfaceklasse.
Deel 1.2
Geef telkens één regel code voor elke vraag.
1) Alloceer met dynamisch geheugen de array d die 12 doubles bevat. 2) Gebruik een pointerimplementatie om de laatste waarde van deze array op 101 te zetten. 3) Verwijder nu deze dynamische array. 4) Maak een array b aan die 18 integers bevat. Dit zonder dynamische allocatie.
Deel 1.3
1. Tijdens het framework bij de drawmethode van boid zagen we dat de boid niet altijd juist geörienteerd stond naargelang zijn richting. Leg uit hoe dit kwam en hoe dit kan opgelost worden. 2. Leg uit tijdens het laatste labo wat er gebeurde wanneer enkele boids van de flock over de westelijke grens van het scherm kwamen. Leg ook uit hoe dit komt.
Deel 2
Deel 1.1
Gegeven zijn de klassieke oefeningen tijdens de eerste 7 labo's. Er worden variabelen aangemaakt en (dubbele) pointers worden daarnaar toegewezen. Dan worden de pointers gemixt en waarden veranderd. Geef op het einde de uitvoer van elke variabele.
Deel 1.2
Gegeven is een stuk code met maximaal (maar niet noodzakelijk) 10 fouten in. Nummer elke regel waar een fout in zit en schrijf op een ander blad wat er wel op deze regel moet staan.