Modelleren en Programmeren



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

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Modelleren en Programmeren


Overerving & Polymorfisme

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

IMP Uitwerking week 13

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

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

Modelleren en Programmeren

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

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Ingebouwde klassen & methodes

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Javascript oefenblad 1

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

Een fragment wordt afgeleid van de basis klasse "Fragment".

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

Tentamen in2705 Software Engineering

Modelleren en Programmeren

Abstracte klassen & Interfaces

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Game of Life in Java

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Datastructuren: stapels, rijen en binaire bomen

Modelleren en Programmeren

In BlueJ. Doe onderstaande met muis/menu s:

Tentamen Programmeren in C (EE1400)

Modelleren en Programmeren

Tentamen Objectgeorienteerd Programmeren

Programmeren in Java les 3

Vakgroep CW KAHO Sint-Lieven

Modelleren en Programmeren

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s);

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

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

Hoofdstuk 5: Functies voor getallen en teksten

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

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

ASP.NET Test Jan Van Ryckeghem

Objectgericht programmeren 1.

extra oefening algoritmiek - antwoorden

Voorbeeld: Simulatie van bewegende deeltjes

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

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Programmeren met Arduino-software

NAAM: Programmeren 1 Examen 29/08/2012

Modelleren en Programmeren

Verslag Opdracht 4: Magische Vierkanten

45 Als je een array van 10 elementen wilt hebben, zijn de elementen genummerd van 0 tot en met 9.

Design patterns Startbijeenkomst

Zelftest Programmeren in Java

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

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Objectgeoriënteerd programmeren in Java 1

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

Eindtoets XML: Theorie en toepassingen

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

Implementatie AssurePay ASP.NET. ideal

Kleine cursus PHP5. Auteur: Raymond Moesker

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

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

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

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

Tentamen Inleiding Programmeren in Java

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

L A TEXcursus 5 e sessie: plaatjes en afbeeldingen

NAAM: Programmeren 1 Examen 21/01/2011

Tentamen Imperatief Programmeren

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

Vraag 1: Software Levenscyclus

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

Modelleren en Programmeren

Dynamische webapplicaties in Java

TENTAMEN Programmeren 1

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

Variabelen en statements in ActionScript

Java Programma structuur

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

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

Java Les 3 Theorie Herhaal structuren

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

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

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

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Transcriptie:

Modelleren en Programmeren Jeroen Bransen 16 december 2015 Tentamen Case study: Automatische taalherkenning Modelleren Specificeren Implementeren Modelleren Implementeren

Tentamen

Tentamen Vrijdag 22 januari van 17.00-20.00 in Educatorium Gamma.

Case study: Automatische taalherkenning

Programmeer-cyclus

Modelleren

Modelleren Gedicht Jabberwocky (Lewis Carrol): Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe. Il brigue: les tôves libricilleux Se gyrent en vrillant dans la guave. Enmîmés sont les goubebosqueux Et le mômerade horsgrave. Es brillig war. Die schlichten Toven Wirrten un wimmelten in Waben; Und aller-mümsigen Burggroven Die mohmen Räth ausgraben. t Was bradig en de slijp le torfs Driltolden op de wijde weep. Misbrozig stonden borogorfs t Verdwoolde grasvark schreep.

Modelleren Gedicht Jabberwocky (Lewis Carrol): Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe. Il brigue: les tôves libricilleux Se gyrent en vrillant dans la guave. Enmîmés sont les goubebosqueux Et le mômerade horsgrave. Es brillig war. Die schlichten Toven Wirrten un wimmelten in Waben; Und aller-mümsigen Burggroven Die mohmen Räth ausgraben. t Was bradig en de slijp le torfs Driltolden op de wijde weep. Misbrozig stonden borogorfs t Verdwoolde grasvark schreep. Welke talen zijn dit?

Modelleren Gedicht Jabberwocky (Lewis Carrol): Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe. Il brigue: les tôves libricilleux Se gyrent en vrillant dans la guave. Enmîmés sont les goubebosqueux Et le mômerade horsgrave. Es brillig war. Die schlichten Toven Wirrten un wimmelten in Waben; Und aller-mümsigen Burggroven Die mohmen Räth ausgraben. t Was bradig en de slijp le torfs Driltolden op de wijde weep. Misbrozig stonden borogorfs t Verdwoolde grasvark schreep. Welke talen zijn dit? (Engels, Duits, Frans, Nederlands)

Modelleren Je kunt de taal herkennen zonder de woorden te begrijpen

Modelleren Je kunt de taal herkennen zonder de woorden te begrijpen Patronen in woorden

Modelleren Je kunt de taal herkennen zonder de woorden te begrijpen Patronen in woorden Relatieve frequenties van letters: computer kan heel goed tellen!

Modelleren Aanpak: Bepaal de letterfrequentie van de onbekende tekst

Modelleren Aanpak: Bepaal de letterfrequentie van de onbekende tekst Vergelijk die met opgeslagen frequentie-tabellen van diverse talen

Modelleren Aanpak: Bepaal de letterfrequentie van de onbekende tekst Vergelijk die met opgeslagen frequentie-tabellen van diverse talen De best passende is het!

Modelleren Aanpak: Bepaal de letterfrequentie van de onbekende tekst Vergelijk die met opgeslagen frequentie-tabellen van diverse talen De best passende is het!

Modelleren Aanpak: Bepaal de letterfrequentie van de onbekende tekst Vergelijk die met opgeslagen frequentie-tabellen van diverse talen De best passende is het! (misschien)

