ITI0011:PR01

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Enne seda, kui saad alustada esimese tunniülesande lahendamist, tasuks endale alla laadida IntelliJ, millega aitab tutvust teha ning üles seada järgnev juhend:

https://github.com/tutjava/materjalid/blob/master/IntellijTut.rst

Kõigepealt tasuks teada, et java kood käivitatakse main meetodi abil, antud koodinäites prinditakse konsooli fraas “Text to be printed”. Main meetodi abil saab käivitada ka teisi meetodeid. Meetod antud hektel on kui funktsioon (Javas lihtsalt kõik "funktsioonid" on meetodid). Meetodite kohta leiab lisainformatsiooni lingilt:

https://github.com/tutjava/materjalid/blob/master/Method.rst

<source lang="java"> public class Example {

   public static void main(String[] args) {
       System.out.print("Text to be printed");
   }

} </source>


Selleks, et tunniülesannet oleks kergem lahendada, tasuks tutvuda ka muutujat ning sõne käsitlevate materjalidega:

https://github.com/tutjava/materjalid/blob/master/Muutuja.rst

https://github.com/tutjava/materjalid/blob/master/String.rst

Järgnevas koodinäites kutsutakse main meetodis välja funktsioon nimega printHelloWorld, käivitub antud meetodis olev kood, mis antud näite korral prindib konsooli “Hello World”.


<source lang="java"> public class Example {

   public static void main(String[] args) {
       printHelloWorld();
   }
   public static void printHelloWorld() {
       System.out.print("Hello World");
   }

} </source>


Meetodi printHelloWorld puhul on tegu void tagastustüüpi meetodiga, mis tähendab, et antud meetod ei tagasta midagi, samuti on void meetodiks ka public static void main meetod. Selleks, et tagastada mingi konkreetne lahend, tuleb tagastustüübina defineerida vastuse andmetüüp, näiteks võib meetod tagastada sõne (String) või hoopis täisarvu (int). Tagasustüüp kirjutatakse koodis enne funktsiooni nime.

Näiteks, kui tahame, et eelmine printHelloWorld() tagastaks Stringi ehk sõne, teeme nii.

Muutuja greeting kasutamine ei ole kohustuslik, kuid aitab koodi ilusamaks teha.


<source lang="java"> public static String printHelloWorld() {

   String greeting = “Hello world!”;
   return greeting;

} </source>

Tagastamiseks kasutatakse return võtmesõna, millele järgneb koodis vastus, mida soovitakse tagastada, meetodi tagastatav lahend peab alati olema kooskõlas meetodi nime ees defineeritud andmetüübiga. Tagastamise teemal saab lisaks lugeda:

https://github.com/tutjava/materjalid/blob/master/MethodReturnValue.rst

Koodinäites kutsutakse main meetodis välja funktsioon getFullName, mille tagastustüübiks on String, meetodi väljakutsumise käigus prinditakse konsooli ka meetodi tagastatav väärtus. getFullName võtab endale kaks sisendit, ees- ning perekonnanime, mis on mõlemad sõned. Meetodis liidetakse kas sisendit kokku üheks sõneks ning nende vahele lisatakse ka tühik. Konsooli trükitakse “Aet Voorimees”.


<source lang="java"> public class Example {

   public static void main(String[] args) {
       System.out.print(getFullName("Aet", "Voorimees"));
   }
   public static String getFullName(String firstName; String surname) {
       return firstName + " " + surname;
   }

} </source>

Viimane koodinäide illustreerib, kuidas leida sõne pikkust ning kuidas tagastada int andmetüüpi lahend, kood trükib konsooli numbri 9.


<source lang="java"> public class Example {

   public static void main(String[] args) {
       System.out.print(getSurnameLength("Voorimees"));
     }


   public static int getSurnameLength(String surname) {
       return surname.length();
   }

} </source>

Ülesande PR01 juhend

Peeter töötab juhina innovaatilises kindlustusfirmas, kus pikkus loeb. Nimelt selleks, et eristuda teistest kindustusfirmadest, mõtles Peeter välja geniaalse süsteemi, mille põhimõte seisneb selles, et mida pikem on kliendi nimi, seda odavamalt Peeter kindlustust pakub.

Peeter palkas sinu, et sa alustuseks kirjutaksid talle programmi, mis tervitab klienti ning ütleb, kui pikk ta nimi on. Peeter on väga nõudlik ning seepärast peab tervitus olema kindlas formaadis, mille visandas Peeter ise:

   Hello Peeter, number of letters in your name: 6.


Samuti ei taha Peeter tegemist teha inimestega, kelle nimi on tühi, või koosneb nullist tähest. Lahenduseks oleks if lause, mis väärade sisendite korral tagastab null’i, if lausete kohta saab lisainfot lingilt:

https://github.com/tutjava/materjalid/blob/master/ConditionalStatements.rst

Ülesande lahendamiseks on mõistlik kasutada malli:


<source lang="java"> public class PR01 {

   public static void main(String[] args) {
       // Here you can call out your method
     }
   public static String printAndReturnHello(String name) {
       // Write your code here
       // Return should be of String type.
       return null;
    }

} </source>


Juhul kui tunniülesanne on valmis saanud, tuleks see Git’i üles panna, selleks vajalikud leiad lühikesest õpetusest:

https://github.com/tutjava/materjalid/blob/master/GitTtu.rst

Antud ülesanne peab olema kaustas PR01, faili nimi peab olema PR01 (klassinimi samamoodi PR01).

Kasutatud materjalid:

   IntelliJ: https://github.com/tutjava/materjalid/blob/master/IntellijTut.rst
   Meetodid: https://github.com/tutjava/materjalid/blob/master/Method.rst
   Muutujad: https://github.com/tutjava/materjalid/blob/master/Muutuja.rst
   Sõned: https://github.com/tutjava/materjalid/blob/master/String.rst
   Tagastamine: https://github.com/tutjava/materjalid/blob/master/MethodReturnValue.rst
   Tingimuslause: https://github.com/tutjava/materjalid/blob/master/ConditionalStatements.rst
   Git: https://github.com/tutjava/materjalid/blob/master/GitTtu.rst