io day 2
This commit is contained in:
parent
759f45a04b
commit
9571a9f81a
141
io/day2.io
Normal file
141
io/day2.io
Normal file
@ -0,0 +1,141 @@
|
||||
# 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
|
||||
)
|
3
io/matrix.txt
Normal file
3
io/matrix.txt
Normal file
@ -0,0 +1,3 @@
|
||||
0 0
|
||||
0 20
|
||||
0 0
|
Loading…
x
Reference in New Issue
Block a user