2. praktikum. Harjutused.
NB! Praktikumiülesandeid antakse alati varuga, et ka kõige kiirematel/kogenumatel lahendajatel jätkuks tegevust. Seega pole mõtet kurvastada, kui te ei jõua kõiki lahendada. Vaadake ülesanded rahulikult üle ja lahendage ära just need, mis tunduvad teile huvitavad ja/või parajalt jõukohased/väljakutsuvad (kui just teie praktikumijuhendaja pole teile soovitanud mingit konkreetset ülesannet).
1. Massiivide ühildamine ja massiivi ümberpööramine
Koostada programm, mis sisaldab meetodeid järgmiste ülesannete lahendamiseks.
a) Massiivide ühildamine.
Antud: kaks täisarvumassiivi, milles elemendid paiknevad mittekahanevas järjekorras.
Tulemus: tagastatakse uus täisarvumassiiv, mis koosneb parajasti kõigist etteantud massiivide elementidest. Seejuures peab säilima elementide mittekahanev järjestus, st tulemusmassiivii elemendid peavad samuti olema mittekahanevas järjestuses. Näiteks lähtemassiivide {−10, 17, 21} ja {−2, 5, 17, 28} ühildamisel saame tulemuseks massiivi {−10, −2, 5, 17, 17, 21, 28}.
b) Massiivi „ümberpööramine“.
Antud: täisarvumassiiv.
Tulemus: tagastatakse uus täisarvumassiiv, mis on saadud etteantud massiivi ümberpööramise (viimane element esimeseks, eelviimane teiseks jne) ja elementide märkide muutmise teel. Näiteks lähtemassiivi {0, 1, 2, 3, −1} puhul on tulemuseks massiiv {1, −3, −2, −1, 0}.
Koostada peameetod ülaltoodud meetodite testimiseks. Massiivide ühildamist testida erineva pikkusega massiividega, kusjuures algmassiivid tuleb koostada nii, et tulemus sisaldaks ka võrdseid elemente. Algandmed ning tulemused väljastada ekraanile koos selgitava tekstiga.
2. Tantsupaarid
On antud kaks täisarvumassiivi — poiste pikkuste massiiv ja tüdrukute pikkuste massiiv (pikkused on antud sentimeetrites). Kumbki massiiv ei pruugi olla pikkuste järgi järjestatud. Koostada programm, mis moodustab tantsupaarid (poiss ja tüdruk) järgmise eeskirja kohaselt.
- Kui poisse ja tüdrukuid on võrdselt, siis moodustatakse paarid nii, et kõige pikem poiss tantsib kõige pikema tüdrukuga, pikkuselt järgmised on omavahel paaris jne.
- Kui ühe soo esindajaid on rohkem kui teise soo esindajaid, siis jäetakse sellest soost sobiv arv kõige pikemaid ilma paariliseta.
Peameetodis väljastada lähteandmed (poiste ja tüdrukute pikkused esialgses järjestuses), tantsupaarid ning paariliseta jäänud poiste või tüdrukute pikkused (kui keegi jäi paariliseta).
Väljundi näidis:
Poiste pikkused: 180, 175, 200, 172, 169, 183, 188 Tüdrukute pikkused: 165, 167, 172, 169, 162 Tantsupaarid on: (169, 162) (172, 165) (175, 167) (180, 169) (183, 172) Paariliseta jäid poisid pikkustega 188, 200
Vihje: Massiivi võib sorteerida kasutades meetodit java.util.Arrays.sort(massiiviNimi)
.
3. Suusasprint
Suusasprindivõistlusel startisid suusatajad vastavalt stardinumbrile iga 15 sekundi järel. Stopper, mis mõõdab aega sekundites, käivitati esimese startija stardihetkel. Esimesse massiivi salvestati suusatajate stardinumbrid lõpetamise järjekorras (täisarvudena) ning teise massiivi salvestati stopperinäidud lõpetamise hetkedel samas järjekorras (reaalarvudena). Katkestajate näitudeks märgiti null sekundit ja nende andmed asetati massiivide lõppu. Koostada programm, mis väljastab võitja stardinumbri ja aja ning katkestajate arvu. Programmis peab olema peameetod ja meetodid järgmiste alamülesannete lahendamiseks.
a) Antud on stardinumbrite massiiv. Moodustada stardiaegade massiiv. Näiteks kui stardinumber on 6, siis vastav stardiaeg on 75.
b) Antud on stardiaegade massiiv ja stopperinäitude massiiv. Moodustada distantsi läbimisaegade massiiv (läbimisaeg = stopperinäit − stardiaeg, katkestajate puhul jääb distantsi läbimisajaks null).
c) Antud on distantsi läbimisaegade massiiv. Leida võitja tulemuse indeks massiivis.
d) Antud on stopperinäitude massiiv. Leida katkestajate arv.
Peameetodis
(1) kirjeldatakse kaks sama pikkusega näitemassiivi (üks stardinumbrite ja teine stopperinäitude jaoks);
(2) leitakse võitja stardinumber ja distantsi läbimisaeg ning väljastatakse see ekraanile;
(3) leitakse katkestajate arv ning väljastatakse see ekraanile.
Väljundi näidis:
Stardinumbrite {2, 1, 4, 5, 8, 7, 3, 6} ning stopperinäitude {148.2; 150.4; 165.7; 181.2; 226.0; 231.9; 0.0; 0.0} puhul on väljund
Võitja stardinumber oli 4 ja tema aeg oli 120.7. Katkestajaid oli 2.