[KOTLIN][Tutorial]Kako napraviti kalkulator

Započeo Bonsek, Jul 07, 2019, 15:08:58 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

                                               
CitatKotlin je opći (General purpose) programski jezik koji je osmislio i razvija JetBrains, proizvoÄ'ač InteliJ IDEA-e, najpopularnije razvojne okoline za Javu. To je programski jezik koji programiranje čini efikasnim i zabavnim, a popularnosti znatno doprinosi puna Java kompatibilnost - tako da će ga, najvjerojatnije, najprije prihvatiti postojeća Java zajednica.


Evo jedan primjer razlike izmedju jave i kotlina (slike su preuzete sa startit.rs u svrhu edukacije)

Evo primjera implementacije domenske klase u Java programskom jeziku:


U Kotlinu to izgleda ovako:


Mislim da slike govore vise od tisucu rijeci... Sad prelazimo na kalkulator, da vam pojasnim kako sam ja izradio simple kalkulator u programu IntelliJ IDEA Community Edition 2019.1.3 x64
Ukoliko se pitate sto je IntelliJ IDEA, pogledajte ovdje na sluzbenoj stranici JetBrains-a  Klikni me njezno

Ehh sad da pocnemo sa kalkulatorom...
Kod izgleda ovako, pa cemo ga detaljno obraditi

fun main(args:Array<String>) {     

    println("Unesite prvi broj")     

    var broj:Int = readLine()!!.toInt()   

    println("Unesite drugi broj")

    var brojdva:Int = readLine()!!.toInt()

    var rezultat = broj * brojdva

    println("Broj " + broj + " i broj " + brojdva + " jednaki su umnosku " + rezultat)


}


Sad da pojasnimo sta je sta


fun main(args:Array<String>) {   
}

//-- "fun" oznacava kreiranje funkcije u ovom slucaju "main" znaci glavna funkcija za izvrsavanje radnji koju napisemo izmedju {}, narvano mozemo kreirati funkcije i pozivati ih u "fun main" to je preporucljivo (o tome cemo nesto kasnije)


println("Unesite prvi broj")
//-- imamo dvije vrste "printa" a to su "print" i "println", razlika je u tome sto "println" ispise tekst i prebaci nas u novi red


var broj:Int = readLine()!!.toInt()

//-- "var" kreira varijablu pod imenom "broj" (ime moze biti bilo koje ali u ovom slucaju nek bude "broj"
//-- "Int" se koristi kao funkcija za cijeli broj (broj bez ostatka) u ovom slucaju unosimo samo cijele brojeve
//-- "=" znak jednakosti govori o svrhi varijable (sto ce se dogoditi) u ovom slucaju pod varijablom "broj" ce se unijeti broj preko tastature
//-- "readLine()" sama rijec govori (procitaj liniju) znaci zapamti ili procitaj unos
//-- "!!" operator za provjeru vrijednosti unesenog broja (ukoliko napisemo 1.5 a stavili smo unos "Int- cijeli broj" dobit cemo error
//-- "toInt()" Unos mora biti cijeli broj, znaci provjerava je li unos cijeli broj "npr broj 1"


println("Unesite drugi broj")

    var brojdva:Int = readLine()!!.toInt()

//-- ponovimo postupak za broj dva, samo smo promjenili ime varijable u "brojdva"


var rezultat = broj * brojdva

//-- zatim kreiramo varijablu "rezultat" koja ce biti jednak umnosku "broj" puta(*) brojdva"
//-- matematicki operatori u kotlinu su [+][-][*][/][%]


println("Broj " + broj + "  broj " + brojdva + "  = " + rezultat)

//-- zadnja stvar koju kreiramo to je ispis rezultata
// Koristimo println("text" + ime varjable (broj) + "tekst" + ime varjable (brojdva) + "tekst" + varijabla "rezultat" koja je jednaka umnosku broj*brojdva


Evo ukratko kako se radi s brojevima s ostatkom

un main(args:Array<String>) {                                          ////////////////////////////////////////////////////////////////////////////

    println("Unesite prvi broj")                                                      gore smo imali "var broj:Int" ovdje umjesto "int" koristimo "Double"
                                                                                                      tako i "toDouble()" Mozemo upisati cijeli broj ili broj s ostatkom
    var broj:Double = readLine()!!.toDouble()                                 ali u verziji s "toInt()" Mozemo samo cijeli broj"

                                                                                                /////////////////////////////////////////////////////////////////////////////
    println("Unesite drugi broj")

    var brojdva:Double = readLine()!!.toDouble()

    val rezultat = broj + brojdva

    println("Broj " + broj + " i broj " + brojdva + " jednaki su umnosku " + rezultat)


}



Sad da vam pojasnim kako sam ja izradio kalkulator malo napredniji ali jednostavan

