Logica voor Informatica

Maat: px
Weergave met pagina beginnen:

Download "Logica voor Informatica"

Transcriptie

1 Logica voor Informatica 13 Programma verificatie Wouter Swierstra University of Utrecht 1

2 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment van) predikatenlogica kunnen programmeren. Maar talen als C# zijn heel anders hebben we dan nog wel iets aan al deze logica? 2

3 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment van) predikatenlogica kunnen programmeren. Maar talen als C# zijn heel anders hebben we dan nog wel iets aan al deze logica? Logica speelt een centrale rol als je programma s correct wil bewijzen. 2

4 C#? Een taal als C# bevat heel veel verschillende features: objecten en methoden; inheritance; abstracte klassen; een rijke standaard library; Om al deze zaken mathematisch precies te maken is uitermate ingewikkelde. Als we over programma verificatie praten, is het eenvoudiger om ons te beperken tot een mini-taal die de kern van imperatieve talen, zoals C, C#, Java en Python, beschrijft. 3

5 Impertaal: de moeder der imperatieve programmeertalen Imperatieve programmeertalen zoals Java bestaan uit een serie opdrachten. Onze mini-taal bestaat uit de volgende soorten opdrachten: assignments/toekenningen x := 3 if-then en if-then-else statements; while statements; sequentiele compositie het na elkaar uitvoeren van twee opdrachten c en d, meestal geschreven c ; d Daarnaast nemen we aan dat we de gebruikelijke logische (and, or, not, enz) en aritmetische operatoren (plus, keer, enz.) tot onze beschikking hebben. 4

6 Impertaal: een voorbeeld begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end Vraag: Wat doet dit programma? 5

7 Semantiek van Impertaal Wat is het resultaat van het uitvoeren van een Impertaal programma? 6

8 Semantiek van Impertaal Wat is het resultaat van het uitvoeren van een Impertaal programma? Deze programma s wijzigen de geheugen ( state of toestand ) van een computer. We modelleren dit geheugen vaak als een bedeling Var Int die de waardes van alle variabelen representeert. Gegeven een initiele toestand S en een programma P, kunnen we het programma uitvoeren. Dit resulteert in een nieuwe toestand S of belandt in een oneindige lus, deelt door nul, enz. 6

9 Semantiek van Imperatieve Programmeertalen -> begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 x =? p =? i =? 7

10 Semantiek van Imperatieve Programmeertalen begin -> x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 x =? x = 3 p =? p =? i =? i =? 8

11 Semantiek van Imperatieve Programmeertalen begin x := 3; -> p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 S 2 x =? x = 3 x = 3 p =? p =? p = 0 i =? i =? i =? 9

12 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; -> i := 1; zolang i <= x doe begin p := p + i i := i+1; end end S 0 S 1 S 2 S 3 x =? x = 3 x = 3 x = 3 p =? p =? p = 0 p = 0 i =? i =? i =? i = 1 10

13 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 1 S 2 S 3 S 4 x = 3 x = 3 x = 3 x = 3 p =? p = 0 p = 0 p = 1 i =? i =? i = 1 i = 1 11

14 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 2 S 3 S 4 S 5 x = 3 x = 3 x = 3 x = 3 p = 0 p = 0 p = 1 p = 1 i =? i = 1 i = 1 i = 2 12

15 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 3 S 4 S 5 S 6 x = 3 x = 3 x = 3 x = 3 p = 0 p = 1 p = 1 p = 3 i = 1 i = 1 i = 2 i = 2 13

16 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 4 S 5 S 6 S 7 x = 3 x = 3 x = 3 x = 3 p = 1 p = 1 p = 3 p = 3 i = 1 i = 2 i = 2 i = 3 14

17 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin -> p := p + i i := i+1; end end S 5 S 6 S 7 S 8 x = 3 x = 3 x = 3 x = 3 p = 1 p = 3 p = 3 p = 6 i = 2 i = 2 i = 3 i = 3 15

18 Semantiek van Imperatieve Programmeertalen begin x := 3; p := 0; i := 1; zolang i <= x doe begin p := p + i -> i := i+1; end end S 6 S 7 S 8 S 9 x = 3 x = 3 x = 3 x = 3 p = 1 p = 3 p = 6 p = 6 i = 2 i = 3 i = 3 i = 4 16

19 Semantiek van Imperatieve Programmeertalen begin -> end x := 3; p := 0; i := 1; zolang i <= x doe begin end p := p + i i := i+1; Het programma is nu klaar met als eindtoestand S 10 S 7 S 8 S 9 S 10 x = 3 x = 3 x = 3 x = 3 p = 3 p = 6 p = 6 p = 6 i = 3 i = 3 i = 4 i = 4 17

20 Specificatie Een formele specificatie is een mathematische precieze beschrijving van het gewenste gedrag van een programma. We laten dan vaak die niet-functionele requirements buiten beschouwing over de snelheid van het programma, de taal die wordt gebruikt, de kosten van ontwikkeling, enz. In plaats daarvan, kijken we alleen naar de centrale vraag: Doet dit programma wat het moet doen? 18

21 Specificatie Toen Informatica als vakgebied nog in de kinderschoenen stond, was het een enorme uitdaging. De traditionele mathematisch logica houdt zich bezig met wiskundige structuren en die zijn heel anders dan computer programmas.q In het bijzonder, worden computer programma s uitgevoerd en wijzigen zij de huidige toestand. Dus moest men op zoek naar nieuwe logica s om over dit soort zaken te kunnen redeneren. 19

22 Specificatie Wat is een specificatie van programma geschreven in Impertaal? 20

23 Specificatie Wat is een specificatie van programma geschreven in Impertaal? Elk programma wijzigt de initiele toestand en termineert (mogelijk) in een eindtoestand. Een mogelijke specificatie van een programma is dan twee predicaten, ϕ en ψ over de begin en eindtoestand: Als je mag aanemen dat ϕ geldt van de begintoestand, dan moet het programma garanderen dat ψ geldt van de eindtoestand. 20

24 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie Partiële Correctheid { x = 3} Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. x := x + 1 { x = 4} 21

25 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie Partiële Correctheid { x = A y = B} Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. z := x; x := y; y := z; { x = B y = A} 22

26 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-conditie programma post-conditie { } Partiële Correctheid Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. p := 0; i := 1; zolang i >= 1 doe p := p + i i := i+1; { p = 500 } 23

27 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-condition Program post-condition { } Partiële Correctheid Wanneer het programma, uitgevoerd met een begin toestand dat aan ϕ voldoet, termineert, geldt de postconditie ψ van het eindtoestand. {p = 6} x := 3; p := 0; i := 1; zolang i <= x { p := p + i i := i+1; } 24

28 Semantiek van Imperatieve Programmeertalen { ϕ } π { ψ } pre-condition Program post-condition Programma Constructie of Programma Calculatie Gegeven de pre- en postcondities, schrijf een programma dat voldoet aan deze specificatie. {x 10} π {x = 10} 25

29 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Wat zijn de geschikte keuzes van axiomas? 26

30 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Wat zijn de geschikte keuzes van axiomas? In het algemeen, proberen we voor elke programma-constructie (if,while, assignment, enz) een bijbehorende axioma te vinden. 26

31 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} 27

32 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} Maar ook, voor alle N {x = N} x := x + 1 {x = N + 1} 27

33 Assignments We hebben al een voorbeeld gezien: {x = 3} x := x + 1 {x = 4} Maar ook, voor alle N {x = N} x := x + 1 {x = N + 1} Dus wat is de regel in zijn algemeenheid? 27

34 Voorbeelden { [t/v]ϕ } v := t { ϕ } Voorbeeld axioma instanties: { y = 3 } x := 3 { y = x } { x = N + 1 } x := x 1 { x = N } { x + y = V } z := x + y { z = V } Waarom zijn deze wel geldig? Waarom is de substitutie aan de verkeerde kant? 28

35 Floyd-Hoare Logica De Floyd-Hoare logica (axiomatische systeem) kan gebruikt worden om over Impertaal programma s te redeneren. Afleidingsregels van Floyd-Hoare logica heeft de volgende vorm: S 1. S n S 29

36 Eerste regel: assignments De regel voor assignments kennen we al: { [t/v]ϕ } v := t { ϕ } Maar wat zijn de regels voor: if-then-else while sequentiele compositie en een aantal andere toegestane regels de kunnen helpen bij het boekhouden van bewijzen. 30

