Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.

Slides:



Advertisements
Verwante presentaties
Hoofdstuk 2 Hallo, C# !.
Advertisements

Hoofdstuk Strings en arrays. Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden.
Hoofdstuk 8 Objecten en klassen.
Consoletoepassing Variabelen Klassen
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”
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 11 Strings en arrays. TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40);
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Declaratie en toekenningen nEén keer declarareren nMogelijk meerdere toekenningen int x; x = 100; x = 250; x = x + 1; x = 2 * x; int x = 100; x = 100;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
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 :
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Welkom! maandag 16 November 2015 Les B-2.
Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen.
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;
Activity Bij het starten van een app:
…is eigenlijk overbodig!
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Gameprogrammeren: Objecten en geheugen
Schilderij class MijnAct : Activity { MijnView scherm;
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Char en String
Letterfrequentie turven
Gameprogrammeren: Variabelen, declaraties en toekenningen
Syntax van opdrachten opdracht naam naam ( expressie ) ; . , expressie
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Arjan Egges & Paul Bergervoet
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo . Freq(’e’,
Gameprogrammeren: Overerving in Painter
Basis Gameprogrammeren
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Arjan Egges & Paul Bergervoet
Voorbeeld: Simulatie van bewegende deeltjes
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
Gameprogrammeren: Klassen en objecten
Interface In de library In je eigen programma wat is er nodig om een
Arjan Egges & Paul Bergervoet
“Knuffels” kleuren digibordpeuters.
Exceptions Exception:
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken

Een eigen klasse om variabelen te groeperen nVoorbeeld: een Kleur bestaat uit Rood, Groen, Blauw { class Kleur } byte Rood; byte Groen; byte Blauw; public Kleur paars; paars = new Kleur(); paars.Rood = 128; paars.Blauw = 128; paars.Groen = 0; int x = paars.Grijswaarde();

Eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( ) { } Rood=255; Groen=255; Blauw=255; constructor-methode public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b; constructor-methode met parameters public Kleur( byte x) { } Rood=x; Groen=x; Blauw=x; nog een constructor-methode public byte Grijswaarde( ) { } return (3*Rood + 6*Groen + Blauw) / 10; methode die iets uitrekent

Gebruik van klasse Kleur Kleur wit, paars, oranje, lichtgrijs, donkergrijs; wit = new Kleur( ); paars = new Kleur( 128, 0, 128 ); oranje = new Kleur( 255, 128, 0 ); lichtgrijs = new Kleur( 180 ); donkergrijs = new Kleur( 60 ); byte x = oranje.Grijswaarde( ); Kleur oranjeInZwartwit; oranjeInZwartwit = new Kleur(x); oranje.MaakDonkerder( ); aanroep van een constructor-methode aanroep van een methode met een resultaat aanroep van een void-methode

Methodes in de eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; return (3*Rood + 6*Groen + Blauw) / 10; methode die iets uitrekent void-methode die het object verandert Rood = Rood * 0.9; Groen = Groen * 0.9; Blauw = Blauw * 0.9; Rood = (byte) (Rood * 0.9) ; Groen = (byte) (Groen * 0.9) ; Blauw = (byte) (Blauw * 0.9) ; de variabelen van public string ToString( ) { } return $"{Rood} {Groen} {Blauw}"; override : object methode die een leesbare versie van de Kleur maakt elke klasse is automatisch subklasse van object (byte) (0.3*Rood + 0.6*Groen + 0.1*Blauw); public byte Grijswaarde( ) { } public void MaakDonkerder( ) { }

Gebruik van klasse Kleur Kleur oranje = new Kleur( 255, 128, 0); oranje.MaakDonkerder( ); aanroep van een void-methode string s = oranje.ToString( ); class MijnApp : Application { TextField tf; void OnCreate(Bundle b) { base.OnCreate(b); tf = new TextField(this); tf.Text = s; aanroep van een methode met een resultaat

Gebruik van klasse Kleur Kleur oranje = new Kleur( 255, 128, 0); oranje.MaakDonkerder( ); aanroep van een void-methode string s = oranje.ToString( ); class MijnView : View { void OnDraw(Canvas c) { Paint verf = new Paint( ); c.DrawText( s, 10, 10, verf); aanroep van een methode met een resultaat

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; constructor-methode met parameters public Kleur( Kleur orig ) { } Rood=orig.Rood; Groen=orig.Groen; Blauw=orig.Blauw; constructor-methode die een kopie maakt public Kleur( string s ) { } constructor-methode die een string ontleedt string[ ] woorden = s.Split( ); Rood = woorden[0]; Groen = woorden[1]; Blauw = woorden[2]; Rood = byte.Parse( woorden[0] ); Groen = byte.Parse( woorden[1] ); Blauw = byte.Parse( woorden[2] ); array van strings handige methode van string

Methodes in de eigen klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; void-methode die het object verandert Rood = Rood * 0.9; Groen = Groen * 0.9; Blauw = Blauw * 0.9; Rood = (byte) (Rood * 0.9) ; Groen = (byte) (Groen * 0.9) ; Blauw = (byte) (Blauw * 0.9) ; de variabelen van public void MaakDonkerder( ) { } public Kleur DonkerdereVersie( ) { } Kleur res; return res; res = new Kleur(this); res.MaakDonkerder ( ); methode die een nieuw object oplevert

Static variabelen { class Kleur } public byte Rood, Groen, Blauw; static variabelen zitten niet in het object public static byte Max = 255; maar hebben er iets mee te maken public Kleur( ) { } Rood=Max; Groen=Max; Blauw=Max; constructor-methode

Static methoden { class Kleur } public byte Rood, Groen, Blauw; static variabelen zitten niet in het object public static byte Max = 255; maar hebben er iets mee te maken public Kleur( ) { } Rood=Max; Groen=Max; Blauw=Max; constructor-methode public static Kleur Parse( string s ) { } static methoden hebben geen object onderhanden return new Kleur(s); public static Kleur Geel = new Kleur(Max,Max,0); static variabele met de eigen klasse als type

Intent nIntent: bedoeling om een nieuwe activiteit te starten ueigen activiteit §Hallo §Teller ustandard §web-browser §text-sender

Multi public class Multi : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); } b1 = new Button(this); b2 = new Button(this); } Button b1, b2, b3, b4, b5, b6; b1.Text = "Hallo"; b2.Text = "Teller"; b1.Click += klik1; b2.Click += klik2; LinearLayout lay = new LinearLayout(this); lay.AddView(b1); lay.AddView(b2); SetContentView(lay); public void klik1(object o, EventArgs e) { }

Intent: Hallo opstarten public class Multi : Activity { } Button b1, b2, b3, b4, b5, b6; public void klik1 (object o, EventArgs e) { } Intent i; i = new Intent (this, StartActivity(i); typeof(Hallo) ); i.PutExtra("wat", "Hallo!!!"); public class Hallo : Activity { } override void OnCreate(Bundle b) { base.OnCreate(b); } TextView t = new TextView(this); SetContentView(t); string s = Intent.GetStringExtra("wat"); t.Text = s; hier zijn 24 verschillende varianten van......maar net niet die je nodig hebt, bijv. Kleur i.PutExtra("kleur", oranje.ToString()); string s = Intent.GetStringExtra("kleur"); Kleur k = new Kleur(s);

Hoofdstuk 9.2 Strings

Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden false, true nchar losse symbolen'A', 'B', 'Z', 'a', '4', '#', ':'

string versus char nstringchar nklasseprimitief type nobject-verwijzingdirecte waarde nnul, een of meer…precies één symbool n"" "A" "hello" 'A' noperatoren, methoden properties, indexeroperatoren u==, +==, +, <= uSubstring, ToUpper, Split uLength us[t]

String-methodes nint Length nboolEquals(string s) nstringConcat(string s) nstringSubstring(int start) nstringSubstring(int start, int aantal) nstringToUpper( ) nstringToLower( ) nstring[] Split( )

Concat en Substring nString s, t, u, v, w; ns = "ham"; nt = "burger"; nu = s.Concat(t); nv = u.Substring(3); nw = u.Substring(3, 4); s t u v w hamburger hamburger burger burg hamburger s + t ; vanaf aantal

Publieksvraag nSchrijf een methode Beginstuk met twee string-parameters x en y die bepaalt of x het beginstuk van y is nSchrijf een methode Onderdeel met twee string-parameters x en y die bepaalt of x ergens als substring van y voorkomt

Methode Beginstuk (string x, string y)boolpublic static kortlang {}{} y. Substring( 0, x.Length ) x == return ; Beginstuk

Methode Onderdeel (string x, string y)boolpublic static {}{} Onderdeel y. Substring(t) Beginstuk(x, ) if ( ) return true; for (t=0; t<y.Length; t++) return false; int t;

Meer string-methodes nboolStartsWith(string s) nboolEndsWith(string s) nintIndexOf(string s) public static bool Onderdeel(string x, string y) { return y.IndexOf(x)>=0 ; }

Publieksvraag n//schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string n//voorbeeld-aanroep: int n; n = Demo. Freq('e', "some text" ); n// hint: gebruik een for opdracht

Tel symbool-frequentie public static int Freq(char x, string s) { s[t]==x for (int t=0; t<s.Length; t++) if ( ) aantal++; int aantal; aantal = 0; return aantal; }

Tel symbool-frequentie public static int Freq(char x, string s) { s[t]==x for (int t=0; t<s.Length; t++) if ( ) aantal++; int aantal; aantal = 0; return aantal; } foreach ( char c in s ) c == x

IBM/DOS Geschiedenis van char n1970s:6 bits = 64 symbols 26 letters, 10 digits, 28 leestekens n1980s: 7 bits = 128 symbols +26 lowercase, +5 leestekens, 33 control n1990s: 8 bits = 256 symbols +letters met accenten n2000s: 16 bits = symbols +Grieks, Cyrillisch, Japans, Devangari,... ASCII ANSI/ISO Unicode

Character coding code 0 code 127 code 48 code 32 code 65 code 97

char bijzonderheden nalfabetisch geordend char c; if ( ’A’<=c && c<=’Z’ ) … nconverteerbaar naar int int n; n = c + 32; nen terug c = (char) n;

twee tekens in de broncode, toch één character! Speciale char-waarden nLetterlijk symbool nSpeciaal symbool nHet quote-symbool nHet backslash-symbool 'A''A' '\n' '\'' '\\' '&''&' '\t' '\"' nElk Unicode-karakter '\x597D' '好''好'

Hoofdstuk Arrays

nArray: rij genummerde variabelen tabel length5 int [ ] tabel; new int [5];tabel = declaratie van een array creëren van het eigenlijke array-object

Gebruik van een array n’t zijn echte variabelen: tabel Length 5 tabel [2] = 37; tabel[4] = tabel [2] + 5; if (tabel.Length<10)... tabel.Length = 10; Length is een read-only property

Gebruik van een array nvariabele als index in de array tabel Length5 tabel [0] = 42; tabel [1] = 42; tabel [2] = 42; tabel [3] = 42; tabel [4] = 42; 42 tabel [t] = 42; for (t=0; t<5; t++)

Array als parameter tabel Length int Grootste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] > resultaat) resultaat = tabel [t]; for (t=0; t<tabel.Length; t++) int t; resultaat =tabel [0]; static

Syntax van array-type type int short sbyte long decimal double float char bool uint ushort byte ulong struct naam class naam object string waarde verwijzing [], array

Array van getallen tabel int [ ] tabel; new int [5];tabel = Length 5

Array van struct-objecten tabel Color [ ] palet; new Color[5]; palet = Length 5

Array van class-objecten tabel PointF [ ] plaatsen; new PointF[5]; tabel = Length 5 for (int t=0; t<5; t++) plaatsen[t] = new PointF( );

string versus array nKlassen Type met speciale syntax nSpeciale index-notatie string s = new string();char[] a = new char[10]; c = a[2];a[3] = c; nSpeciale quote-notatie s = "hallo"; nProperty a.Length nProperty s.Length nMethoden s.Substring(3,2); s.IndexOf(t); nIndexer -notatie c = s[2];s[3] = c;

Declaratie declaratie naamtype, =initialisatieconst ; var met intitialisatie initialisatie expressie initialisatie}{, string [ ] woorden = { "aap", "noot", "mies" }; int [ ] maand = { 31,28,31,30,31,30,31,31,30,31,30,31 }; Color [ ] palet = { new Color(64,0,0), Color.Yellow };

Tekst Analyse EditText TekstAnalyse DiagramView class TekstAnalyse : Activity class DiagramView : View LinearLayout

Tekst Analyse public class TekstAnalyse : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); } tekst = new EditText(this); diagram = new DiagramView(this); } EditText tekst; DiagramView diagram; LinearLayout s = new LinearLayout(this); s.AddView(tekst); s.AddView(diagram); SetContentView(s); public void veranderd(object o, EventArgs e) } { tekst.AfterTextChanged += veranderd; diagram.Invoer = tekst.Text; diagram.Invalidate( );

Tekst Analyse public class DiagramView: View { protected override void OnDraw(Canvas cv) { base.OnDraw(cv); } } public string Invoer; tellers Length int [ ] tellers; tellers = new int [26];

Tekst Analyse public class DiagramView: View { protected override void OnDraw(Canvas cv) { base.OnDraw(cv); } } public string Invoer; tellers Length int [ ] tellers; tellers = new int [26]; tellers[ ]++; foreach(char c in Invoer) c-'a' if (c>='a' && c<='z') foreach(int a in tellers) { } cv.DrawRect( x, y, x+a*w, y+h, verf ); cv.DrawText( a.ToString()... ); int h = Height/ 26; y = y+h;, y=0; int w = Width / max;