logo
Sett 1
Algoritmer og datastrukturer
IT, Høgskolen i Østfold
AlgDat 12 > Oppgaver > Sett 1

Øvingsoppgaver - Java repetisjon: Løkker, tabeller og referanser

Oppgavesett 1

Her er noen oppgaver til å starte opp med. Dette oppgavesettet er å regne som oppvarming, og er ikke med blant settene som brukes til de obligatoriske innleveringene. De som leverer, vil likevel få tilbakemelding. Innleveringen skal bestå av en pdf-fil med korte kommentarer og dokumentasjon (utskrifter etc.). Legg også ved godt dokumenterte java filer. Alt pakkes i en zipfil, med navn assignment01-*.zip der * er etternavnene til gruppemedlemmene. Javafilene skal tilhøre en pakke med navn package assignment01. Oppgavene blir tema på øvingen fredag 20. januar. Fristen for innlevering er tirsdag 24.januar 09:00.

Oppgave 1

A)

Lag en funksjon void countDownFor(int from, int to) som teller ned ved å skrive ut til System.out tallene fra og med from til og med to, ved å bruke en for-løkke.

B)

Lag en tilsvarende funksjon void countDownWhile(int from, int to) ved å bruke en while-løkke.

C)

Lag en funksjon void countOdd(int from, int to) som skriver ut alle oddetall fra og med from til og med to.

* D)

Lag en tilsvarende funksjon countDownRecursive(int from, int to) ved hjelp av rekursjon (vi har ennå ikke begynt på rekursjon, dette er en stjernemerket oppgave :-).

Oppgave 2

Implementer funksjonen int pow(int a, int n) som returnerer verdien an , dvs. a opphøyd i n'te potens.

Oppgave 3

A)

Implementer funksjonen void reverseArrWithExtraArr(int[] arr) som revererser tabellen arr ved å bruke en ekstra hjelpetabell. Test funksjonen ved å lage en tabell med lengde 10 som er fylt opp med tilfeldige tall (Tips: Klassen java.util.Random har mange kjekke funksjoner, f.eks. int nextInt() og int nextInt(int n)).

B)

Implementer en tilsvarende funksjonen void reverseArrNoExtraArr(int[] arr) som ikke bruker en ekstra hjelpetabell, og test funksjonen på samme måte.

C)

Vi har gitt følgende klasse:

public class Node { public int value = 42; public Node(int i) { value = i; } }

Lag funksjonen void reverseArrSwapValues(Node[] arr) som revererser tabellen arr ved å gjentatte ganger bytte verdiene i to celler i tabellen, og som dermed ikke bruker noen hjelpetabell. Test funksjonen som i forrige oppgave.

D)

Programmer funksjonen void reverseArrSwapReferences(Node[] arr) som revererser tabellen arr ved å gjentatte ganger bytte referansene i to celler i tabellen. Test funksjonen som i forrige oppgave.

* Oppgave 4

Lag et program som løser Tårnet i Hanoi for et vilkårlig antall ringer. Du behøver ikke lage noe fancy brukergrensesnitt, men tilstanden for hvert flytt må illustreres på en eller annen måte, f.eks. ved utskrift til System.out.

Gunnar Misund, 13.jun.2012