1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Het type int Tekenen met Java operatoren
Hoofdstuk 2 Hallo, C# !.
Hoofdstuk 8 Objecten en klassen.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Hoorcollege 4 Objecten en methoden. Eigen methode toevoegen class Painter : Game { public void HandleInput() { … } protected override void Update(GameTime.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 3 Methoden om te tekenen.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Gelijkheid van Strings static bool Gelijk( string s, string t) { } int m = s.Length; int n = t.Length; for (i=0; i
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
1e Deeltentamen nNagekeken werk ligt voor in de zaal (alfabetisch op achternaam) nNeem het even mee, de uitwerking wordt in het college besproken nDiscussies.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 2 inleveropdrachten) college Tent. 1 Tent. 2 college prakt. 1 prakt. 2 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; if)(expressieopdrachtblok.
Meer constructormethodes in klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b;
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Game Object Structuren
Activity Bij het starten van een app:
…is eigenlijk overbodig!
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
Gameprogrammeren: Objecten en geheugen
Schilderij class MijnAct : Activity { MijnView scherm;
Gameprogrammeren: Keuzeopdrachten
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Letterfrequentie turven
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Syntax van opdrachten opdracht naam naam ( expressie ) ; . , expressie
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Gameprogrammeren: Game Basics
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Game: omgaan met tijd (Jewel-Jam)
Gameprogrammeren: Klassen en objecten
Interface In de library In je eigen programma wat is er nodig om een
Arjan Egges & Paul Bergervoet
Object Communication (Jewel Jam)
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Transcript van de presentatie:

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...