Declaratie en toekenningen nEén keer declarareren nMogelijk meerdere toekenningen int x; x = 100; x = 250; x = x + 1; x = 2 * x; int x = 100; x = 100;

Slides:



Advertisements
Verwante presentaties
Modern programmeeronderwijs $ a.exe Tik een rij getallen en sluit af met een 0: > Het grootste getal is: 12.
Advertisements

Het type int Tekenen met Java operatoren
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Imperatief programmeren nProgramma bestaat uit nRunnen is opdrachten gegroepeerd in methoden één voor één uitvoeren te beginnen met main.
Hoofdstuk 8 Objecten en klassen.
Consoletoepassing Variabelen Klassen
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 2 Basis gameprogrammeren. Soorten programma’s Console- applicatie.
Variabelen en berekeningen
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 11 Strings en arrays. TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40);
Hoofdstuk 7 Herhaling Nieuw!. while ( x
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 3 Tekenen en rekenen.
Hoofdstuk 4 Nieuwe methoden. Tekenen g.drawRect(20,60,40,40); g.drawLine(20,60,40,40); g.drawLine(40,40,60,60); g.drawRect(70,60,40,40); g.drawLine(70,60,90,40);
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 2 inleveropdrachten) college Tent. 1 Tent. 2 college prakt. 1 prakt. 2 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Loops en errors Array's Random try catch for loop while loop do while loop.
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; if)(expressieopdrachtblok.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Activity Bij het starten van een app:
Aanroep van een methode voert opdrachten uit in de body daarvan
ISensorEventListener
1e Deeltentamen Nagekeken werk ligt voor in de zaal (alfabetisch op achternaam) Neem het even mee, de uitwerking wordt in het college besproken Discussies.
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Keuzeopdrachten
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Variabelen, declaraties en toekenningen
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Herhalingen
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Willekeurigheid en Herhaling
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Klassen en objecten
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

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

Standaardtypes sbyte short int long float double decimal byte ushort uint ulong ± 2 miljard ± ± ± miljard 7 cijfers, afgerond, ≤ cijfers, afgerond, ≤ cijfers, exact, ≤10 28 ngehele getallen nmet een decimale punt 1 byte 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 16 bytes

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

Values versus References Rectangle r; r = new Rectangle(1,2,3,4); y x h w r 104 h w b Bitmap b; b = new Bitmap("t.jpg"); class Bitmap struct Rectangle

Type-controle nCompiler 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;

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

Type-controle parameters nCompiler controleert of parameters van methoden het goede type hebben g.DrawString ( ”hallo”, br, ft, 10, 20 ); x = 100; y = 10; waarde = 37; g.DrawString ( waarde, br, ft, 0.3 * x, y ); ”” + (int)( ) String int Brush Font

Controls Form Label Button Label TextBox

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

Communicatie met methoden nParameters : aanroeper geeft waarde door aan de methode nMethode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie

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

Methodes die elkaar aanroepen 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(); } class CirkelCalc : Form { }

Publieksvraag nSchrijf 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;

-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.

Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie;

Hoofdstuk 6 Herhaling Nieuw!

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

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

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

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

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

Publieksvraag nMaak een methode macht met twee parameters ugrondtal (reëel getal) uexponent(natuurlijk getal) die de waarde oplevert van grondtal exponent

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

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

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

Bool expressies nVergelijken van waarden nCombineren van andere bool-expressies met logische operatoren u&&and u||or u !not x <= y x 0 ! (x==0 && y==0)x!=0 || y!=0 George Boole ( )

Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; while)(expressieopdrachtblok

Constanten nConstanten met een getal als waarde nConstanten met een tekst als waarde nConstanten met een waarheid als waarde 2 "Hallo" true false "true"

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

Publieksvraag nSchrijf een methode deelbaar, die antwoordt of x deelbaar is door d private static bool deelbaar (int x, int d) { } x%d == 0return ; waarheidswaarde als resultaat

Publieksvraag nSchrijf een methode kleinsteDeler, die antwoordt wat de kleinste deler is van x private static int kleinsteDeler (int x) { } int d; d = 2; while ( x%d != 0) d = d+1; return d ; probeer ze één voor één

Variabelen aanpassen nAfgekorte notaties: x = x * 2 ; oude waarde wordt nieuwe waarde x = x * 2 ; x *= 2 ; x = x + 5 ; x += 5 ; x = x + 1 ; x += 1 ; x ++ ; wordt vermenigvuldigd met wordt vermeerderd met wordt opgehoogd

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

for-opdracht eenmalige initialisatie int t ; for ( t=0 ; t<x ; t++ ) voorwaarde om door te gaan stap naar de volgende gr.DrawString( "#", br, ft, 0, t*10 ); for ( t=1 ; t<=x ; t++ )for ( t=x ; t>=0 ; t -- )for ( t=2 ; !deelbaar(x,t) ; t++ )

Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie; while)(expressieopdrachtblok for)(expropdrachtexpr ;;

Syntax van opdrachten opdracht returnexpressie; while)(expressieopdrachtblok for)(expropdrachtexpr ;;

Herhaalde herhaling nBody 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) ); y

