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

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

Voorbeeld: Simulatie van bewegende deeltjes

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

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

Modelleren en Programmeren

vandaag èn vrijdag deadline maandag 12 dec.

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

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

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

Programmeren in Java les 3

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

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

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

Modelleren en Programmeren

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

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

Vakgroep CW KAHO Sint-Lieven

Deeltentamen Grammatica s en ontleden 22 december 2005

Ingebouwde klassen & methodes


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

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

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

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

Modelleren en Programmeren

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

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

Modelleren en Programmeren

Modelleren en Programmeren

OEFENINGEN PYTHON REEKS 1

Overerving & Polymorfisme

OEFENINGEN PYTHON REEKS 1

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

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

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

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

OEFENINGEN PYTHON REEKS 1

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

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

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Een korte samenvatting van enkele FORTRAN opdrachten

Lab Webdesign: Javascript 3 maart 2008

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

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

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

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

Programmeren (1) Examen NAAM:

BEGINNER JAVA Inhoudsopgave

Variabelen en statements in ActionScript

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, uur

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

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

Objectgericht programmeren 1.

Programmeren met Arduino-software

Scala. Korte introductie. Sylvia Stuurman

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

Modelleren & Programmeren. Jeroen Fokker

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Lessen Java: Reeks pag. 1

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 18 oktober 2013, uur

Javascript oefenblad 1

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

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Algoritmen abstract bezien

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur

Zelftest Inleiding Programmeren

Modelleren en Programmeren

wat is er nodig om een ISensorEventListener te zijn?

Modelleren en Programmeren

Hoofdstuk 0. Van Python tot Java.

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs

College Introductie

Objectgeoriënteerd programmeren in Java 1

REEKS I. Zaterdag 6 november 2010, 9u

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

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

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

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

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


Java Les 3 Theorie Herhaal structuren

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

Informatietechnologie 2. JavaScript. Strings, getallen, datums, arrays en loops. Kristof Michiels

Tentamen Programmeren in C (EE1400)

eerste voorbeelden in Java

1 Inleiding in Functioneel Programmeren

PYTHON REEKS 1: BASICS. Mathias Polfliet

Wat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type.

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Small Basic Programmeren Text Console 2

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

Recursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!

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

Transcriptie:

