Študijné materiály

Štandardný vstup

V praktických Kotlin projektoch sa štandardný vstup takmer nepoužíva. Pre pochopenie Kotlinu ho však potrebujeme.

Najjednoduchším spôsobom je použiť funkciu readln(), ktorá vráti String obsahujúci obsah riadku štandardného vstupu:

fun main() {
    val riadok = readln()
}

Trochu verzatilnejším spôsobom je použitie objektu Scanner z balíka java.util. Tomuto objektu vieme prihodiť odkiaľ má čítať (štandardný vstup označujeme ako System.in) a pomocou funkcií next... vieme načítať aj menšie a správne pretypované časti vstupu:

import java.util.Scanner

fun main() {
    val scanner  : Scanner = Scanner(System.`in`)
    val riadok   : String  = scanner.nextLine()
    val slovo    : String  = scanner.next()
    val cislo    : Int     = scanner.nextInt()
    val destinne : Double  = scanner.nextDouble()
}

Opäť netreba zabudnúť, že nextLine dočíta aktuálny riadok. Preto sa môže stať že vám nextLine načíta prázdny riadok. Ak ste napríklad načítali pomocou next všetky slová z riadku, ale ešte sa kurzor nedostal do riadku ďalšieho.

Pozor! readln() a Scanner nikdy nekombinujeme! Môžeme dostať neočakávané výstupy

Úlohy

1. Kalkulačka

Predpokladaj, že na štandardnom vstupe dostaneš vždy 2 čísla oddelené znakom konca riadku. Na štandardný výstup vypíš ich súčet.

Bonusy:

  • Predpokladaj, že dostaneš na jednom riadku číslo, medzeru, operáciu (+-*/) a ďalšie číslo
  • Predpokladaj, že dostaneš na jednom riadku príklad, ale nemusí byť správny - v takom prípade vypíš chybu

2. Prevodník

Vytvor obojsmernú kalkulačku pre prevody jednotiek. Kalkulačka nech si najprv overí smer prevodu. Vyber si jednu z týchto alternatív:

  • °C <-> °F
  • °C <-> K
  • m³ <-> l