Anteckningar från föreläsning 6

Detta är den programkod vi skrev -- anteckningarna är gjorda bara för att vara ett stöd för minnet för dem som var där, och därför inte nödvändigtvis fullständiga eller ens sammanhängande. Betydligt mer hjälp finns att hämta i kompendiet.

OH-bilder finns här.

Listor

Vi inledde med att lösa ett problem, och löste sedan ytterligare två:

import se.lth.cs.pt.io.Keyboard;
import java.util.*;

class Lists {

    public static void main(String[] args) {
        new Lists().run();
    }

    void run() {
        int nbrOfStrings = 5;

        List<String> list = readStrings(nbrOfStrings);

        printReversedList(list);
        System.out.println(list);
        simplerPrintList(list);

        System.out.println("Först i bokstavsordning: " +
                           firstAlphabetically(list));
    }

    List<String> readStrings(int nbrOfStrings) {
        List<String> list = new ArrayList<String>();
        for (int k = 1; k <= nbrOfStrings; k++) {
            String s = Keyboard.nextLine("Ange en sträng: ");
            list.add(0, s);
        }
        return list;
    }

    void simplerPrintList(List<String> list) {
        for (String value : list) {
            System.out.println(" * " + value);
        }
    }

    void printReversedList(List<String> list) {
        for (int k = list.size() - 1; k >= 0; k--) {
            String value = list.get(k);
            System.out.println(" * " + value);
        }
    }

    String firstAlphabetically(List<String> strings) {
        String bestSoFar = strings.get(0);
        for (int k = 1; k < strings.size(); k++) {
            String current = strings.get(k);
            if (current.compareTo(bestSoFar) < 0) {
                bestSoFar = current;
            }
        }
        return bestSoFar;
    }
}

import java.util.*;
import se.lth.cs.pt.graphics.basic.*;
import se.lth.cs.pt.turtle.visible.*;

class Drawing {

    public static void main(String[] args) {
        new Drawing().run();
    }

    GraphicsWindow w = new GraphicsWindow(600, 600);
    List<Turtle> turtles;

    void run() {
        createTurtles(5);
        drawSquares();
    }

    void createTurtles(int nbrOfTurtles) {
        turtles = new LinkedList<Turtle>();
        for (int k = 0; k < nbrOfTurtles; k++) {
            turtles.add(new Turtle(w, 120 + 73*k, 187 + 47*k));
        }
        for (Turtle t : turtles) {
            t.penDown();
            t.setSpeed(10);
        }
    }

    void drawSquares() {
        for (int k = 1; k <= 4; k++) {
            for (Turtle t : turtles) {
                t.forward(100);
                t.left(90);
                w.waitForMouseClick();
            }
        }
    }
}