1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies over de antwoorden: in de pauze Je mag het werk behouden
1. Een klasse is niet… Type van een object Een groepje methoden Een groepje variabelen Een groepje declaraties 123456 6% 0% 60% 34% ACBBAB BADDCA CBACBD DDCADC class K { variabelen opdrachten methoden klasse objecten zijn gegroepeerd in hebben als type veranderen bewerken int aantal; double prijs; 3 aantal 199.95 prijs is type van double bedrag() { return aantal*prijs; } }
2. Met using geef je aan dat je ... wilt gebruiken een namespace een klasse een methode een interface 123456 47% 26% 11% 16% ACBBAB BADDCA CBACBD DDCADC using Android.App; class Hallo : Activity { void OnCreate(Bundle b) { ... } }
3. Aan eind van klasse-header schrijf je naam van interface om type van methodes te specificeren om te beloven methodes te schrijven om gebruikers-gegevens in te voeren omdat de klasse de interface uitbreidt 123456 6% 69% 1% 24% ACBBAB BADDCA CBACBD DDCADC class Kaart : View, ISensorListener { interface ISensorListener { void OnDraw(Canvas c) { ... } void OnSensorChanged(...) { ... } void OnSensorChanged(...); } }
4. RadioGroup is een bepaald type LinearLayout om een bepaald type Views te groeperen een bepaald type View waarin de gebruiker meerdere keuze aanvinkt een bepaald type Button waarvan er maar één tegelijk gekozen kan zijn een klasse om een LinearLayout in een bepaalde Context te plaatsen 123456 34% 5% 38% 23% ACBBAB BADDCA CBACBD DDCADC
5. Een expressie van type bool true of false kan alleen 0 of 1 zijn heeft 256 mogelijke waarden kan voorwaarde van if-opdracht zijn kan o.a. de waarde null hebben 123456 36% 0% 61% 2% ACBBAB byte BADDCA CBACBD DDCADC object-verwijzing
6. Matrix gebruik je niet om iets te tekenen... op een bepaalde plaats in een bepaalde kleur een kwartslag gedraaid langwerpig uitgerekt 123456 3% 91% 2% 4% ACBBAB Paint BADDCA CBACBD DDCADC
7. new Color(128, 0 , 128) Middengrijs Lichtgroen flets-Geel Paars rood groen blauw 7. new Color(128, 0 , 128) Middengrijs Lichtgroen flets-Geel Paars 123456 3% 2% 1% 93% (128, 128, 128) ACBBAB (128, 255, 128) BADDCA (255, 255, 128) CBACBD DDCADC (255,0,0) (0,255,0) (255,255,0) (0,0,255) (0,255,255) (255,0,255) (255,255,255) (0,0,0)
8. Als gebruiker het scherm een kwartslag draait wordt ... aangeroepen constructor van MyView zodat de tekening opnieuw kan worden opgebouwd event-handler van Rotate-event zodat daar de userinteface geroteerd kan worden methode OnDraw zodat de view opnieuw kan worden getekend method OnCreate zodat de app opnieuw gestart wordt 123456 17% 18% 21% 44% ACBBAB BADDCA CBACBD DDCADC
9. "de afstand is {x} meter" $"de afstand is {x} meter" "de afstand is {x.ToString()} meter" return "de afstand is {x} meter"; 123456 58% 18% 16% 8% ACBBAB BADDCA CBACBD DDCADC "de afstand is " + x.ToString() + " meter"
10. om Scale-gestures automatisch te herkennen vanuit method OnScale gegevens doorspelen aan SensorManager vanuit Touch-eventhandler gegevens doorspelen aan ScaleGestureDetector method RegisterListener aanroepen voor toepasselijke SensorType method PostScale herdefiniëren in een subklasse van Matrix 123456 8% 76% 14% 2% ACBBAB BADDCA CBACBD DDCADC
als het event optreedt zal de methode worden aangeroepen 11. Betekenis van += de waarde van de variabele wordt vermeerderd met de waarde van de expressie int x = 2; x += 5; x = x + 5; de waarde van de variabele krijgt de waarde van de expressie er achter geplakt string s = "Hoi"; s += " Jeroen"; als het event optreedt zal de methode worden aangeroepen kaart.Paint += teken;
12. methode Invalidate uit de klasse View Wat gebeurt er als je Invalidate aanroept? Wanneer is dat belangrijk? OnDraw wordt opnieuw aangeroepen het plaatje wordt opnieuw getekend als je variabelen hebt veranderd (bijv. in een event-handler) die de vorm van het plaatje beschrijven
Type / Expr / Opdr / Decl / Head / X Methode true Color int a (int b) new Color (0,0,0) E T H E { ; } Color.Red bool b= 1>0; foreach (PointF p in c) this.m(p); O E D O (((0))) Color red; using System; if (x>=0) y=x; else (x<0) y=-x; E D X X void Color red() return ""; public void (int x) X H O X
E T H E O E D O E D X X X H O X goed 16 15 14 13 12 11 10 9 8 7 6 5 4 <4 aantal 2 8 14 20 27 32 28 19 11 15 15 9 9 cijfer 11 10 9,5 9 8 7 6 5 4 3 2 1 true Color int a (int b) new Color (0,0,0) E T H E { ; } Color.Red bool b= 1>0; foreach (PointF p in c) this.m(p); O E D O (((0))) Color red; using System; if (x>=0) y=x; else (x<0) y=-x; E D X X void Color red() return ""; public void (int x) X H O X
Opgave 14: Kopieer & Boom @ ^|^ ^^|^^ ^^^|^^^ ^^^^|^^^^ |
Opgave 14: Kopieer & Druiven o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o...
Opgave 14: Kopieer & Boom public string Kopieer (int n, string x) { string res = ""; int t; for (t=0; t<n; t++) res = res + x; return res; }
Opgave 14: Kopieer & Boom @ ^|^ ^^|^^ ^^^|^^^ ^^^^|^^^^ | public string Kopieer public string Kerstboom(int n) (int n, string x) { @ ^|^ ^^|^^ ^^^|^^^ ^^^^|^^^^ | { string res = ""; string res = "@"; int t; for (t=0; t<n; t++) for (int t=1; t<n; t++) { string tak, regel; res = res + x; tak = Kopieer(t, "^"); return res; regel = tak + "|" + tak + "\n"; } res += regel + regel; } res += "|"; return res; }
Opgave 14: Kopieer & Boom public string Kerstboom(int n) public string Kopieer public string Kerstboom(int n) (int n, string x) { { string res = ""; string res = "@"; int t; for (t=0; t<n; t++) for (int t=1; t<n; t++) { string tak, regel; res = res + x; tak = Kopieer(t, "^"); return res; regel = tak + "|" + tak + "\n"; } res += regel + regel; } res += "|"; return res; }
14c: AndroidApp class KerstApp { : Activity TextView wens; Button knop; int a=0; override void OnCreate(Bundle b) { void klik (object o, EA ea) { base.OnCreate(b); knop = new Button(this); wens = new TextView(this); a = a+1; string s = this.Kerstboom(a); knop.Text = this.Kerstboom(a); wens.Text = "Gelukkig 2017!"; wens.TextSize = 40; knop.Text = s; } knop.SetTextColor(Color.Green); string Kopieer (int n, string x) { ... } knop.Click += klik; LinearLayout stapel = new LinearLayout(this); string Kerstboom (int n) { ... } stapel.AddView(wens); stapel.AddView(knop); SetContentView(stapel); } }
Multi
Multi public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; protected override void OnCreate(Bundle b) { base.OnCreate(b); LinearLayout lay = new LinearLayout(this); b1 = new Button(this); b2 = new Button(this); b1.Text = "Hallo"; b2.Text = "Teller"; b1.Click += klik1; b2.Click += klik2; lay.AddView(b1); lay.AddView(b2); SetContentView(lay); } public void klik1(object o, EventArgs e) { ...... } }
Dialoog Pop-up window waarin de gebruiker gegevens invoert DatePickerDialog AlertDialog
DatePicker Dialog public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik4 (object o, EventArgs e) { DatePickerDialog d; d = new DatePickerDialog(this, Gekozen); d.Show(); } public void Gekozen (object o, DatePickerDialog.DateSetEventArgs e) { this.GebDat = e.Date; b4.Text = GebDat.ToString(); } }
Alert Dialog public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik6 (object o, EventArgs e) { AlertDialog.Builder d; d = new AlertDialog.Builder(this); d.SetTitle("nu al stoppen?"); d.SetPositiveButton("ja", Ja ); d.SetNegativeButton("nee", Nee ); d.Show(); } public void Ja (object o, EventArgs e) { } this.Finish( ); public void Nee (object o, EventArgs e) { } }
Intent Intent: bedoeling om een nieuwe activiteit te starten eigen activiteit Hallo Teller standard web-browser text-sender
Intent: Hallo opstarten public class Multi : Activity { public class Hallo : Activity { Button b1, b2, b3, b4, b5, b6; override void OnCreate(Bundle b) { base.OnCreate(b); public void klik1 (object o, EventArgs e) { TextView t = new TextView(this); Intent i; string s = Intent.GetStringExtra("wat"); i = new Intent (this, typeof(Hallo) ); t.Text = s; i.PutExtra("wat", "Hallo!!!"); SetContentView(t); } StartActivity(i); } } }
Intent: Teller opstarten public class Multi : Activity { public class Teller : Activity { Button bt; int x; Button b1, b2, b3, b4, b5, b6; override void OnCreate(Bundle b) { base.OnCreate(b); int w = 0; public void klik2 (object o, EventArgs e) { bt = new Button(this); x = Intent.GetIntExtra("begin",0); Intent i; bt.Click += klik; i = new Intent (this, SetContentView(bt); typeof(Teller)); } i.PutExtra("begin", 15 ); w public void klik (object o, EA e) { } StartActivity(i); ForResult(i, 99); x = x+1; } bt.Text = $"Teller: {x}"; override void OnActivityResult (int c, Result r, Intent i) { base.OnActivityResult(c,r,i); override void Finish ( ) { Intent i = new Intent(); i.PutExtra("eind", x ); if (c==99) SetResult(Result.Ok, i ); w = i.GetIntExtra("eind",0); base.Finish( ); } } } }
Intent: Website opstarten public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; public void klik3 (object o, EventArgs e) { string adres = "students.uu.nl/beta/informatiekunde"; Intent i; i = new Intent ( Intent.ActionView , Android.Net.Uri.Parse( adres ) ); StartActivity(i); } }
Intent: Messager opstarten public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; public void klik5 (object o, EventArgs e) { Intent i; i = new Intent ( Intent.ActionSend ); i.SetType( "text/plain" ); string bericht = "Kom je op mijn verjaardagsfeest?"; i.PutExtra( Intent.ExtraText, bericht ); StartActivity(i); } }
Intent: Messager opstarten public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik5 (object o, EventArgs e) { Intent i; i = new Intent ( Intent.ActionSend ); i.SetType( "text/plain" ); TimeSpan tijd = DateTime.Now – GebDat; int dagenOud = (int) tijd.TotalDays( ); int nachtjes = 1000 – dagenOud % 1000; DateTime feestDag = DateTime.Now + TimeSpan(nachtjes, 0,0,0); string bericht = $"Op {feestdag} is mijn verKdagdag. Kom je ook?"; i.PutExtra( Intent.ExtraText, bericht ); StartActivity(i); } }
Kijk wel uit waar je het post...
Kijk wel uit waar je het post...