HeadBlast Skrevet 11. desember 2010 Del Skrevet 11. desember 2010 Hei, sitter her å tukler med gamle eksamensoppgaver da jeg har eksamen i java snart. Har en klasse som ser slik ut: public class Fargebilder { private final int hvit = 0; private final int svart = 1; private final int blå = 2; public String navn; public int[][] fargetabell; public Fargebilder(String startNavn, int[][] nyFargetabell) { navn = startNavn; fargetabell = new int[nyFargetabell.length][nyFargetabell[0].length]; for(int i=0; i<nyFargetabell.length; i++) { for (int j=0; i<nyFargetabell[i].length; j++) { fargetabell[i][j] = nyFargetabell[i][j]; } } } public boolean gyldigeIndekser(int x, int y) { return x>= 0 && x < finnHøyde() && y>=0 && y < finnBredde(); } public boolean gyldigFarge(int farge) { return farge == hvit || farge == svart || farge== blå; } public int finnHøyde() { return fargetabell.length; } public int finnBredde() { return fargetabell[0].length; } public int finnFarge(int x, int y) { if(gyldigeIndekser(x, y)) { return fargetabell[x][y]; }else return -1; } public int finnAntallForekomster(int farge) { int k=0; for(int i=0; i<fargetabell.length; i++) { for(int j=0; j<fargetabell[i].length; j++) { if(fargetabell[i][j] == farge) { k++; } } } return k; } public boolean finnesFarge(int farge) { return (finnAntallForekomster(farge) > 0); } public void byttUtFarge(int farge1, int farge2) { for(int i=0; i<fargetabell.length; i++) { for(int j=0; j<fargetabell[i].length; j++) { if(fargetabell[i][j] == farge1) { fargetabell[i][j] = farge2; } } } } } Har lagd et lite klientprogram for å teste om det fungerer som ser slik ut: import static javax.swing.JOptionPane.*; public class Fargebilderklient { public static void main(String[] args) { int[][] tabell = {{0,1,0}, {1,1,1}}; String a = showInputDialog(null, "Hva heter testen?"); Fargebilder b = new Fargebilder(a, tabell); System.out.println(b.finnHøyde()); } } Når jeg skal kjøre dette får jeg ArrayIndexOutOfBoundsException 3, noen som har en god forklaring på dette? Mvh HeadBlast. Lenke til kommentar
GeirGrusom Skrevet 11. desember 2010 Del Skrevet 11. desember 2010 Jeg klarer ikke å se hva som er galt. Hvilken linje kommer feilmeldingen på? Har du prøvd å debugge? Lenke til kommentar
HeadBlast Skrevet 11. desember 2010 Forfatter Del Skrevet 11. desember 2010 Jeg klarer ikke å se hva som er galt. Hvilken linje kommer feilmeldingen på? Har du prøvd å debugge? at.Fargebilder 18 at.Fargebilderklient 8 Hva betyr å debugge om jeg tør spørre ? Lenke til kommentar
GeirGrusom Skrevet 11. desember 2010 Del Skrevet 11. desember 2010 Mange utviklingsverktøyer har en mulighet for å starte programmet, og hele tiden følge med på verdier i variabler osv. og til å pause programmet når det skjer en feil. På denne måten kan en da se hva som er i de forskjellige variablene og se hva som førte til feilen. Ser feilen nå: for (int j=0; i<nyFargetabell.length; j++) du har skrevet i istedet for j. Lenke til kommentar
HeadBlast Skrevet 11. desember 2010 Forfatter Del Skrevet 11. desember 2010 Mange utviklingsverktøyer har en mulighet for å starte programmet, og hele tiden følge med på verdier i variabler osv. og til å pause programmet når det skjer en feil. På denne måten kan en da se hva som er i de forskjellige variablene og se hva som førte til feilen. Ser feilen nå: for (int j=0; i<nyFargetabell.length; j++) du har skrevet i istedet for j. Ah ok skjønner, bruker textpad jeg. Der funket det ja, takk skal du ha! ) Lenke til kommentar
miXer Skrevet 11. desember 2010 Del Skrevet 11. desember 2010 Og istedenfor å gå igjennom hvert element i nyFargetabel1 og legge dem til fargetabel1, så kan du bare si: fargetabel1 = nyFargetabel1; så slipper du hele for loopen Lenke til kommentar
HeadBlast Skrevet 11. desember 2010 Forfatter Del Skrevet 11. desember 2010 Ja, det er sant. Tenkte bare pga lærerne har lagt så mye vekt på dyp kontra grunn kopiering, og selv om det ikke er behov for det her så ble det slik Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå