Maak automatisch een geschikte configuratie van een softwaresysteem;

Maat: px
Weergave met pagina beginnen:

Download "Maak automatisch een geschikte configuratie van een softwaresysteem;"

Transcriptie

1 Joost Vennekens Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal voorwaarden voldoet; Stel een productieplanning op waarmee een aantal artikelen tijdig geproduceerd kunnen worden; Maak automatisch een geschikte configuratie van een softwaresysteem; Al deze problemen hebben een gelijkaardige vorm: het is de bedoeling om een (= lessenrooster, productieplanning, configuratie, ) te berekenen die voldoet aan een aantal. Er bestaan verschillende algoritmes waarmee dergelijke problemen kunnen worden opgelost. Een nadeel van deze algoritmes is dat ze in elke specifieke context (deels) opnieuw geïmplementeerd moeten worden: je hebt een ander programma nodig om lessenroosters te berekenen dan om software te configureren. De bedoeling van het IDP systeem om een generieke oplossingsmethode voor dergelijke problemen aan te bieden. Je geeft het IDP systeem als invoer een beschrijving van welke toestanden berekend moeten worden en aan welke voorwaarden deze toestanden moeten voldoen, en het systeem berekent dan zelf de oplossing. We gebruiken het oplossen van Sudoku puzzels als een eenvoudig voorbeeld. De toestanden die hier berekend moeten worden zijn 9x9 roosters van cijfers tussen 1 en 9. Vooraleer we in de volgende sectie bekijken hoe we de van Sudoku (= de voorwaarden waaraan deze roosters moeten voldoen) kunnen voorstellen, bekijken we in deze sectie hoe we de structuur van deze roosters zélf aan IDP kunnen duidelijk maken. Hierbij moeten we een onderscheid maken tussen twee verschillende stukken informatie: We moeten IDP vertellen hoe we Sudoku puzzels in het algemeen kunnen voorstellen; Daarna moeten we IDP ook één specifieke opgave kunnen geven, als concrete van het algemene probleem. Om het eerste klaar te spelen, moeten we een declareren. Het tweede zullen we dan kunnen doen door een specifieke voor dit vocabularium op te stellen. 1