37 Floyd-Hoare Logica Afledingsregel (versterking preconditie): ϕ ψ {ψ} π {χ} {ϕ} π {χ} Voorbeeld: 1. { x + y = V } z := x + y { z = V } toek. Ax. 2. ((x + y = V ) (x 0)) (x + y = V ) logic 3. { (x + y = V ) (x 0) } z := x + y { z = V } Vers. Prec. 1&2 31

38 Floyd-Hoare Logica Afledingsregel (verzwaking postconditie): ψ χ {ϕ} π {ψ} {ϕ} π {χ} Voorbeeld: 1. { x + y = V } z := x + y { z = V } logic 2. (z = V ) (z V ) definitie 3. { x + y = V } z := x + y { z V } verz. post. 1&2 32

39 Floyd-Hoare Logica Afledingsregel (opeenvolgingregel): {ϕ} π 1 {ψ} {ψ} π 2 {χ} {ϕ} π 1 ; π 2 {χ} Voorbeeld: 1. { x } x := x + 1 { x 20 } toek. Ax. 2. { x 20 } y := x { y 20 } toek. Ax. 3. { x < 20} x := x + 1 ; y := x { y 20 } opeenv. 1&2 33

40 Floyd-Hoare Logica Afledingsregel ( Als-dan regel): (ϕ σ) χ {ϕ σ} π {χ} {ϕ} als σ dan π {χ} Voorbeeld: 1. {((0 x 5) (x 5) } y := x { 0 x 5 } 2. ((0 x 5) (x > 5)) (0 x 5) 3. {0 x 5} als x 5 dan y := x { 0 x 5 } als-dan 1&2 34

41 Floyd-Hoare Logica Afledingsregel ( Als-dan-anders regel): {ϕ σ} π 1 {ψ} {ϕ σ} π 2 {ψ} {ϕ} als σ dan π 1 anders π 2 {ψ} Voorbeeld: 1. {0 x 5 (x < 5)} x := x + 1 {0 x 5} 2. {0 x 5 (x 5) } x := 0 { 0 x 5 } 3. {0 x 5} als x < 5 dan x := x + 1 anders x := 0 { 0 x 5 } als-dan-anders 1&2 35

42 Floyd-Hoare Logica Afledingsregel ( zolang-doe regel): {ϕ σ} π {ϕ} {ϕ} zolang σ doe π {ϕ σ} Voorbeeld: 1. {x > 5} x := x 1 {x 5} toek. Ax. 2. (x > 5 x 5) x > 5 logic 3. {x > 5 x 5} x := x 1 {x 5} vers. pre. 1&2 4. {x 5} zolang x > 5 doe x := x 1 {x 5 x 5} zolang 3 36

43 Wat ontbreekt? De Impertaal is lang geen C# of Java methodes; recursie; effecten zoals printen, exceptions, concurrency, random numbers, enz. objecten; pointers, null-pointers, en geheugenmodel; over-erving (inheritance); lambdas en hogere orde functies; Maar het idee staat als een huis er zijn geschikte regels voor al zulke taalconstructies. 37

44 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? 38

45 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? Daarvoor hebben we eerst een semantiek nodig voor Impertaal 38

46 Gezondheid en volledigheid Kunnen we ook op één of andere manier laten zien dat deze regels weer gezond en volledig zijn? Daarvoor hebben we eerst een semantiek nodig voor Impertaal Die kun je, bij voorbeeld, geven door een relatie: S, π S, π te definieren die zegt dat het programma π in toestand S één statement kan uitvoeren om naar een nieuwe toestand S te gaan, met als overgebleven programma π. Zo n relatie heet ook wel een small step operational semantics. 38

47 Gezondheid en volledigheid Met behulp van deze semantiek herhaaldelijk stappen blijven uitvoeren tot je programma termineert. We schrijven dan S, π S als na het uitvoer van het programma π in begintoestand S het eindtoestand S heeft. Gezondheid zegt dat als { ϕ }π{ ψ } dan S S zodanig dat S, π S geldt ϕ(s) ψ(s ) Volledigheid zegt dat als S S zodanig dat S, π S, waar we voor willekeurig ϕ en ψ kunnen laten zien dat ϕ(s) ψ(s ) dan bestaat er een afleiding { ϕ }π{ ψ } 39

48 Dynamische Logica De taal van de dynamische logica bestaat uit: [π]ϕ : na de executie van programma π geldt π ϕ : noodzakkelijkerwijs ϕ na de executie van programma π geldt mogelijkerwijs ϕ Programma π kan een Impertaal programma zijn. Eigenschap ϕ kan een uitdrukking zijn van predikaten- of propositielogica. Correctheidsbewering {ϕ} π {ψ} in dynamische logica: ϕ [π]ψ Terminatie kan uitgedrukt worden: π 40

49 Dynamische Logica Programma π { } begin x:=3; p := 0; i := 1; zolang i <= x doe begin p := p + i i := i+1; end end State = (x,p,i) (*,*,*)->(5,*,*)->(5,0,*)-> (5,0,1)->(5,1,1)->(5,1,2)-> (5,3,2)->(5,3,3)->(5,6,3)-> (5,6,4)->(5,10,4)->(5,10,5)-> (5,15,5)->(5,15,6). [π](p = 15) {p = 15} 41

50 Overzicht en afronding 42

51 Logica overzicht Propositielogica en predikatenlogica syntax; semantiek, modellen, normaalvormen en tableaux; bewijssystemen: Hilbert en natuurlijke deductie; Verzamelingenleer, oneindigheid, relaties en functies Toepassingen van de logica Prolog Programma verificatie 43

52 Slide Wat nu? Vrijdag laatste werkcollege en minitoets; Ik heb de oefentoets van vorig jaar online gezet (met en zonder antwoorden); Vrijdag geef ik geen college ik wil geen nieuwe stof behandelen en jullie de gelegenheid geven te richten op het leren van de nieuwste stof. Dan rest nog alleen de eindtoets 44

53 Eindtoets De eindtoets zal over alle stof gaan die in het vak is behandeld. De nadruk zal liggen op de stof van de afgelopen weken (wat nog niet getoetst is op de tussentoets), maar ga er niet vanuit dat er geen enkele vraag over de eerste hoofdstukken zal zijn. De toets wordt weer digitaal afgenomen. 45

54 Caracal evaluaties Na afloop van het vak krijgen jullie altijd een evaluatieformulier toestuurd. Vul deze ajb in! Wat ging er goed? Wat moet er beter? Hoe kunnen we zorgen dat het vak volgend jaar nog beter verloopt? Om dit soort vragen te beantwoorden is jullie feedback onmisbaar. 46

55 Verdere afronding Na afloop van de toets krijgen jullie een van mij met je volledige cijferoverzicht. Mocht er iets niet kloppen, laat het mij dan gerust weten. Mocht je lager dan een 5.5 staan, heb je het vak niet gehaald. 47

56 Verdere afronding Na afloop van de toets krijgen jullie een van mij met je volledige cijferoverzicht. Mocht er iets niet kloppen, laat het mij dan gerust weten. Mocht je lager dan een 5.5 staan, heb je het vak niet gehaald. Maar met een 4.0 of hoger, kun je in april de herkansing maken. Deze zal weer gaan over alle stof. Het cijfer van de herkansing bepaalt, samen met de cijfers voor de minitoetsen, je eindcijfer. 47

57 Vragen? 48

58 Tot slot Bedankt en veel succes op het tentamen! 49

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 10 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vorige keer Syntax van predikatenlogica Alfabet Termen Welgevormde formulas (wff) 2 Alfabet van de predikatenlogica

Nadere informatie

Logic for Computer Science

Logic for Computer Science Logic for Computer Science 07 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vrijdag Aanstaande vrijdag is geen hoorcollege of werkcollege. De tussentoets is uitgesteld tot volgende week dinsdag.

Nadere informatie

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

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Logic for Computer Science

Logic for Computer Science Logic for Computer Science 06 Normaalvormen en semantische tableaux Wouter Swierstra University of Utrecht 1 Vorige keer Oneindige verzamelingen 2 Vandaag Wanneer zijn twee formules hetzelfde? Zijn er

Nadere informatie

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 12 Normaalvormen Wouter Swierstra University of Utrecht 1 Vandaag We hebben gezien dat er verschillende normaalvormen zijn voor de propositionele logica. Maar hoe zit dat met de

Nadere informatie

Logica voor Informatica. Propositielogica. Bewijssystemen voor propositielogica. Mehdi Dastani

Logica voor Informatica. Propositielogica. Bewijssystemen voor propositielogica. Mehdi Dastani Logica voor Informatica Propositielogica Bewijssystemen voor propositielogica Mehdi Dastani mmdastani@uunl Intelligent Systems Utrecht University Deductie Tot nu toe voornamelijk semantisch naar logica

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Logica 1. Joost J. Joosten

Logica 1. Joost J. Joosten Logica 1 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 158, 030-2535579 [email protected] www.phil.uu.nl/ jjoosten (hier moet een tilde

Nadere informatie

Honours projecten BSc Informatica: twee voorstellen

Honours projecten BSc Informatica: twee voorstellen Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam

Nadere informatie

Semantiek (2IT40) Bas Luttik. HG 7.14 tel.: Hoorcollege 8 (7 juni 2007)

Semantiek (2IT40) Bas Luttik.  HG 7.14 tel.: Hoorcollege 8 (7 juni 2007) Bas Luttik [email protected] http://www.win.tue.nl/~luttik HG 7.14 tel.: 040 247 5152 Hoorcollege 8 (7 juni 2007) Functionele talen Idee: een programma definieert reeks (wiskundige) functies. Programma

Nadere informatie

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2 Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 2 2.1 Geef de volgende zinnen weer in propositionele notatie: i Als de bus niet komt, komen de tram en de trein We voeren de volgende

Nadere informatie

Programmeermethoden NA. Week 3: Controlestructuren

Programmeermethoden NA. Week 3: Controlestructuren Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

Nadere informatie

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3

Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3 Logica voor Informatici najaar 2000 Opgaven en Oplossingen Hoofdstuk 3 3.1 Stel ϕ, ψ α, β γ, en ψ, α, γ χ. Indien nu bovendien bekend wordt dat χ onwaar is, maar ψ en β waar, wat weet u dan over ϕ? oplossing:

Nadere informatie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Module 3: Scratch programmeren: is het logisch of is het niet logisch? Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Abstraheren van modellen

Abstraheren van modellen Abstraheren van modellen Geert Delanote 7 maart 2005 [email protected] Software Development Methodology 1 Inhoudstafel Motivatie Denkpistes Software Development Methodology 2 Motivatie Verslag

Nadere informatie

Logica voor Informatica. Logica Toepassingen. PROLOG: Logische Programmeertaal. Mehdi Dastani

Logica voor Informatica. Logica Toepassingen. PROLOG: Logische Programmeertaal. Mehdi Dastani Logica voor Informatica Logica Toepassingen PROLOG: Logische Programmeertaal Mehdi Dastani [email protected] Intelligent Systems Utrecht University Programmeren met Logica Propositielogica is niet geschikt

Nadere informatie

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Herman Geuvers Radboud Universiteit Nijmegen Technische Universiteit Eindhoven 1 Helden van de wiskunde:

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software

Nadere informatie

Voortgezette Logica, Week 2

Voortgezette Logica, Week 2 Voortgezette Logica, Week 2 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 164, 030-2535575 [email protected] www.phil.uu.nl/ jjoosten (hier

Nadere informatie

Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie

Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie Theorie Beantwoord onderstaande vragen (elke vraag staat op 3 punten) door de antwoordzinnen KORT aan te vullen. 1. Wat doe je wanneer je de risico's projecteert (afschat)? Welke categorieën van risico's

Nadere informatie

Automaten & Complexiteit (X )

Automaten & Complexiteit (X ) Automaten & Complexiteit (X 401049) Beschrijven van reguliere talen Jeroen Keiren [email protected] VU University Amsterdam 5 Februari 2015 Talen Vorig college: Talen als verzamelingen Eindige automaten:

Nadere informatie

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen.  wstomv/edu/2ip05/ Per ronde werpt elke speler 1 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ College 1 5 spelers,2 dobbelstenen Probleem met dobbelspel Per ronde werpt elke speler 1 Tom Verhoeff Technische Universiteit Eindhoven

Nadere informatie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

Logica voor AI. Inleiding modale logica en Kripke semantiek. Antje Rumberg. 14 november 2012

Logica voor AI. Inleiding modale logica en Kripke semantiek. Antje Rumberg. 14 november 2012 Logica voor AI Inleiding modale logica en Kripke semantiek Antje Rumberg [email protected] 14 november 2012 1 Logica voor AI Deel 1: Modale logica semantiek en syntax van verschillende modale logica

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW: OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]

Nadere informatie

{ auteur, toelichting }

{ auteur, toelichting } Programmeren Blok A Trilogie van (programmeer)talen http://www.win.tue.nl/ wstomv/edu/ip0/ College Syntaxis (vormleer): Hoe ziet t eruit, hoe schrijf je t? Tom Verhoeff Technische Universiteit Eindhoven

Nadere informatie

Predikatenlogica in Vogelvlucht

Predikatenlogica in Vogelvlucht in Vogelvlucht Albert Visser Filosofie, Faculteit Geesteswetenschappen, Universiteit Utrecht 10 oktober, 2013 1 Overview 2 Overview 2 Overview 2 Overview 3 In de propositielogica behandelen we de interne

Nadere informatie

Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica :

Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica : HOOFDSTUK 4. LOGICA Opgaven Propositionele logica en predikatenlogica 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica : a) Als de maan ichtbaar is en het niet sneeuwt, al

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Knowledge, chance, and change Kooi, Barteld

Knowledge, chance, and change Kooi, Barteld Knowledge, chance, and change Kooi, Barteld IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite from it. Please check the document version below. Document

Nadere informatie

Inleiding Wiskundige Logica

Inleiding Wiskundige Logica Inleiding Wiskundige Logica Yde Venema 2017/2018 c YV 2018 Institute for Logic, Language and Computation, University of Amsterdam, Science Park 904, NL 1098XH Amsterdam E-mail: yvenema@uvanl Voorwoord

Nadere informatie

Modulewijzer Tirdat01

Modulewijzer Tirdat01 Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4

Nadere informatie

Algoritmen en programmeren: deel 1 - overzicht

Algoritmen en programmeren: deel 1 - overzicht Algoritmen en programmeren: deel 1 - overzicht Ruud van Damme Creation date: 15 maart 2005 Update: 3: september 2006, 5 november 2006, 7 augustus 2007 Overzicht 1 Inleiding 2 Algoritmen 3 Programmeertalen

Nadere informatie

Ontwerp van Algoritmen: opgaven weken 3 en 4

Ontwerp van Algoritmen: opgaven weken 3 en 4 0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima

Nadere informatie

Automaten & Complexiteit (X )

Automaten & Complexiteit (X ) Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren [email protected] VU University Amsterdam Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting? Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.

Nadere informatie

Logisch en Functioneel Programmeren voor Wiskunde D

Logisch en Functioneel Programmeren voor Wiskunde D Logisch en Functioneel Programmeren voor Wiskunde D Wouter Swierstra Doaitse Swierstra Jurriën Stutterheim Technical Report UU-CS-2011-033 Sept 2011 Department of Information and Computing Sciences Utrecht

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University Logica voor Informatica Propositielogica Syntax & Semantiek Mehdi Dastani [email protected] Intelligent Systems Utrecht University Wat is Logica? Afleiden van conclusies uit aannames Jan Sara Petra Schuldig

Nadere informatie

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani Logica voor Informatica Propositielogica Normaalvormen en Semantische tableaux Mehdi Dastani [email protected] Intelligent Systems Utrecht University Literals Een literal is een propositieletter, of de

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

Handout Natuurlijke Deductie

Handout Natuurlijke Deductie Handout Natuurlijke Deductie Peter van Ormondt 4 februari 2017 1 Inleiding In Van Benthem et al (2016, Hoofdstuk 2), hebben we redeneringen bestudeerd door te kijken naar de semantiek of betekenis van

Nadere informatie

Logica in het (V)WO. Barteld Kooi

Logica in het (V)WO. Barteld Kooi Logica in het (V)WO Barteld Kooi Wie ben ik? Bijzonder hoogleraar logica en argumentatietheorie Ik geef al meer dan tien jaar colleges logica aan de RuG voor de opleidingen wijsbegeerte, wiskunde, (alfa-)informatica,

Nadere informatie

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie

Nadere informatie

Logica als een oefening in Formeel Denken

Logica als een oefening in Formeel Denken Logica als een oefening in Formeel Denken Herman Geuvers Institute for Computing and Information Science Radboud Universiteit Nijmegen Wiskunde Dialoog 10 juni, 2015 Inhoud Geschiedenis van de logica Propositielogica

Nadere informatie

Modelleren en Programmeren: Prolog

Modelleren en Programmeren: Prolog Modelleren en Programmeren: Prolog Marijn Schraagen 8 januari 2016 Introductie Basiselementen Rekenen Recursie Introductie Prolog vs. Java Java is procedureel en imperatief Code beschrijft stap voor stap

Nadere informatie

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp

Nadere informatie

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan. Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. De puntenverdeling is 2 punten per theorie-vraag en 8 punten per oefening. Het totaal is 40. Vraag 1. Er bestaan verschillende

Nadere informatie

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785) Tegenvoorbeeld TI1300: Redeneren en Logica College 3: Bewijstechnieken & Propositielogica Tomas Klos Definitie (Tegenvoorbeeld) Een situatie waarin alle premissen waar zijn, maar de conclusie niet Algoritmiek