Extreme gevallen nNul keer herhalen for (y=0; y<0; y++) gr.DrawString("hoi", br, ft, 10, 10); nOneindig vaak herhalen while (true) audio.Play( ); gr.DrawString("hoi", br, ft, 10, 10); deze opdracht komt nooit aan de beurt!

Onbedoelde oneindigheid x=1; aantal = 0; while (aantal<10) x = x*2; aantal = aantal+1; {}{} accolades vergeten...

Onbedoelde oneindigheid for (x=0; x<10; x++) ; totaal = totaal + x ; Puntkomma teveel… ;

Compiler-meldingen nFoutmeldingen uvariabele niet gedeclareerd upuntkomma vergeten u... nWaarschuwingen uvariabele ongebruikt uunreachable code ustatement has no effect uwhile-statement doesn’t terminate deze waarschuwing is theoretisch onmogelijk!

Het Halting-problem is onoplosbaar bool stopt (string filenaam) {.... } void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; } Ha! En dit dan? Nietes! Deze methode lost het op: stopt( "Gemeen.cs" ) wat komt er dan uit: ?

Het Halting-problem is onoplosbaar void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; } stopt( "Gemeen.cs" ) Twee mogelijkheden: n“Gemeen” stopt wel n“Gemeen” stopt niet...dus stopt levert true op...dus gemeen bijft hangen!...dus stopt levert false op...dus gemeen stopt direct! tegenspraak! dus stopt kan helemaal niet bestaan

Andere Halting -achtige problemen nWordt een opdracht ooit uitgevoerd? nIs een programma een virus? en hoe werkt een virus-checker dan? nòf te streng: keurt teveel af nòf te coulant: laat sommige door lastig gevaarlijk

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

On computable numbers... nIntroduceert als gedachtenexperiment een Logical Computing Machine ugegevens §op een papierstrook uprogramma §in een geheugen, of zelfs: §ook op de papierstrook "Turing machine" 10 jaar voor de eerste computer!

Voorbeeldprogramma: Renteberekening door de gebruiker in te vullen TextBox -objecten Label met het resultaat Button met een Click handler

Rente-programma private void knop_Click(object o, EventArgs ea) { } bedragBox.Textdouble.Parse( ) ;double bedrag = double rente = double.Parse( renteBox.Text ); for (jaar=0; jaar<=10; jaar++) bedrag *= (1+0.01*rente); resultaat.Text += "na" + jaar + "jaar" + bedrag; { } int jaar; resultaat.Text = "";

Publieksvraag nSchrijf een methode wortel, die de wortel trekt van een niet-negatieve double nZonder Math.Sqrt te gebruiken! nGebruik de Newton-benadering: als y een benadering is van Sqrt(x), dan is het gemiddelde van y en x/y een betere benadering

private static double wortel (double x) { } Worteltrek-methode double y; y = 1; return y; y = (y + x/y) / 2 ; while ( y*y != x ) stopt dit? wiskundige: nee, gelijkheid geldt pas in limiet programmeur: ja, want reken- precisie is beperkt informaticus: nee, want afrond- fouten verhinderen bereiken limiet while ( Math.Abs (y*y - x) < ) veiliger:

Opbouw herhaling nInitialisatie nHerhaalde aanpassing nGebruik van het resultaat kap=start;y=1;tot=0; kap*=(1+0.01*rente); y=(y+x/y)/2;tot+=x; gr. DrawString (""+kap,...); return y; lab. Text = tot ; res=""; res+="|"; return res;

Tekenen of opleveren? ngr.DrawString (x,...) nres.Text += x; resultaat komt meteen op het scherm nreturn x; resultaat wordt teruggegeven aan de aanroeper, die zelf kan beslissen wat hij ermee doet

Overzicht programma- constructies Opdrachten nToekenning nAanroep void-methode nreturn-opdracht nwhile-opdracht nfor-opdracht n{... } - bundeling Expressies n Constante n Variabele n Aanroep methode n Expressie met operatoren n Expressie met haakjes n new-expressie kun je doenkun je uitrekenen

Wat gaan we doen? college Tent. 1 Tent. 2 Tent. 3 college prakt. 1 prakt. 2 prakt. 3 prakt. 1 prakt. prakt. 1 prakt. prakt. 2 prakt wo 15-17vr 13-15< werkcoll nNu: Prakticum BBG 109 – 017 – 106 – 175 – 112 – 103 nWoensdag: werkcoll, hoorcoll, prakt S/T/UV/W