Modelleren In plaats van kant-en-klare tabellen, gebruiken we voorbeeldteksten

Modelleren In plaats van kant-en-klare tabellen, gebruiken we voorbeeldteksten Programma kan daar zelf wel voor turven

Modelleren In plaats van kant-en-klare tabellen, gebruiken we voorbeeldteksten Programma kan daar zelf wel voor turven Is dit nou Kunstmatige Intelligentie?

Modelleren In plaats van kant-en-klare tabellen, gebruiken we voorbeeldteksten Programma kan daar zelf wel voor turven Is dit nou Kunstmatige Intelligentie?

Modelleren In plaats van kant-en-klare tabellen, gebruiken we voorbeeldteksten Programma kan daar zelf wel voor turven Is dit nou Kunstmatige Intelligentie? Ja, subsymbolische kunstmatige intelligentie

Specificeren

Specificeren

Specificeren Hoe vergelijk je frequentietabellen?

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters Tekstlengte maakt niet uit, dus neem relatieve frequentie

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters Tekstlengte maakt niet uit, dus neem relatieve frequentie Minder a s mogen extra b s niet compenseren, dus gebruik voor verschil altijd positief getal

Ontwerp class TurfTabel: om letters te tellen

Ontwerp class TurfTabel: om letters te tellen class Taal extends Frame: gebruikersinterface

Implementeren

Implementatie public class Taal extends Frame implements ActionListener { TextArea tekst; Label uitvoer; TextField[] taal; TextField[] url; final int aantal = 10; //...

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext());

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); for (int i = 0; i < aantal; i++) { voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext());

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); for (int i = 0; i < aantal; i++) { voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext()); verschil = onbekend.verschil(voorbeeld);

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); for (int i = 0; i < aantal; i++) { voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext()); verschil = onbekend.verschil(voorbeeld); if (verschil < kleinste) { kleinste = verschil;

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); kleinste = 26.0; antwoord = "niet te bepalen"; for (int i = 0; i < aantal; i++) { voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext()); verschil = onbekend.verschil(voorbeeld); if (verschil < kleinste) { kleinste = verschil; antwoord = taal[i].gettext(); uitvoer.settext(antwoord);

Implementatie public void actionperformed(actionevent e) { TurfTabel onbekend, voorbeeld; double kleinste, verschil; String naam, antwoord; onbekend = new TurfTabel(); onbekend.turf(tekst.gettext()); kleinste = 26.0; antwoord = "niet te bepalen"; for (int i = 0; i < aantal; i++) { voorbeeld = new TurfTabel(); voorbeeld.leesurl(url[i].gettext()); verschil = onbekend.verschil(voorbeeld); if (verschil < kleinste) { kleinste = verschil; antwoord = taal[i].gettext(); uitvoer.settext(antwoord);

Turftabel public class TurfTabel { int[] tellers; int totaal; public TurfTabel() {... public void turf(string s) {... public double verschil(turftabel andere) {... public void leesurl(string naam) {... private void turf(char c) {...

Turftabel public class TurfTabel { int[] tellers; int totaal; public TurfTabel() { tellers = new int[26]; for(int i = 0; i < tellers.length; i++) tellers[i] = 0; public void turf(string s) { for (int i = 0; i < s.length(); i++) turf(s.charat(i)); //..

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. private void turf(char c) { //.. tellers[c - a ]++; totaal++;

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. private void turf(char c) { if (c >= A && c <= Z ) { tellers[c - A ]++; totaal++; else if (c >= a && c <= z ) { tellers[c - a ]++; totaal++; //..

Specificeren Hoe vergelijk je frequentietabellen?

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters Tekstlengte maakt niet uit, dus neem relatieve frequentie

Specificeren Hoe vergelijk je frequentietabellen? Totaal verschil over alle letters Tekstlengte maakt niet uit, dus neem relatieve frequentie Minder a s mogen extra b s niet compenseren, dus gebruik voor verschil altijd positief getal

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. public double relatief(int i) { public double verschil(turftabel andere) { //..

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. public double relatief(int i) { return (double) tellers[i] / totaal; public double verschil(turftabel andere) { //..

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. public double relatief(int i) { return (double) tellers[i] / totaal; public double verschil(turftabel andere) { double totaal = 0.0; for (int i = 0; i < 26; i++) totaal += Math.abs(this.relatief(i) - andere.relatief(i)); return totaal; //..

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. public void leesurl(string naam) { //..

Turftabel public class TurfTabel { int[] tellers; int totaal; //.. public void leesurl(string naam) { BufferedReader reader; String s; reader = new BufferedReader( new InputStreamReader( new URL(naam).openConnection().getInputStream())); while ((s = reader.readline())!= null) turf(s); //..

Modelleren

Modelleren Onze voorbeeldteksten komen van het internet

Modelleren Onze voorbeeldteksten komen van het internet Maar dat is HTML: <html> <a href=www.cs.uu.nl>klik hier</a> <img src=picture.jpg>

Modelleren Onze voorbeeldteksten komen van het internet Maar dat is HTML: <html> <a href=www.cs.uu.nl>klik hier</a> <img src=picture.jpg> De tags verstoren de telling!

Implementeren

Turftabel public class TurfTabel { boolean teltmee = true; //.. private void turf(char c) { if (c == < ) teltmee = false; else if (c == > ) teltmee = true; else if (teltmee) { // Originele code van turf //..

Programmeer-cyclus

Het werkt!