Nadere informatie

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

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

Nadere informatie

BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2

BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2 Studiewijzer BACHELOR KUNSTMATIGE INTELLIGENTIE Vak : Opleiding : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : 2015-2016 semester 1, periode 2 Coördinator(en) : dr. Maarten van Someren

Nadere informatie

Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen

Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen Eerste programmeertaal Leren programmeren vs. een programmeertaal leren In Nijmegen: Algol68 als basis voor o.a. Modula-2 en C Voor Codi/Boxmeer: Pascal, Java, HTML/PHP Niet helemaal tevreden over Java

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Automaten. Informatica, UvA. Yde Venema

Automaten. Informatica, UvA. Yde Venema Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie Kennisrepresentatie & Redeneren Piter Dykstra Instituut voor Informatica en Cognitie www.math.rug.nl/~piter [email protected] 30 april 2007 INLEIDING Kennisrepresentatie & Redeneren Week1: Introductie

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

10. Controleopdrachten

10. Controleopdrachten Computeralgebra met Maxima 10. Controleopdrachten 10.1. Functies en operatoren voor lijsten/vectoren/arrays Een van de eenvoudigste maar belangrijkste lusachtige functies is de makelist opdracht. Voor

Nadere informatie

Inleiding programmeren

Inleiding programmeren Inleiding programmeren Docent: José Lagerberg Assistenten: Robin de Vries, Jordy Perlee, Dimitri Belfor, Stephen Swatman, Erik Kooistra, Daan Kruis, Daniel Louwrink Cursusinformatie: https://staff.fnwi.uva.nl/j.m.lagerberg

