Upload
hovan
View
54
Download
0
Embed Size (px)
DESCRIPTION
Hoofdstuk 7. verplicht…. Keuze. if. while (temperatuur
Citation preview
Hoofdstuk 7
Keuze
verplicht…
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;
Twee alternatieven
opdracht wordt alleenuitgevoerd 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 geheelals body van for-opdracht
één opdrachtdus geenaccolades
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 geheelals body van else-deelif-opdracht dient in z’n geheel
als body van else-deel
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";
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
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;
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)
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;}
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;
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
Exceptions
Exception: Uitzonderlijke toestand die
door een methode wordt opgeworpen
De situatie moet door de aanroepervan 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 Exceptionopwerpen
opvangen vanhet 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 Exceptionoptreedt, wordt de
eerste catch gekozenmet een passend type
Grafiek-tekenprogramma
Panel : grafiek van een parabool
y = a∙x2 + b∙x + c
Label :nulpuntenvolgens
abc-formule
TextBox :ingevoerde
waarden abc
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) )
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;
Parabool: functie uitrekenendouble functie ( ){
return a * x * x + b * x + c;}
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;
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
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