De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Aanroep van een methode voert opdrachten uit in de body daarvan

Verwante presentaties


Presentatie over: "Aanroep van een methode voert opdrachten uit in de body daarvan"— Transcript van de presentatie:

1 Aanroep van een methode voert opdrachten uit in de body daarvan
Nieuwe methoden Methode: groepje opdrachten met een naam private void tekenHuis(…) { … . DrawRectangle (…); … . DrawLine (…); … . DrawLine (…); } public void TekenScherm (object o, PaintEventArgs pea) { … . tekenHuis (…); … . tekenHuis (…); … . tekenHuis (…); } Aanroep van een methode voert opdrachten uit in de body daarvan

2 Methoden met parameters
declaratie van parameters Methoden met parameters private void tekenHuis (Graphics gr, … ) { int x, int y, int br) int tx, ty; tx = x + br/2; ty = y – br – br/2; (tx,ty) gr.DrawRect (pen, … ); gr.DrawLine (pen, … ); gr.DrawLine (pen, … ); x, y-br, br, br x, y-br, tx, ty tx, ty, x+br, y-br } (x,y) br public void TekenScherm(object o, PaintEventArgs pea) { this . tekenHuis (pea.Graphics, …); this . tekenHuis (pea.Graphics, …); this . tekenHuis (pea.Graphics, …); 20, 100, 40); 70, 100, 40); 120, 100, 60); } parameters krijgen een waarde

3 Communicatie met methoden
Parameters : aanroeper geeft waarde door aan de methode Methode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie

4 Methoden met een resultaat
type van het resultaat private double kwadraat (double x) { return x*x ; } waarde van het resultaat in speciale return-opdracht

5 Publieksvraag Schrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!") "Hoera!Hoera!Hoera!" private string driewerf (string x) { } return x+x+x;

6 Aanroep van methoden Aanroep van void-methode geldt als opdracht
zonder resultaat Aanroep van void-methode geldt als opdracht g.DrawLine(pen, 10,10, 20,20) ; Aanroep van methode met resultaat geldt als expressie a = this.kwadraat (5) ; g.DrawLine(pen, this.kwadraat (5), 10, 25, 50); … this.kwadraat (5) + 1 …

7 Return is laatste opdracht
Parameters krijgen hun waarde bij de aanroep private double gemiddelde (double a, double b, double c) { } double totaal; Lokale variabelen krijgen hun waarde in een toekenning totaal = a + b + c ; return totaal / 3;

8 Methodes die elkaar aanroepen
class CirkelCalc : Form { private double kwadraat (double x) { return x*x ; } private double oppervlak (double r) { return Math.PI * this.kwadraat(r); } public void Bereken (...) { uitvoer.Text = this.oppervlak(25) .ToString(); } }

9 Declaratie en toekenningen
Eén keer declarareren Mogelijk meerdere toekenningen Declaratie en eerste toekenning int x; int x = 100; x = 100; x = 100; x = 250; x = x + 1; x = 2 * x;

10 Standaardtypes gehele getallen met een decimale punt 1 byte sbyte
± 127 byte 0..255 28-1 2 bytes short ± 32767 ushort 216-1 4 bytes int ± 2 miljard uint 0..4 miljard 232-1 8 bytes long ± 1018 ulong 264-1 met een decimale punt 4 bytes float 7 cijfers, afgerond, ≤1038 8 bytes double 15 cijfers, afgerond, ≤10300 16 bytes decimal 28 cijfers, exact, ≤1028

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

14 Objecten Object: groepje variabelen dat bij elkaar hoort 100 w 20 h h
! 255 r g b 3 aantal 199.95 prijs

15 Objecten "vraag niet hoe het kan... " Om een object te gebruiken, hoef je niet te weten uit welke variabelen het object bestaat "maar profiteer ervan! " Je hoeft alleen te weten welke methoden er zijn welke properties er zijn

16 Methoden bewerken een object
gr . DrawLine ( pen, 10, 10, 30, 30) ; methode gebruikt het object scherm.Controls . Add ( new Label() ); methode verandert het object blijvend Console . WriteLine( "Hallo", ... ); static methode heeft geen object onderhanden

17 Programma en Geheugen opdrachten variabelen methoden objecten klasse
veranderen zijn gegroepeerd in zijn gegroepeerd in methoden objecten bewerken zijn gegroepeerd in hebben als type klasse klasse klasse

18 Controls Form Label Label TextBox Button Label

19 CirkelCalc mag je gebruiken in alle methodes class Scherm : Form {
TextBox invoer; Label uitvoer; public void bereken(...) { ...Parse(invoer.Text); public Scherm( ) { Scherm ......this .oppervlakte(...)... Button knop; Label tekst; uitvoer.Text = ... } invoer = new TextBox(); static private double oppervlakte(...) { knop.Click = this.bereken; return ... } } heeft de variabelen niet nodig }