Nadere informatie

Digitale Systemen (ET1 410)

Digitale Systemen (ET1 410) Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel

Nadere informatie

Logica 1. Joost J. Joosten

Logica 1. Joost J. Joosten Logica 1 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 158, 030-2535579 [email protected] www.phil.uu.nl/ jjoosten (hier moet een tilde

Nadere informatie

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen? 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ 5 spelers, 2 dobbelstenen Probleem met dobbelspel College 1 Per ronde werpt elke speler 1 Kees Hemerik Tom Verhoeff Technische Universiteit

Nadere informatie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................

Nadere informatie

In deze les. Eerste orde logica. Elementen van EOL. Waarom eerste orde logica? Combinatie met logica. Variabelen en Kwantoren

In deze les. Eerste orde logica. Elementen van EOL. Waarom eerste orde logica? Combinatie met logica. Variabelen en Kwantoren In deze les Eerste orde logica Bart de Boer Waarom EOL? Syntax en semantiek van EOL Opfrisser Gebruik van EOL EOL in de Wumpus-wereld Waarom eerste orde logica? Eerste orde logica kan alles uitdrukken

Nadere informatie

Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie

Logica voor AI. Responsiecollege. Antje Rumberg. 12 december Kripke Semantiek. Geldigheid. De bereikbaarheidsrelatie Logica voor AI Responsiecollege Antje Rumberg [email protected] 12 december 2012 1 De taal L m van de modale propositielogica ϕ ::= p ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ ϕ Blokje en ruitje ϕ: het is noodzakelijk

Nadere informatie

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

De klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming

De klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming Recursieve talen De klasse van recursief opsombare talen is gesloten onder en. Echter, het is niet zo dat L recursief opsombaar is voor alle recursief opsombare talen L. Dit bewijzen we met behulp van

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D. Datum: Donderdag 8 juli 4. Tijd: 14. 17. uur. Plaats: MA 1.44/1.46 Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je

Nadere informatie