Vragen inleiding tot computerwetenschappen januari 2018 (RECONSTRUCTIE): Theorie:
1. schrijf een functie om machtsverheffing te doen, zo efficiënt mogelijk. Leg uit waarom deze efficiënter is.(dit is fastpower in de slides). f(3,2)→ 9
2. Schrijf een functie om wortels te berekenen en is deze exact? (Met formule van Newton & neen, het is een benaderingsmethode…)
3. Bewijs dat niet alle functies f: N → N berekenbaar zijn. Oefeningen:
4. Schrijf een functie (predicaat) die controleert of een bepaald getal de som is van twee getallen in een lijst. (met geneste for). f([1,2,3,5,9],10)→True
5. Dit was een lange vraag die een toepassing op bio was met monomeren en polymeren. Monomeren worden voorgesteld als hoofteletters. Polymeren zijn een combinatie van monomeren. Polymeren kunnen een partitie hebben (deel dat steeds herhaald wordt). Deze worden voorgesteld als (p)n. Waarbij p voor de partitie staat en n voor het aantal keer dat die partitie voorkomt.
a. Schrijf een functie die een polymeer als invoer verwacht en het als een string van A’s, B’s en C’s zal weergeven. Indien het dus geen partitie heeft moet het gewoon teruggegeven worden. Als het wel een partitie heeft moet de lage versie weergegeven worden. f(‘(ABC)3’)→’ABCABCABC’, f(‘ACBC’)→’ACBC’
b. Schrijf een predicaat dat controleert of een polymeer een partitie bevat. f(‘AABCBCBC’,’AB’)→False, f(‘ABABAB’,’AB’)→ True
c. Schrijf een functie die gegeven een polymeer controleert of deze een partitie bevat, met een optioneel argument dat zegt hoe vaak de partitie minimaal moet voorkomen. Dit optioneel argument staat standaard op 1. (Deze functie moet het predicaat van 5c gebruiken) f(‘ABCBCB’)→ ‘ABCBCB’, f(‘ABABAB’)→’AB’, f(‘ABC’,2)→None
d. Schrijf een functie die gebruikmakend van de functies uit 5b & 5c de verkorte notatie van een ingegeven polymeer. Indien er geen verkorte notatie mogelijk is geeft deze functie de hele polymeer terug. f(‘ABABAB’)→’(AB)3’, f(‘ABCBCB’)→ ‘ABCBCB’
6. a. Schrijf een klasse Verkeerslicht met 1 attribuut: toestand. Bij het aanmaken kan je ofwel niets meegeven en dan is de toestand ‘rood’ ofwel een optioneel argument dat enkel ‘rood’, ’oranje’ of ‘groen’ kan zijn. Bij een andere invoer wordt de toestand op ‘rood’ gezet en een
waarschuwing geprint.
b. Gebruik __str__ om een functie te schrijven die ervoor zorgt dat de toestand van het object weergegeven wordt wanneer je het print. print(verkeerslicht)→’rood)
c. Schrijf een methode volgende die de toestand veranderd: ‘rood’→’groen’, ‘groen’→’oranje’, ’oranje’→’rood’.