23
Hoofdstuk 7 Keuze verplicht…

Hoofdstuk 7

  • Upload
    hovan

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

Hoofdstuk 7. verplicht…. Keuze. if. while (temperatuur

Citation preview

Page 1: Hoofdstuk 7

Hoofdstuk 7

Keuze

verplicht…

Page 2: Hoofdstuk 7

Opdrachten voorwaardelijk uitvoeren

opdracht wordt alleenuitgevoerd als voorwaarde geldt

if (temperatuur<0) uitvoer.Text = "Het vriest!";

opdracht wordt steeds opnieuwuitgevoerd zolang voorwaarde geldt

if

while (temperatuur<0) temperatuur += 5;

Page 3: Hoofdstuk 7

Twee alternatieven

opdracht wordt alleenuitgevoerd als

voorwaarde niet geldt

if (temperatuur<0) uitvoer.Text = "Het vriest!”;else uitvoer.Text = "Het dooit.";

Page 4: Hoofdstuk 7

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 geheelals body van for-opdracht

één opdrachtdus geenaccolades

nodig!

Page 5: Hoofdstuk 7

Meer opdrachten als body

accolades maken twee opdrachten tot één body

if (temperatuur<0) lab1.Text = "Het vriest"; lab2.Text = "Koud he!";{

}

Page 6: Hoofdstuk 7

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 geheelals body van else-deelif-opdracht dient in z’n geheel

als body van else-deel

Page 7: Hoofdstuk 7

Meerdere alternatievenif (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";

Page 8: Hoofdstuk 7

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-opdrachtis methode beëindigd

Page 9: Hoofdstuk 7

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

Page 10: Hoofdstuk 7

CirkelGroeiclass 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)

Page 11: Hoofdstuk 7

Geheime tekeningclass 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;}

Page 12: Hoofdstuk 7

Geheime tekeningclass 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;

Page 13: Hoofdstuk 7

Thermometerclass 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

Page 14: Hoofdstuk 7

Exceptions

Exception: Uitzonderlijke toestand die

door een methode wordt opgeworpen

De situatie moet door de aanroepervan de methode worden opgevangen

throw

catch

Page 15: Hoofdstuk 7

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 Exceptionopwerpen

opvangen vanhet probleem

Page 16: Hoofdstuk 7

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 Exceptionoptreedt, wordt de

eerste catch gekozenmet een passend type

Page 17: Hoofdstuk 7

Grafiek-tekenprogramma

Panel : grafiek van een parabool

y = a∙x2 + b∙x + c

Label :nulpuntenvolgens

abc-formule

TextBox :ingevoerde

waarden abc

Page 18: Hoofdstuk 7

Parabool: tekst ingevoerdvoid 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) )

Page 19: Hoofdstuk 7

Parabool: oplossingenstring 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 ± b2-4ac2a

double discriminant, noemer, wortel;

Page 20: Hoofdstuk 7

Parabool: functie uitrekenendouble functie ( ){

return a * x * x + b * x + c;}

Page 21: Hoofdstuk 7

Parabool: grafiek tekenenvoid grafiek_Paint (object o, PaintEventArgs pea ){

for ( x=0 ; x<500 ; x++ ){

}

y = this.functie ( x );

gr.DrawLine(Pens.Blue, , , x, y );x-1 oldyoldy = y;

oldy = 0;

if (x>0)

schaal = 0.03;

xw = schaal * x ; w wy = yw / schaal ;

( -250)

(int) (250-( ))

int x, y,oldy; double xw, yw, schaal;

}

Graphics gr = pea.Graphics;

Page 22: Hoofdstuk 7

Overzicht programma-constructiesOpdrachten 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

kun je doen kun je uitrekenen

Page 23: Hoofdstuk 7

Overzicht programma-constructiesDeclaratie Lokale variabele

voor tijdelijk gebruik Field

permanent 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.

geeft het typevan variabelen

waarde-verzamelingvan een expressie