2 Een vocabularium bepaalt welke symbolen we gaan gebruiken om het probleem te beschrijven. We onderscheiden drie soorten symbolen: bepalen over welke soorten van objecten we zullen spreken; leggen verbanden tussen een aantal van deze objecten; beelden tuples van deze objecten af op een ander object. In de voorstelling van Sudoku die wij zullen gebruiken, hebben we twee types nodig: een type waarmee we de kolom en rij indices van het rooster zullen voorstellen en een type waarmee we de cijfers zullen voorstellen die kunnen worden ingevuld. We noteren dit in IDP syntax heel eenvoudig als: type Index isa int type Waarde isa int De isa int uitdrukkingen geven aan dat deze twee types allebei overerven van het ingebouwde type int. Het netto effect hiervan is dat het mogelijk zal zijn om rekenkundige operaties (+,, /, ) te gebruiken op de elementen van deze types. Aangezien we een vakje van het rooster dus zullen voorstellen door een paar (i, j) waarbij i, j Index, zal het eenvoudig zijn om te zien wanneer twee zo n vakjes in dezelfde rij of kolom liggen. Daarnaast zullen we ook nog moeten weten wanneer ze in hetzelfde kleine 3x3 vierkant liggen. Hiervoor introduceren we de relatie InZelf degroep, die dus een verband zal leggen tussen bepaalde vakjes (i, j) en (i, j ), waarbij i, j, i, j Index. Deze relatie legt dus eigenlijk een verband tussen vier indices. We zeggen dat de relatie vier argumenten heeft, en dat elk van deze argumenten van het type Index is. In IDP syntax schrijven we dit zo: InZelfdeGroep(Index,Index,Index,Index) Tot slot moeten we ook nog weten welke cijfers in welke vakjes staan ingevuld. Dit doen we door middel van een functie die een cel (dwz. een paar van indices) afbeeldt op een waarde. We noteren dit zo: Inhoud(Index,Index) : Waarde Ons vocabularium is nu volledig. We kunnen dit als volgt aan IDP geven: vocabulary SudokuVoc { type Index isa int type Waarde isa int InZelfdeGroep(Index,Index,Index,Index) Inhoud(Index,Index) : Waarde Hierbij we hebben we ons vocabularium ook een naam moeten geven in dit geval: SudokuV oc. 2

3 Het vocabularium dat we net hebben opgesteld, laat ons toe om eender welke Sudoku voor te stellen. Om nu één concrete Sudoku aan IDP te geven, moeten we een zogenaamde maken voor dit vocabularium. We gaan om te beginnen nog geen Sudoku s oplossen, maar we beperken ons tot het eenvoudigere probleem van controleren of een gegeven oplossing wel degelijk correct is. De structuur die we gaan maken zal dus geen opgave beschrijven, maar wel een oplossing. Een structuur voor een vocabularium maak je door aan elk symbool uit dit vocabularium een te geven. Wat deze interpretatie juist is, hangt ervan af over welk soort symbool het gaat: Voor elk geef je een opsomming van alle waarden die tot dit type behoren; Voor elke geef je een opsomming van alle tupels waarvoor deze relatie geldt; Voor elke geef je voor elke mogelijke combinatie van argumenten de functiewaarde. Aan de twee types geven we de volgende invulling: Index = { 0..8 Waarde = { De notatie { is hierbij gewoon een afkorting voor de verzameling { 0,1,2,3,4,5,6,7,8. Voor de relatie InZelfdeGroup moeten we alle 4-tupels (i, j, i, j ) opsommen, waarvoor geldt dat cel (i, j) in hetzelfde 3x3 rooster ligt als cel (i, j ). Dit resulteert natuurlijk in een nogal lange opsomming. (Later in deze tekst gaan we zien dat dit ook op een kortere manier kan.) De verschillende tupels van de opsomming worden van elkaar gescheiden door puntkomma s, terwijl verschillende elementen van één tupel van elkaar gescheiden worden door komma s. InZelfdeGroup = { 0,0,0,0; 0,0,0,1; 0,0,0,2; 0,1,0,0; 0,1,0,1; 0,1,0,2;... Tot slot moeten we ook de functie Inhoud opsommen: Inhoud = { 0,0 -> 6; 0,1 -> 4; 0,2 -> 3;... Al deze informatie samen komt nu terecht in een structuur, die we een naam geven (Sudoku1) en waarbij we moeten verwijzen naar het vocabularium dat we eerder gedeclareerd hebben. structure Sudoku1 : SudokuVoc { Index = {

4 Waarde = { InZelfdeGroep = { 0,0,0,0; 0,0,0,1; 0,0,0,2; 0,1,0,0; 0,1,0,1; 0,1,0,2;... Inhoud = { 0,0 -> 6; 0,1 -> 4; 0,2 -> 3;... Nu we een ingevuld Sudokurooster kunnen voorstellen in IDP, kunnen we gaan controleren of dit rooster aan de vereiste voorwaarden voldoet. Deze voorwaarden worden in IDP voorgesteld door. Een verzameling van dergelijke formules wordt een genoemd. Vooraleer we de echte Sudoku voorwaarden beschouwen, beginnen we met enkele eenvoudigere voorbeeldjes. De eenvoudigste soort formules die we kunnen schrijven, zijn atomaire formules. Hiermee kunnen we bijvoorbeeld uitdrukken dat een bepaald tupel tot een relatie moet behoren, of dat een functie voor een bepaald tupel een bepaalde waarde moet hebben. Een is bijvoorbeeld InZelfdeGroep(0, 0, 0, 1). Deze atomaire formule drukt uit dat het tupel (0, 0, 0, 1) tot de relatie InZelfdeGroep behoort (maw. de cel (0, 0) en de cel (0, 1) zitten in hetzelfde 3x3 vierkant). Een is bijvoorbeeld Inhoud(0, 0) = 1. Deze atomaire formule drukt uit dat de functiewaarde van de functie Inhoud op het tupel (0, 0) gelijk is 1 (maw. de cel (0, 0) bevatde waarde 1). Aan een atomaire formule kunnen we een waarheidswaarde (waar/onwaar) toekennen in elke structuur voor een vocabularium dat de symbolen uit de atomaire formule bevat. Voor een atomaire relatie-formule is dat gewoon een kwestie van op te zoeken of het tupel in kwestie voorkomt in de interpretatie van de relatie. Voor een atomaire functie-formule moeten we nakijken of de functiewaarde van het tupel in de interpretatie van de functie dezelfde is als de opgegeven waarde. Om aan te geven dat een formule F de waarheidswaarde waar heeft in een structuur S, gebruiken we ook wel de notatie S = F. Als dit niet zo is (en F dus onwaar is in S), schrijven we S = F. 4

5 Met onze voorbeeldstructuur Sudoku1 uit de vorige sectie, is het dan bijvoorbeeld zo dat: Sudoku1 = InZelf degroep(0, 0, 0, 1) Sudoku1 = Inhoud(0, 0) = 6 We kunnen ingewikkeldere formules construeren door atomaire formules te combineren door middel van de gekende booleaanse operatoren en, of en niet. Onderstaande tabel toont voor deze operatoren de notatie die in IDP gebruikt wordt, samen met hun wiskundige notatie: Operator IDP Wiskunde niet en & of Een voorbeeld is de formule: InZelfdeGroep(0,0,0,1) & ~Inhoud(0,0) = 6 InZelfdeGroep(0,0,8,8) De verschillende operatoren staan in bovenstaande tabel gerangschikt van hoge prioriteit naar lage, wat betekent dat bovenstaande formule dezelfde is als: (InZelfdeGroep(0,0,0,1) & (~Inhoud(0,0) = 6)) InZelfdeGroep(0,0,8,8) Aangezien we voor elk van de atomaire formules een waarheidswaarde kunnen bepalen in een gegeven structuur, kunnen we ook voor deze hele formule eenvoudig een waarheidswaarde bepalen. Dit gebeurt aan de hand van de gekende waarheidstabellen voor de booleaanse operatoren: F G F & G waar waar waar waar onwaar onwaar onwaar waar onwaar onwaar onwaar onwaar Voor bovenstaande formule zien we dus dat: F G F G waar waar waar waar onwaar waar onwaar waar waar onwaar onwaar onwaar F waar onwaar F onwaar waar Sudoku1 = InZelfdeGroep(0, 0, 0, 1) & Inhoud(0, 0) = 6 InZelfdeGroep(0, 0, 8, 8). aangezien: waar & ~onwaar onwaar reduceert tot waar. In deze formule komt de negatie van een gelijkheid voor. In plaats hiervan kunnen we ook de ongelijkheidsoperator ~= gebruiken: ~Inhoud(0,0) = 6 is hetzelfde als Inhoud(0,0) ~= 6. Uit deze drie booleaanse operatoren worden ook nog volgende operatoren afgeleid: Operator Notatie Betekenis als, dan F => G ~F G als en slechts als F <=> G F & G ~F & ~G 5

6 Ook hier staan deze operatoren in volgorde van dalende prioriteit en hun prioriteit is beide lager dan die van de of. De als, dan operator drukt uit dat als F waar is, ook G waar is. De enige manier waarop een formule F => G ooit onwaar kan zijn, is als F waar is, maar G niet. (Merk op dat als F niet waar is, de waarheidswaarde van G dus irrelevant is: F => G is dan sowieso waar.) De als en slechts als operator drukt uit dat F waar is als en slechts als G waar is. Een formule F <=> G is dus waar als en slechts als F en G dezelfde waarheidswaarde hebben. Om interessantere formules te kunnen uitdrukken, moeten we in staat zijn om niet enkel dingen te zeggen over bv. één specifieke cel, maar zouden we iets moeten kunnen zeggen over alle cellen. Hiervoor dienen de : Operator IDP Wiskunde Voor alle! Er bestaat? We illustreren het gebruik van de voor alle kwantor door volgende eigenschap uit te drukken: Voor elk viertal (i, j, i, j ) zodat cellen (i, j) en (i, j ) tot dezelfde groep behoren, geldt dat de inhoud van cel (i, j) verschillend moet zijn van de inhoud van cel (i, j ). IDP kent een aantal verschillende varianten van de voor alle kwantor. We kunnen elk van deze varianten gebruiken om bovenstaande eigenschap uit te drukken.! x[type]: Voor alle objecten van een bepaald type!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2).! (x,y) in Relatie: Voor alle (tuples van) objecten uit een bepaalde relatie! (i,j,i2,j2) in InZelfdeGroep: Inhoud(i,j) ~= Inhoud(i2,j2).! (x,y) sat Relatie(x,y): Voor alle (tuples van) objecten die voldoen aan een bepaalde voorwaarde! (i,j,i2,j2) sat InZelfdeGroep(i,j,i2,j2): Inhoud(i,j) ~= Inhoud(i2,j2). Merk op dat we in het eerste item gebruik maken van de als, dan operator om ervoor te zorgen dat de voorwaarde Inhoud(i,j) ~= Inhoud(i2,j2) enkel maar wordt toegepast op die tupels (i,j,i2,j2) waarvoor InZelfdeGroep(i,j,i2,j2) voldaan is. Voor de andere tuples is de als, dan -uitdrukking immers sowieso voldaan, onafhankelijk van de waarheidswaarde van de ongelijkheid Inhoud(i,j) ~= Inhoud(i2,j2). Dit is een vaak voorkomend patroon. De er bestaat kwantor kent dezelfde varianten. We illustreren dit, gebruikmakend van volgende eigenschap: Er bestaat een viertal (i, j, i, j ) zodat cellen (i, j) en (i, j ) tot dezelfde groep behoren de inhoud van cel (i, j) gelijk is aan de inhoud van cel (i, j ). 6

7 ? x[type]: Er bestaan objecten van een bepaald type?i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2).? (x,y) in Relatie: Er bestaat een (tuple van) object(en) uit een bepaalde relatie? (i,j,i2,j2) in InZelfdeGroep: Inhoud(i,j) = Inhoud(i2,j2).? (x,y) sat Relatie(x,y): Er bestaat een (tuple van) object(en) dat voldoet aan een bepaalde voorwaarde? (i,j,i2,j2) sat InZelfdeGroep(i,j,i2,j2): Inhoud(i,j) = Inhoud(i2,j2). Nu maken we in het eerste item niet langer gebruik van de als, dan, maar wel van de en. Dit is logisch, aangezien de Nederlandse zin die we proberen voor te stellen op die plaats ook het woord en gebruikt. De combinatie van een er bestaat met een en is eveneens een veel voorkomend patroon. De aandachtige lezer heeft misschien al opgemerkt dat het voorbeeld dat we gebruikt hebben voor de er bestaat eigenlijk precies het omgekeerde zegt van het voorbeeld dat we bij de voor alle gebruikt hebben. Een andere manier om het tweede voorbeeld uit te drukken is dus door gewoon de negatie van het eerste voorbeeld te nemen (of andersom):!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2). = ~(?i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2)). Deze eigenschap lijkt heel erg op één van de spelregels van Sudoku, maar is er toch geen goede voorstelling van. We kunnen door IDP laten berekenen of deze formule bv. voldaan is in de structuur Sudoko1. Om dit te doen, moeten we eerst de formule in een theorie omvatten, waarbij we ook moeten aangeven in welk vocabularium deze theorie geschreven is (zodat IDP kan nagaan dat dit wel degelijk hetzelfde is als het vocabularium van onze structuur). theory SudRegel: SudokuVoc {!i[index] j[index] i2[index] j2[index]: InZelfdeGroep(i,j,i2,j2) => Inhoud(i,j) ~= Inhoud(i2,j2). Merk op dat formules in IDP altijd beëindigd worden door een punt. Het IDP-systeem kan theorieën en structuren gebruiken om verschillende dingen mee te doen. Wat we juist willen dat IDP doet, moeten we programmeren in een procedure met de naam main. Om IDP te laten controleren of een bepaalde formule voldaan is in een bepaalde structuur gebruiken we volgende main procedure: 7

8 procedure main() { print(sat(sudregel,sudoku1)); De functie sat berekent hier of de gegeven theorie (dwz. voldaan) is in de gegeven structuur. Je kan het resultaat van deze berekening zelf eens bekijken door op Run te klikken in de online IDP IDE: http: //dtai.cs.kuleuven.be/krr/idp-ide/?src=67562f95dd9170d5665d269b87d7a7b9 Is het resultaat hier wat je verwacht? Om het resultaat te begrijpen, kan je IDP ook eens laten berekenen voor welke viertallen (i, j, i2, j2) de regel in kwestie niet voldaan is. Dit doe je door hiervoor een te definiëren: query Q: SudokuVoc { { i j i2 j2 : InZelfdeGroep(i,j,i2,j2) & Inhoud(i,j) = Inhoud(i2,j2) Een query beschrijft dus een verzameling van tuples in dit geval de verzameling van alle tuples (i, j, i2, j2) waarvoor geldt dat (i, j) en (i2, j2) in dezelfde groep zitten en de inhoud van (i, j) gelijk is aan dit van (i2, j2). Het is duidelijk dat als er zo n tuples bestaan, onze theorie SudRegel niet voldaan kan zijn. Om IDP deze verzameling van tuples te laten berekenen in de context van een gegeven structuur, gebruiken we volgende main procedure: procedure main() { print(query(q,sudoku1)); Probeer dit eens uit in de online IDP IDE en bekijk of je nu beter begrijpt waarom de theorie SudRegel niet voldaan was. Kan je de formule in deze theorie aanpassen, zodat dit probleem opgelost wordt? We hebben tot dusver enkel nog maar gekeken naar de Sudoku spelregel aangaande de 3x3 vierkanten. Er zijn natuurlijk ook nog beperkingen die gaan over de rijen en de kolommen. De beperking ivm. de rijen ziet er zo uit:! x[index] y[index] z[index]: z ~= y => Inhoud(x,y) ~= Inhoud(x,z). Hoe ziet de gelijkaardige beperking ivm. de kolommen er juist uit? Tot dusver hebben we enkel gekeken hoe we een gegeven Sudoku oplossing kunnen controleren op correctheid. Het is natuurlijk interessanter om ook Sudoku s te kunnen oplossen. Om dit te kunnen doen, moeten we ons vocabularium aanpassen: tot dusver spraken we enkel maar over 8

9 de Inhoud van de cellen, maar nu zullen we zowel over de inhoud als over de inhoud moeten spreken. We passen ons vocabularium als volgt aan: vocabulary SudokuVoc { type Index isa int type Waarde isa int InZelfdeGroep(Index,Index,Index,Index) Opgave(Index,Index) : Waarde Oplossing(Index,Index): Waarde Net zoals wiskundige functies, zijn functies in IDP normaalgezien, dwz. dat ze een functiewaarde produceren voor elk element in hun domein. Voor de functie Opgave geeft dit een probleem: deze functie heeft voor sommige paren (i, j) natuurlijk geen waarde. We kunnen dit probleem op verschillende manieren oplossen. Een eenvoudige oplossing is om het type W aarde een extra element te geven (bv. het cijfer 0, zodat Waarde = {0..9) en dit te gebruiken als inhoud van de lege vakjes. Hieronder zie je een opgave met de bijhorende interpretatie voor de functie Opgave Opgave = { 0,0->0; 0,1->0; 0,2->0; 0,3->0; 0,4->7; 0,5->0; 0,6->0; 0,7->2; 0,8->0; 1,0->8; 1,1->0; 1,2->0; 1,3->0; 1,4->0; 1,5->0; 1,6->0; 1,7->0; 1,8->6; 2,0->0; 2,1->1; 2,2->0; 2,3->2; 2,4->0; 2,5->5; 2,6->0; 2,7->0; 2,8->0; 3,0->9; 3,1->0; 3,2->5; 3,3->4; 3,4->0; 3,5->0; 3,6->0; 3,7->0; 3,8->8; 4,0->0; 4,1->0; 4,2->0; 4,3->0; 4,4->0; 4,5->0; 4,6->0; 4,7->0; 4,8->0; 5,0->3; 5,1->0; 5,2->0; 5,3->0; 5,4->0; 5,5->8; 5,6->5; 5,7->0; 5,8->1; 6,0->0; 6,1->0; 6,2->0; 6,3->3; 6,4->0; 6,5->2; 6,6->0; 6,7->8; 6,8->0; 7,0->4; 7,1->0; 7,2->0; 7,3->0; 7,4->0; 7,5->0; 7,6->0; 7,7->0; 7,8->9; 8,0->0; 8,1->7; 8,2->0; 8,3->0; 8,4->6; 8,5->0; 8,6->0; 8,7->0; 8,8->0 De oplossing van deze Sudoku ziet er als volgt uit:

10 Dit komt overeen met de volgende interpretatie voor de functie Oplossing: Oplossing = { 0,0->5; 0,1->9; 0,2->4; 0,3->8; 0,4->7; 0,5->6; 0,6->1; 0,7->2; 0,8->3; 1,0->8; 1,1->2; 1,2->3; 1,3->9; 1,4->1; 1,5->4; 1,6->7; 1,7->5; 1,8->6; 2,0->6; 2,1->1; 2,2->7; 2,3->2; 2,4->3; 2,5->5; 2,6->8; 2,7->9; 2,8->4; 3,0->9; 3,1->6; 3,2->5; 3,3->4; 3,4->2; 3,5->1; 3,6->3; 3,7->7; 3,8->8; 4,0->7; 4,1->8; 4,2->1; 4,3->6; 4,4->5; 4,5->3; 4,6->9; 4,7->4; 4,8->2; 5,0->3; 5,1->4; 5,2->2; 5,3->7; 5,4->9; 5,5->8; 5,6->5; 5,7->6; 5,8->1; 6,0->1; 6,1->5; 6,2->9; 6,3->3; 6,4->4; 6,5->2; 6,6->6; 6,7->8; 6,8->7; 7,0->4; 7,1->3; 7,2->6; 7,3->5; 7,4->8; 7,5->7; 7,6->2; 7,7->1; 7,8->9; 8,0->2; 8,1->7; 8,2->8; 8,3->1; 8,4->6; 8,5->9; 8,6->4; 8,7->3; 8,8->5 Deze interpretatie gaan we nu echter niet geven aan IDP, maar we gaan IDP deze zelf laten berekenen. Hiervoor gebruiken we de inferentietaak van. Deze taak is als volgt gedefinieerd: : Een vocabularium V, een theorie T in dit vocabularium V, een structuur S die het vocabularium V interpreteert : Een structuur S voor het volledige vocabularium V die een uitbreiding vormt van de structuur S (dwz. dat elk symbool dat al geïnterpreteerd werd door S ook op dezelfde manier geïnterpreteerd wordt door S ), zodat de theorie T voldaan is in S. Deze inferentietaak kunnen we uitvoeren met volgende main procedure: procedure main() { stdoptions.nbmodels = 1 printmodels(modelexpand(sudregels,sudoku1)) Deze code berekent één mogelijke modelexpansie van de gegeven structuur. Door stdoptions.nbmodels gelijk te stellen aan 0, laat je alle mogelijke modelexpansies berekenen. De theorie die we hiervoor nodig hebben, moet volgende beperkingen uitdrukken: Twee verschillende cellen in dezelfde rij hebben een verschillende inhoud in de oplossing; Twee verschillende cellen in hetzelfde 3x3 vierkant hebben een verschillende inhoud in de oplossing; Twee verschillende cellen in dezelfde kolom hebben een verschillende inhoud in de oplossing; In de oplossing heeft elke cel een waarde verschillend van 0; 10

11 Voor alle cellen waarvoor de opgave een inhoud heeft die verschillend is van 0, is de inhoud in de opgave en de inhoud in de oplossing dezelfde. Op deze URL: http: //dtai.cs.kuleuven.be/krr/idp-ide/?src=742ed49c9a0651f23d749b24fb59a09f vind je een IDP programma dat alle nodige componenten bevat, maar waarin de theorie alleen nog maar de eerste beperking uit bovenstaande lijst bevat. Voeg de andere beperkingen toe en ga na dat de correcte oplossing (en alleen maar deze) geproduceerd wordt. In plaats van de relatie InZelfdeGroep op te sommen in de structuur, kan je deze ook laten berekenen door IDP. Hiervoor moet je dan een geschikte formule toevoegen aan de theorie. Deze formule moet uitdrukken dat een viertal (i, j, i2, j2) tot de relatie InZelfdeGroep behoort als en slechts als er aan een bepaalde voorwaarde tussen i en i2, en j en j2 voldaan is. Probeer deze formule op te stellen. : Om deze formule te kunnen opschrijven, moet je gebruik maken van gehele deling (zodat bv. 7/2 = 3). Deze operator zit echter niet ingebouwd in IDP. De gehele deling van x door y schrijf je in IDP als (x x%y)/y (de % operator berekent de rest bij gehele deling). De volledige Sudoku oplosser in IDP ziet er nu zo uit: 11

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit. Labo IDP In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. K L A XOR N B XOR P M D AND Q AND C O OR E R R Tuesday 15 December 2009 Figuur 1: Een logisch circuit. Veronderstel

Nadere informatie

Opgave Constraint Processing

Opgave Constraint Processing Opgave Constraint Processing De deadline voor het indienen van je verslag is woensdag 9 december, 12u. We verwachten je verslag op papier in de studentenbrievenbus in 200A. In dit project zullen we een

Nadere informatie

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens Info-books HA40c Toegepaste Informatica Handleiding Deel 40c : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Veldlengte Het maximale aantal tekens dat in een veld kan ingevoerd worden.

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

IDP: Labo 2. Given: type int Octaal = {1;2;3;4;5;6;7;8} type int Octaal = {1..4;5;6..8}

IDP: Labo 2. Given: type int Octaal = {1;2;3;4;5;6;7;8} type int Octaal = {1..4;5;6..8} IDP: Labo 2 1 Integer types Een integer type in IDP is niets anders dan een enumaratietype waarop bepaalde arithmetische bewerkingen (+,,, /, %) gedefiniëerd zijn. Bijvoorbeeld, het volgende programma

Nadere informatie

5. Functies. In deze module leert u:

5. Functies. In deze module leert u: 5. Functies In deze module leert u: - Wat functies zijn; - Functies uitvoeren; - De verschillende functies van Calc kennen. - Naar een ander werkblad verwijzen. U kunt eenvoudige berekeningen, zoals aftrekken,

Nadere informatie

Labo IDP 1. April 22, 2010

Labo IDP 1. April 22, 2010 Labo IDP April, 00 Inleiding Download het bestand http://telescript.denayer.wenk.be/ jve/blokken.idp naar je eigen home directory en open het in een teksteditor. Dit bestand zou er als volgt moeten uitzien:

Nadere informatie

Propositielogica Het maken van een waarheidstabel

Propositielogica Het maken van een waarheidstabel Informatiekunde naam datum Propositielogica Het maken van een waarheidstabel Eindhoven, 4 juni 2011 De propositielogica Zoekopdrachten met de operatoren AND, OR en zijn zogenaamde Booleaanse expressies.

Nadere informatie

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 3

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 3 woensdag /3/4² - Diepenbeek OPGAVEN CAT 3 Ladderspel Opgave Het Ladderspel (Snakes and Ladders) is een gezelschapsspel dat gespeeld wordt op een vierkant bord van N N vakjes, genummerd van 1 tot N. Het

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

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

Spreadsheets (Excel 2003)

Spreadsheets (Excel 2003) Spreadsheets (Excel 2003) 14 Toevoegen paragraaf 14.5 14.5 Subtotalen, draaitabellen en ALS In deze paragraaf bespreken we een aantal aanvullende functies in Excel. We beginnen met de subtotalen. Een subtotaal

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

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4 woensdag /3/4² - Diepenbeek OPGAVEN CAT 4 Food truck festival De laatste jaren zijn food trucks erg populair geworden: het zijn combi s of aanhangwagens waarin gerechten gemaakt worden, en die worden dan

Nadere informatie

Goed aan wiskunde doen

Goed aan wiskunde doen Goed aan wiskunde doen Enkele tips Associatie K.U.Leuven Tim Neijens Katrien D haeseleer Annemie Vermeyen Maart 2011 Waarom? Dit document somt de belangrijkste aandachtspunten op als je een wiskundeopgave

Nadere informatie

Elementaire rekenvaardigheden

Elementaire rekenvaardigheden Hoofdstuk 1 Elementaire rekenvaardigheden De dingen die je niet durft te vragen, maar toch echt moet weten Je moet kunnen optellen en aftrekken om de gegevens van de patiënt nauwkeurig bij te kunnen houden.

Nadere informatie

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven.

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Formules functies verticaal en horizontaal zoeken Excel Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Opbouw van de functie Verticaal

Nadere informatie

Relatieve en Absolute adressering

Relatieve en Absolute adressering Klik op ENTER om je formule te bevestigen Relatieve en Absolute adressering Relatieve adressering Typ het volgend voorbeeld nu: Wanneer je de formule sleept met de vulgreep, dan zie je dat de formule zich

Nadere informatie

Getaltheorie I. c = c 1 = 1 c (1)

Getaltheorie I. c = c 1 = 1 c (1) Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk

Nadere informatie

Examen VWO - Compex. wiskunde A1

Examen VWO - Compex. wiskunde A1 wiskunde A1 Examen VWO - Compex Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 25 mei totale examentijd 3 uur 20 05 Vragen 14 tot en met 21 In dit deel staan de vragen waarbij de computer

Nadere informatie

DATABASEBEHEER IN EXCEL

DATABASEBEHEER IN EXCEL DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige

Nadere informatie

Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen.

Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen. Formules Een formule is een berekening die jij zelf maakt in Excel. Een formule begint met het isgelijkteken en bevat celverwijzingen. Figuur 1. Elke formule begint met = Stappen bij het maken van een

Nadere informatie

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner.

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner. Eenvoudige formules Een gedeelte van deze nieuwsbrief gaat over eenvoudige formules. Met behulp van Formules is het mogelijk om Tabelkolommen te bewerken. Een aantal bewerkingen lijken op acties die u

Nadere informatie

De partitieformule van Euler

De partitieformule van Euler De partitieformule van Euler Een kennismaking met zuivere wiskunde J.H. Aalberts-Bakker 29 augustus 2008 Doctoraalscriptie wiskunde, variant Communicatie en Educatie Afstudeerdocent: Dr. H. Finkelnberg

Nadere informatie

Mastermind met acht kleuren

Mastermind met acht kleuren Geschreven voor het vak: Wiskunde gedoceerd door H. Mommaerts Onderzoekscompetentie Mastermind met acht kleuren Auteurs: Tom Demeulemeester Pieter Van Walleghem Thibaut Winters 6LWIi 22 april 2014 1 Inleiding

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 tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

PROPOSITIELOGICA. fundament voor wiskundig redeneren. Dr. Luc Gheysens

PROPOSITIELOGICA. fundament voor wiskundig redeneren. Dr. Luc Gheysens PROPOSITIELOGICA fundament voor wiskundig redeneren Dr. Luc Gheysens PROPOSITIELOGICA Een propositie of logische uitspraak, verder weergegeven door een letter p, q, r is een uitspraak die in een vastgelegde

Nadere informatie

Exotische Sudoku s ii

Exotische Sudoku s ii Exotische Sudoku s ii Voorwoord Er zijn sudokupuzzels, daar zijn er veel van, en er zijn sudokupuzzels, daar zijn er weinig van. De puzzels in deze verzameling behoren tot de laatste soort: die van exotische

Nadere informatie

III.2 De ordening op R en ongelijkheden

III.2 De ordening op R en ongelijkheden III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.

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 piter@math.rug.nl 30 april 2007 INLEIDING Kennisrepresentatie & Redeneren Week1: Introductie

Nadere informatie

1 Rekenen met gehele getallen

1 Rekenen met gehele getallen 1 Inhoudsopgave 1 Rekenen met gehele getallen... 1.1 De gehele getallen... 1. Optellen... 1. Opgaven... 1. Aftrekken... 1. Opgaven... 1. Vermenigvuldigen... 1. Opgaven... 1.8 Delen... 9 1.9 Opgaven...9

Nadere informatie

Projectieve Vlakken en Codes

Projectieve Vlakken en Codes Projectieve Vlakken en Codes 1. De Fanocode Foutdetecterende en foutverbeterende codes. Anna en Bart doen mee aan een spelprogramma voor koppels. De ene helft van de deelnemers krijgt elk een kaart waarop

Nadere informatie

Semantiek 1 college 4. Jan Koster

Semantiek 1 college 4. Jan Koster Semantiek 1 college 4 Jan Koster 1 Uitgangspunt sinds vorige week Semantiek is representationeel (en niet referentieel), gebaseerd op interpretaties van sprekers en hoorders Geen scherpe scheiding tussen

Nadere informatie

Hoofdstuk 16: Zoek- en verwijzingsfuncties

Hoofdstuk 16: Zoek- en verwijzingsfuncties Hoofdstuk 16: Zoek- en verwijzingsfuncties 16.0 Inleiding Eén van de belangrijkste functies binnen Excel is de mogelijkheid om te zoeken naar een specifieke waarde binnen een groot aantal cellen met gegevens.

Nadere informatie

ALS-functie in Calc. ALS-functie maken

ALS-functie in Calc. ALS-functie maken ALS-functie in Calc Het deel van de ALS-functie tussen de haakjes bestaat uit 3 argumenten, gescheiden door puntkomma s. Eerst geef je de voorwaarde aan, waar de waarde in de cel aan moet voldoen (1).

Nadere informatie

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003

Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 Tweede Programmeeropgave Numerieke Wiskunde 1 De golfplaat Uiterste inleverdatum : vrijdag 16 mei 2003 I Doelstelling en testcase In deze programmeeropgave zullen we een drietal numerieke integratiemethoden

Nadere informatie

Verzamelingen. Hoofdstuk 5

Verzamelingen. Hoofdstuk 5 Hoofdstuk 5 Verzamelingen In de meest uiteenlopende omstandigheden kan het handig zijn om een stel objecten, elementen, of wat dan ook, samen een naam te geven. Het resultaat noemen we dan een verzameling.

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 ) OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Hoofdstuk 1 : REKENEN

Hoofdstuk 1 : REKENEN 1 / 6 H1 Rekenen Hoofdstuk 1 : REKENEN 1. Wat moet ik leren? (handboek p.3-34) 1.1 Het decimaal stelsel In verband met het decimaal stelsel: a) het grondtal van ons decimaal stelsel geven. b) benamingen

Nadere informatie

Instellen Finchline Topics & Booleaans zoeken

Instellen Finchline Topics & Booleaans zoeken Instellen Finchline Topics & Booleaans zoeken Versie 3.0 Introductie In deze handleiding wordt uitgelegd hoe je in Finchline topics kunt instellen. Een topic is een zoekactie naar een bepaald onderwerp.

Nadere informatie

Handleiding LVS-bestand

Handleiding LVS-bestand Tabblad Niveaus 1. Leerlingen(groepen) invoeren. 2. Nieuwe leerling toevoegen. 3. Leerlingen verwijderen. 4. Behaalde niveaus invoeren. Tabblad Gemiddelden 1. Waarom dit tabblad? 2. Opmerking toevoegen.

Nadere informatie

De bouwstenen van het programmeren 1

De bouwstenen van het programmeren 1 De bouwstenen van het programmeren 1 I DE BOUWSTENEN VAN HET PROGRAMMEREN. Een programma is een beschrijving van acties (operaties, opdrachten) die moeten uitgevoerd worden. Deze acties spelen in op bepaalde

Nadere informatie

Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten

Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten Handleiding voor de DWO-auteursomgeving voor het maken van eigen opdrachten 1 Inhoud Inleiding 3 Voorbereiding 3 Een bestaande activiteit aanpassen 4 Een volledig nieuwe activiteit ontwerpen 5 Berekeningen,

Nadere informatie

Hoofdstuk 20: Wiskundige functies

Hoofdstuk 20: Wiskundige functies Hoofdstuk 20: Wiskundige functies 20.0 Introductie Er is een uitgebreid aanbod aan wiskundige functies in Excel, variërend van het simpele + teken tot de esoterische statistiek functies voor een correlatie

Nadere informatie

REKENEN MET EXCEL. Naam Nr Klas Datum

REKENEN MET EXCEL. Naam Nr Klas Datum REKENEN MET EXCEL Naam Nr Klas Datum Microsoft Excel wordt gebruikt om facturen, bestelbonnen, prijsoffertes, rapporten en ander rekenwerk uit te voeren. Rekenbladen moeten dus formules bevatten! In deze

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

1. Orthogonale Hyperbolen

1. Orthogonale Hyperbolen . Orthogonale Hyperbolen a + b In dit hoofdstuk wordt de grafiek van functies van de vorm y besproken. Functies c + d van deze vorm noemen we gebroken lineaire functies. De grafieken van dit soort functies

Nadere informatie

Informatica: C# WPO 10

Informatica: C# WPO 10 Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante

Nadere informatie

Excel opdracht: Belkosten

Excel opdracht: Belkosten Excel opdracht: Belkosten In deze opdracht gaan we Excel gebruiken om uit te vinden wat het meest geschikte mobiele telefoon abonnement voor ons is. Hierbij willen we kijken wat een aantal verschillende

Nadere informatie

Hoofdstuk 17: Logische & Informatiefuncties en operatoren

Hoofdstuk 17: Logische & Informatiefuncties en operatoren Hoofdstuk 17: Logische & Informatiefuncties en operatoren 17.0 Inleiding Logische formules testen of een conditie waar is (het resultaat van de formule zal dan de waarde WAAR hebben) of onwaar (in dit

Nadere informatie

Artificiële Intelligentie Project 2 - Constraint Processing

Artificiële Intelligentie Project 2 - Constraint Processing Artificiële Intelligentie Project 2 - Constraint Processing Philippe Dellaert 3 e Bachelor Computerwetenschappen - Elektrotechniek 13 mei 2007 1 Een logisch circuit 1.1 Variabelen en constraints Name:

Nadere informatie

Praktische toepassing van functies

Praktische toepassing van functies Excellerend Heemraadweg 21 2741 NC Waddinxveen 06 5115 97 46 richard@excellerend.nl BTW: NL0021459225 ABN/AMRO: NL72ABNA0536825491 KVK: 24389967 Praktische toepassing van functies De laatste twee functies

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

5) Accepteer de licentievoorwaarden. Volgende. Handleiding HotPotatoes (downloaden)

5) Accepteer de licentievoorwaarden. Volgende. Handleiding HotPotatoes (downloaden) Handleiding HotPotatoes (downloaden) 5) Accepteer de licentievoorwaarden. Volgende. 1) Ga naar de website http://hotpot.uvic.ca 2) Downloads: klik de gewenste versie aan. 3) Selecteer de gewenste taal.

Nadere informatie

Beknopte handleiding voor Derive 5.0 for Windows

Beknopte handleiding voor Derive 5.0 for Windows - Lesbrief Beknopte handleiding voor Derive 5.0 for Voorspelbaarheid en Populaties in de tijd Doelgroep Klas 5 t/m 6 havo en vwo Vakken en domeinen Algemene natuurwetenschappen VWO Wiskunde VWO: A domein

Nadere informatie

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1 Algemene Richtlijnen Programmeren I 26 augustus 2015 Schrijf je naam bovenaan elk antwoordblad en kladblad. Schrijf niet met potlood of in het rood op je antwoordbladen. Gebruik voor elke vraag een afzonderlijk

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 jjoosten@phil.uu.nl www.phil.uu.nl/ jjoosten (hier moet een tilde

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

Nadere informatie

Handleiding Japanse puzzels

Handleiding Japanse puzzels Handleiding Japanse puzzels versie : 1.0 wijziging : 26-4-2010 Inhoud 1.Japanse puzzel...4 1.1.Speler...4 1.2.Kleur...4 1.3.Groep...4 1.4.Favoriet...4 1.5.Puzzel...4 1.6.Prima...5 1.7.Spel...5 1.8.Stap

Nadere informatie

Predikaatlogica en informatica

Predikaatlogica en informatica Logica in actie H O O F D S T U K 5 Predikaatlogica en informatica Wanneer is een predikaatlogische formule waar? Om de gedachten te bepalen, beschouwen we nog eens de formule: x (P(x) y (P(y) y > x))

Nadere informatie

00 CDNL : Wat is een CalculoDoku?

00 CDNL : Wat is een CalculoDoku? Gratis Gratis Uitdagende CalculoDoku Sudoku Variaties 00 CDNL Editie 00 CDNL : 1 Uitdagende CalculoDoku wacht om te worden opgelost Gratis Uitdagende Sudoku Variaties Editie 00 CDNL : Website: www.sudoku-variations.com

Nadere informatie

Module 4 Opmaak van een werkblad en cellen

Module 4 Opmaak van een werkblad en cellen Module 4 Opmaak van een werkblad en cellen Kolombreedte en rijhoogte#breedtehoogte Opmaak van cellen Lettertype Uitlijning Opvulling Randen Getallen Datum en tijd Voorwaardelijke opmaak Gebruik van thema's

Nadere informatie

Hoofdstuk 21: Gegevens samenvatten

Hoofdstuk 21: Gegevens samenvatten Hoofdstuk 21: Gegevens samenvatten 21.0 Inleiding In Excel kunnen grote (en zelfs ook niet zo grote) tabellen met getallen en tekst er nogal intimiderend uitzien. Echter, Excel komt helemaal tot haar recht

Nadere informatie

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

Nadere informatie

Artificiële Intelligentie 1. Kennissystemen. 22 oktober 2002

Artificiële Intelligentie 1. Kennissystemen. 22 oktober 2002 Artificiële Intelligentie 1 Kennissystemen 22 oktober 2002 Deze oefeningenles gaat over kennissystemen, één van de grootste succesverhalen van de kunstmatige intelligentie. We zullen zien wat kennissystemen

Nadere informatie

Handleiding Booleaans Zoeken en profielen instellen

Handleiding Booleaans Zoeken en profielen instellen Handleiding Booleaans Zoeken en profielen instellen Versie 1.8 www.howardshome.com Fultonbaan 30 Telefoon +31 (0)30 6083 540 KvK 20093764 Postbus 1092 Fax +31 (0)30 6083 549 ABN AMRO 54.85.62.202 3430

Nadere informatie

MS Excel. Module 0. MS Excel, versie 2000 (UK) Nummer: 187 (11062002) The Courseware Company

MS Excel. Module 0. MS Excel, versie 2000 (UK) Nummer: 187 (11062002) The Courseware Company MS Excel Module 0 MS Excel, versie 2000 (UK) Nummer: 187 (11062002) The Courseware Company Niets van deze uitgave mag verveelvoudigd worden en/of openbaar worden gemaakt door middel van druk, fotokopie,

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

Zestigdelige graden radialen honderddelige graden

Zestigdelige graden radialen honderddelige graden Rekenen met hoeken Zestigdelige graden radialen honderddelige graden Hoeken kunnen uitgedrukt worden in verschillende hoekeenheden. De meest bekende hoekeenheid is de zestigdelige graad. Deze hoekeenheid

Nadere informatie

Excel opdracht: Belkosten

Excel opdracht: Belkosten Excel opdracht: Belkosten In deze opdracht gaan we Excel gebruiken om uit te vinden wat het meest geschikte mobiele telefoonabonnement voor ons is. Hierbij willen we kijken wat een aantal verschillende

Nadere informatie

Uitwerkingen Rekenen met cijfers en letters

Uitwerkingen Rekenen met cijfers en letters Uitwerkingen Rekenen met cijfers en letters Maerlant College Brielle 5 oktober 2009 c Swier Garst - RGO Middelharnis 2 Inhoudsopgave Rekenen met gehele getallen 7. De gehele getallen.....................................

Nadere informatie

Correctievoorschrift VWO

Correctievoorschrift VWO Correctievoorschrift VWO 2008 tijdvak 2 wiskunde A,2 Het correctievoorschrift bestaat uit: Regels voor de beoordeling 2 Algemene regels 3 Vakspecifieke regels 4 Beoordelingsmodel 5 Inzenden scores Regels

Nadere informatie

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Opmerking vooraf. Een netwerk is een structuur die is opgebouwd met pijlen en knooppunten. Bij het opstellen van

Nadere informatie

Basistechnieken Microsoft Excel in 15 minuten

Basistechnieken Microsoft Excel in 15 minuten Basistechnieken Microsoft Excel in 15 minuten Microsoft Excel is een rekenprogramma. Je kan het echter ook heel goed gebruiken voor het maken van overzichten, grafieken, planningen, lijsten en scenario's.

Nadere informatie

EXCEL BASIS 2013

EXCEL BASIS 2013 EXCEL BASIS 2013 WWW.I-LEARNING.BE - 4 FORMULE-INVOER ALS EXCEL EEN BEREKENING MOET DOEN, MOET JE EEN FORMULE OF EEN FUNCTIE INVOEREN 4.1 OPERATOREN + om op te tellen - om af te trekken / om te delen *

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

Hoofdstuk 26: Modelleren in Excel

Hoofdstuk 26: Modelleren in Excel Hoofdstuk 26: Modelleren in Excel 26.0 Inleiding In dit hoofdstuk leer je een aantal technieken die je kunnen helpen bij het voorbereiden van bedrijfsmodellen in Excel (zie hoofdstuk 25 voor wat bedoeld

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

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl Excel reader Beginner Gemiddeld Auteur Bas Meijerink E-mail bas@excel-programmeur.nl Versie 01D00 Datum 01-03-2014 Inhoudsopgave Introductie... - 3 - Hoofdstuk 1 - Databewerking - 4-1. Inleiding... - 5-2.

Nadere informatie

Formeel Denken. Herfst 2004

Formeel Denken. Herfst 2004 Formeel Denken Herman Geuvers Deels gebaseerd op het herfst 2002 dictaat van Henk Barendregt en Bas Spitters, met dank aan het Discrete Wiskunde dictaat van Wim Gielen Herfst 2004 Contents 1 Propositielogica

Nadere informatie

Propositielogica, waarheid en classificeren

Propositielogica, waarheid en classificeren Logica in actie H O O F D S T U K 2 Propositielogica, waarheid en classificeren We hebben al gezien dat voor een logicus het verhevene heel dicht kan liggen bij het alledaagse. Misschien beter gezegd:

Nadere informatie

1. Cellen en formules

1. Cellen en formules 19 1. Cellen en formules Microsoft Excel is een rekenprogramma, ook wel spreadsheetprogramma genoemd. Met het woord spread wordt in het Engels tekst over meer kolommen bedoeld en de term sheet betekent

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

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel. Excel Inleiding Het woord computer betekent zoiets als rekenmachine. Daarmee is is eigenlijk aangegeven wat een computer doet. Het is een ingewikkelde rekenmachine. Zelf voor tekstverwerken moet hij rekenen.

Nadere informatie

INHOUD. Ten geleide 13. 1 Excel 2007-2010 Basis 15

INHOUD. Ten geleide 13. 1 Excel 2007-2010 Basis 15 INHOUD Ten geleide 13 1 Excel 2007-2010 Basis 15 1.1 Inleiding 15 1.2 Excel 2007-2010 samengevat 15 1.2.1 Configuratie instellen en de werkomgeving aanpassen 15 1.2.1.1 Een knop toevoegen aan de werkbalk

Nadere informatie

3 De stelling van Kleene

3 De stelling van Kleene 18 3 De stelling van Kleene Definitie 3.1 Een formele taal heet regulier als hij wordt herkend door een deterministische eindige automaat. Talen van de vorm L(r) met r een reguliere expressie noemen we

Nadere informatie

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes! Linalg.nb Lineaire Algebra Andr Heck AMSTEL Instituut, Universiteit van Amsterdam Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes! Å Introductie

Nadere informatie

Numerieke berekening van integralen met DERIVE

Numerieke berekening van integralen met DERIVE Numerieke berekening van integralen met DERIVE Dirk Danckaert Sint-Norbertusinstituut Duffel In deze tekst maak je kennis met enkele eenvoudige algoritmen voor de numerieke berekening van bepaalde integralen.

Nadere informatie

1. Cellen en formules

1. Cellen en formules 11 1. Cellen en formules Microsoft Excel is een rekenprogramma, ook wel spreadsheetprogramma genoemd. Met het woord spread wordt in het Engels tekst over meer kolommen bedoeld en de term sheet betekent

Nadere informatie

Cursus Excel voor beginners (6) Functies.

Cursus Excel voor beginners (6) Functies. Cursus Excel voor beginners (6) Functies. Handleiding van Auteur: CorVerm September 2008 Functies in Excel. Laten we eerst even kijken wat een functie is. Een functie bestaat uit een aantal argumenten

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

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr.

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr. Numerieke aspecten van de vergelijking van Cantor Opgedragen aan Th. J. Dekker H. W. Lenstra, Jr. Uit de lineaire algebra is bekend dat het aantal oplossingen van een systeem lineaire vergelijkingen gelijk

Nadere informatie

Werkwinkel Permutatiepuzzels

Werkwinkel Permutatiepuzzels Werkwinkel Permutatiepuzzels Karsten Naert UGent Vakgroep Wiskunde 6 november 2013 1 / 33 Over mij... Assistent en doctoraatsstudent Taken: Onderzoek Onderwijs Dienstverlening Karsten.Naert@UGent.be http:

Nadere informatie

Informatica: C# WPO 4

Informatica: C# WPO 4 Informatica: C# WPO 4 1. Inhoud For-loop, debuggen, inleiding tot graphics 2. Oefeningen Demo 1: Geometrische figuren Demo 2: Teken een 10 bij 10 rooster Demo 3: Debug oplossingen demo s 1 en 2 A: Flowerpower

Nadere informatie