B.2 Serie 2

advertisement
126
B.2
Werkcollege-opgaven
Serie 2
2.1 Keywords
Wat betekent
Wat betekent
Wat betekent
Wat wordt in
het Engelse woord void, en in welke situatie is dit keyword nodig?
de Engelse afkorting int, en in welke situatie is dit keyword nodig?
in een C#-opdracht het woord return, en in welke situatie is dit keyword nodig?
een C#-methode aangeduid door this, en in welke situatie is dit keyword nodig?
2.2 Spijkerschrift
a. Schrijf een methode streepjes met een getal als parameter. Je mag zonder controle aannemen
dat de parameter 0 of groter is. De methode moet als resultaat een string opleveren met daarin
zoveel verticale streepjes als de parameter aangeeft. Bijvoorbeeld: de aanroep this.streepjes(5)
levert "|||||" op.
b. Schrijf een methode spijker met een getal als parameter. Je mag zonder controle aannemen
dat de parameter 1 of groter is. De methode moet als resultaat een string opleveren met daarin
het getal in spijkerschrift-notatie. Elk cijfer wordt daarin weergegeven met verticale streepjes, en
de cijfers worden gescheiden door een liggend streepje. Er staan ook liggende streepjes aan het
begin en het eind. Hier zijn een paar voorbeelden:
this.spijker(25) geeft "-||-|||||-"
this.spijker(12345) geeft "-|-||-|||-||||-|||||-"
this.spijker(7) geeft "-|||||||-"
this.spijker(203) geeft "-||--|||-"
Hint: verwerk eerst het laatste cijfer, en herhaal dan voor de rest van de cijfers. Het laatste cijfer
kun je te pakken krijgen door slim gebruik te maken van de ‘rest bij deling’ operator.
2.3 Stralen
Gegeven is de volgende klasse:
class StralenApp : Activity
{
public override void OnCreate(Bundle b)
{
base.OnCreate(b);
Button knop = new Button(this);
StralenView sv = new StralenView(this);
LinearLayout lay = new LinearLayout(this);
lay.Orientation = Orientation.Vertical;
knop.Text = "Meer";
knop.Click += sv.klik;
lay.AddView(knop);
lay.AddView(sv);
this.SetContentView(lay);
}
}
Schrijf de klasse StralenView, zo dat het programma zich als volgt gaat gedragen.
Er is een zwart opgevulde cirkel met een diameter van 40 pixels in beeld. Het middelpunt van
de cirkel bevindt zich aan het begin in het midden van het scherm. Als de gebruiker het scherm
aanraakt, komt het punt op die plek te staan. En als de gebruiker met zijn vinger over het scherm
beweegt, beweegt de cirkel ook mee.
Twee lijnen verbinden het midden van de cirkel met de twee onderhoeken van het window. Elke
keer als de gebruiker op de knop drukt komt er een lijn bij. De lijnen monden op gelijke afstanden
uit op de onderrand van het window.
Zie onderstaande figuur, met daarin: de beginstituatie, de situatie na 2 keer klikken, en de situatie
na nog 4 keer klikken. (De pijl geft de vinger-positie aan, deze hoef je niet te tekenen).
B.2 Serie 2
127
2.4 Beschrijf de syntax van de foreach-opdracht.
Beschrijf daarna ook de semantiek van de foreach-opdracht.
2.5 Variabelen kunnen onder andere worden gedeclareerd in de header van een methode, in de body
van een methode, en in de body van een klasse.
Hoe krijgt een variabele die is gedeclareerd in de header van een methode zijn waarde, en waar
wordt zo’n variabele voor gebruikt?
Hoe krijgt een variabele die is gedeclareerd in de body van een methode zijn waarde, en waar wordt
zo’n variabele voor gebruikt?
En hoe krijgt een variabele die is gedeclareerd in de body van een klasse zijn waarde, en waar wordt
zo’n variabele voor gebruikt?
2.6 In de library worden veel class-typen gedefiniëerd, maar ook struct-typen. Daar zijn veel overeenkomsten tussen, maar wat is het verschil?
2.7 In de library worden naast class-typen ook interface-typen gedefiniëerd. Stel dat er in een
library een interface IA is gedefinieerd, en je gebruikt die in een programma. Waar zul je die naam
IA in het programma typisch gebruiken, en welke verlichting brengt dat met zich mee?
2.8 Hieronder staat 16 fragmenten uit een programma. Schrijf bij elk fragment een letter passend bij
het overeenkomstige fragment:
• T als het programmafragment een type is
• E als het programmafragment een expressie
• O als het programmafragment een opdracht is
• D als het programmafragment een declaratie is
• H als het programmafragment een methode-header is
• X als het programmafragment geen van bovenstaande dingen is
{ }
Color
"\""+2
t=t%t;
int a(Color c)
return Color.Red;
new Color(1,2,3)
Color.Red
override void()
const bool b=1==0;
bool b(bool c)
bool
while(true);
for (x=0;x++) t=0;
true==false
Color c;
Download