Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

23
Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet

Transcript of Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Page 1: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Algoritmiek

Van probleem tot codeHoorcollege 1 - Ma. 4 sept.

2006L.M. Bosveld-de Smet

Page 2: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Het probleem

Correcte spelling van samenstellingen rode(n)kool knarse(n)tanden linze(n)moes geruchte(n)circuit druive(n)tros gerste(n)nat asperge(n)soep spinne(n)wiel pere(n)sap page(n)kapsel studente(n)taal weide(n)vogel

Moeten we –e of –en aan het linkerdeel van de samenstelling toevoegen?

Page 3: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

G. Polya: “how to solve it”4 fasen

‘Understanding the problem’ ‘Devising a plan’ ‘Carrying out the plan’ ‘Looking back’

Page 4: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

De regel

Nederlandse Taalunie: “We schrijven de tussenklank als –en als het linkerdeel van de samenstelling een zelfstandig naamwoord is dat een meervoud heeft op –en, maar geen meervoud op –es. In andere gevallen schrijven we –e.”

Page 5: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Algoritme: definitie

Een algoritme is een stapsgewijze beschrijving om van een probleem (bijv. hoe bak ik een cake?) tot een oplossing (goed resultaat) te komen.

Brookshear: “An algorithm is an ordered set of unambiguous, executable steps.”

Page 6: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Algoritme: huis-tuin-en-keuken-

voorbeeld

Amandelen pellen Doe water in een pan Stop er de ongepelde amandelen in Breng het water met de amandelen aan de

kook Giet kokend water af en laat de amandelen

schrikken Zolang er amandelen in de pan zitten

Pak er een Ontvel deze Doe deze in een schaal

Page 7: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Algoritme:een getalprobleempje

Het bepalen van het kleinste getal uit een rij van 10 getallen Bewaar het eerste getal van de rij Lees het volgende getal uit de rij Vergelijk deze met het eerste getal Als het kleiner is, bewaar dan dit

getal en vergeet het eerste getal Herhaal dit tot alle getallen uit de rij

aan bod zijn gekomen

Page 8: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Algoritme:Spelling samenstellingen

Kijk naar het linkerdeel van de samenstelling

Is het linkerdeel een zelfstandig naamwoord? NEE: schrijf –e JA: Heeft het linkerdeel een meervoud

op -es? NEE: schrijf –en JA: schrijf -e

Page 9: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Control flow

Is linkerdeel samenstelling een znw.?

Heeft linkerdeel een mv. op -es?

Schrijf -en Schrijf -e

NEE

JA

JA

NEE

Page 10: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

linze + moes

Is linkerdeel samenstelling een znw.?

Heeft linkerdeel een mv. op -es?

Schrijf -en Schrijf -e

NEE

JA

JA

NEE

linzenmoes

Page 11: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

page + kapsel

Is linkerdeel samenstelling een znw.?

Heeft linkerdeel een mv. op -es?

Schrijf -en Schrijf -e

NEE

JA

JA

NEE

pagekapsel

Page 12: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

spin + wiel

Is linkerdeel samenstelling een znw.?

Heeft linkerdeel een mv. op -es?

Schrijf -en Schrijf -e

NEE

JA

JA

NEE

?spinnewiel ?spinnenwiel

Page 13: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Data flow

Geef correct gespelde samenstelling

Controleer op znw. Controleer op mv.=-es

linkerdeel

rechterdeelcorrect gespelde

samenstelling

linkerdeel linkerdeelj/n j/n

Page 14: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Data flow

Geef correct gespelde samenstelling

Controleer op znw. Controleer op mv.=-es

gerst

natgerstenat

gerst gerstj n

Page 15: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

pseudocode

vraagInvoer (linker- en rechterdeel van samenstelling) if (isZnw (linkerdeel))

then if (eindigtMVopES (linkerdeel))

then schrijf samenstelling met –e else schrijf samenstelling met -en

then schrijf samenstelling met -e

Page 16: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Java Programmeertaal Application software Object-oriented programming

(OOP) Specifiek object: toestand (state) +

gedrag (behavior) Data en Methoden Klasse: een type object; een model

van een object in haar algemeenheid

Page 17: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Voorbeeld automobielklasse automobiel object mijnAuto object jouwAuto

kleur rood wit

fabrikaat Toyota Buick

model Celica LeSabre

jaar 1995 2001

motor 4-cylinder 6-cylinder

benzineverbruik 1 op 14 1 op 4

aantal passagiers 2 5

heeft kofferbak waar waar

heeft airco onwaar waar

Page 18: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Voorbeeld automobielActies geassocieerd aan een

automobiel

motor starten

naar voren rijden

naar achteren rijden

stoppen

versnellen

Page 19: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Compound: java klassepublic class Compound {

// data fieldsprivate String compound;

// methods// constructorpublic Compound () {compound = null;}

// instance methodpublic void formCompound (String lPart, String rPart) {if (isSubstantive (lPart)) {if (esEndingPlural (lPart)) {compound = lPart + "e" + rPart;} else {compound = lPart + "en" + rPart;}}else {compound = lPart + "e" + rPart;

}

public String getCompound () {return compound;}

Page 20: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Java Virtual Machine model

Source code

Byte code

Java compiler

Macintosh interpreter IBM-PC interpreter Sun interpreter JVM

java files

class files

JDK: java development

kit

www.sun.com

Page 21: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Het vak Ba Informatiekunde jaar 1 (propedeuse),

semester I Basis- en drempelvak!! Inleiding programmeren

Algemene programmeerbegrippen en technieken Specifieke programmeertaal: Java onder Unix

Geen voorkennis vereist Datastructuren (vak in Ba jaar 1, semester II)

bouwt voort op Algoritmiek N.B. “Programs = Datastructures +

Algorithms” (Niklaus Wirth)

Page 22: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Website Algoritmiek

Literatuur Brookshear: “Computer Science: an

Overview ” King: “Java Programming from the

Beginning “ Wekelijkse

(programmeer)opdrachten http://www.let.rug.nl/~bosveld/hp0607/

Page 23: Algoritmiek Van probleem tot code Hoorcollege 1 - Ma. 4 sept. 2006 L.M. Bosveld-de Smet.

Studiehandleiding en Nestor

Studiehandleiding Algoritmiek, beschikbaar op website en in Nestor

Inleveren van opdrachten op papier in postvak Harmonie 4de

verdieping Bosveld electronisch in digital dropbox

Nestorcursus Algoritmiek