Kt. Academy Logo
WarsztatyKsiążkiArtykułySklep

Ucz się przez praktykę

Wyćwicz nowe umiejętności rozwiązując programistyczne wyzwania

Co to są wyzwania programistyczne?

Małe programistyczne zadania, które wymagają zaimplementowania funkcji lub klasy w języku Kotlin. Dzięki temu możesz sprawdzić w praktyce czy poprawnie rozumiesz materiał z kursu i wyćwiczyć to tak, aby być w stanie używać nowych umiejętności od razu po warsztacie. Wszystkie wyzwania zostały zweryfikowane przez testy jednostkowe.

Przykładowe wyzwania

// Fibonacci number that starts from 1 and 1 (fib(0) == 1, fib(1) == 1, fib(2) == 2, fib(3) == 3, fib(4) == 5, fib(5) == 8) // https://en.wikipedia.org/wiki/Fibonacci_number fun fib(n: Int): Int = TODO() fun main() { fib(0) shouldEquals 1 fib(1) shouldEquals 1 fib(2) shouldEquals 2 fib(3) shouldEquals 3 fib(4) shouldEquals 5 fib(5) shouldEquals 8 fib(6) shouldEquals 13 fib(7) shouldEquals 21 fib(8) shouldEquals 34 fib(9) shouldEquals 55 fib(10) shouldEquals 89 } infix fun <T> T.shouldEquals(other: T) { if (this != other) throw AssertionError("Value $this not equal to $other") }
interface Person { val name: String val age: Int val canBuyAlcohol: Boolean fun helloText(): String fun cheerText(person: Person): String } // TODO: Implement classes Businessman and Student // * They both should implement Person // * They both can buy alcohol only if over 21 // * Businessman says hello by “Good morning”, Student by “Hi”. // * Businessman cheers by “Hello, my name is {his name}, nice to see you {cheered person name}”, Student by “Hey {cheered person name}, I am {his name}”. fun main() { val businessman: Person = TODO("Use Businessman constructor here once it is implemented") val student: Person = TODO("Use Businessman constructor here once it is implemented") println(businessman.helloText()) println(student.helloText()) println(businessman.cheerText(student)) println(student.cheerText(businessman)) fun sayIfCanBuyAlcohol(person: Person) { val modal = if(person.canBuyAlcohol) "can" else "can't" println("${person.name} $modal buy alcohol") } sayIfCanBuyAlcohol(businessman) sayIfCanBuyAlcohol(student) }