REEKS II. Zaterdag 6 november 2010, 11u

Vergelijkbare documenten
REEKS I. Zaterdag 6 november 2010, 9u

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR

Wiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing.

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Modelleren en Programmeren

Programmeren in Java les 3

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

Informatica: C# WPO 7

Modelleren en Programmeren

Informatica: C# WPO 9

Recursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!

Programmeren (1) Examen NAAM:

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Modelleren en Programmeren

Examen Datastructuren en Algoritmen II

Recursie: definitie. De som van de kwadraten van de getallen tussen m en n kan als volgt gedefinieerd worden:

Informatica: C# WPO 11

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

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

Achtste college algoritmiek. 8 april Dynamisch Programmeren

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

17 Operaties op bits Bitoperatoren en bitexpressies

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

ALGORITMIEK: antwoorden werkcollege 5

Objectgericht programmeren 1.

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

meerkeuzevragen informatica jan 2007

Modelleren en Programmeren

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

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

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

Vakgroep CW KAHO Sint-Lieven

Derde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

Examen Datastructuren en Algoritmen II

Combinatoriek groep 1 & 2: Recursie

Talstelsels en getalnotaties (oplmodel)

Modelleren en Programmeren

Informatica. Hoofdstuk 1

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Een eenvoudig algoritme om permutaties te genereren

NAAM: Programmeren 1 Examen 29/08/2012

Zevende college Algoritmiek. 6 april Verdeel en Heers

Vijfde college algoritmiek. 2/3 maart Exhaustive search

Informatica: C# WPO 10

Examen Datastructuren en Algoritmen II


Niet-numerieke data-types

Algoritmen, Datastructuren en Complexiteit ( ) Uitwerkingen

Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica :

Tweede college algoritmiek. 12 februari Grafen en bomen


Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

PYTHON REEKS 1: BASICS. Mathias Polfliet

VOORBLAD SCHRIFTELIJKE TOETSEN

Examen Datastructuren en Algoritmen II

1 Inleiding in Functioneel Programmeren

Modelleren en Programmeren: Prolog

Informatica toets vwo 6 Databases

Zevende college algoritmiek. 24 maart Verdeel en Heers

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

WI1808TH1/CiTG - Lineaire algebra deel 1

Programmeermethoden NA. Week 5: Functies (vervolg)

Hoe een TomTom een sudoku oplost

Inleiding Programmeren 2

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Lessen Java: Reeks pag. 1

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Herkansingstentamen Algoritmiek voor Biologen

Tentamen Programmeren in C (EE1400)

Examen Datastructuren en Algoritmen II

Informatica: C# WPO 13

Lineaire data structuren. Doorlopen van een lijst

Stelsels Vergelijkingen

Datastructuren college 10

7 Omzetten van Recursieve naar Iteratieve Algoritmen

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Matrixalgebra (het rekenen met matrices)

Lab Webdesign: Javascript 3 maart 2008

Informatica: C# WPO 12

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

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

(On)Doenlijke problemen

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

SEQUENTIE-STRUCTUUR. Oefening: Dichtheid

3. Structuren in de taal

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Inleiding Programmeren 2

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Programmeermethoden NA. Week 6: Lijsten

