230 likes | 399 Views
Hoofdstuk 7. verplicht…. Keuze. if. while (temperatuur<0) temperatuur += 5;. opdracht wordt steeds opnieuw uitgevoerd zolang voorwaarde geldt. Opdrachten voorwaardelijk uitvoeren. if (temperatuur<0) uitvoer.Text = "Het vriest!";.
E N D
Hoofdstuk 7 verplicht… Keuze
if while (temperatuur<0) temperatuur += 5; opdracht wordt steeds opnieuwuitgevoerd zolang voorwaarde geldt Opdrachten voorwaardelijk uitvoeren if (temperatuur<0) uitvoer.Text = "Het vriest!"; opdracht wordt alleenuitgevoerd als voorwaarde geldt
Twee alternatieven if (temperatuur<0) uitvoer.Text = "Het vriest!”; else uitvoer.Text = "Het dooit."; opdracht wordt alleenuitgevoerd als voorwaarde niet geldt
Keuze is ook een opdracht for (n=1; n<20; n++) if (n%3==0) uitvoer.Text += (n + " drievoud"); else uitvoer.Text += (n + " geen drievoud"); één opdracht dus geen accolades nodig! if-opdracht dient in z’n geheel als body van for-opdracht
Meer opdrachten als body if (temperatuur<0) lab1.Text = "Het vriest"; { } lab2.Text = "Koud he!"; accolades maken twee opdrachten tot één body
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"; 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"; elseif (leeftijd<12) uitvoer.Text = "Railrunner"; elseif (leeftijd<65) uitvoer.Text = "Railrunner"; elseif (leeftijd<65) uitvoer.Text = "Vol tarief"; else uitvoer.Text = "Senioren"; uitvoer.Text = "Vol tarief"; else uitvoer.Text = "Senioren"; uitzondering op gewoonte om body in te springen
Meerdere alternatieven bij return-opdracht is methode beëindigd private string tarief(int leeftijd) { } if (leeftijd<4)return "Gratis"; elseif (leeftijd<12) return "Railrunner"; elseif (leeftijd<65) return "Vol tarief"; elsereturn "Seniorenkaart"; if (leeftijd<4)return "Gratis"; if (leeftijd<12) return "Railrunner"; if (leeftijd<65) return "Vol tarief"; return "Seniorenkaart";
CirkelGroei class Cirkel : Form { Button kleiner, groter; int straal = 100; 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; } }
CirkelGroei class Cirkel : Form { Button kleiner, groter; int straal = 100; void teken(object o, PEA pea) { pea.Graphics.FillEllipse( , Brushes.Green , 150–this.straal, 150–this.straal , 2*this.straal, 2*this.straal ); } void klik(object obj, EA ea) { && straal>10) if (obj==kleiner) this.straal –= 10; if (obj==groter) && straal<150) this.straal += 10; this.Invalidate(); } }
Geheime tekening class Geheim : Form { bool open; Geheim ( ) { open = false; this.Paint += this.teken; } TextBox pass; pass = new TextBox(); this.Controls.Add(pass); pass.TextChanged += this.controleer; } 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); } if (open) { }
Geheime tekening class Geheim : Form { bool open; Geheim ( ) { open = false; this.Paint += this.teken; } TextBox pass; pass = new TextBox(); this.Controls.Add(pass); pass.TextChanged += this.controleer; } const string sleutel = "geheim"; void controleer (object o, EA ea) { } if (pass.Text == sleutel) { } open = true; this.Invalidate(); pass.Visible=false;
partial Thermometer class Thermo : Form { TrackBar min, temp, max;Button reset; Thermo() { this.InitializeComponent(); temp.Scroll += temp_Scroll; reset.Click += reset.Click; } void temp_Scroll(object o, EA ea) { 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; } }
Exceptions Exception: • Uitzonderlijke toestand diedoor een methode wordt opgeworpen • De situatie moet door de aanroepervan de methode worden opgevangen throw catch
Voorbeeld van Exception kan een Exception opwerpen try { } s = invoer . Text; n = int . Parse (s); uitvoer . Text = ( "kwadraat is " + n*n ); catch ( Exception e ) { uitvoer . Text = ( s + " is geen getal" ); } opvangen vanhet probleem
Meerdere catch-delen als er een Exception optreedt, wordt de eerste catch gekozen met een passend type try { } // open een file // en lees de inhoud catch ( FileNotFoundException f ) { uitvoer . Text = ( s + " bestaat niet" ); } catch ( IOException i ) { uitvoer . Text = ( s + " is onleesbaar" ); }
Grafiek-tekenprogramma TextBox : ingevoerde waarden abc Label :nulpuntenvolgens abc-formule Panel : grafiek van een parabool y = a∙x2 + b∙x + c
Parabool: tekst ingevoerd TextBox aBox, bBox, cBox; double a, b, c; void invoer_TextChanged(object box, EventArgs ea) { try { a = double.Parse(aBox.Text); b = double.Parse(bBox.Text); c = double.Parse(cBox.Text); uitvoer.Text = this.oplossingen(); grafiek.Invalidate(); }catch (Exception e) { ((TextBox) ) box . BackColor = Color.Red; uitvoer.Text = e.Message; } }
-b ± b2-4ac 2a Parabool: oplossingen string oplossingen ( ) { } double discriminant, noemer, wortel; discriminant = b*b – 4*a*c; noemer = 2*a; if (discriminant<0) return "geen nulpunten"; else { } wortel = Math.sqrt(discriminant); return ( (–b –wortel)/noemer + " en " +(–b+wortel)/noemer );
Parabool: functie uitrekenen double functie ( ) { return a * x * x + b * x + c; }
Parabool: grafiek tekenen void grafiek_Paint (object o, PaintEventArgs pea ) { Graphics gr = pea.Graphics; int x, y,oldy; double xw, yw, schaal; schaal = 0.03; oldy = 0; for ( x=0 ; x<500 ; x++ ) { } ( -250) xw = schaal * x ; w w y = yw / schaal ; y = this.functie ( x ); (int) (250-( )) if (x>0) gr.DrawLine(Pens.Blue, , , x, y ); x-1 oldy oldy = y; }
Opdrachten Toekenning Aanroep void-methode return-opdracht while-opdracht for-opdracht { ... } - bundeling if-opdracht try/catch-opdracht Expressies Constante Variabele Aanroep methode Expressie met operatoren Expressie met haakjes new-expressie this (cast)-conversie Overzicht programma-constructies kun je doen kun je uitrekenen
Declaratie Lokale variabelevoor tijdelijk gebruik Fieldpermanent deel vanhet object Parameterom waarden doorte spelen aan methode Type Primitief type int double bool Object-type Color, String enz. TextBox, Button enz. Form, HalloForm, enz. Overzicht programma-constructies waarde-verzamelingvan een expressie geeft het typevan variabelen