Programmeerimine. 12. loeng
|
|
- Sonja de Croon
- 5 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Programmeerimine 12. loeng
2 Tana loengus Sabarekursioon vs. iteratsioon Erinevad rekursiooniskeemid Naiteid: { Hanoi tornide ulesanne { Puu joonistamine { Sierpinski kolmnurk
3 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Rekursiivne faktoriaal def factorial (n): if n == 0: return 1 else: return n factorial (n 1) 3 / 19
4 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Rekursiivne faktoriaal def factorial (n): if n == 0: return 1 else: return n factorial (n 1) 3 / 19
5 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Sabarekursiivne faktoriaal def factorialtailrec (n, f ): if n == 0: return f else: return factorialtailrec(n 1, f n) def factorial (n): return factorialtailrec(n,1) 4 / 19
6 Faktoriaal factorial(5) 5 / 19
7 Faktoriaal factorial(5) factorialtailrec(5, 1) 5 / 19
8 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) 5 / 19
9 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) 5 / 19
10 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) 5 / 19
11 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) 5 / 19
12 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
13 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
14 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
15 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
16 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
17 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
18 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
19 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
20 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
21 Faktoriaal factorial(5) factorialtailrec(5, 1) factorialtailrec(4, 5) factorialtailrec(3, 20) factorialtailrec(2, 60) factorialtailrec(1, ) factorialtailrec(0, ) 5 / 19
22 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Sabarekursiivne faktoriaal def factorialtailrec (n, f ): if n == 0: return f else: return factorialtailrec(n 1, f n) def factorial (n): return factorialtailrec(n,1) 6 / 19
23 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Sabarekursiivne faktoriaal (ver. 2) def factorial (n, f=1): if n == 0: return f else: return factorial(n 1, f n) 6 / 19
24 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Sabarekursiivne faktoriaal (ver. 3) def factorial (n, f=1): if n!= 0: return factorial(n 1, f n) else: return f 6 / 19
25 Sabarekursioon Kui k~oik tegevused toimuvad enne rekursiivset valjakutset, nimetatakse rekursiooni sabarekursiooniks. Sabarekursiooni on vaga lihtne teisendada tavaliseks tsukliks (ja ka vastupidi). Ekvivalentne iteratiivne faktoriaal def factorial (n): f = 1 while n!= 0: f = f n n = n 1 return f 6 / 19
26 Rekursiooniskeemid K~oigis seni vaadeldud naidetes kutsuti funktsiooni kehas funktsiooni ennast valja ulimalt uks kord. Sellist rekursiooni nimetatakse lineaarseks, kuna rekursiivsete valjakutsete kontrollvoog on lineaarne ahel. Keerukamad rekursiooniskeemid kasutavad erinevaid rekursiivse valjakutse mustreid: { Puurekursiooni korral kutsutakse funktsiooni rekursiivselt "samal tasemel" valja kaks v~oi enam korda. { Vastastikuse rekursiooni korral kutsub uks funktsioon teist ja teine esimest. {... 7 / 19
27 Puurekursioon Fibonacci arvud def bonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return bonacci(n 1) + bonacci(n 2) Naide print(bonacci(2)) # Trukib: 1 print(bonacci(3)) # Trukib: 2 print(bonacci(4)) # Trukib: 3 print(bonacci(5)) # Trukib 5 print(bonacci(6)) # Trukib 8 8 / 19
28 Puurekursioon fibo(4) fibo(3) fibo(2) fibo(2) fibo(1) fibo(1) fibo(0) fibo(1) fibo(0) 9 / 19
29 Arvu paarsuse leidmine Vastastikune rekursioon def even(n): if n == 0: return True else: return odd(n 1) def odd(n): if n == 0: return False else: return even(n 1) Naide print(even(2)) print(even(3)) print(odd(2)) print(odd(3)) # Trukib: True # Trukib: False # Trukib: False # Trukib: True 10 / 19
30 Ackermanni funktsioon Sisestatud rekursioon def ackermann(m, n): if m == 0: return n+1 elif n == 0: return ackermann(m 1, 1) else: return ackermann(m 1, ackermann(m, n 1)) Naide print(ackermann(3,4)) # Trukib: 125 print(ackermann(3,5)) # Trukib: 253 print(ackermann(3,6)) # Trukib: 509 print(ackermann(3,7)) # Trukib:... print(ackermann(4,1)) # Trukib: / 19
31 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
32 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
33 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
34 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
35 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
36 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
37 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
38 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
39 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
40 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
41 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
42 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
43 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
44 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
45 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
46 Naide: Hanoi tornid A B C Algseis: Tornis A on n erineva suurusega ketast. Kettad on suuruse jarjekorras (vaiksem k~oige peal). Eesmark: Viia k~oik kettad tornist A torni B. Kaigud: Mingi torni ulemise ketta v~oib t~osta teise torni. Suuremat ketast ei tohi vaiksema peale panna. 12 / 19
47 Naide: Hanoi tornid A B C A B C teisaldada n ketast A B C A B C teisalda n 1 ketast A B C t~osta ketas A B C teisalda n 1 ketast 13 / 19
48 Lahendprogramm Pythonis Naide: Hanoi tornid def movetower(n,src,tgt,aux): if n == 1: movedisk(src,tgt) else: movetower(n 1,src,aux,tgt) movedisk(src,tgt) movetower(n 1,aux,tgt,src) def movedisk(src,tgt): print(src, " >", tgt) n = int(input(' Sisesta ketaste arv: ' )) movetower(n,'a','b','c') 14 / 19
49 Naide: puu joonistamine 15 / 19
50 Naide: puu joonistamine import turtle def tree(length, level ): if level <= 0: return turtle.forward(length) turtle. left (45) tree (0.6 length, level 1) turtle. right(90) tree (0.6 length, level 1) turtle. left (45) turtle.backward(length) return turtle. left (90) tree (100,6) 16 / 19
51 Naide: Sierpinski kolmnurk 17 / 19
52 Naide: Sierpinski kolmnurk def sierpinski (length, level ): if level > 1: turtle.dot() if level == 0: turtle.stamp() else: turtle.forward(length) sierpinski (length/2, level 1) turtle.backward(length) turtle. left () turtle.forward(length) sierpinski (length/2, level 1) turtle.backward(length) turtle. left () turtle.forward(length) sierpinski (length/2, level 1) turtle.backward(length) turtle. left () 18 / 19
53 Suur tanu osalemast ja kohtumiseni!
Programmeerimine. 15. loeng
Programmeerimine 15. loeng Tana loengus Sabarekursioon vs. iteratsioon Erinevad rekursiooniskeemid Naiteid: { Hanoi tornide ulesanne { Puu joonistamine { Sierpinski kolmnurk Sabarekursioon Kui k~oik tegevused
Nadere informatieProgrammeerimine. 14. loeng
Programmeerimine 4. loeng Tana loengus Rekursiooni m~oiste Rekursiooni baas ja samm Rekursiivsete funktsioonide naiteid Rekursioon Rekursioon on funktsioonide deneerimise meetod, kus deneeritav funktsioon
Nadere informatieProgrammeerimine. 8. loeng
Programmeerimine 8. loeng Tana loengus Tekstifailist lugemine Eeldeneeritud operatsioonid jarjenditel Jarjendi koostamine elementhaaval Tekstifailist lugemine 3 / 20 Tekstifailist lugemine Faili valjatrukk
Nadere informatieProgrammeerimine. 7. loeng 1 / 31
Programmeerimine 7. loeng 1 / 31 Tana loengus Listi m~oiste Jarjendid ja massiivid Listid, ennikud ja s~oned Massiivide tootlemine Jadaiterator ja maaratud tsuklid Eeldeneeritud operatsioonid jarjenditel
Nadere informatieProgrammeerimine. 6.loeng 1 / 1
Programmeerimine 6.loeng 1 / 1 Tana loengus Algoritmidest Plokkskeemidest 2 / 1 Algoritm I 9. sajandi araabia matemaatiku Muhammad ibn M^us^a al-khw^arizm^ huudnimi tema sunnilinna tolleaegse nime jargi
Nadere informatieProgrammeerimine. 7. loeng
Programmeerimine 7. loeng Tana loengus Jadaiterator ja maaratud tsuklid Jarjendid ja massiivid Listid, ennikud ja s~oned Massiivide tootlemine Eeldeneeritud operatsioonid jarjenditel Jadaiteraator Pythonis
Nadere informatieMeasurement form LymphScanner: arm 1 Meetformulier LymphScanner: gehele arm 1
Measurement form LymphScanner: arm 1 Meetformulier LymphScanner: gehele arm 1 Patient name / Patiëntnaam: Date / Datum: Date / Datum: length / lengte Left Right length / lengte length / lengte Left Right
Nadere informatieTentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 2, 2016 Simulatie Uitrekenen of simpelweg heel vaak uitproberen... Wissel je van garagebox? Simulatie: als benadering van niet of moeilijk
Nadere informatieProject Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar 2014-2015
Project Embedded Linux Domaza Elektronica-ICT Dimitri Kozakiewiez Jonas Govaerts Academiejaar 2014-2015 Campus Geel, Kleinhoefstraat 4, BE-2440 Geel 5 2 INHOUDSTAFEL INHOUDSTAFEL... 2 1 DOMAZA... 3 1.1
Nadere informatieToetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018
Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II Duur: 70 minuten Datum: sept 2018 Stof: Basiskennis van vorig jaar, (Eigen) Functies & parameters, Loops (for en while), Turtle
Nadere informatie64 voor de BBC micro:bit
Bordindeling: De: GAME 64 is een programmeerbare gamepad voor de BBC micro:bit. Het beschikt over 64 adresseerbare LED's in een 8 x 8 display, een piezo-zoemer voor audiofeedback, een vibratiemotor voor
Nadere informatieSPOJ oplossingen Gilles Callebaut 7 augustus 2015
SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je
Nadere informatieextra oefening algoritmiek - antwoorden
extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.
Nadere informatieTentamen 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 informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieTree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011
15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree
Nadere informatieProgrammeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 19, 2018 Overzicht Grafische programma s en tekstgebaseerde programma s Stijladviezen (Jeff Knupp, Writing Idiomatic Python) File Processing (Zelle 5.9.2)
Nadere informatieJava Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Nadere informatieSeven segments of Pi
Seven segments of Pi Seven segments of pi Aan de slag met seven segments of Pi! Seven segments is een klein add-on boardje voor de raspberry pi. Deze add-on bestaat uit een display en een knopje. Meer
Nadere informatieInleiding 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 informatieProgrammeerimine. 2. loeng
Programmeerimine 2. loeng Tana loengus Nimed Muutujad Baastuubid Litaraalkonstandid Omistamine Aritmeetilised avaldised Taisarvude esitamine arvutis Ujukomaarvude esitamine arvutis Muutujad Imperatiivses
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft
Nadere informatieProgrammeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:
Programmeren PYTHON OEFENTENTAMEN 2 Naam: Studentnummer: Schrijf jouw antwoorden op dit tentamen Tijd: 2 uur Maximaal aantal punten: 32 Menselijke interpreter (6 punten) 0. (1 punt) Wat is de uitkomst
Nadere informatieTree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen
Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november
Nadere informatieInhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren
Inhoudsopgave Voorwoord... 5 Voordat je begint... 6 Wat heb je nodig?... 7 De website bij het boek... 7 Voor ouders, verzorgers en leraren... 8 Vervolgboeken over programmeren... 8 1. Aan de slag met Python
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)
Nadere informatieProgrammeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Nadere informatieProgrammeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27
Programmeren 0. (1 punt.) Stel, een "afhankelijk kind" is een persoon is die jonger is dan 18 jaar, en hooguit 8.000 euro verdient. Welke van de onderstaande expressies definieert een afhankelijk kind?
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord December 17, 2018 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True : gohome () Goed:
Nadere informatieElementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Nadere informatieSemantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)
Jos Baeten josb@wintuenl http://wwwwintuenl/~josb/ HG 719 tel: 040 247 5155 Hoorcollege 3 (12 april 2007) Voorbeeld [Bewijstechniek 2 niet altijd succesvol] Executie van commands is deterministisch: c
Nadere informatieVaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.
PHP Les 5 : Interessante links: o http://www.dbzweb.be/moermant/ o http://www.ivobrugge.be/cursusweb/html4/formulieren.asp Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende
Nadere informatieProgrammeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Nadere informatieProgrammeren met Grafische Objecten. Inleiding Programmeren II Hoorcollege 1 prof. dr. van Noord en dr. L.M. Bosveld-de Smet
Programmeren met Grafische Objecten Inleiding Programmeren II Hoorcollege 1 prof. dr. van Noord en dr. L.M. Bosveld-de Smet Onderwerpen van vandaag Programming Paradigms Imperatief programmeren Object-georiënteerd
Nadere informatieControle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2
Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 19, 2016 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True
Nadere informatieOvererving & Polymorfisme
Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit
Nadere informatieDerde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2018/Complexiteit Derde college algoritmiek 2 februari 2018 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2018/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieCoderingen per project
198 ALLES OP EEN RIJ Coderingen per project Hier vind je de complete Python-codering voor elk project in dit boek, behalve voor de hacks en tweaks. Werken je projecten niet goed, controleer je scripts
Nadere informatieProgrammeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x
Nadere informatieVierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieAchtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren
Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=
Nadere informatie(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Nadere informatieOEFENINGEN PYTHON REEKS 1
OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en
Nadere informatieProgrammeermethoden 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 informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieNiet-numerieke data-types
Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,
Nadere informatieDIA Opdracht 4 (Arjan Dekker)
DIA Opdracht 4 (Arjan Dekker) Place klasse: #Deze klasse wordt gebruikt in zowel de client als de server #Daarom deze klasse in apart bestand gezet, die geinclude wordt #door zowel de server als client
Nadere informatieJavascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Nadere informatieDerde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2019/Complexiteit Derde college algoritmiek 22 februari 2019 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2019/Complexiteit Opgave 1 bomenpracticum Niet de bedoeling: globale (member-)variabele
Nadere informatieTentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Nadere informatieDeel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Nadere informatieREEKS I. Zaterdag 6 november 2010, 9u
TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS I Zaterdag 6 november 2010, 9u NAAM :... VRAAG 1: MINSTENS [5 PUNTEN] Schrijf een methode minstens(), met twee
Nadere informatieDerde college algoritmiek. 16/17 februari Toestand-actie-ruimte
Derde college algoritmiek 16/17 februari 2017 Toestand-actie-ruimte 1 Toestand-actie-ruimte Probleem Toestand-actie-ruimte Een toestand-actie-ruimte (toestand-actie-diagram, state transition diagram, toestandsruimte,
Nadere informatieUtlGefOpen Documentation
UtlGefOpen Documentation Release 1 waterbug February 01, 2016 Contents 1 Downloads 3 2 Inhoudsopgave 5 2.1 Gebruik Gef2Open.py.......................................... 5 2.2 Functies..................................................
Nadere informatieProgrammeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 8 mei 2014 Bijeenkomst 6 Onderwerp Tips met betrekking tot debuggen Animaties, simulaties en spellen Pygame: de basis 8 mei 2014 1 Algemene
Nadere informatieAlgoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen
Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen
Nadere informatieProgrammeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 22 april 2014 Inleiding Cursus coördinator e-mail Docent e-mail : Jacco Hoekstra : J.M.Hoekstra@TUDelft.nl : Ingeborg Goddijn : I.A.M.Goddijn@TUDelft.nl
Nadere informatie8C080 deel BioModeling en bioinformatica
Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 13 maart 2009, 09.00-12.00u. Het tentamen bestaat uit 2 delen, een deel van BioModeling & bioinformatics en een deel van BioMedische Beeldanalyse.
Nadere informatieProgrammeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Nadere informatieDatastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
Nadere informatieRecursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!
Recursie Faculteit: in de wiskunde: n! is gedefiniëerd als: 0! = 1 n! = n (n 1)! in Java: public static int faculteit( int n ) // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!
Nadere informatiePracticumopgave Mehmet Oktener
Practicumopgave Mehmet Oktener Alban Ponse Kruislaan 403, kr. 2.45 tel. 5257592 e-mail: alban@science.uva.nl Algemeen. In deze serie opgaven komt de specificatie van data typen aan de orde. Je wordt geacht
Nadere informatieA Python Crash Course
A Python Crash Course Dr. A.A.N. Ridder 12 september 2016 Samenvatting In dit document staan puntsgewijs een aantal kenmerken van de syntaxis van Python 2 (en veranderingen in Python 3) voor de cursus
Nadere informatieVoorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen
Voorbeelden Sorteren Schrijf een programma dat een rij gehele getallen sorteert een eerste functie leest de rij gehele getallen; een tweede functie sorteert deze getallenrij van klein naar groot; een derde
Nadere informatieDerde college algoritmiek. 18 februari Toestand-actie-ruimte
Derde college algoritmiek 18 februari 2016 Toestand-actie-ruimte 1 BZboom: zoeken Na het bomenpracticum 60 20 80 10 40 70 100 1 15 30 75 5 25 35 2 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5
Nadere informatieRuwe uitwerkingen proeftentamen Bioinformatica deel B(8C078), 12 januari 2007, u.
Ruwe uitwerkingen proeftentamen Bioinformatica deel B(8C078), 12 januari 2007, 13.30-15.00u. Drie algemene opmerkingen Het tentamen bestaat uit 3 opgaven. Onderaan de pagina staat voor iedere opgave het
Nadere informatieIngebouwde klassen & methodes
Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private
Nadere informatieDerde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Nadere informatieProgrammeermethoden NA. Week 4: Files & Functies
Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Vorige week: Controlestructuren # gegeven # 0
Nadere informatieDerde college algoritmiek. 23 februari Toestand-actie-ruimte
College 3 Derde college algoritmiek 23 februari 2012 Toestand-actie-ruimte 1 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5 25 35 100 verwijderen = 60 20 80 10 40 70 1 15 30 75 5 25 35 verwijderen
Nadere informatieHandleiding: Gebruikersinterface met Python
Handleiding: Gebruikersinterface met Python Inhoudsopgave Gebruikershandleiding PyGame... 2 Algemene mal voor een PyGame venster... 2 Scherm coördinaten... 2 Algemene mal voor een PyGame spel... 2 Achtergrond
Nadere informatieVijfde college algoritmiek. 2/3 maart Exhaustive search
Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)
Nadere informatieArrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatieTentamen Objectgeorienteerd Programmeren
Tentamen Objectgeorienteerd Programmeren 5082IMOP6Y maandag 16 november 2015 13:00 15:00 Schrijf je naam en studentnummer op de regel hieronder. Sla deze pagina niet om tot de surveillant vertelt dat het
Nadere informatieVoorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
Nadere informatieOm te kijken of x, y, z samen een driehoek specificeren hoeven we alleen nog maar de driehoeksongelijkheid te controleren: x, y, z moeten voldoen
Feedback Software Testing, Opdrachten Week 1 Driehoek-test Deze opdracht is in het algemeen zeer goed uitgevoerd. Algemeen valt in vergelijking met vorig jaar op dat de ingeleverde oplossingen veel minder
Nadere informatieString Matching. Algoritmiek
String Matching Algoritmiek String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2 String Matching (formeel)
Nadere informatie[P5] Project: Bellenschieter
[P5] Project: Bellenschieter Vereiste voorkennis: fiches [7] [8] [9] [11] [12] [13] [14] [18] (dit programma is sterk geïnspireerd door het boek Programmeren voor kinderen van Carol Vorderman) Opdracht
Nadere informatieHOE%LAAT%KOMT%MIJN%TRAM?-
Profielwerkstuk Opensource,opendata&Hoelaatkomtmijntram? SvenBoor&ArjenKremers GymnasiumNovum OPEN%SOURCE,%OPEN%DATA%& HOE%LAAT%KOMT%MIJN%TRAM? SvenBoor&ArjenKremers GymnasiumNovum 12maart2013 1 Profielwerkstuk
Nadere informatieHoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding
Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend
Nadere informatieKwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
Nadere informatieComputationale Intelligentie Dirk Thierens
Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets
Nadere informatieUitwerking tentamen Algoritmiek 9 juni :00 17:00
Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één
Nadere informatiePythoncursus. week 2. cs.ru.nl/pythoncursus
Pythoncursus week 2 Algoritmes Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leiden. - Wikipedia Een probleem stapsgewijs oplossen While-loops
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 14 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Willekeurig gebouwde zoekbomen Willekeurig gebouwde zoekbomen Hoogte van zoekboom met
Nadere informatieMinimum Opspannende Bomen. Algoritmiek
Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van
Nadere informatieextra oefeningen - antwoorden
extra oefeningen - antwoorden inkomstenbelasting var salaris = Number(prompt("Voer een salaris in hele Bibra in.")); var rest = salaris; // Houd steeds het rest salaris bij. var belasting = 0; // Houd
Nadere informatieTEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR
TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2011-2012 Zaterdag 5 november 2011, 9u30 NAAM :... VRAAG 1: EVEN VEEL [5 PUNTEN] Schrijf een methode evenveel(), met twee argumenten,
Nadere informatieObjectgericht programmeren 1.
Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie
Nadere informatie8C080 deel BioModeling en bioinformatica
Vijf algemene opmerkingen Tentamen Algoritmen voor BIOMIM, 8C080, 22 april 2009,14.00-17.00u. Het tentamen bestaat uit 2 delen, een deel van BioModeling & bioinformatics en een deel van BioMedische Beeldanalyse.
Nadere informatie