Gå til innhold

Skoleoppggave: Analyse av tekst


Anbefalte innlegg

Under følger en skoleoppgave. Jeg vil tro at selve programmeringen vil gå sånn halveis greit, bare jeg hadde skjønt oppgaven. Noen som forstår den bedre enn meg?

 

I denne oppgaven skal du lage en klasse for tekstanalyse. Teksten er et objekt av klassen String, og du får tak i tegnet på en bestemt posisjon ved å bruke metoden charAt(). Lengden av teksten er gitt ved metoden length(). Følgende kodebit illustrerer bruken av metodene charAt() og length() og gir også tips om hvordan resten av oppgavene kan løses (a-z og A-Z ligger etter hverandre i Unicode-tegnsettet, se vedlegg D).

 

for (int i = 0; i < tekst.length(); i++) {

char tegn = tekst.charAt(i);

int verdi = tegn;

System.out.println("Unicode-verdien til tegnet " + tegn + " på posisjon " + i + " er " + verdi);

 

Som objektvariabel i klassen Tekstanalyse skal du ha en tabell av int:

 

int[] antallTegn = new int[30];

 

I denne tabellen gjelder at indeks 0-28 inneholder antall forekomster i en tekst av bokstavene a-å, mens indeks 29 inneholder antall forekomster av alle andre tegn enn bokstaver, for eksempel mellomrom, komma og punktum. Vi skiller ikke mellom store og små utgaver av en bokstav.

 

Kontruktøren skal ta den aktuelle teksten som argument og fylle opp tabellen antallTegn med antall tegn av en bokstav.

 

Etter tabellen antallTegn er fylt opp, skal en klient kunne få utført følgende tjenester.

> Finn antall forskjellige bokstaver i teksten. Her ser vi altså bort fra alle andre tegn enn bokstaver.

> Finn titalt antall bokstaver i teksten.

> Hvor stor del av teksten (prosent) er ikke bokstaver.

> Finn antall forekomster av en bestemt bokstav. Bokstaven skal være parameter til metoden.

> Hvilken - eller hvilke, om det er flere som forekommer like ofte - bokstaver forekommer oftest i teksten?

 

Lag et klientprogram som går i løkke. I hvert løkkegjennomløp skal klienten skrive inn en tekst, og resultatet av alle analysene foran skal skrives ut.

Lenke til kommentar
Videoannonse
Annonse

Lag en klasse "Tekstanalyse" eller hva du vil kalle den.

 

I konstruktøren skal du ha parameter "String text(ellerhvaduvil)", så skal du plusse på i tabellen "antallTegn" på tegnes posisjon, feks a = antallTegn[0], er a første bokstav i teksten 'a', plusser du på 1 i antallTegn[0];

sånn gjør du for hver plass. bruk for-løkke til dette.

 

i main metoden skal brukeren av klassen gjøre de forskjellige oppgavene(metodene) som du listet opp.

De metodene er da bare å hente info fra tabellen.

kjør main-metoden i en do-while løkke som stopper når brukeren skriver inn feks "exit".

 

Tror det skal være enklere å forstå nå :)

Om ikke, spør så kan jeg prøve bedre :)

  • Liker 2
Lenke til kommentar

Innlegget ditt er av typen "Jeg gidder ikke å lære meg Java siden det alltid finnes noen asosiale fjotter på Javaforumet som kan gjøre leksene mine". Og slike innlegg er jeg mektig lei av å se her på dette forumet. Hvis skoleoppgaven er uklar, så bør du gå til læreren og be ham forklare bedre.

 

Folk som poster leksene sine i dette forumet oppnår to ting:

 

1) Irriterer meg

2) Vil aldri klare å lære noe på egen hånd, fordi det faktisk alltid er en eller annen fjott som enten hjelper dem langt på vei, eller løser hele oppgaven for dem

 

Werner

Lenke til kommentar

Gretten, som vanlig. Nybegynnere er omtrent de eneste som holder dette delforumet i live.

 

Men når det er sagt, så kan førsteinnlegget gi inntrykk av at man ikke en gang har forsøkt. Begynn, støt på problemer, bruk lang tid på å finne ut av dem, og hvis man fortsatt står fast etter å ha strevd en god del - da kan forumet være et greit sted å få hjelp (til det konkrete problemet, ikke oppgaven i sin helhet). Man lærer gjerne mer av å finne ut av ting selv, og det vil oppleves som mer givende.

Lenke til kommentar

For å prøve å svare på spørsmålet ditt "hadde jeg bare skjønt oppgaven."

Oppgaven går ut på å lage en klasse Tekstanalyse, jeg regner med at læreboken dere bruker har gode beskrivelser på hvordan man lager klasser, da dette er ekstremt essensielt for Java. I den klassen skal du ha en konstruktør (hva dette er finner du under beskrivelsen til hvordan man lager klasser) som tar inn en variabel av objektet String. Denne String variabelen skal du så gå gjennom tegn for tegn og finne ut hvilket tegn av mengden {"a","b",...,"å",<andre tegn>} gjeldende tegn er, for å så øke i tabellen beskrevet i oppgaven i forhold til tegnet. Klassen skal også inneholde metoder for de forskjellige analysepunktene du nevner.

 

Dette er egentlig en veldig enkel oppgave, men det krever at du gidder å lese deg til de forskjellige metodene klassen String inneholder. (Eclipse er et veldig godt IDE og er slår automatisk opp metodene til klasser osv.)

Lenke til kommentar

Oppgaven gikk passe greit etter noen timer med diskusjon rundt den.

 

Bruker denne boka på skolen: http://javabok.no/

Personlig synes jeg og flere i klassen at boken er ganske uforståelig. Både når det gjelder forklaring og oppgaver.

 

Som skrevet var det forståelsen av selve oppgaven som var problemet og ikke JAVA-en i seg selv. Så ja, det er riktig om dere fikk forståelse av at jeg virkelig ikke hadde prøvd - for jeg visste ikke helt hvor jeg skulle starte - eller hvor Unicode kom inn i bildet.

 

Etter litt prøving og feiling, og diskusjon rundt unicode, så kom vi til en plan hvordan det hele skulle gjennomføres og deretter en akseptabel løsning til slutt :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...