Ovako izgleda gotov kod
fun main(args: Array<String>) {



    println("Jednostavan kalkulator u kotlinu")
    println("Odaberi funkciju")
    println("Oduzimanje[1], Zbrajanje[2], Djeljenje[3], Mnozenje[4]")

    val opcija:Int = readLine()!!.toInt()

    when(opcija){

        1 -> print(oduzimanje())
        2 -> print(zbrajanje())
        3 -> print(djeljenje())
        4 -> print(mnozenje())

        else -> {
            print("Pogresna opcija!")
        }


    }


}


   fun oduzimanje():Double {

       println("Unesite prvi broj")

       var broj = readLine()!!.toDouble()

       println("Unesite drugi broj")

       var brojdva = readLine()!!.toDouble()

       val rezultat = broj - brojdva

       println("Rezultat je " + rezultat)

       return rezultat

   }

   fun zbrajanje():Double {

       println("Unesite prvi broj")

       var broj = readLine()!!.toDouble()

       println("Unesite drugi broj")

       var brojdva = readLine()!!.toDouble()

       val rezultat = broj + brojdva

       println("Rezultat je " + rezultat)

       return rezultat

   }

   fun djeljenje():Double {

       println("Unesite prvi broj")

       var broj = readLine()!!.toDouble()

       println("Unesite drugi broj")

       var brojdva = readLine()!!.toDouble()

       val rezultat = broj / brojdva

       println("Rezultat je " + rezultat)

       return rezultat
   }

   fun mnozenje():Double {

       println("Unesite prvi broj")

       var broj = readLine()!!.toDouble()

       println("Unesite drugi broj")

       var brojdva = readLine()!!.toDouble()

       val rezultat = broj * brojdva

       println("Rezultat je " + rezultat)

       return rezultat
   }


POJASNJNJE

U funkciji "main" sam kreirao
println("Oduzimanje[1], Zbrajanje[2], Djeljenje[3], Mnozenje[4]") //-- Odabir

zatim sam kreirao
val opcija:Int = readLine()!!.toInt() //-- kreirao sam varijablu "opcija" koja ce sluziti za odabri matematickog operatera (npr "Mnozenje[4] unosimo broj 4 (posto unosimo cijele brojeve za odabir onda koristimo "Int" i "toInt()"

zatim kreiramo odabir funkcijom "when" ili "kada na naskom kako bi se reklo"
when(varijabla){
// kod
}

zatim napisemo

1 -> print(oduzimanje())             // 1[unos opcije] -> [uradi] print(oduzimanje()) [ispisi funkciju "oduzimanje"]
        2 -> print(zbrajanje())
        3 -> print(djeljenje())
        4 -> print(mnozenje())


Zatim koristimo "else" za neispravan unos, za sve drugo osim brojeva na skali od 1-4 u ovom slucaju
else -> {
//-- "else" ili na nsem "sve ostalo"
print("Pogresna opcija")
}


funkcija "main" bi trebala izgledati ovako

fun main(args: Array<String>) {



    println("Jednostavan kalkulator u kotlinu")
    println("Odaberi funkciju")
    println("Oduzimanje[1], Zbrajanje[2], Djeljenje[3], Mnozenje[4]")

    val opcija:Int = readLine()!!.toInt()

    when(opcija){

        1 -> print(oduzimanje())
        2 -> print(zbrajanje())
        3 -> print(djeljenje())
        4 -> print(mnozenje())

        else -> {
            print("Pogresna opcija!")
        }


    }


}



Pojasnjenje u vezi zagrada {}

fun main(args: Array<String>) { --- pocetak funkcije main

// kod

when(){ --- pocetak when

// kod

} --- kraj when

else ->{ --- pocetak od else

//kod

} --- kraj else

} --- zatvara funkciju main


Nakon pisanja odabira u "fun main" ispod nje sam kreirao nove "fun" a to su funkcije koje se ispisuju pod
Citat
        1 -> print(oduzimanje())
        2 -> print(zbrajanje())
        3 -> print(djeljenje())
        4 -> print(mnozenje())

u funkciji "main" smo kreirali "odabir", kreirali smo sto ce se desiti nakon unesenih brojeva 1,2,3,4
sada moramo napisati kod koji ce se ukljuciti nakon odabira opcije 1 (oduzimanje)

fun oduzimanje():Double {                        // kreiramo "fun imeFunkcije():Double- za brojeve s ostatkom

       println("Unesite prvi broj")

       var broj = readLine()!!.toDouble()

       println("Unesite drugi broj")

       var brojdva = readLine()!!.toDouble()

       val rezultat = broj - brojdva

       println("Rezultat je " + rezultat)

       return rezultat

   }


Naravno necu sad pisati kod za sve druge funkcije, zapravo kad napiste samo jednu ostale kopirajte i promjenite samo ovo

val rezultat = broj - brojdva  //-- promjenite u zbrajanje oduzimanje ili nesto trece

i tako kreirate funkcije ispod "main" funkcije jer je pozeljno da "main" funkciju koristite za pozivanje svih ostalih funkcija

funkcije u ovom slucaju pozivate odabirom brojeva od 1-4 tako sto koristimo
1 -> print(oduzimanje()) //-- S ovim smo pozvali funkciju oDuzimanje nakon unosa broja 1

Napomena:
Krepo sam dok sam ovo sve ispisao, ako sam negdje pogrijesio molim vas da me ispravite!


Korisni linkovi:

PROGRAMIZ LITERATURA
Intellij IDEA Download link

Nije lose, objasnio si lepo,ali mogao si objasniti sta je koja funkcija i cemu sluzi.
• Website: www.vasic.dev
Web Development & Cyber Security

Citat: Vasic poslato Jul 07, 2019, 15:43:52 POSLE PODNE
Nije lose, objasnio si lepo,ali mogao si objasniti sta je koja funkcija i cemu sluzi.

zato sam dodao pod korisne linkove
PROGRAMIZ [CLICK ME]

za sitne detalje, jer bi mi trebalo pola dana da objasnim od a do ž