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.