INF1010 Gruppe 10

Gruppelærer: Evgenij Solovjev Thorstensen

E-post: inf1010-10@ifi.uio.no

Undervisning:

  • Onsdag kl. 12:15 -14:00, Terminalstue Baktus Preklinisk odontologi (PO-bygningen) ( i perioden 15. februar til 14. juni)

Det er lov å komme til gruppetimen med sine grafiske sorger, selv om man ikke har vært der før.

Lenker:

Java swing tutorial

Kan være av interesse.

Oblig3, bugtrack:

Jeg kan tenke meg at mange kommer til å large løsninger og så skrive dem ut senere i oblig3. Da finnes følgende fallgruve:

ArrayList foo = new ArrayList();

foo.add(brett.tabell);

Der brett.tabell er matrisen med ruter. Koden over gjør ikke det dere tror den gjør. Hvis man lagrer løsninger på denne måten, vil man ved utskrift få ut det man har i brett.tabell når man er ferdig med å generere løsninger.

Grunnen er grunn kopiering (shallow copying): grunn kopiering

Grovt sagt kopierer koden over tabellen, men ikke objektene som tabellen peker på (rutene). I og med at rutenes verdier forandrer seg, vil løsninger ikke bliu lagret.

Første side i linken over beskriver hva som skjer ved hhv. grunn og dyp kopiering.

Diverse:

Oblig2: Godkjentlistene oppdatert. Hatmail og fanbrev, se tidligere post.

Oblig3: Sitat Tuva: "Use your imagination". Til det kan tilføyes: Ikke utsett den - GUI-programmering kan fort bli en kilde til bugs.

Denne uken er undervisningsfri, men jeg tar imot mailer med spørsmål.

Oblig2, utskrift av løsning:

Noen virket litt forvirrede med tanke på dette. Denne utskriften skjer i Rute, da man gjør kallet i prøvAlleSiffer...()-metoden.

Hvis man har brukt en liste med nestepekere, kan man la Rute få et felt Rute første, som peker på første rute. Denne behøves kun å settes i siste rute. Da har man en mulighet for å løpe gjennom listen fra prøvAlleSiffer...(), og skrive ut tallene.

Hvus man ikke har liste med nestepekere, trenger man en-eller-annen peker til Brett i Rute, slik at man har tilgang på alle rutene og kan skrive ut alle tall.

Drit i MVC på akkurat dette punkt - i og med at prøvAlleSiffer...() er i Rute, og det ikke er mulig å kalle utskrifta fra annet sted, blir det litt halvveis-MVC uansett.

Litt sånn tilfeldig trivia-ting

Kom over dette i en oblig:

(person.mor != "?")

Strenger skal ikke sammenliknes med ==, != osv., da disse sjekker om to pekere refererer til det samme objektet. Det man vil vite er om to strenger er like, og dermed må man bruke equals(). I obligen jeg nettopp rettet skapte bruken av != en NullPointerException.

Equals er en metode... vil noen si, og dermed må man sjekke for null-verdi på person.mor først. Det kan man slippe:

("?".equals(person.mor))//funker strålende

equals tar også hånd om null, sitat API:

Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

Ha en fortsatt fin natt.

Oblig2:

Ny formel, stjålet med stor glede fra Tuva, for å finne boks til rute x.

int boks = (rad/len) * len + kol/bredde;

Der len er lengde på boksen (lengde er lengst, 6x6 gir len 3), bredde er bredde på boks (2 i 6x6), og rad og kol er radnr og kolnr, regnet fra 0.

Denne formelen fungerer på alle bokser, rektangulære såvel som kvadratiske.

Rad- og kolonnenr. (regnet fra 0) finnes slik:

int rad = i / size;

int kol = i % size;

Der size er størrelse på brettet (6 i 6x6 brett), og i er nummeret til ruten, regnet fra 0.

Om innleveringer:

Jeg vil meget gjerne be om to ting.

a) Hvis dere sender meg en levering, putt noe fornuftig i subject-feltet, f. eks. (for obliger) <brukernavn>-<oblig>.

b) Zipp/rar/tar.gz filene deres, kjære menighet! Så slipper jeg å laste ned mange løse filer.

På linux kan det gjøres slik: >tar cvfz filnavn.tar.gz <mappe>

På forhånd takk.

Oblig1:

Godkjentlistene oppdaterte. Spørsmål, klager, hatmail, fanbrev sendes til inf1010-10@ifi.uio.no , eller tas opp på gruppetimen.

Publisert 30. jan. 2006 17:25 - Sist endret 2. mai 2006 01:48