Programutvikling V2015 — øvingsoppgaver for uke 12 og 13
Oppgave 1
I notatet
Collections — bruk av generiske datatyper
er det et
programeksempel
der programmet kan lese inn en tekstfil etter brukerens valg og telle opp
frekvensene for ordene i den valgte fil. Ord og frekvenser skrives ut med
ordene i alfabetisk rekkefølge. Du får som oppgave å modifisere dette
programmet slik at utskriften også er sortert med hensyn på voksende frekvenser.
Det vil si at at i utskriften fra programmet skal det først skrives alle ord som forekommer bare én
gang, og disse ord skal skrives i alfabetisk rekkefølge. Deretter skal det skrive
alle ord som forekommer to ganger, også disse i alfabetisk rekkefølge. Og
slik fortsetter det med alle ord i den leste fil. Følgende bilde viser et lite
eksempel på utskrift. (Ingen ord i den valgte fil forekommer mer enn to ganger.)
Hint: Opprett en liste på grunnlag av mengden av (nøkkel, verdi)-par som
du kan hente ut av den avbildning som brukes for å registrere ord og frekvenser.
Definer en komparator som definerer rekkefølge for to (nøkkel, verdi)-par.
Sorter lista på grunnlag av en slik komparator (det vil si med en slik
komparator som ekstra parameter i sorteringsmetoden). Skriv ut listas innhold
etter at den er sortert.
Oppgave 2
Lag et program som teller opp antall nøkkelord i en javafil. Brukeren av programmet
skal kunne velge fil og dette skal kunne gjøres gjentatte ganger. En oversikt over
Javas nøkkelord kan du finne på adressen
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html.
Fila noekkelord.txt inneholder nøkkelordene som er i bruk, med ett
nøkkelord per linje.
Oppgave 3
Lag en utvidet versjon av programmet fra oppgave 1. I denne versjonen skal programmet
telle opp hvor mange ganger de enkelte nøkkelordene forekommer i den javafil som brukeren
velger. Etter hver opptelling skal programmet skrive ut en oversikt over nøkkelordene og deres
antall forekomster i den valgte fil. På utskriften skal nøkkelordene stå i alfabetisk rekkefølge.
Også nøkkelordene som ikke forekommer i den valgte fil skal tas med. (Disse vil ha forekomst lik 0.)
Nøkkelord som på den oversikten det vises til i oppgave 1 er markert med en stjerne som indikasjon
på at de ikke er i bruk, skal ikke tas med i den oversikten som programmet lager.
Løsningsforslag
Oppgave 1
TreeMapDemo3.java
TreeTest3.java
Oppgave 2
Noekkelordteller.java
Noekkelordtelling.java
Oppgave 3
Noekkelordfrekvenser.java
Frekvenstelling.java