import java.util.ArrayList; import java.util.List; public class OppgaverUke13 { // Oppgave 1 public static int leggSammen2DArray(int[][] array) { return summer(array, 0, 0, true); } private static int summer(int[][] array, int r, int k, boolean fortsett){ if (r >= array.length || k >= array[r].length){ return 0; } int sum = 0; sum += summer(array, r, k+1, false); if (fortsett){ sum += summer(array, r+1, k, true); } return sum + array[r][k]; } // Oppgave 2 public static String hentStringRiktigVei(List ord) { if (ord.size() == 0) { return ""; } String o = ord.remove(0); return o + hentStringRiktigVei(ord); } public static String hentStringFeilVei(List ord) { if (ord.size() == 0) { return ""; } String o = ord.remove(0); return hentStringFeilVei(ord) + o; } // Oppgave 3 public static String finnTekst(String[][] ord, int indeks1, int indeks2) { if (!(indeks1 + 1 >= ord.length)) { if (ord[indeks1 + 1][indeks2] != null) { return ord[indeks1][indeks2] + finnTekst(ord, indeks1 + 1, indeks2); } } if (!(indeks2 + 1 >= ord[0].length)) { if (ord[indeks1][indeks2 + 1] != null) { return ord[indeks1][indeks2] + finnTekst(ord, indeks1, indeks2 + 1); } } return ord[indeks1][indeks2]; } // Testprogrammer static void test(String desc, int given, int expected) { if (given != expected) { System.out.println(desc + ": FAILED Expected: '" + expected + "' Got: '" + given + "'"); } else { System.out.println(desc + ": PASSED"); } } static void test(String desc, String given, String expected) { if (given == null || !given.equals(expected)) { System.out.println(desc + ": FAILED. Expected: '" + expected + "' Got: '" + given + "'"); } else { System.out.println(desc + ": PASSED"); } } public static void main(String[] args) { // Oppgave 1 int[][] testData = new int[3][3]; int sum = 0; for (int i = 0; i < testData.length; i++) { for (int j = 0; j < testData.length; j++) { testData[i][j] = i + j; sum += i+j; } } test("Oppgave1", leggSammen2DArray(testData), sum); String[] arrS = {"Hei", "på","deg"}; ArrayList l = new ArrayList<>(); for (String string : arrS) { l.add(string); } test("oppgave2a", hentStringRiktigVei(l), "Heipådeg"); for (String string : arrS) { l.add(string); } test("oppgave2b", hentStringFeilVei(l), "degpåHei"); // Oppgave 3 String[][] ordListe = new String[3][3]; ordListe[0][0] = "Hei"; ordListe[0][1] = "på"; ordListe[1][1] = "deg"; ordListe[1][2] = "!"; ordListe[2][2] = "!"; test("Oppgave3", finnTekst(ordListe, 0, 0), "Heipådeg!!"); } }