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

Slides:



Advertisements
Verwante presentaties
Het type int Tekenen met Java operatoren
Advertisements

Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 2 Hallo, C# !.
Frank Stalpers en Ad Baars
Hoofdstuk 7 verplicht… Keuze.
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(
Consoletoepassing Variabelen Klassen
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.
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.
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,
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 7 Herhaling Nieuw!. while ( x
Hoofdstuk 8 Keuze verplicht…. Opdrachten voorwaardelijk uitvoeren opdracht wordt alleen uitgevoerd als voorwaarde geldt if (temperatuur
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);
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
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;
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
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.
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 :
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen.
Loops en errors Array's Random try catch for loop while loop do while loop.
Bestanden Lezen Schrijven Afbeeldingen. Bestandstypen.txt.png eigen.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Activity Bij het starten van een app:
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
Gameprogrammeren: Keuzeopdrachten
Hoofdstuk 9.2 Strings.
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
vandaag èn vrijdag deadline maandag 12 dec.
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo . Freq(’e’,
Basis Gameprogrammeren
Gameprogrammeren: Afsluiting
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
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
Implementatie Zoekboom
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Transcript van de presentatie:

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

Overzicht programma- constructies Opdrachten nToekenning nAanroep void-methode nreturn-opdracht nwhile-opdracht nfor-opdracht n{... } - bundeling Expressies n Constante n Variabele n Aanroep methode n Expressie met operatoren n Expressie met haakjes n new-expressie kun je doenkun je uitrekenen

Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; while)(expressieopdrachtblok for)(expropdrachtexpr ;;

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

Button Button b; b.Text ="ok"; new Button b; (bool)true const bool true; bool while (true) t=1; int t( ) int t=1; t==t+1 t=t+1; class A : Size this.Size= this.ClientSize; Size s (Size t) new Size(x,y) Type / Expr / Opdr / Decl / Head / X Methode

while ( t<n ) { t = t+1 ; } t = 0; private static string veelwerf (string x, int n) { Veelwerf-methode return result; result = result + x ; result = ""; int t; string result; }

while ( t<n ) { t = t+1 ; } t = 0; private static double macht (double x, int n) { Machtsverhef-methode return result; result = result * x ; result = 1; int t; double result; }

for (int t=0; t<n; t++) private static double macht (double x, int n) { Machtsverhef-methode return result; result = result * x ; double result = 1; }

Publieksvraag nSchrijf een methode wortel, die de wortel trekt van een niet-negatieve double nZonder Math.Sqrt te gebruiken! nGebruik de Newton-benadering: als y een benadering is van Sqrt(x), dan is het gemiddelde van y en x/y een betere benadering

private static double wortel (double x) { } Worteltrek-methode double y; y = 1; return y; y = (y + x/y) / 2 ; while ( y*y != x ) stopt dit? wiskundige: nee, gelijkheid geldt pas in limiet programmeur: ja, want reken- precisie is beperkt informaticus: nee, want afrond- fouten verhinderen bereiken limiet while ( Math.Abs (y*y - x) < ) veiliger:

Stralen class Programma { } public static void Main( ) { Stralen s = new Stralen(); s.Text = "Stralen"; Application.Run(s); }

Stralen Stralen( ) { class Stralen { } int x, y; void beweeg (obj o, MEA mea) { void klik (obj o, EA ea) { void teken (obj o, PEA pea) { } } } int n=1; } this.Paint += teken; this.MouseMove += beweeg; this.MouseClick += klik; this.x = mea.X; this.y = mea.Y; this.Invalidate(); this.n ++; this.Invalidate(); Graphics g = pea.Graphics; g.FillEllipse( Brushes.Black, this.x-20, this.y-20, 40, 40); for (int t=0; t<=this.n; t++) g.DrawLine( Pens.Black, this.x, this.y, this.Width * t / this.n, this.Height ); : Form

Tekenen of opleveren? ngr.DrawString (x,...) nres.Text += x; resultaat komt meteen op het scherm nreturn x; resultaat wordt teruggegeven aan de aanroeper, die zelf kan beslissen wat hij ermee doet

Overzicht programma- constructies Opdrachten nToekenning nAanroep void-methode nreturn-opdracht nwhile-opdracht nfor-opdracht n{... } - bundeling Expressies n Constante n Variabele n Aanroep methode n Expressie met operatoren n Expressie met haakjes n new-expressie kun je doenkun je uitrekenen

Grafische User Interface (GUI) n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen TrackBar Button Label Panel n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen

Visual Studio Design Mode

Code gegenereerd door Visual Studio Designer namespace Mixer { static class Program { static void Main() { Application.Run (new Mixer()); } namespace Mixer { partial class Mixer : Form { // constructor Mixer() { this.InitializeComponent(); } // event-handlers void klik(object o, EventArgs ea) { } namespace Mixer { partial class Mixer { #region generated code void InitializeComponent() { this.b = new Button(); b.Text = " zwart " ; b.Click += this.klik; this.Controls.Add(this.b); } #endregion private Button b; } Program.csMixer.csMixer.Designer.cs

Hoofdstuk 7 Keuze verplicht…

Opdrachten voorwaardelijk uitvoeren opdracht wordt alleen uitgevoerd als voorwaarde geldt if (temperatuur<0) uitvoer.Text = "Het vriest!"; opdracht wordt steeds opnieuw uitgevoerd zolang voorwaarde geldt if while (temperatuur<0) temperatuur += 5;

Twee alternatieven opdracht wordt alleen uitgevoerd als voorwaarde niet geldt if (temperatuur<0) uitvoer.Text = "Het vriest!”; else uitvoer.Text = "Het dooit.";

Keuze is ook een opdracht if (n%3==0) uitvoer.Text += (n + " drievoud"); else uitvoer.Text += (n + " geen drievoud"); for (n=1; n<20; n++) if-opdracht dient in z’n geheel als body van for-opdracht één opdracht dus geen accolades nodig!

Meer opdrachten als body accolades maken twee opdrachten tot één body if (temperatuur<0) lab1.Text = "Het vriest"; lab2.Text = "Koud he!"; {}{}

Meerdere alternatieven if (leeftijd<65) uitvoer.Text = "Vol tarief"; else uitvoer.Text = "Senioren"; if (leeftijd<12) uitvoer.Text = "Railrunner"; else if (leeftijd<4) uitvoer.Text = "Gratis"; else if-opdracht dient in z’n geheel als body van else-deel if-opdracht dient in z’n geheel als body van else-deel

Meerdere alternatieven if (leeftijd<4) uitvoer.Text = "Gratis"; else if (leeftijd<12) uitvoer.Text = "Railrunner"; else if (leeftijd<65) uitvoer.Text = "Vol tarief"; else uitvoer.Text = "Senioren"; uitzondering op gewoonte om body in te springen uitvoer.Text = "Railrunner"; else if (leeftijd<65) uitvoer.Text = "Vol tarief"; else uitvoer.Text = "Senioren";

private string tarief(int leeftijd) { } Meerdere alternatieven if (leeftijd<4) return "Gratis"; else if (leeftijd<12) return "Railrunner"; else if (leeftijd<65) return "Vol tarief"; else return "Seniorenkaart"; if (leeftijd<4) return "Gratis"; if (leeftijd<12) return "Railrunner"; if (leeftijd<65) return "Vol tarief"; return "Seniorenkaart"; bij return-opdracht is methode beëindigd

CirkelGroei class Cirkel : Form { } Cirkel() { } kleiner = new Button(); groter = new Button(); kleiner.Text = "Kleiner"; kleiner.Location =...; // etc. this.Controls.Add(kleiner); this.Controls.Add(groter); this.Paint += this.teken; this.kleiner.Click += this.klik; this.groter.Click += this.klik; Button kleiner, groter; int straal = 100;

CirkelGroei class Cirkel : Form { } void teken(object o, PEA pea) { } Button kleiner, groter; int straal = 100; void klik(object obj, EA ea) { } pea.Graphics.FillEllipse(, Brushes.Green, 150–this.straal, 150–this.straal, 2*this.straal, 2*this.straal ); this.straal –= 10; this.Invalidate(); if (obj==kleiner) this.straal += 10; if (obj==groter) && straal>10) && straal<150)

Geheime tekening class Geheim : Form { void teken (object o, PEA pea) { pea.Graphics.FillEllipse(Brushes,Yellow,10,10,100,100); pea.Graphics.DrawArc(Pens.Blue,25,25,50,50,45,90); } bool open; Geheim ( ) { open = false; this.Paint += this.teken; } if (open) { } TextBox pass; pass = new TextBox(); this.Controls.Add(pass); pass.TextChanged += this.controleer; }

Geheime tekening class Geheim : Form { void controleer (object o, EA ea) { } bool open; Geheim ( ) { open = false; this.Paint += this.teken; } TextBox pass; pass = new TextBox(); this.Controls.Add(pass); pass.TextChanged += this.controleer; } open = true; this.Invalidate(); if (pass.Text == sleutel) { } const string sleutel = "geheim"; pass.Visible=false;

Thermometer class Thermo : Form { } Thermo() { } TrackBar min, temp, max; Button reset; void temp_Scroll(object o, EA ea) { this.InitializeComponent(); temp.Scroll += temp_Scroll; reset.Click += reset_Click; } int x = this.temp.Value; if (x < this.min.Value) this.min.Value = x; void reset_Click(object o, EA ea) { } this.min.Value = this.temp.Value; partial

Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen throw catch

Voorbeeld van Exception s = invoer. Text; n = int. Parse (s); uitvoer. Text = ( "kwadraat is " + n*n ); try { } catch ( Exception e ) { uitvoer. Text = ( s + " is geen getal" ); } kan een Exception opwerpen opvangen van het probleem

Meerdere catch-delen // open een file // en lees de inhoud try { } catch ( FileNotFoundException f ) { uitvoer. Text = ( s + " bestaat niet" ); } catch ( IOException i ) { uitvoer. Text = ( s + " is onleesbaar" ); } als er een Exception optreedt, wordt de eerste catch gekozen met een passend type

Grafiek-tekenprogramma Panel : grafiek van een parabool y = a∙x 2 + b∙x + c Label : nulpunten volgens abc-formule TextBox : ingevoerde waarden abc

Parabool: tekst ingevoerd void invoer_TextChanged(object box, EventArgs ea) { } a = double.Parse(aBox.Text); b = double.Parse(bBox.Text); c = double.Parse(cBox.Text); TextBox aBox, bBox, cBox; double a, b, c; uitvoer.Text = this.oplossingen(); grafiek.Invalidate(); try { } catch (Exception e) { } box. BackColor = Color.Red; uitvoer.Text = e.Message; ((TextBox) )

Parabool: oplossingen string oplossingen ( ) { } return ( (–b –wortel)/noemer + " en " +(–b+wortel)/noemer ); wortel = Math.sqrt(discriminant); discriminant = b*b – 4*a*c; noemer = 2*a; if (discriminant<0) return "geen nulpunten"; else { } -b ± b 2 -4ac 2a double discriminant, noemer, wortel;

Parabool: functie uitrekenen double functie ( ) { return a * x * x + b * x + c; }

Parabool: grafiek tekenen void grafiek_Paint (object o, PaintEventArgs pea ) { for ( x=0 ; x<500 ; x++ ) { } y = this.functie ( x ); gr.DrawLine(Pens.Blue,,, x, y );x-1 oldy oldy = y; oldy = 0; if (x>0) schaal = 0.03; xw = schaal * x ; w w y = yw / schaal ; ( -250) (int) (250-( )) int x, y,oldy; double xw, yw, schaal; } Graphics gr = pea.Graphics;

Overzicht programma- constructies Opdrachten nToekenning nAanroep void-methode nreturn-opdracht nwhile-opdracht nfor-opdracht n{... } - bundeling nif-opdracht ntry/catch-opdracht Expressies n Constante n Variabele n Aanroep methode n Expressie met operatoren n Expressie met haakjes n new-expressie n this n (cast)-conversie kun je doenkun je uitrekenen

Overzicht programma- constructies Declaratie nLokale variabele voor tijdelijk gebruik nMember permanent deel van het object nParameter om waarden door te spelen aan methode Type n Primitief type uint udouble ubool n Object-type uColor, String enz. uTextBox, Button enz. uForm, HalloForm, enz. geeft het type van variabelen waarde-verzameling van een expressie

Wat gaan we doen? college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt wo 15-17vr 13-15< werkcoll nNu: Prakticum BBG 106 – 103 – 115 – 175 – 112 – 109 nVrijdag: deeltentamen S/T/UV/W