Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Vergelijkbare documenten
import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Kompas. zijn klasse. protected override void OnDraw(Canvas canv) { base.ondraw(canv);

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object

vandaag èn vrijdag deadline maandag 12 dec.

wat is er nodig om een ISensorEventListener te zijn?

class Solver { static Valuatie Vervul (IFormule formule, ISet<string> variabelen, Valuatie valuatie) { if (variabelen. Count==0)

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )

Voorbeeld: Simulatie van bewegende deeltjes

Uitwerking Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

Werkcollege-opgaven. Bijlage B

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

b.text = "Rol!"; b.location = new Point(100, 0); b.click += this.rol; this.paint += this.teken;

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Veel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Programmeren in Java les 3

Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Uitwerkingen Derde deeltentamen Imperatief programmeren Vrijdag 12 november 2010, uur


Uitwerking Derde deeltentamen Imperatief programmeren Woensdag 2 februari 2011, uur

Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 21 oktober 2011, uur

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

// schrijf een static methode die telt hoe // vaak een symbool voorkomt in een string // voorbeeld-aanroep: int n; n = Demo. Freq( e, "some text" );

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 22 december 2017, uur

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur

Veel succes! 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Deeltentamen Grammatica s en ontleden 22 december 2005

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Overerving & Polymorfisme

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Informatica: C# WPO 2

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Lab Webdesign: Javascript 3 maart 2008

Vakgroep CW KAHO Sint-Lieven

Programmeren in C# Samenvatting van C#

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Uitwerking Derde deeltentamen Imperatief programmeren Vrijdag 8 november 2013, uur

Veel succes! 1. Gegeven is de volgende klasse:

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

Tweede deeltentamen Gameprogrammeren Vrijdag 17 oktober 2014, uur

Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur

compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Dit hoofdstuk is niet een herhaling, maar gaat over herhaling in C#, en is dus nieuw!

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Programmeren met Arduino-software

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Programmeermethoden NA. Week 3: Controlestructuren

Modelleren en Programmeren

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur

17 Operaties op bits Bitoperatoren en bitexpressies

Scala. Korte introductie. Sylvia Stuurman

BEGINNER JAVA Inhoudsopgave

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 21 december 2018, uur

Java Les 3 Theorie Herhaal structuren

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

eerste voorbeelden in Java

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Variabelen en statements in ActionScript

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Leren programmeren in C# Deel 2 - Gegevens

Modelleren & Programmeren. Jeroen Fokker

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Javascript oefenblad 1

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Modelleren en Programmeren

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

Zelftest Inleiding Programmeren

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Programmeermethoden NA. Week 6: Lijsten

Transcriptie:

Opdrachten herhalen public void tekenscherm (object o, PEA pea) { int x; x = 1; while ( x<1000 ) x = 2*x; pea.graphics. DrawString ( x.tostring(), ft, br, 10, 10); zolang de voorwaarde geldig is body wordt steeds opnieuw uitgevoerd X 1024 128 256 512 16 32 641248

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

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

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

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

Syntax van opdrachten opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; return expressie ; while ( expressie ) opdracht for ( expr ; expr ; 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( ) { Stralen s = new Stralen(); s.text = "Stralen"; Application.Run(s);

Stralen class Stralen { int x, y; : Form int n=1; public Stralen( ) { this.paint += teken; this.mousemove += beweeg; this.mouseclick += klik; void beweeg (obj o, MEA mea) { this.x = mea.x; this.y = mea.y; this.invalidate(); void klik (obj o, EA ea) { this.n ++; this.invalidate(); void teken (obj o, PEA pea) { Graphics g = pea.graphics; g.fillellipse( Brushes.Black, this.x-20, this.y-20, 40, 40); for (int t=0; t<=this.n; t++) g.drawline( Pens.Black, this.x, this.y, this.width * t / this.n, this.height );

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) value type int Expressie met een tekst als waarde "Hallo " + persoon type string Expressie met een waarheid als waarde teller < exponent objectvalue type bool

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

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

Publieksvraag Schrijf 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

for-opdracht 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 ); lege body for ( d=2 ;!deelbaar(x,d) ; d++ ) ;

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; y x++) gr.drawstring( "+", br, ft, 10*x, 10*(y+1) ); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

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) {... Ha! En dit dan? wat komt er dan uit: void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; stopt( "Gemeen.cs" )?

Het Halting-problem is onoplosbaar stopt( "Gemeen.cs" ) Twee mogelijkheden: Gemeen stopt wel...dus stopt levert true op...dus gemeen bijft hangen! Gemeen stopt niet...dus stopt levert false op...dus gemeen stopt direct! void gemeen (string filenaam) { while ( stopt(filenaam) ) x++; tegenspraak! 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

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

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