20 Grafische User Interface (GUI)
TrackBar 8 declaraties 8 keer new ... 8 keer this.Controls.Add(...) 42 property-toekenningen Panel Button Label 8 declaraties 8 keer new ... 8 keer this.Controls.Add(...) 42 property-toekenningen

21 Visual Studio Design Mode

22 Code gegenereerd door Visual Studio Designer
Program.cs Mixer.cs namespace Mixer namespace Mixer { { class Mixer : Form class Program { { Button b; public static void Main() public Mixer() { { Application . Run (new Mixer()); Mixer m; m = new Mixer(); Application . Run(m); b = new Button(); b.Text = "Zwart"; b.Click += aktie; this.Controls.Add(b); } } } public void aktie (object o, EventArgs ea) } { // doe iets... } } }

23 Code gegenereerd door Visual Studio Designer
afblijven! Program.cs Mixer.cs Mixer.Designer.cs namespace Mixer namespace Mixer namespace Mixer { { { partial partial class Mixer : Form class Mixer class Program { { { #region generated code public static void Main() void InitializeComponent() public Mixer() { { { this. InitializeComponent(); Application . Run (new Mixer()); Mixer m; m = new Mixer(); Application . Run(m); b = new Button(); b = new Button(); b.Text = "Zwart"; b.Text = "Zwart"; b.Click += aktie; b.Click += aktie; this.Controls.Add(b); this.Controls.Add(b); } } } } public void aktie (object o, EventArgs ea) #endregion } { // doe iets... Button b; } } } } }

24 Hoofdstuk 6 Nieuw! Herhaling

25 Opdrachten herhalen public void tekenScherm (object o, PEA pea)
{ int x; x = 1; pea.Graphics . DrawString ( x.ToString() , ft, br, 10, 10); } zolang de voorwaarde geldig is while ( x<1000 ) x = 2*x; body wordt steeds opnieuw uitgevoerd X 1024 512 256 128 64 16 32 4 1 2 8

26 Meer opdrachten herhalen
private static int Naam ( ) { TweeLog (int n) int x, t; x=1; t=0; while ( x<1000 ) { x = 2*x; t = t+1; } teller telt hoe vaak er wordt verdubbeld n accolades smeden twee opdrachten tot één body return t; }

27 Herhalen met een teller
public void tekenScherm (object o, PaintEventArgs pea) { int t; t=0; while ( t<10 ) { pea.Graphics.DrawString( ":-)", br, ft, 0, 20*t ); t = t+1; } teller bepaalt het aantal herhalingen en komt goed van pas in de body

28 Publieksvraag Schrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!") "Hoera!Hoera!Hoera!" private string driewerf (string x) { } return x+x+x;

29 Publieksvraag Schrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!") "Hoera!Hoera!Hoera!" Schrijf een methode veelwerf met een String-parameter, en een getal n die n herhalingen van de String oplevert

30 Veelwerf-methode private static string veelwerf (string x, int n) {
string result; int t; t = 0; result = ""; while ( t<n ) { t = t+1 ; } result = result + x ; return result; }

31 Publieksvraag Maak een methode macht met twee parameters
grondtal (reëel getal) exponent (natuurlijk getal) die de waarde oplevert van grondtalexponent

32 Machtsverhef-methode
private static double macht (double x, int n) { double result; int t; t = 0; result = 1; while ( t<n ) { t = t+1 ; } result = result * x ; return result; }

33 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 ?

34 Expressies Expressie met een getal als waarde
2 * (lengte + breedte) type int value Expressie met een tekst als waarde "Hallo " + persoon type string object- Expressie met een waarheid als waarde teller < exponent type bool value

35 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

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

37 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

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

39 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

40 Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Oefening (6 werkcolleges) Praktijk (14 keer, 3 inleveropgaven) 13-15 wo 15-17 <24 11-13 vr 13-15 15-17 prakt. college prakt. college werkcoll prakt. college prakt. college werkcoll prakt. 1 college Tent. 1 201: N/R/P/U 214: Z/H/wis/nat/psy 001: ander hoofdvak prakt. 1 college prakt. 1 college werkcoll prakt. 2 college prakt. 2 college werkcoll prakt. 2 college Tent. 2 prakt. 2 college prakt. 3 college werkcoll prakt. 3 college prakt. 3 college werkcoll Tent. 3


Download ppt "Aanroep van een methode voert opdrachten uit in de body daarvan"

Verwante presentaties


Ads door Google