Voorbeeld Java-programma import java.io.*; één klasse...met één functie...met één opdracht public class Hallo { public static void main (String[] a) { System.out.println("Hallo!"); accolades begrenzen klasse, resp. functie

Soorten opdrachten Toekennings -opdracht: verander het geheugen Aanroepp van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de waar was ik gebleven administratie i i is best ingewikkeld! ikk

Syntax van opdracht opdracht functie object. naam ( expressie ) variabele = expressie ;, ;

Functies definiëren en functies aanroepen public static void printkwadraat (int x) { int kw; kw = x*x; System.out.println( x + " kwadraat is " + kw ); public static ti void main (String[] a) { printkwadraat(2); printkwadraat(3); printkwadraat(10); Aanroep van een functie voert opdrachten uit in de body daarvan

Functies met een resultaat t public static int kwadraat (int x) { int kw; kw = x*x; return kw; public static ti void main (String[] a) { System.out.println( "kijk: " + kwadraat(2) ); System.out.println( kwadraat( kwadraat(5) ) );

Syntax van methode-definitie d iti functie definitie public private static type void functie naam ( par-decl ), { opdracht declaratie

Publieksvraag Definieer een functie driewerf die je zo kunt aanroepen: public static void main (String[] a) { System.out.println( driewerf ("Hoera!") );

Di Driewerf-functie ff Definieer een functie driewerf die je zo kunt aanroepen: declaratie van de parameter public static String driewerf (String x) { String res; res = x + x + x ; definitie van return res; de functie aanroep van public static void main (String[] a) de functie { System.out.println( driewerf ("Hoera!") ); waarde van de parameter

Communicatie met functies Parameters : aanroeper geeft waarde door aan de methode Functie-resultaat : methode geeft waarde terug aan de aanroeper met een return-opdracht

Syntax van opdracht opdracht functie object. naam ( expressie ), variabele = expressie ; ; return expressie ; if ( expressie ) opdracht while ( expressie ) opdracht else opdracht { opdracht declaratie

Opdrachten herhalen h public static void main (String[] a) { int x; zolang de x = 1; voorwaarde while ( x<1000 ) geldig is x = 2*x; body wordt System.out.println( "kijk:" +x); steeds opnieuw uitgevoerd X 1024 128 256 512 16 32 641248 1024

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

Publieksvraag Schrijf een functie driewerf met een String-parameter, t die 3 herhalingen ervan oplevert driewerf("hoera!") "Hoera!Hoera!Hoera!" S hijf f ti l f Schrijf een functie veelwerf met een String-parameter, en een getal n die n herhalingen van de String oplevert

Veelwerf-functie f private static String veelwerf (String s, int n) { String result; int t; t = 0; result = ""; while ( t<n ) { result = result + s ; t = t+1 ; return result;

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

Machtsverhef-functie h f ti 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;

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

Expressies Expressie met een getal als waarde 2 * (lengte + breedte) primitief type int Expressie met een tekst als waarde "Hallo " + persoon object- type String Expressie i met een waarheid als waarde teller < exponent primitief type boolean

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

Variabelen aanpassen x = x * 2 ; nieuwe waarde wordt oude waarde Afgekorte notaties: x = x * 2 ; x *= 2 ; wordt vermenigvuldigd met wordt vermeerderd met x = x + 5 ; x += 5 ; 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 opdracht opdracht functie object. naam ( expressie ) ; variabele = expressie ;, return expressie ; if ( expressie ) opdracht while ( expressie ) opdracht { opdracht declaratie else opdracht for ( expr ; expr ; expr ) opdracht

Herhaalde herhalingh Body van een for-opdracht is een opdracht dat kan zelf ook een for-opdracht opdracht zijn! int x, y; for (y=0; y<10; y++) { for (x=0; x<10; y x++) System.out.print( "+" ); System.out.println(); ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Extreme gevallen Nul keer herhalen for (y=0; y<0; y++) System.out.println("hoi"); Oneindig g vaak herhalen while (true) Audio.play( "birds gotta fly" ); System.out.println("hoi"); deze opdracht komt nooit aan de beurt!

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

Compiler-meldingen ldi Foutmeldingen variabele a niet gedeclareerd ee d puntkomma vergeten... Waarschuwingeng 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: boolean stopt (String filenaam) {... void gemeen (String filenaam) Ha! { while ( stopt(filenaam) ) En dit dan? x++; wat komt er dan uit: stopt( "Gemeen.java" )?

Het Halting-problem is onoplosbaar stopt( "Gemeen.java" ) Twee mogelijkheden: Gemeen stopt t 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

Hoofdstuk 5 Strings en arrays

Functies en methoden Eigen functie int k; k = kwadraat(5) ; Functie uit een library double d; d = Math. sqrt(10) ; Methode: functie met een object onderhanden String s, t; s="hallo"; t = s. substring(1, 3) ;

Static methoden en methoden Eigen static methode geen object kwadraat(5) Static methode uit een library geen object, maar library-naam Math. sqrt(10) Methode: functie met een object onderhanden String-object String s; s="hallo"; s. substring(1, 3)

String-methodes th int length ( ) boolean equals (String s) String concat (String s) String substring (int start) String substring (int start, int eind) String touppercase () String tolowercase ( )

concat en substring String s, t, u, v, w; s = "ham"; t ="burger"; u = s.concat(t); s + t ; v = u.substring(3); w = u.substring(3, bti 7); ham s t u v w burger hamburger burger 012345678 van en tot en hamburger met zonder burg

Losse letters String substring (int begin, int eind) String voorletter; voorletter = s. substring(0,1); charh charat (int positie) char eerste; char eerste; eerste = s. charat(0);

Pi Primitieve iti types int gehele getallen -17, -5, 0, 3, 178 double reëele getallen 3.141, 2.0, -1.5E8 boolean waarheidswaarden false, true char losse symbolen A, B, Z, a, 4, #, :

Publieksvraag // schrijf een static methode die telt hoe // vaak een symbool voorkomt in een String // voorbeeld-aanroep: int n; n = freq( e, some text ); // hint: gebruik een for opdracht

Tel symbool-frequentie private static int freq(char x, String s) { int aantal; aantal = 0; int t; for (t=0; t<s.length(); t++) if ( s.charat(t)==x ) return aantal; aantal ++ ;

String versus char String klasse object-verwijzing nul, een of meer "" "A" "hello" methoden equals == concat < substring + char primitief type directe waarde precies één symbool A operatoren

Arrays Array: rij genummerde variabelen declaratie van een array tabel 5 length int [] tabel; 0 1 tabel = new int [5]; creëren van het eigenlijke array-object 2 3 4

Gebruik van een array t zijn echte variabelen: tabel [2] = 37; tabel 5 length x = tabel [2] + 5; x 42 if (tabel.length<10)... tabel.length = 10; 37 0 1 2 3 4 echter de lengte mag je niet wijzigen

Gebruik van een array variabele als index in de array tabel [0] = 0; tabel [1] = 0; tabel [2] = 0; tabel [3] = 0; tabel [4] = 0; tabel 5 0 0 0 0 length 0 1 2 3 for (t=0; t<5; t++) tabel [t] = 0; 0 4

Array als parameter int totaal ( int [ ] tabel ) { int resultaat; int t; resultaat = 0 ; for (t=0; t<tabel.length; t++) resultaat += tabel [t] ; tabel 5 12 95 11 length 0 1 2 return resultaat; 23 15 3 4

Array als parameter int kleinste ( int [ ] tabel ) { int resultaat; int t; resultaat = tabel [0] ; for (t=0; t<tabel.length; t++) if (tabel [t] < resultaat) resultaat = tabel [t]; return resultaat; tabel 5 12 95 11 23 15 length 0 1 2 3 4

Tel symbool-frequentie private static int freq (char x, String s) { int aantal; aantal = 0; int t; char c; for (t=0; t<s.length(); t++) { c = s.charat(t); () if (c==x) aantal ++ ; return aantal;

Turf de frequentie van elke letter private static int voidfreq frequentie (char x, ( String s) { int aantal; [ ] aantal; aantal = 0; new int [128]; int t; char c; for (t=0; t<s.length(); t++) { c = s.charat(t); () if (c==x) ( c>='a' && c<='z' ) aantal ++ [c] ++; ; for ( c='a' ; c<='z' ; c++ ) return System.out.println( aantal; c + ": " + aantal[c] );

Methode met een array als resultaat t private static int [] freq frequentie (char x, ( String s) { int aantal; [ ] aantal; aantal = 0; new int [128]; int t; char c; for (t=0; t<s.length(); t++) { c = s.charat(t); () if (c==x) ( c>='a' && c<='z' ) aantal ++ [c] ++; ; return aantal;

Prakticumopgave 2 Turing machines

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

Alan Turing (1912-1954) 1954) 1936: "On computable numbers, with an application to the Entscheidungsproblem "

Alan Turing (1912-1954) 1954) en ik :-)

Alan Turing (1912-1954) 1954) 1936: On computable numbers Turing machine 1943: Enigma crack 1946: eerste Engelse computer 1950: Computing machinery and intelligence p g y g Turing test "can machines think?"

Wiskundige logica (1910) Russell Principia Mathematica: waarheid en bewijsbaarheid b id (1931)( ) Gödel incompleteness-stelling: g sommige waarheden zijn niet bewijsbaar (1900) Hilbert 30 open vragen, o.a.: kun je van elke uitspraak beslissen, of hij waar is of niet? (Entscheidungsproblem) 52

Turing Machine: idee Tape met symbolen Machine met toestand t Transitie-regels Startconfiguratie Machine stopt als geen regels toepasbaar Machine kan o.a. echt rekenen! http://math.hws.edu/tmcm/java/labs/xturingmachinelab.ht ml 53

Berekenbare getallen Berekenbaar getal: output van een Turing-machine De Turing-machines zijn aftelbaar (op alfabetische volgorde van regels-tekst) t) Sommige Turing-machines geven geen output (omdat de berekening niet eindigt) Halting-probleem: eindigt de berekening van Turing-machine met nummer M? 54