# Task 1: fib := method(i, if(i==0) then(return 0) if(i==1) then(return 1) return fib(i - 2) + fib(i - 1) ) fib_loop := method(i, r := 0 s := 0 t := 1 for(j, 2, i, 1, r := s; s := t; t := r + s) return t ) fib(1) println fib(2) println fib(3) println fib(4) println fib(5) println fib(6) println fib(7) println fib(8) println "=====================================" println fib_loop(1) println fib_loop(2) println fib_loop(3) println fib_loop(4) println fib_loop(5) println fib_loop(6) println fib_loop(7) println fib_loop(8) println # Task 2: Number old_div := Number getSlot("/") Number / = method(divisor, if(divisor == 0, 0, self old_div(divisor)) ) "Testing Task 2:" println (6 / 0) println (6 / 3) println # Task 3: "Task 3:" println arr := list(list(1, 2, 3), list(4, 5, 6), list(7, 8, 9)) arr_sum := 0 for(i, 0, arr size - 1, 1, i println; arr_sum = arr_sum + arr at(i) sum) arr_sum println # Task 4: "Task 4:" println List myAverage := method( self sum / self size ) list(1, 2, 3, 4) myAverage println # list() myAverage println # Task 5, 6, 7: "Task 5, 6, 7:" println Matrix := Object clone Matrix dim := method(x, y, self content := list() self y := y self x := x for(i, 1, y, 1, self content push(list()) for(j, 1, x, 1, self content at(i - 1) push(0) ) ) ) Matrix set := method(x, y, value, self content at(y) atPut(x, value) ) Matrix get := method(x, y, self content at(y) at(x) ) Matrix writeToFile := method(filename, file := File clone openForUpdating(filename) for(i, 1, y, 1, for(j, 1, x, 1, file write(self content at(i - 1) at(j -1) asSimpleString, " ") ) file write("\n") ) ) Matrix readFromFile := method(filename, file := File clone openForReading(filename) lines := file readLines x := lines first split size y := lines size self dim(x, y) lines foreach(i, line, line split foreach(j, v, self content at(i) atPut(j, v))) ) matrixOne := Matrix clone matrixOne dim(2, 3) matrixOne content println matrixOne set(1,1, 20) matrixOne get(1,1) println matrixOne writeToFile("matrix.txt") matrixTwo := Matrix clone matrixTwo readFromFile("matrix.txt") matrixTwo content println # Task 8: "Task 8:" println lastGuess := 0 numberOfGuesses := 0 targetNumber := (Date asNumber * 70) round % 100 while(numberOfGuesses < 10, input := File standardInput() readLine() asNumber() if(input == targetNumber, "fertig!" println; break, if(numberOfGuesses == 0, "nicht die richtige!" println, if((targetNumber - input) abs < (targetNumber - lastGuess) abs, "hotter" println, "colder" println ) ) ) lastGuess = input numberOfGuesses = numberOfGuesses + 1 )