Opdrachten herhalen public void tekenScherm (object o, PEA pea)

Slides:



Advertisements
Verwante presentaties

Advertisements


Modern programmeeronderwijs $ a.exe Tik een rij getallen en sluit af met een 0: > Het grootste getal is: 12.
Het type int Tekenen met Java operatoren
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Hoofdstuk 8 Objecten en klassen.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
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.
Inleiding tot programmeren
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.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 7 Herhaling Nieuw!. while ( x
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);
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;
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
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.
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 :
Windows-applicatie class HalloWin1 { static void Main ( ) { } Form scherm; scherm = new Form( ); Application.Run(scherm); using System.Windows.Forms; scherm.Text.
Herhaling: He who does not learn from history, is doomed to repeat it.
Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen.
GUI & classes Een Gui in een class steken en het object gebruiken.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Informatie beoordelen If else Switch En Wiskunde.
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
Hoofdstuk 9.2 Strings.
string versus char string char klasse primitief type
Wat gaan we doen? Theorie (14 colleges + 3 deeltentamens)
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
vandaag èn vrijdag deadline maandag 12 dec.
Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo . Freq(’e’,
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Herhalingen
Declaratie Declaratie reserveert geheugenruimte
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
Willekeurigheid en Herhaling
Aanroep van een methode voert opdrachten uit in de body daarvan
Interface In de library In je eigen programma wat is er nodig om een
Software Development fundamentals
Exceptions Exception:
Eerste deeltentamen Nagekeken werk ligt voor in de zaal
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

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

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

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

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

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

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

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

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

Stralen class Programma { public static void Main( ) } public static void Main( ) { Stralen s = new Stralen(); s.Text = "Stralen"; Application.Run(s); }

Stralen class Stralen { : Form int x, y; int n=1; public Stralen( ) void teken (obj o, PEA pea) { this.Paint += teken; this.MouseMove += beweeg; this.MouseClick += klik; Graphics g = pea.Graphics; g.FillEllipse( Brushes.Black, this.x-20, this.y-20, 40, 40); } void beweeg (obj o, MEA mea) { for (int t=0; t<=this.n; t++) this.x = mea.X; this.y = mea.Y; g.DrawLine( Pens.Black, this.x, this.y, this.Invalidate(); this.Width * t / this.n, } this.Height ); void klik (obj o, EA ea) { } this.n ++; this.Invalidate(); } }

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 ?

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

Bool expressies Vergelijken van waarden x <= y Combineren van andere bool-expressies met logische operatoren && and || or ! not George Boole (1815-1864) x<0 && y>0 ! (x==0 && y==0) x!=0 || y!=0

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

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

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

Herhaalde herhaling Body 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 Nul keer herhalen Oneindig vaak herhalen for (y=0; y<0; y++) gr.DrawString("hoi", br, ft, 10, 10); deze opdracht wordt 0 keer uitgevoerd Oneindig 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 Puntkomma teveel… for (x=0; totaal<100; x++) ; totaal = totaal + x ; ;

deze waarschuwing is theoretisch onmogelijk! Compiler-meldingen Foutmeldingen variabele niet gedeclareerd puntkomma vergeten ... Waarschuwingen variabele ongebruikt unreachable code statement has no effect while-statement doesn’t terminate deze waarschuwing is theoretisch onmogelijk!

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

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

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

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

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

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