Denne videoen viser hvordan man kan komme i gang med oppgave 1 og oppgave 4 fra obligen i Java. I tillegg live-programmerer et program som tester oppgave 4, som innebærer å implementere et binært søketre i Java. Videoen er fra i fjor, men oppgavene som nevnes er uendret fra i tidligere.
Oppgave 1
For å kjøre en test i Java kan du gjøre følgende:
$ javac *.java $ java Teque < inputs/eksempel_input 3 5 9 5 1
Tilsvarende i Python:
$ python3 teque.py < inputs/eksempel_input 3 5 9 5 1
Her antar vi at du har lastet ned inputfilene som ligger innenfor en mappe som også inneholder Teque.java eller teque.py.
For å teste på større eksempler kan du gjøre en av følgende:
$ java Teque < inputs/input_100 | cmp - outputs/output_100 $ python3 teque.py < inputs/input_100 | cmp - outputs/output_100
Dersom ingenting skjer passerer testen. Dersom testen ikke passerer vil du få en utskrift som kan se slik ut:
$ java Teque < inputs/input_100 | cmp - outputs/output_100 - outputs/output_100 differ: char 1, line 1
Vi forventer ikke at programmet ditt er raskt nok til å håndtere alle testene. Løsningsforslaget løser input_1000000 på ca. 1 sekund.
Oppgave 3
Denne oppgaven kan testes på samme måte som oppgave 1.
Oppgave 4
For å teste programmet ditt kan du bruke programmet BalanceChecker.java (som må kompileres med javac BalanceChecker.java):
$ seq 20 | java BalanceArray | java BalanceChecker
Eller for Python:
$ seq 20 | python3 balancearray.py | java BalanceChecker
Dersom programmet gjør som det skal bør du få følgende utskrift:
Dette treet ser balansert ut!
Dersom programmet ditt inneholder en feil bør du i stedet se:
$ seq 20 | java BalanceArray | java BalanceChecker Dette treet ser ikke helt balansert ut... prøv igjen!
Programmet bør fungere helt likt for oppgave (a) og (b). Altså kan du også kjøre følgende:
$ seq 20 | java BalanceHeap | java BalanceChecker Dette treet ser balansert ut!
Eller for Python:
$ seq 20 | python3 balanceheap.py | java BalanceChecker Dette treet ser balansert ut!