Transcriptie:

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS II Zaterdag 6 november 2010, 11u NAAM :... VRAAG 1: AFSTAND [5 PUNTEN] In deze oefening gaan we opzoek naar identieke karakters in een String. Het is de bedoeling om in een String de maximale afstand te vinden tussen twee identieke karakters. Schrijf een methode maxafstand(), met één argument van het type String. De methode geeft de maximale afstand tussen twee gelijke karakters in de String terug. Indien de String s geen identieke karakters bevat, is het resultaat -1. Afstanden worden gemeten volgens de positie van de karakters: staat een karakter op postie i en een ander op positie j, dan is hun onderlinge afstand i-j. VOORBEELDEN s maxafstand(s) "1111111" 1 "123451223334444" 8 "123454321" 8 "12345" -1 "1233231554" 6 ANTWOORD (10-TAL LIJNEN JAVA) : static int maxafstand(string s) { int m=-1; for(int i=0;i<s.length();i++) { char c=s.charat(i); int d=s.indexof(c,i+1); if((d-i)>m) m=(d-i); return m;

VRAAG 2: SPECIALE GETALLEN [5 PUNTEN] Opdat het getal g "speciaal" zou zijn, dient het aan volgende twee voorwaarden te voldoen (i) g*g moet uit dubbel zoveel cijfers bestaan dan g (ii) we splitsen g*g op in twee stukken: als n het aantal cijfers uit g voorstelt, dan noemen we x het getal dat tot stand komt door de eerste n cijfers uit g*g te beschouwen, en y idem voor de laatste n cijfers uit g*g. Opdat g "speciaal" zou zijn moet gelden dat x+y==g. Schrijf een methode isspeciaal(), met één positief geheel argument g van het type int. De methode geeft waar terug indien het getal g speciaal is, en vals in het andere geval. VOORBEELDEN g isspeciaal(g) 45 true 50 false want (i) g=45 (ii) g=50 (45)*(45) = 2025 bestaat uit 4 cijfers (het dubbel van het aantal cijfers in 45) EN x=20, y=25 -> x+y=45=g dus speciaal (50)*(50)=2500 -> x=25, y=0 -> x+y =25!= g dus NIET speciaal TIP: een getal n omzetten naar een String kan via ""+n ANTWOORD (10-TAL LIJNEN JAVA): static boolean isspeciaal(int n) { String getal=""+n; String kwadraat=""+(n*n); if(kwadraat.length()==2*getal.length()) { int d=(int)(math.pow(10, getal.length())); int x=(n*n)%d; int y=(n*n)/d; if((x+y)==n) return true; else return false; else return false;

VRAAG 3: RECURSIE : PALINDROOM[5 PUNTEN] Een palindroom is een String die identiek is aan zijn spiegelbeeld (m.a.w. van voor naar achter gelezen identiek als van achter naar voor). Voorbeelden zijn "lepel" en "meetsysteem". Schrijf een RECURSIEVE methode ispalindroom(), met één argument s van het type String. De methode geeft waar als resultaat indien s een palindroom is, en vals in het andere geval. Strings van lengte 0 (geen karakters) of 1 worden bij definitie palindromen genoemd. VOORBEELDEN s ispalindroom(s) "lepel" true "meetsysteem" true "meetapparaat" false "e" true "" true LET OP: de methode MOET recursief zijn en mag geen lusconstructies bevatten. ANTWOORD (5-TAL LIJNEN JAVA) static boolean ispalindroom(string s) { if(s.length()<2) return true; else if(s.charat(0)==s.charat(s.length()-1)) return ispalindroom(s.substring(1,s.length()-1)); else return false;

VRAAG 4 [5 PUNTEN] Let op: er wordt een giscorrectie in rekening gebracht. A. Complexiteit I [1 punt] Gegeven onderstaande methode f(). static int f(int N) { int M=3*N*N/(int)Math.log(N); int s=0; for(int i=0;i<n;i++) for(int j=0;j<m;j++) s+=(i*j)*n; return s; Hoeveel van onderstaande uitspraken zijn correct i.v.m. de complexiteit van deze methode? (i) f() is O(N 3 ) (ii) f() is O(N 2 ) (iii) f() is O(N) A. 0 B. 1 C. 2 D. 3 B De opdracht s+=(i*j)*n wordt 3N 3 /log N keer uitgevoerd. Het algoritme is dus O(N 3 /log N) en dus is enkel uitspraak (i) correct. B. Complexiteit 2 [1 punt] Volgend algoritme heeft als invoer het getal de matrix a (N rijen en N kolommen) en de rij c={c 0,..., c N-1. De notatie a ij staat voor het element van a op rij i en kolom j. De notatie c i staat voor het element op positie i uit de rij c. Het resultaat van het algoritme is het getal g, terwijl ook gebruik gemaakt wordt van de rij d (N elementen) die een tussenresultaat bevat. 1. Herhaal voor i=0 t.e.m. N-1 (in stappen van 1) 1.1 Initialiseer d i =0 2. Herhaal voor i=0 t.e.m. N-1 (in stappen van 1) 2.1 Herhaal voor j=0 t.e.m. N-1 (in stappen van 1) 2.2 Verhoog d i met a ij *c j 3. Bereken g als de som van alle elementen van d 4. Einde algoritme Hoeveel van onderstaande uitspraken omtrent de complexiteit van dit algoritme zijn correct? (i) Dit algoritme is O(N 2 ) (ii) Dit algoritme is O(N log N) (iii) Dit algoritme is O(N) A. 0 B. 1

C. 2 D. 3 B Stap 2.2 wordt N 2 keer uitgevoerd, dus is het algoritme O(N 2 ) (stappen 1 en 3 zijn beiden lineair in N). Enkel uitspraak (i) is dus correct. C. Bitoperatoren [1 punt] Wat is de waarde van k na uitvoering van onderstaand programma-fragment? A. -1 B. -2 C. -3 byte i=-13; byte j=3; byte k=(byte)((i>>j)&(-1)); D. Geen van voorgaande alternatieven is correct. Bitpatroon van -13 luidt: 11110011 B 3 posities naar rechts schuiven (met inschuiven van tekenbit) levert : 11111110 Hetgeen -2 voorstelt. D. Lussen [1 punt] Wat is de waarde van t na uitvoering van onderstaand programma-fragment? A. 1 B. 3 C. 5 int a=10,b=0,n=3,t=0; do { a--; n+=2; b++; t++; while(!(a<n) (b<5)); D. Geen van de voorgaande alternatieven is correct. C

E. Oproepen van methoden [1 punt] Gegeven onderstaande methode f(). static int f(int t,string s) { for(int i=0;i<s.length();i++) t+=(int)(s.charat(i))-(int)'0'; return t; Wat is de waarde van t na uitvoering van onderstaand programma-fragment? A. 20 B. 26 C. 46 int t=20; t+=f(t,"123"); D. Geen van de voorgaande alternatieven is correct. C