De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

vandaag èn vrijdag deadline maandag 12 dec.

Verwante presentaties


Presentatie over: "vandaag èn vrijdag deadline maandag 12 dec."— Transcript van de presentatie:

1 vandaag èn vrijdag deadline maandag 12 dec.

2 Herhaling met een teller
int t ; t = 0; t = 0; for while ( t<x ) for ( t=0 ; t<x ; t++ ) { // doe iets nuttigs // met t t ++ ; t ++ ; }

3 Herhaalde herhaling Body van een for-opdracht is een opdracht
dat kan zelf ook een for-opdracht zijn! int x, y; for (y=0; y<10; y++) for (x=0; x<10; x++) gr.DrawString( "+", br, ft , 10*x, 10*(y+1) );

4 Vergelijk-operatoren
< kleiner dan <= kleiner dan of gelijk aan > groter dan >= groter dan of gelijk aan == gelijk aan != ongelijk aan x=5 x wordt 5 ! x==5 is x gelijk aan 5 ?

5 Bool expressies Vergelijken van waarden
x <= y Combineren van andere bool-expressies met logische operatoren && and || or ! not George Boole ( ) x<0 && y>0 ! (x==0 && y==0) x!=0 || y!=0

6 Constanten Constanten met een getal als waarde
2 -5 137 Constanten met een tekst als waarde "Hallo" "123" "" "true" Constanten met een waarheid als waarde true false

7 Gebruik van bool expressies
Als voorwaarde van een while-opdracht while (x<10) ... Rechts van een toekenningsopdracht bool b; b = x<10 ; Als resultaat van een methode return x<10 ;

8 Het Halting-problem is onoplosbaar
Er bestaan dus onoplosbare problemen! Alan Turing (1936): On computable numbers, with an application to the Entscheidungsproblem door Hilbert in 1900 bedachte uitdaging voor de nieuwe eeuw

9 Syntax van opdrachten opdracht naam naam ( expressie ) ; . , expressie
klasse naam methode naam ( expressie ) ; . , object expressie property naam += variabele = expressie ; return expressie ; while ) ( expressie opdracht for ) ( expr opdracht ; blok

10 Syntax van opdrachten opdracht return expressie ; while ) ( expressie
for ) ( expr opdracht ; blok

11 Type-controle Compiler controleert type van toe te kennen waardes
int x, y ; double d; Color c; x = 3; x = y; d = 3.14; c = Color.Red; x = 3.14; x = "hoi"; d = c; c = 3;

12 Type-conversie getallen
int x, y ; double c, d; type klopt x = 5; d = 3.14; int-waarde past ook in een double-variabele d = 7; c = x; double past afgekapt in int, mits programmeur accoord x = (int) d; y = (int) (c/2);

13 Type-conversie strings
int x; string s; x = 123; s = x.ToString(); s = "123"; x = int.Parse(s);

14 Type-controle parameters
Compiler controleert of parameters van methoden het goede type hebben g.DrawString ( "hallo", br, ft, 10, 20 ); string int Brush Font x = 100; y = 10; waarde = 37; g.DrawString ( waarde , br, ft , * x , y ); . ToString() (int)( )

15 Overzicht programma-constructies
kun je doen kun je uitrekenen Opdrachten Toekenning Aanroep void-methode return-opdracht while-opdracht for-opdracht { ... } - bundeling Expressies Constante Variabele Aanroep methode Expressie met operatoren Expressie met haakjes new-expressie this (cast)-conversie

16 Overzicht programma-constructies
waarde-verzameling van een expressie geeft het type van variabelen Declaratie Lokale variabele voor tijdelijk gebruik Member permanent deel van het object Parameter om waarden door te spelen aan methode Type Primitief type int double bool Object-type Color, String enz. TextBox, Button enz. Form, HalloForm, enz.

17 Hoofdstuk 7 verplicht… Keuze

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

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

20 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

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

22 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

23 Meerdere alternatieven
if (leeftijd<4) uitvoer.Text = "Gratis"; else if (leeftijd<12) uitvoer.Text = "Railrunner"; else if (leeftijd<65) uitvoer.Text = "Railrunner"; else if (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

24 Meerdere alternatieven
bij return-opdracht is methode beëindigd private string tarief(int leeftijd) { } 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";

25 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; } }

26 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) { if (obj==kleiner) && straal>10) this.straal –= 10; if (obj==groter) && straal<150) this.straal += 10; this.Invalidate(); } }

27 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) { }

28 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;

29 Thermometer partial 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; } }

30 Exceptions Exception:
Uitzonderlijke toestand die door een methode wordt opgeworpen De situatie moet door de aanroeper van de methode worden opgevangen throw catch

31 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 van het probleem

32 Meerdere catch-delen try { // open een file } // en lees de inhoud
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" ); }

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

34 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; } }

35 Parabool: oplossingen
string oplossingen ( ) { } -b ± b2-4ac 2a 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 );

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

37 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++ ) { } 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; }

38 Type-conversie strings
int x; string s; x = 123; s = x.ToString(); s = "123"; x = int.Parse(s);

39 Type-conversie strings
double d; string s; d = ; s = d.ToString(); (CultureInfo.InvariantCulture) s = " "; d = double.Parse(s); (s, CultureInfo.InvariantCulture)

40 Overzicht programma-constructies
kun je doen kun je uitrekenen 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

41 Practicum groep di 17-19 vr 15-17 begeleider 1 103 175 Victor 2 115
201 Maaike 3 106 Tim 4 109 Suzan 5 165 001 Susan 6 Jos


Download ppt "vandaag èn vrijdag deadline maandag 12 dec."

Verwante presentaties


Ads door Google