De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Eerste deeltentamen Nagekeken werk ligt voor in de zaal

Verwante presentaties


Presentatie over: "Eerste deeltentamen Nagekeken werk ligt voor in de zaal"— Transcript van de presentatie:

1 Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Neem je eigen werk mee: in het college wordt het besproken Vragen over de beoordeling: in de pauze

2 Uitslag eerste deeltentamen

3 x=IMP, y=NW

4 Opgave 1a: methode methode: groepje opdrachten met een naam
aanroep is een opdracht bij een void methode aanroep is een expressie bij een niet-void methode (of: bij een return-opdracht in de body)

5 Opgave 1b: Syntax van return-opdracht
Semantiek expressie wordt uitgerekend waarde van de expressive wordt teruggegeven aan de aanroeper van de methode expressie return ;

6 Opgave 1c: Standaarddtypes
int: gehele getallen bool: true en false string: teksten float: getallen met een drijvende komma double: als float, met 15 significante cijfers long, short, uint, byte, sbyte, ...

7 Opgave 1d: const declarative
gedeclareerde variabele kan elders niet meer gewijzigd worden gebruik const zo dat de constante niet per ongeluk toch gewijzigd kan worden

8 Opgave 1e: x % y x%y is de rest na deling van x door y
equivalent: x – (x/y)*y of: (int)((((double)x / y) – x/y) * y)

9 Type / Expr / Opdr / Decl / Head / X
Methode (((3))) E int //k T return 3==5; O string s = "\\"; D 3E-5 E int a(int 3) X using System; X y = x!=x ; O (int) 3.5 E void p(int x) H int a, b=5; D Font f(Color c) H 3=5 X new Button() E Brush T while (true) while (false) x = x; O

10 E T O D E X X O E H D H X E T O -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12
14 20 30 33 22 23 19 16 9 5 2 2 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 11 10 9,5 9 8 7 6 5 4 3 2 1 E T O D E X X O E H D H X E T O

11 Opgave 3: Kopieer & Druiven o-o-o-o-o .o-o-o-o. ..o-o-o.. ...o-o...

12 ----/\---- ----\/---- --/\/\/\-- --\/\/\/--
Opgave 3: Kopieer & Ruiten ----/\ \/---- --/\/\/\-- --\/\/\/-- /\/\/\/\/\ \/\/\/\/\/

13 ----/\---- ----\/---- --/\/\/\-- --\/\/\/--
Opgave 3: Kopieer & Ruiten static string Kopieer (int n, string x) { string res = ""; int t; for (t=0; t<n; t++) res += x; return res; } ----/\ \/---- --/\/\/\-- --\/\/\/-- /\/\/\/\/\ \/\/\/\/\/

14 ----/\---- ----\/---- --/\/\/\-- --\/\/\/--
Opgave 3: Kopieer & Ruiten static string Kopieer (int n, string x) { static string Ruiten (int n) { string res = ""; string res = ""; string a, b, x, y, s; int t; for (t=0; t<n; t++) int p=1, q=2*(n-1); for (int t=0; t<n; t++) res += x; { x = Kopieer(p, "/\\"); return res; y = Kopieer(p, "\\/"); } s = Kopieer(q, "-"); ----/\ \/---- --/\/\/\-- --\/\/\/-- /\/\/\/\/\ \/\/\/\/\/ a = s + x + s + "\n"; b = s + y + s + "\n"; res += a + b ; p+=2; q-=2; } return res; }

15 Opgave 4: Boogbrug

16 Opgave 4: Boogbrug class Boogbrug { : Form TrackBar b; int n=2;
const int x=100, y=100, w=500; Boogbrug ( ) { void teken (obj o, PEA pea) { b = new TrackBar(); Graphics g = pea.Graphics; b.Location=new Point(x,10); b.Size = new Size(w,10); b.SetRange(0, 255); int k = b.Value; Pen p = new Pen( Color.FromArgb(k,k,k), 2 ); this.Controls.Add(b); for (int t=0; t<=this.n; t++) this.Paint = teken; this.MouseClick += klik; b.ValueChanged += kleur; { int d = w * t / n ; } g.DrawLine (p, void kleur (obj o, EA ea) { x, y+d, x+w-d, y); this.Invalidate(); g.DrawLine (p, } x+w, y+d, x+d, y); void klik (obj o, MEA mea) { } this.n ++; this.Invalidate(); } } }

17 Opgave 4: Boogbrug (punten)
class Boogbrug { : Form TrackBar b; int n=2; const int x=100, y=100, w=500; Boogbrug ( ) { void teken (obj o, PEA pea) { b = new TrackBar(); Graphics g = pea.Graphics; b.Location=new Point(x,10); b.Size = new Size(w,10); b.SetRange(0, 255); int k = b.Value; Pen p = new Pen( Color.FromArgb(k,k,k), 2 ); this.Controls.Add(b); for (int t=0; t<=this.n; t++) this.Paint = teken; this.MouseClick += klik; b.ValueChanged += kleur; { int d = w * t / n ; } g.DrawLine (p, void kleur (obj o, EA ea) { x, y+d, x+w-d, y); this.Invalidate(); g.DrawLine (p, } x+w, y+d, x+d, y); void klik (obj o, MEA mea) { } this.n ++; this.Invalidate(); } } }

18 Hoofdstuk 7 Keuze

19 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

20 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

21 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

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

23 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

24 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

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

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

27 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(); } }

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

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

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

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

32 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

33 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" ); }

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

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

36 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 );

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

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

39 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

40 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

41 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(); } }

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

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

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

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

46 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

47 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" ); }

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

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

50 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 );

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

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

53 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


Download ppt "Eerste deeltentamen Nagekeken werk ligt voor in de zaal"

Verwante presentaties


Ads door Google