Ekstraoppgaver til Oblig 2 (INF1000 - H?st 2011)

Alle disse deloppgavene er frivillige (b?de 0, 7, 8, og 9). Du kan velge om du vil l?se ingen, en, eller flere av de.

Deloppgave 0 anbefales til alle, den gj?r det lettere ? l?se oppgave 1-4 i den vanlige obligen fordi den gir deg en enkel oversikt over hva du faktisk har registrert i arrayene dine. Deloppgave 7 og 8 anbefales for alle som har litt ekstra-tid fordi den vil lette arbeidet med Oblig 3, som er den mest arbeidskrevende i kurset. Oppgave 9 er ment for spesielt interesserte som ?nsker en utfordring.

0) Liste over solgte felt:
Programmet skal da g? gjennom alle feltene, og for de feltene som har eier skal programmet skrive ut p? skjermen feltnavnet, navnet p? oljeselskapet som eier det, og antall fat olje som er utvunnet i feltet.  Eksempel p? utskrift:
Felt 3-12 eies av Shell. Total utvinning i feltet: 0 fat
Felt 5-6 eies av Esso. Total utvinning i feltet: 80 fat
Felt 9-0 eies av Shell. Total utvinning i feltet: 50 fat
Til ? begynne med kan du skrive ut bare feltnumrene og selskapene, s? kan du utvide med total utvinning i feltene n?r du har l?st deloppgave 4 (Oppdater oljeutvinning) i den vanlige obligen. Til slutt kan du legge til utskrift av evt. felt som har noe oljeutvinning men ikke eier.

7) Skriv til fil:
Et lite problem med programmet beskrevet i obligen er at dataene man har registrert mens programmet kj?rer g?r tapt n?r det avsluttes. Hvis du ?nsker ? fikse dette kan du utvide programmet slik at det tar vare p? dataene ved ? lagre de i en datafil kalt olje.txt n?r brukeren utf?rer kommando "7". Du kan velge hvordan du lagrer dataene i filen. Et eksempel er ? lagre filen p? denne m?ten:
3
0;0;100;Statoil
1;3;200;BP
3;12;50;Shell
I dette eksemplet betyr tallet 3 p? f?rste linje at det er informasjon om 3 felt p? de neste 3 linjene i filen. Det f?rste du b?r gj?re hvis du velger denne m?ten ? lagre dataene p? er ? skrive litt kode som finner antall felt som har eier (eller utvinning). Dette tallet skriver du da ut som f?rste linje i filen. Neste linje betyr at Statoil eier felt 0-0 og at det er utvunnet 100 fat olje i det feltet; neste linje angir at BP eier felt 1-3, med utvinning p? 200 fat, osv. Husk ? lukke fila med fil.close();

8) Les fra fil:
Denne oppgaven g?r ut p? ? lese datafilen som du opprettet i foreg?ende oppgave ("Skriv til fil").  Vi tenker oss at man utf?rer denne kommandoen n?r man starter programmet, for ? hente inn dataene som ble lagret i filen olje.txt forrige gang man kj?rte programmet.  Derfor er det greit at du bare overskriver dataene i arrayene til programmet ditt med dataene som leses fra fil. (Men hvis du vil gj?re det annerledes er det ogs? greit, ekstraoppgavene st?r man fritt til ? l?se som man vil.) Hvis du programmerer uten EasyIO kan du lese linjene med linje = scan.nextLine() og bruke linje.split(";") for ? dele opp linjene i de forskjellige tall og selskapsnavn; en annen l?sning er ? lese ett tall av gangen med scan.nextInt() hvis du setter skilletegnet i Scanner til ? v?re ";" ved hjelp av scan.useDelimiter(";"). Selskapsnavnet kan leses inn med nextLine() rett etter at du har lest de tre f?rste tall i hver linje.

9) Selskap med flest felt: (vanskelig)
Den som vil ha en st?rre utfordring kan bryne seg p? denne ekstraoppgaven: Finn selskapet som har kj?pt flest felt. Hvis det er flere selskap som har samme maks. antall felt skriv ut navnet p? alle disse.

Andre tips til obligen

Andre tips til obligen legges ut ?verst i bloggposten Oblig 2. Si fra nederst i samme bloggpost hva du ?nsker tips om!
Tibakemelding om ekstraoppgavene og obligen kan du skrive i bloggen eller sende p? mail til josek [a] ifi.uio.no