Cieľom cvičení tretieho týždňa (praktického aj teoretického) je vyskúšať si cykly, metódy vracajúce hodnoty a jednoduchú práci s reťazcami.
Math (nájdete ich tak, že do Google zadáte Math Java 6).
zahada?
Color. Koľko parametrov ma použitý konštruktor? Akého typu je premenná c?
MojaKorytnacka pridajte metódu, ktorá nastaví náhodnú farbu kresliaceho pera.
MojaKorytnacka pridajte metódu sustredneKruhy s parametrom polomer, ktorá nakreslí "nekonečnú" postupnosť vnorených sústredných kruhov. "Nekonečnú" znamená, že útvary, ktoré nie je vidieť, už nekreslíme. Prvý (najväčší) kruh nech má polomer určený parametrom polomer. Každý ďalší (vnorený) kruh, nech má polomer, ktorý je 80% z polomeru toho predošlého. Farby kruhov nech sa postupne cyklicky striedajú: červená, modrá, šedá.
Poctarka rozširujúcu triedu Turtle s nasledujúcimi metódami:
min vráti menšie z čísel cislo1 a cislo2
mocnina vypočíta nk
faktorial vypočíta n!
pocetDelitelov vráti počet celočíselných deliteľov čísla n
jePrvocislo vráti, či je číslo n prvočíslom
pocetCifier vráti počet cifier čísla n
nerastuceCifry - vráti, či cifry čísla tvoria nerastúcu postupnosť. Cifry čísla 44220 tvoria nerastúcu postupnosť, ale čifry čísla 2231 nie (3 je väčšie ako naľavo od neho nachádzajúca sa cifra 2)
maCifru - vráti, či zápis čísla n obsahuje cifru c
NSD vráti najväčšieho spoločného deliteľa čísel a a b (neskôr sa naučíme aj efektívny Euklidov algoritmus)
NSN vráti najmenší spoločný násobok čísel a a b
String? Akou metódou nám objekt triedy String vie povedať dĺžku reťazca, ktorý uchováva? Akým spôsobom sa vieme objektov triedy String "pýtať" na jednotlivé znaky reťazca?
String)?
Znakarka rozširujúcu triedu Turtle s nasledujúcimi metódami:
pocetVyskytov vráti počet výskytov znaku znak v reťazci referencovanom parametrom s
jePalindrom vráti, či reťazec referencovaný parametrom s je palindróm, t.j. číta sa rovnako zľava doprava ako aj zprava doľava: abcba, accaacca sú palindrómy
maDvojmedzeru vráti, či reťazec referencovaný parametrom s obsahuje 2 za sebou idúce medzery
MojaKorytnacka metódu pomalyStep, ktorá spraví to isté, čo step, ale krok korytnačky bude zložený z malých spomalených krôčikov. Vznikne tak efekt plynulého kreslenia čiar. Metóda nech má 2 parametre: dĺžka, o ktorú sa ma korytnačka posunúť, a rýchlosť, akou sa má korytnačka posunúť v pixeloch za sekundu. Pre pekný efekt animácie pripravte pohyb tak, že za každým malým krôčikom korytnačka zastaví na 50 milisekúnd (1 sekunda / 24 obrázkov je asi 50 ms).
Hrac metódu biliard, ktorá bude realizovať nasledovný algoritmus:
this.setRangeStyle(RangeStyle.BOUNCE); nastaví, aby sa odrážala od hranice kresliaceho plátna
<20, 280) (predpokladáme štandardnú kresliacu plochu s rozmermi 300 x 300).
JPAZUtilities.delay(50))
Poctarka pridajte metódu najCifra, ktorá vráti najväčšiu cifru v zadanom čísle.
Poctarka), ktorá pre zadané číslo vráti minimálny počet operácii, ktoré musíme vykonať, aby sme na displeji zobrazili parametrom zadané číslo n.
Math.pow je užitočná metóda na vyrátanie mocniny čísla s desatinnou čiarkou. Konkrétne Math.pow(a, b) vráti ab. Všimnime si však jej hlavičku:
Keďže exponent je typu double, túto metódu môžeme použiť aj na vypočítanie neceločíselných mocnín. Príklad: Math.pow(3.5, 0.25) vypočíta štvrtú odmocninu z čísla 3.5.
To, že táto metóda pracuje s číslami s desatinnou čiarkou, je tak jej silnou stránkou, ale pri nevhodnom použití aj slabou stránkou. Totiž čísla s desatinnou čiarkou majú limitovanú presnosť.
Príkladom nevhodného použitia tejto metódy je počítanie celých mocnín celých čísel. Vyskúšajte tento kód (napr. v metóde main triedy Spustac):
Pre doplnenie 1315 = 51185893014090757, čo je menej ako maximálna hodnota pre long 9223372036854775807, t.j. nedôjde tu k pretečeniu.