CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
Geografije | Gospodarstvo | Računalniki | Recepti | Upravljanja | Zgodovina |
DOCUMENTE SIMILARE |
|
Programiranje I
Dodatne naloge za študijsko leto 2007/08
PRAVILA:
V študijskem letu 2007/08 bodo vaje dvanajstkrat, izvajale pa se bodo v računalniški učilnici LRI5. Na vajah se bomo praktično učili programiranja v programskem jeziku Java.
Udeležba na vajah je obvezna za vse študente, ki so v študijskem letu 2007/08 prvič vpisani v 1. letnik, vaj pa se lahko udeležijo tudi drugi študentje, ki so vpisani v 1. letnik (ponavljalci in prepisani študentje, ki imajo status). Zaradi prostorske stiske vaj ne morejo obiskovati študentje, ki niso vpisani v 1. letnik.
Na vsakih vajah bodo asistenti postopoma reševali primere nalog, ki bodo usklajeni s snovjo predavanj. Temu bo namenjena vsaj polovica časa, predvidenega za vaje. V preostalem času pa bodo morali študenti sami na računalniku rešiti podobno nalogo (ali nadgraditi podan primer). Pri tem lahko za nasvete prosijo asistenta. Udeležba na posameznih vajah se bo upoštevala samo tistim študentom, ki bodo prišli do rešitve (ali pokazali primerno delavnost).
Prvič vpisani študentje 1. letnika se morajo udeležiti vsaj 9 od 12 vaj. V tem primeru se lahko udeležijo kateregakoli izpitnega roka, v nasprotnem primeru pa se ne bodo smeli udeležiti zimskih izpitnih rokov (januar/februar 2008) in bodo šli lahko prvič na izpit šele junija 2008.
Študenti, ki so poslušali predmet Programiranje I v prejšnjih študijskih letih, se lahko prijavijo za katerikoli izpitni rok.
Študentje, ki že imajo dovolj predzanaja Jave, lahko namesto udeležbe na vajah doma rešujejo dodatne naloge. Namesto 9 obveznih udeležb je na voljo 9 nalog (3 skupine po 3 naloge), ki jih morajo študenti zagovarjati v predpisanih rokih na laboratorijskih vajah. Vsaka pravilno rešena naloga nadomešča udeležbo na enih laboratorijskih vajah, pri čemer naloga iz določene skupine nadomesti udeležbo na vajah v določenem obdobju. Za študijsko leto 2007/08 so predpisane naslednje naloge iz seznama dodatnih nalog:
1. skupina: naloge I.2, I.3, II.2, rok za zagovor 5.-9. november 2007, nadomeščajo udeležbo na vajah med 15. oktobrom in 9. novembrom 2007
2. skupina: naloge III.5, IV.7, V.2, rok za zagovor 17.-21. december 2007, nadomeščajo udeležbo na vajah med 12. novembrom in 14. decembrom 2007
3. skupina: naloge VI.3,VII.3, VII.4, rok za zagovor 7.-11. januar 2008, nadomeščajo udeležbo na vajah med 10. decembrom 2007 in 11. januarjem 2008
V
kolikor asistent oceni, da naloge niso zadovoljivo rešene, lahko od študenta
zahteva obvezno udeležbo na vajah.
I. SPLOŠNO - ALGORITMI
Romb iz zvezdic
Napišite program, ki najprej prebere podatek o številu vrstic, nato pa izpiše lik naslednje oblike (slika prikazuje primer, ko je število vrstic enako 7):
*
***
*****
*****
***
*
Smrekice iz zvezdic
Napišite program, ki najprej prebere podatek o številu vrstic n, nato pa izpiše n trikotnikov enega za drugim, kot je prikazano na sliki (slika prikazuje primer, ko je prebrano število n enako 5):
* * * * *
*** *** *** *** ***
***** ***** ***** ***** *****
******* ******* ******* ******* *******
3. Kvadrati števil
Napišite program, ki najprej prebere število vrstic n (n je pozitivno celo število), nato pa s pomočjo gnezdenja zank izpiše števila v kvadratni obliki tako, kot prikazujejo naslednji primeri:
a) n=1 b) n=5 c) n=8 c) n=11
1 12345 12345678 12345678901
6 6 9 9 2 2
7 7 0 0 3 3
8 8 1 1 4 4
12345 2 2 5 5
3 3 6 6
4 4 7 7
12345678 8 8
9 9
0 0
12345678901
4. Iskanje praštevil
Charles Babbage je pokazal, da s pomočjo formule x2+x+41 dobimo nenavadno veliko praštevil (npr. za x=0, dobimo praštevilo 41, za x=1 dobimo praštevilo 43, za x=2 dobimo praštevilo 47 itd.). Napišite program, ki za vse x od 0 do 100 izpiše, ali je vrednost x2+x+41 praštevilo. Prvih 5 vrstic izpisa naj izgleda tako:
41 je prastevilo
43 je prastevilo
47 je prastevilo
53 je prastevilo
61 je prastevilo
Napotek: Najprej sprogramirajte metodo jePrastevilo(), ki za argument n vrne vrednost true, če je n praštevilo, in false, če n ni praštevilo. To funkcijo nato kličite v zanki za vse x od 0 do 100.
5. Praštevila
Pruski matematik Christian Goldbach (1690 - 1764) je pokazal, da lahko vsako sodo število x, ki je večje od 2, zapišemo kot vsoto dveh praštevil (npr. 4 je vsota praštevil 2+2, 6 je 3+3, 8 je 3+5, 10 je 3+7 ali 5+5, 12 je 5+7 itd.). Napišite program, ki za vse sode x med 4 do 100 izpiše vse pare praštevil na naslednji način:
Napotek: Uporabite metodo jePrastevilo() iz prejšnje naloge. To metodo kličite v zanki za vse sode x od 4 do 100.
6. Skupni delitelji
Napišite program, ki izračuna in izpiše skupne delitelje dveh naravnih števil. Za primer, delitelji števila 10 so 2 in 5, delitelji števila 15 so 3 in 5, skupni delitelji obeh števil 10 in 15 pa je tako le 5.
7. Amortizacija osnovnih sredstev
Amortizacijo nekega osnovnega sredstva lahko računamo na tri načine:
a) Nabavno vrednost delimo z življenjsko dobo, tj. s številom let, v katerih se osnovno sredstvo amortizira. V tem primeru se vrednost osnovnega sredstva vsako leto zmanjša za prej omenjeni kvocient.
b) Vrednost osnovnega sredstva vsako leto zmanjšamo za enak delež, ki ga izračunamo kot kvocient 2/n, kjer je n življenjska doba v letih (npr. če se osnovno sredstvo amortizira v 10 letih, je ta delež 2/10). Delež se računa od trenutne vrednosti osnovnega sredstva, zato je zmanjšanje vrednosti vsako leto drugačno.
c) Vrednost osnovnega sredstva vsako leto zmanjšamo za delež, ki ga za vsako leto posebej izračunamo po formuli
kjer je n življenjska doba osnovnega sredstva, i pa zaporedna številka leta (i=1,2,3,,n). Delež se računa od nabavne vrednosti osnovnega sredstva.
Napišite program, ki za neko osnovno sredstvo prebere njegovo nabavno vrednost, življenjsko dobo v letih in način računanja amortizacije (A, B ali C), nato pa za vsako leto 'življenja' osnovnega sredstva izpiše zaporedno številko leta, zmanjšanje vrednosti v tistem letu in vrednost osnovnega sredstva na koncu leta.
Primer: Za osnovno sredstvo z nabavno vrednostjo 8000.00 in življenjsko dobo 10 let bi z metodo C dobili naslednji izpis:
konec leta 1 zmanjšanje vrednosti: 1454.55 trenutna vrednost: 6545.45
konec leta 2 zmanjšanje vrednosti: 1309.09 trenutna vrednost: 5236.36
konec leta 3 zmanjšanje vrednosti: 1163.64 trenutna vrednost: 4072.72
konec leta 10 zmanjšanje vrednosti: 145.45 trenutna vrednost: 0
Pozor: Na koncu lahko zaradi zaokrožitve in načina računanja amortizacije dobimo trenutno vrednost tudi različno od 0 !
8. Številske vrste
Napišite program za izračun vsote naslednjih številskih vrst:
Napotek: Vsoto številske vrste določite tako, da seštejete vrednosti posameznih členov številske vrste za določen x, pri čemer vsak naslednji člen vsote izračunajte s pomočjo predhodnega člena. S prištevanjem členov vsoti zaključite, ko absolutna vrednost člena pade pod 10-5.
II. RAZREDI IN OBJEKTI
1. Razred Točka
Lego neke točke v dvodimenzionalnem prostoru želimo opisati s pomočjo kartezičnih in polarnih koordinat. Sprogramirajte razred Tocka z atributi x (koordinata x), y (koordinata y), r (radij v polarnem zapisu) in kot (kot v polarnem zapisu) ter metodami:
nastaviX(a): nastavi koordinato x na a
nastaviY(b): nastavi koordinato y na b
nastaviPolarne(c,alfa): nastavi vrednosti polarnih koordinat (r dobi vrednost c, kot pa alfa),
pretvoriVPolarne(): izračuna atributa r in kot na podlagi atributov x in y
pretvoriVKartezicne(): izračuna atributa x in y na podlagi atributov r in kot
premakni(dx,dy): koordinati x in y se povečata za dx in dy
zavrti(alfa): zavrti točko okrog koordinatnega izhodišča (poveča kot za vrednost argumenta alfa
povecajRadij(m): poveča vrednost polarnega atributa r za m-krat
razdalja(t): izračuna razdaljo do točke t
izpisiKartezicne(): izpiše vrednosti atributov x in y
izpisiPolarne(): izpiše vrednosti polarnih koordinat r in kot
Za generiranje točk sprogramirajte tri konstruktorje:
prvi naj bo brez parametrov in zgenerira točko z vrednostmi vseh štirih atributov 0
drugi naj ima dva parametra a in b in naj zgenerira točko s koodinatama x=a in y=b, vrednosti r in kot pa se izračunata.
tretji naj ima dva parametra c in alfa in naj zgenerira točko s (polarnimi) koodinatami r=c in kot=alfa, vrednosti x in y pa se izračunata.
Za testiranje razreda krog napišite razred TestTocka. Z uporabo vsakega konstruktorja definirajte eno točko. Izpišite koordinate vseh točk v obeh načinih, nato pa prvo točko premaknite, drugo zavrtite in tretji povečajte radij. Ob vsaki operaciji poskrbite za konsistentnost koordinat v obeh zapisih. Ponovno izpišite vse točke ter na koncu izpišite še razdalje med vsemi tremi točkami.
2. Razred Pravokotnik
Sprogramirajte razred Pravokotnik z atributi x (vodoravni odmik gornjega levega oglišča pravokotnika od izhodišča), y (navpični odmik gornjega levega oglišča pravokotnika od izhodišča), a (širina pravokotnika), b (višina pravokotnika), obseg in ploscina ter metodami nastaviLego (vrednosti atributov x in y nastaviVelikost (vrednosti atributov a in b), izracunajObseg, izracunajPloscino, premakni (trenutna lega se spremeni za dx in dy, ki sta podana kot parametra), izpisiLego, izpisiObseg in izpisiPloscino. Za generiranje pravokotnikov sprogramirajte dva konstruktorja: prvi naj bo brez parametrov, drugi pa naj ima 4 parametre: x y a in b. Ob klicu prvega konstruktorja se generira pravokotnik s stranicama a=b=1 in gornjim levim ogliščem v točki (0,1), vrednosti obsega in ploščine pa ostaneta nedefinirani. Ob klicu drugega konstruktorja naj se pravilno nastavijo vrednosti vseh atributov: x y a b obseg in ploscina
Za testiranje razreda krog napišite razred TestPravokotnik. Z uporabo prvega konstruktorja definirajte dva pravokotnika, z uporabo drugega pa še dva. Izpišite lege, obsege in ploščine za vse pravokotnike. Nato spremenite lego in velikost pravokotnikov, jih premaknite in ponovno izpišite vse vrednosti.
3. Razred Avto
Sprogramirajte razred Avto, ki predstavlja avtomobil z njegovimi tehničnimi značilnostmi in trenutnim stanjem. Poleg atributa stevilka, ki omogoča ločevanje posameznih avtomobilov, so tehnične značilnosti opisane z atributi najvecjaHitrost (v km/h), velikostRezervoarja (v litrih) in povprečnaPoraba (v litrih/100 km). Trenutno stanje avtomobila predstavljajo atributi avtoVzgan (tipa boolean), stevecKm (npr. 234.142 km), trenutnaHitrost (npr. 56.12 km/h) in kolicinaGoriva (npr. 14.325 litrov).
Razred naj vsebuje naslednje metode:
nastaviStevilko(s): nastavi atribut stevilka na s (recimo 1),
nastaviNajvecjoHitrost(h): nastavi atribut najvecjaHitrost na h km/h (recimo 180),
nastaviVelRezervoar(l): nastavi atribut velikostRezervoarja na l litrov (recimo 48.0),
nastaviPovPorabo(l): nastavi atribut povprecnaPoraba na l litrov/100 km (recimo 7.5),
napolniGorivo(): nastavi atribut kolicinaGoriva na vrednost velikostRezervoarja
vzgiAvto(): nastavi atribut avtoVzgan na true, pri čemer se porabi 0.05 litra goriva (če ni zadosti goriva se avto ne vžge)
ugasniAvto(): nastavi atribut avtoVzgan na false, pri čemer se lahko avto ugasne le, ko je njegova hitrost enaka 0.
vozi(t): vozi t minut s trenutno hitrostjo in vrne koliko poti je v tem času prevozil. Metoda povzroči spremembo atributov stevecKm in kolicinaGoriva. Če je goriva premalo, naj vožnja poteka tako dolgo, dokler ne zmanjka goriva. Avto lahko vozi le v primeru, da je vžgan (atribut avtoVzgan nastavljen na true) in ima trenutno hitrost večjo kot 0.
spremeniHitrost(h): spremeni trenutnaHitrost na vrednost h km/h. Hitrost avtomobila je med in najvecjaHitrost
ustavi(): spremeni trenutnaHitrost na vrednost km/h.
najvecjiCas(): metoda vrne podatek, koliko minut in sekund lahko še vozimo glede na trenutno količino goriva. Trenutno stanje avtomobila se ne spremeni.
doseg(l): metoda vrne podatek, koliko kilometrov lahko prevozimo z največjo hitrostjo, če je v rezervoarju še l litrov goriva. Trenutno stanje avtomobila se ne spremeni.
casVoznje(d): metoda nam pove vrne koliko časa (v minutah in sekundah) potrebujemo, da prevozimo d kilometrov, če vozimo z nespremenjeno hitrostjo, v rezervoarju pa imamo trenutno količino goriva. Pri tem je treba upoštevati, da količina goriva lahko tudi ne zadošča; v tem primeru bo treba ustaviti, ugasniti avtomobil, napolniti rezervoar, ga znova prižgati in odpeljati naprej, kar nam vzame dodatnih 15 minut. Trenutno stanje avtomobila naj se sicer ne spremeni.
potovalnaHitrost(d,t): metoda vrne hitrost, s katero naj avto vozi, da bi d km oddaljen kraj dosegel v t minutah. Pri tem naj upošteva tudi eventuelna polnjenja rezervoarja, ki vzamejo dodatnih 15 minut. Trenutno stanje avtomobila se ne spremeni.
boljsi(a): primerja trenutni avtomobil z avtomobilom a in izpiše stevilko boljšega avtomobila. Boljši je tisti avtomobil, ki v krajšem času prevozi 1000 km, pri čemer upoštevajte tudi čas polnjenja goriva.
izpis(): izpiše vse atribute avtomobila.
Pri vseh metodah predpostavljamo, da avto pri vseh hitrostih porabi enako količino goriva.
Za generiranje avtomobilov sprogramirajte tri konstruktorje:
prvi naj bo brez parametrov in zgenerira avtomobil, ki ima vse atribute prazne (vrednost 0 ali false
drugi naj ima le parameter s in naj zgenerira avtomobil s številko s, ostale vrednosti pa naj bodo prazne.
tretji naj ima parametre s, h v in p, zgenerira pa naj avtomobil številke s, z največjo hitrostjo h, velikostjo rezervoarja v in povprečno porabo p. Atributi stevecKm trenutnaHitrost in kolicinaGoriva naj imajo vrednost 0, avtoVzgan pa na false
Za testiranje razreda Avto napišite razred TestAvto. Z uporabo vsakega konstruktorja definirajte po en avto. S pomočjo metod za nastavljanje atributov dopolnite podatke za prva dva avtomobila, nato pa izpišite vse podatke o vseh avtomobilih. Z vsemi simulirajte polnjenje goriva, vožnjo, spreminjanje hitrosti in vse informativne izpise. Ponovno izpišite vse avtomobile ter jih primerjajte med seboj.
III. TABELE
1. Ocene študentov
Študent mora v 1. letniku opraviti izpite iz 10 predmetov. Njegove ocene hranimo v dveh tabelah: tabela izpit hrani ocene izpitov, tabela vaje pa ocene vaj. Če študent še ni polagal izpita pri določenem predmetu, je vpisana ocena 0 (pri izpitih in vajah), v nasprotnem primeru pa ocena zadnjega polaganja.
private static byte[] izpit = new byte[10];
private static byte[] vaje = new byte[10];
Napišite metodo public static void napolniTabeliOcen(), ki z uporabo generatorja naključnih števil napolni obe tabeli z vrednostmi med 0 in 10. Pri polnjenju bodite pozorni na medsebojno skladnost podatkov v obeh tabelah:
a) če ima študent oceno izpita 0, mora biti tudi ocena vaj 0 (študent še ni polagal izpita);
b) če ima študent negativno oceno izpita, mora biti ocena vaj 0 (na naši fakulteti velja pravilo, da se ocena vaj vpiše šele takrat, ko študent opravi izpit);
c) če ima študent pozitivno oceno izpita, mora biti tudi ocena vaj pozitivna.
Napišite metodo public static void analizaOcen(), ki :
a) izračuna povprečno oceno izpitov in povprečno oceno vaj, pri čemer upošteva samo pozitivne ocene
b) izračuna indeks predmetov, kjer je bila dosežena najvišja ocena izpita, najvišja ocena vaj in najvišja skupna ocena izpita in vaj
c) izračuna standardno deviacijo ocen izpitov in vaj, upoštevajoč samo pozitivne ocene. Formula za izračun standardne deviacije je naslednja:
Izračunane podatke vpišite v tabele povOc, maxOc in std tako, da velja naslednje:
povOc[0] vsebuje povprečno oceno izpitov;
povOc[1] vsebuje povprečno oceno vaj;
maxOc[0] vsebuje indeks predmeta, kjer je študent dosegel najvišjo oceno izpita;
maxOc[1] vsebuje indeks predmeta, kjer je študent dosegel najvišjo oceno vaj;
maxOc[2] vsebuje indeks predmeta, kjer je študent dosegel najvišjo skupno oceno izpita in vaj;
std[0] vsebuje standardno deviacijo za ocene izpitov;
std[1] vsebuje standardno deviacijo za ocene vaj;
Napišite metodo public static void izpisiRezultate(), ki izpiše vrednosti tabel povOc, maxOc in std
Vse tabele deklarirajte kot statične spremenljivke na ravni razreda. Delovanje metod preverite z ustreznim zaporedjem klicev metod v metodi main
2. Kozarci marmelade
V neki tovarni polnijo marmelado v 700-gramske kozarce. Delovanje polnilne naprave preverjajo tako, da v vsaki izmeni (tovarna dela v treh izmenah) naključno izberejo 10 kozarcev in jih stehtajo. Podatke, ki jih dobijo pri tehtanju, zabeležijo v dvodimenzionalno tabelo vzorec, ki ima 3 vrstice (vsaka vrstica predstavlja eno izmeno) in 10 stolpcev (vsak stolpec ustreza enemu vzorcu).
private static int[][] vzorec = new int[3][10];
Napišite metodo public static void napolniVzorce(), ki z uporabo generatorja naključnih števil napolni tabelo vzorec z vrednostmi med 670 in 730.
Napišite metodo public static void analizaVzorcev(), ki za vsako izmeno posebej:
d) izračuna povprečno maso vseh 10 naključno izbranih kozarcev
e) poišče indeks tistega kozarca, ki najbolj odstopa od predpisane mase 700 gramov.
Izračunane podatke vpišite v tabeli pv in ik tako, da velja naslednje:
pv[0] vsebuje povprečno maso kozarcev, odvzetih v prvi izmeni;
pv[1] vsebuje povprečno maso kozarcev, odvzetih v drugi izmeni;
pv[2] vsebuje povprečno maso kozarcev, odvzetih v tretji izmeni.
ik[0] vsebuje indeks tistega kozarca iz prve izmene, ki najbolj odstopa od predpisane mase 700 g;
ik[1] vsebuje indeks tistega kozarca iz druge izmene, ki najbolj odstopa od predpisane mase 700 g;
ik[2] vsebuje indeks tistega kozarca iz tretje izmene, ki najbolj odstopa od predpisane mase 700 g;
Napišite metodo public static void izpisiAnalizo(), ki izpiše vrednosti tabel pv in ik
Upoštevajte, da so vse tabele deklarirane na ravni razreda. Delovanje metod preverite z ustreznim zaporedjem klicev metod v metodi main
3. Trgovine
V podjetju, ki ima 7 trgovin, spremljajo prodajo po posameznih trgovinah za obdobje petih let. Podatki o prodaji (tj. vrednost vseh prodanih izdelkov v milijonih SIT) so shranjeni v dvodimenzionalni tabeli prodaja, ki ima 7 vrstic (vsaka vrstica ustreza eni trgovini) in 5 stolpcev (vsak stolpec ustreza enemu letu).
Napišite razred Trgovine, v katerem je tabela prodaja deklarirana kot statična spremenljivka razreda:
private static int[][] prodaja = new int[7][5];
Razred naj vsebuje metodo static void napolniProdajo(), ki z uporabo generatorja naključnih števil napolni tabelo z vrednostmi med 10 in 1000.
Napišite metodo static void izpisiVsoProdajo(), ki za vsako trgovino posebej izpiše: vrednost prodanih izdelkov v vsakem letu, nato pa še vsoto vrednosti prodaje trgovine v vseh petih letih skupaj.
Napišite metodo static void letnaPovprecja(), ki za vsako leto izpiše vsoto in povprečno vrednost prodaje vseh trgovin skupaj.
Napišite metodo static int najTrgovinaLeta(int leto), ki vrne indeks trgovine, ki je v letu z indeksom leto imela največjo vrednost prodaje. Če je takih trgovin več, vrnite indeks prve izmed njih.
Napišite metodo static int[] najProdajaLeta(), ki vrne celoštevilsko tabelo z dvema elementoma: prvi predstavlja indeks trgovine, drugi pa indeks leta, v katerem je bila dosežena največja prodaja nasploh. Rešitev naj uporablja metodo najTrgovinaLeta(). Če je rešitev več, vrnite indeks zadnjega leta.
Delovanje vseh metod preverite z ustreznim zaporedjem klicev metod v metodi main. Pri zadnjih dveh metodah poskrbite za izpis vrnjenih vrednosti, pri predzadnji pa še za ustrezen vnos podatkov (indeks leta).
4. Trgovsko podjetje
Neko trgovsko podjetje ima 10 trgovin. V tabeli promet so shranjeni podatki o vrednosti prodanega blaga za vsak dan preteklega leta. Tabela je tridimenzionalna: prva dimenzija predstavlja 10 trgovin, druga 12 mesecev in tretja 31 dni v vsakem mesecu (če ima mesec manj kot 31 dni, imajo odvečni elementi tabele vrednost 0).
Napišite metodo napolniPodatke, ki z uporabo generatorja naključnih števil napolni tabelo promet z vrednostmi med 10 000 in 10 000 000. Bodite pozorni na elemente tabele, ki morajo biti 0.
Napišite metodo vsotaPoTrg, ki za vsako trgovino posebej izračuna, koliko znaša vrednost prodanega blaga v celem letu, tako da sešteje podatke po dnevih in mesecih ter dobljeno vsoto vpiše v tabelo letPrometTrg
Napišite metodo izpisiPromet, ki izpiše vrednosti tabele letPrometTrg
Delovanje metod preverite s pomočjo razreda TestTrgPodjetje. Upoštevajte naslednje deklaracije:
class TrgPodjetje
class TestTrgPodjetje
5. Temperature
Napišite razred Temperature, ki omogoča statistično obdelavo podatkov o povprečnih mesečnih temperaturah zadnjih desetih let v osmih slovenskih krajih. Podatke hranimo v tridimenzionalni tabeli, kjer prva dimenzija predstavlja 8 krajev, druga 10 let in tretja 12 mesecev vsakega leta.
Napišite metodo static void napolniTemperature(double[][][] t), ki z uporabo generatorja naključnih števil napolni tabelo prispevki z ustreznimi decimalnimimi števili. Da bi bile generirane vrednosti kar najbolj realne upoštevajte, da so povprečne temperature:
pozimi (december, januar in februar) med -20.0 in +5.0 C;
spomladi (marec, april in maj) med 0.0 in 25.0 C in naraščajo – marec ima najmanj, maj največ;
poleti (junij, julij in avgust) med 20.0 in 35.0 C;
jeseni (september, oktober in november) med 0.0 in 25.0 C in padajo – september ima največ, november najmanj;
Napišite metodo static void izpisiKrajevneTemperature(double[][][] t, int k, int l), ki za kraj z indeksom k izpiše za leto l vse mesečne temperature in celoletno povprečje (celoletno povprečje dobimo tako, da seštejemo povprečne temperature po posameznih mesecih in jih delimo z 12).
Napišite metodo static void izpisiTemperaturePoLetih(double[][][] t), ki za vsako leto izpiše celoletno povprečje za vsak kraj posebej in za vse kraje skupaj (povprečna vrednost vseh temperatur v vseh mesecih in krajih določenega leta).
Napišite metodo static void triNajnizjeTemperature(double[][][] t), ki izpiše tri kombinacije indeksov kraja, leta in meseca, kjer so bile dosežene tri najnižje mesečne temperature nasploh. V primeru, da je več enakovrednih rezultatov, izpišite vse.
Delovanje vseh metod preverite z ustreznim zaporedjem klicev metod v metodi main. Upoštevajte, da tabela temperatur ni statična spremenljivka razreda. V metodi main poskrbite tudi za ustrezen vnos podatkov (indeks kraja in leta).
6. Znanstvena konferenca
Na znanstveni konferenci bodo avtorji iz 25 držav EU predstavili tri vrste prispevkov (referate, kratke referate in posterje), ki sodijo v pet različnih področij. V tridimenzionalni tabeli prispevki so shranjeni podatki o številu prispevkov posamezne vrste po državah in posameznih področjih: prva dimenzija predstavlja 25 držav, druga tri vrste prispevkov in tretja pet znanstvenih področij.
Napišite metodo napolniTabelo(), ki z uporabo generatorja naključnih števil napolni tabelo prispevki z vrednostmi med 0 in 20.
public static void napolniTabelo(int[][][] prispevki)
Napišite metodo skupajPrispevkov ki izpiše skupno število vseh prispevkov na konferenci
public static void SkupajPrispevkov(int[][][] prispevki)
Napišite metodo prispevkovPoVrsti, ki izpiše skupno število prispevkov vsake vrste.
public static void prispevkovPoVrsti(int[][][] prispevki)
Napišite metodo podrocjeZNajvecPrispevki ki izpiše zaporedno številko (tj. indeks) tistega področja, za katero bo predstavljenih največ prispevkov. Če je takšnih področij več, naj metoda izpiše zaporedne številke vseh področij.
public static void podrocjeZNajvecPrispevki(int[][][] prispevki)
IV. NIZI
1. Analiza nizov
Napišite razred AnalizaNizov, ki se obnaša kot knjižnica metod, s katerimi lahko analiziramo vsebino poljubnega niza. Razred naj vsebuje naslednje metode:
Metoda public static int steviloMalihCrk(String niz) vrne število malih črk, ki jih vsebuje niz
Metoda public static int steviloZnakov(String niz, char c) vrne število pojavitev znaka c v nizu niz
Metoda public static int steviloBesed(String niz) vrne število besed, ki jih vsebuje niz. Pri tem predpostavite, da se lahko vsaka beseda začne s črko ali številko (in vsebuje poljubno število črk in številk), ločilo med besedami pa so beli presledki. Med bele presledke (angleško white space) štejemo znak za presledek ( ), znak za tabulator (‘t’), znak za novo vrstico (‘n’), znak za prehod na začetek vrstice (angl. carriage return, ‘r’) ter znak za pomik v novo vrsto (angl. line feed, ‘f’
Metoda public static String besedaNaMestu(String niz, int m) vrne besedo, ki se nahaja na m-tem mestu v niz. Če je m večji od števila besed, metoda vrne prazen niz.
Metoda public static int steviloEnakihZnakov(String niz) vrne največje število enakih (katerihkoli) malih črk (angleške abecede) v nizu niz
Metoda public static String besedaZNajvecEnakimiZnaki(String niz) vrne besedo iz niza niz, ki vsebuje največ enakih (katerihkoli) malih črk (angleške abecede). Če je takih besed več, naj metoda vrne prvo izmed njih. Pri rešitvi si pomagajte (tudi) z ustreznimi klici drugih metod razreda AnalizaNizov
Delovanje vseh metod preverite z ustreznim zaporedjem klicev metod v metodi main. Pri tem poskrbite za ustrezen vnos niza in drugih potrebnih podatkov.
2. Kodiranje nizov
Napišite metodi Kodiraj in Dekodiraj, ki omogočata kodiranje niza tipa String v število tipa long in obratno. Pri tem naj velja:
niz sestavljajo samo črke iz angleške abecede (26 znakov) in številke (10 znakov)
v nizu ne razlikujemo med velikimi in malimi črkami
nizi so lahko dolgi največ 10 znakov
Pri kodiranju si pomagamo s kodirno tabelo, kjer vsakemu izmed 36 znakov pripada ena vrednost (recimo a-ju pripada vrednost 1, b-ju vrednost 2, itd.). Vrednost niza izračunamo tako, da vrednost prvega znaka v nizu pomnožimo s 37, temu prištejemo vrednost drugega znaka in vse skupaj pomnožimo s 37, nato dodamo vrednost tretjega znaka in tako naprej do zadnjega znaka.
Primer:
A,a |
B,b |
C,c |
D,d |
N,n |
R,r | ||||
ABRAN0 = 1 | 2 | 18 | 1 | 14 | 27 = ((((1*37+2)*37+18)*37+1)*37+14)*37+27 = 74005947
Pri dekodiranju ravnamo obratno: ostanek pri deljenju s 37 nam pove kodo zadnjega znaka, nato pa kodo postopoma celoštevilsko delimo in določamo ostanke. S postopkom končamo takrat, ko je rezultat deljenja s 37 enak 0.
Primer:
»0«
74005947 / 37 = 2000160, 2000160 % 37 = 14 »N«
2000160 / 37 = 54058, 54058 % 37 = 1 »A«
»R«
»B«
39 / 37 = 1, 1 % 37 = 1 »A«
3. Ugibanje pregovorov
public class Pregovor
while (poz != -1);
System.out.println(prikazaniNiz);
}
}
}
Podan program za ugibanje pregovora popravite tako, da bo ustrezal naslednjim zahtevam:
4. Popačena govorica
V tabeli nizi, ki jo morate kreirate sami, naj bo shranjenih 10 nizov tipa StringBuffer, ki jih želimo popačiti s pomočjo metode
public static void popaciNiz(StringBuffer enNiz)
ki niz enNiz enNiz je vhodno-izhodni parameter) preoblikuje tako, da v vsaki besedi (besede so med seboj ločene z enim ali več presledki):
a) odvzame prvo črko in jo prestavi na konec besede
b) na koncu tako preoblikovane besede doda še črko 'a'
Primer: Niz z besedilom 'Java je objektno usmerjen programski jezik' se pretvori v 'avaJa eja bjektnooa smerjenua rogramskipa ezikja'
5. Šifriranje nizov
Napišite metodo public static void sifrirajNiz(StringBuffer n), ki niz n n je vhodno-izhodni parameter) zašifrira na naslednji način:
Poleg tega mora metoda nastaviti prvi znak vsakega zašifriranega niza tako, da bo možno ponovno dešifriranje (tj. pretvorba niza v prvotno obliko).
Primer:
a) niz 'oobrni' se pretvori v 'oinrbo'
b) niz 'nnaslednji' se pretvori v 'pobtmfeokj'
c) niz 'ppredhodni' se pretvori v 'noqdcgncmh'
Napotek: Upoštevajte dejstvo, da je vsak znak interno predstavljen s svojo numerično kodo. Zato lahko s pomočjo konverzije tipa znak ch pretvorimo v celo število (npr. int num=(int) ch;) in obratno (npr. char ch=(char) num;
Delovanje metode preverite z ustreznimi klici metode v metodi main.
6. Kodiranje
Napišite razred Kodiranje, ki vsebuje metodi
public static StringBuffer kodiraj(String n)
public static String dekodiraj(StringBuffer n)
Metoda kodiraj naj niz n pretvori v niz tipa StringBuffer tako, da vsako črko angleške abecede nadomesti z nizom, ki predstavlja zaporedno številko velike črke v angleški abecedi, vse ostale znake (tudi številke) pa naj ohrani nespremenjene. Da bi omogočili enolično dekodiranje črk, je treba 'A' in 'a' nadomestiti z '01' ter 'B' in 'b' z '02', medtem ko ostale črke lahko nadomestimo z eno ali dvema ciframa ('C' in 'c' s '3', 'D' in 'd' s '4', ter 'Z' in 'z' s '26').
Metoda dekodiraj pa naj tako zakodiran niz pretvori spet v prvotno obliko. V primeru klica metode dekodiraj s pokvarjenim zakodiranim nizom, naj ta metoda javi mesto napake v kodiranem nizu (primer pokvarjenega niza je recimo niz '03').
Primer: Metoda kodiraj pretvori niz 'RACUNALNIK JE ZAKON !' v '180132114011214911 105 2601111514 !', metoda dekodiraj pa ta niz pretvori ponovno v 'RACUNALNIK JE ZAKON !'.
Delovanje obeh metod preverite tako, da v metodi main zaporedoma vnašate (poljubno število) nizov, za katere program najprej izpiše njihovo kodo, nato pa še niz, ki nastane z dekodiranjem kode. Postopek kodiranja naj se zaključi takrat, ko vnesete prazen niz.
7. Stiskanje nizov
Nize, v katerih se neka črka večkrat ponovi, lahko zapišemo krajše na naslednji način:
AAA zapišemo kot A3
ABBCD zapišemo kot AB2CD
AAAAEEEEEEEEEEEU zapišemo kot A4E11U
Kot je razvidno iz primera, stisnjena beseda ni nikoli daljša od originala, saj število zaporednih nastopanj vsake črke dodamo samo v primeru, ko se črka dejansko ponavlja.
Napišite program, ki bo omogočal stiskanje in ponovno razširjanje besed. Program naj bo omejen na besede, ki so sestavljene samo iz črk (a-z in A-Z), upoštevajte pa, da je število pojavitev lahko tudi večmestno število.
Program naj vsebuje tako metodo za stiskanje kot metodo za razširjanje besed. V njem najprej preberemo tabelo t1 z 10 besedami, besede stisnemo in zapišemo v tabelo t2 ter stisnjene besede zopet razširimo in zapišemo v tabelo t3. Program naj na koncu izpiše vse tri tabele.
V. TABELE OBJEKTOV, SORTIRANJE TABEL
Planinci
Razred Planinec je namenjen hranjenju podatkov o članih planinskega društva. Obsega številko, priimek in ime planinca, leto prvega vpisa in dvodimenzionalno tabelo, v kateri so v časovnem zaporedju shranjeni podatki o njihovih planinskih podvigih v Sloveniji: prva dimenzija predstavlja zaporedna leta od vpisa, druga število osvojenih vrhov, vrednost sama pa višino določenega vrha v metrih. Ker je najstarejši planinec vpisan v društvu 30 let, je 30 tudi velikost prve dimenzije, medtem ko je število osvojenih vrhov v določenem letu omejeno na 20.
class Planinec
Primer: stevilka: 4
ime: Janez
priimek: Novak
letoVpisa: 2004
podvigi = ,}
Sprogramirajte razred TestPlaninec, v katerem naj bo deklarirana tabela s podatki za 10 planincev:
class TestPlaninec
Razred TestPlaninec naj:
leto prvega vpisa kot naključna vrednost med 1976 in 2005,
število osvojenih vrhov kot naključna vrednost med 0 in 20,
višine posameznih vrhov kot naključna vrednost med 800 in 2864.
Primer: 4 Janez Novak, leto vpisa: 2004, skupaj vrhov: 9
2004 - Stevilo vrhov: 7 ; 890 m, 1250 m, 2060 m, 2369 m, 1024 m, 2864 m,1028 m
2005 - Stevilo vrhov: 2 ; 1290 m, 1462 m
2. Dohodnina
Podatki o dohodnini za 10 davčnih zavezancev davčne uprave so shranjeni v tabeli zavezanci. Za vsakega zavezanca obsegajo enotno matično številko občana (EMŠO), priimek, ime, višine odmerjenih dohodnin in višine plačanih akontacij za zadnjih 8 let (od leta 1998 do 2005). Pri tem veljajo naslednje deklaracije:
class Zavezanec
class TestZavezanec
Razlika med odmerjeno dohodnino in plačano akontacijo v določenem letu predstavlja doplačilo, ki ga mora zavezanec doplačati davčni upravi v tem letu. Če je ta razlika negativna, govorimo o vračilu, saj davčna uprava tak znesek vrne zavezancu. Napišite program, ki bo:
omogočal vnos vseh podatkov v tabelo zavezanci. Del podatkov (EMŠO, priimek in ime) vnesite ročno, medtem ko elemete tabel tvorite z generatorjem naključnih števil (območje med 500 000 in 10 000 000);
izpisal urejen seznam zavezancev glede na skupno vsoto doplačil (oziroma vračil) dohodnine. Na prvem mestu naj bo zavezanec, ki je (v vseh letih skupaj) največ doplačal, na zadnjem pa tisti, ki je najmanj doplačal oziroma je največ denarja dobil nazaj.
izpisal urejen seznam letnic (od 1998 do 2005) glede na skupen znesek doplačil (oziroma vračil) vseh zavezancev v določenem letu. Na prvem mestu naj bo leto, v katerem je bil skupni znesek doplačil največji (oziroma najmanjši znesek vračil), na zadnjem pa tisto, ko je bil največji znesek vračil (oziroma najmanjši znesek doplačil).
3. Telefonski impulzi
Razred Uporabnik je namenjen hranjenju podatkov o telefonskem priključku vsakega uporabnika v podjetju. Obsega priimek in ime uporabnika in številko oddelka, kjer je zaposlen, poleg tega pa je v komponenti stImpulzov shranjeno število porabljenih impulzov v posameznih mesecih preteklega leta.
class Uporabnik
Sprogramirajte razred TestUporabnik, v katerem naj bo deklarirana tabela s podatki za 10 uporabnikov:
class TestUporabnik
Razred TestUporabnik naj:
omogoča vnos vseh podatkov v tabelo uporabniki. Tabela mora biti urejena po komponenti stOddleka (oddelki so oštevilčeni z zaporednimi številkami od 1 dalje), tako da se podatki o uporabnikih iz istega oddelka nahajajo skupaj (sortiranje med vnosom podatkov). Del podatkov (priimek, ime, številka oddelka) vnesite ročno, medtem ko lahko elemente iz tabele stImpulzov tvorite z generatorjem naključnih števil (vrednosti med 0 in 1000).
za vsak oddelek posebej izračuna in izpiše povprečno število porabljenih impulzov v preteklem letu. Nalogo morate rešiti z enim samim prehodom skozi tabelo, upoštevajoč, da je tabela urejena po številkah oddelkov.
izpiše urejen seznam uporabnikov glede na porabljeno število impulzov. Na prvem mestu naj bo uporabnik, ki je v celem letu porabil največ impulzov, na zadnjem pa tisti, ki je jih je porabil najmanj.
VI. ABSTRAKTNI RAZREDI
1. Geometrijska telesa
Podan je abstraktni razred GeometrijskaTelesa, iz katerega lahko izpeljemo podrazrede za različna geometrijska telesa (npr. kvadre, krogle, valje ipd.). Za vsako telo želimo izračunati volumen in površino, zato sta v razredu GeometrijskaTelesa deklarirani abstraktni metodi volumen in povrsina
public abstract class GeometrijskaTelesa
a) Sprogramirajte podrazreda Kvadri in Valji, v katerih naj bodo za vsako vrsto teles:
deklarirani atributi, ki jih potrebujemo za izračun volumna in površine;
sprogramiran konstruktor z ustreznimi argumenti;
redefinirani metodi volumen in povrsina
redefinirana metoda toString() za izpis vseh podatkov o telesu.
b) Sprogramirajte podrazred Kocke, ki je podrazred razreda Kvadri. Ta naj vsebuje ustrezen konstruktor ter po potrebi ustrezno redefinirane metode.
c) Sprogramirajte razred TabelaGeometrijskihTeles, v katerem naj bo deklarirana tabela t z različnimi geometrijskimi telesi. Razred naj:
napolni tabelo t s podatki o različnih telesih;
poišče telo z največjim volumnom in izpiše vse njegove atribute, njegov volumen in površino.
Za izhodišče uporabite naslednje deklaracije:
public class TabelaGeometrijskihTeles
2. Atleti
Podan je abstraktni razred Atlet, ki predstavlja osnovo za izdelavo programov, s pomočjo katerih lahko obdelujemo rezultate nekega atletskega tekmovanja.
public abstract class Atlet
public abstract void vnesiRezultat();
Postopek za vnos rezultata, ki ga je dosegel nek tekmovalec, je odvisen od discipline, v kateri je nastopil. Tako je pri metalcih (krogle, diska, kladiva, kopja) potrebno vnesti ime discipline (npr. 'Met kopja') in dolžine posameznih metov (vsak metalec ima na razpolago 6 metov). Pri tekačih pa je potrebno vnesti razdaljo v metrih (npr. 100, 200, 400, 800, 1500, 5000 ali 10000) in čas (lahko kot štiri ločene celoštevilske vrednosti za ure, minute, sekunde in stotinke), ki ga je dosegel.
Sprogramirajte:
a) Podrazred Metalec, ki bo vseboval:
deklaracije dodatnih atributov, ki so specifični za metalce,
konstruktor, ki bo generiral nov objekt tipa Metalec z vsemi podatki razen dolžin posameznih metov (le-te se vpišejo kasneje z metodo vnesiRezultat
redefinicijo metode za vnos rezultatov,
redefinicijo metode toString(), ki vrne niz z vsemi podatki o metalcu.
b) Podrazred Tekac, ki bo vseboval:
deklaracije dodatnih atributov, ki so specifični za tekače,
konstruktor, ki bo generiral nov objekt tipa Tekac z vsemi podatki razen časa, ki ga je dosegel (le-ta se vpiše kasneje z metodo vnesiRezultat
redefinicijo metode za vnos rezultatov,
redefinicijo metode toString(), ki vrne niz z vsemi podatki o tekaču.
V posebnem razredu TestAtletov vnesite podatke za več metalcev in tekačev (recimo 10) in jih shranite v tabelo objektov tipa Atlet. Nato z metodo toString izpišite vse atlete tako, da se poleg štartne številke, imena, priimka in države pri metalcih izpiše še ime discipline in vsi meti, pri tekačih pa razdalja in doseženi čas.
3. Funkcije
Abstraktni razred Funkcija predstavlja osnovo za različne razrede, s katerimi realiziramo različne matematične funkcije ene spremenljivke f(x):
public abstract class Funkcija
Metoda vrednost izračuna vrednost funkcije v točki x - f(x), metoda enaNicla pa eno ničlo (vrednost x, kjer je vrednost f(x)=0), ki se nahaja med točkama x1 in x2
Dopolnite zgornjo deklaracijo razreda Funkcija z metodo enaNicla, ki poišče (po metodi bisekcije) eno izmed ničel, ki se nahajajo med točkama x1 in x2 na naslednji način:
a. Parametra x1 in x2 morata biti izbrana tako, da je v eni izmed teh dveh točk funkcijska vrednost pozitivna, v drugi pa negativna. V kolikor ni tako, ugotovite napako.
b. Interval (x1,x2) razpolovimo tako, da izračunamo x=(x1+x2)/2
c. Izračunano srednjo vrednost uporabimo namesto enega od prejšnjih približkov:
Če imata vrednosti polinoma v točkah x in x1 enak predznak, nadaljujemo z iskanjem ničle na intervalu (x,x2), torej x1=x
V nasprotnem primeru nadaljujemo z iskanjem ničle na intervalu (x1,x), torej x2=x
d. Koraka (ii) in (iii) ponavljamo, dokler ne dosežemo predpisane natančnosti (dokler velikost intervala ne pade pod 10-4).
Napišite razred Polinom, ki je podrazred razreda Funkcija in služi za predstavitev polinomov. Vsak objekt tega razreda naj bo definiran s tabelo realnih števil a, ki predstavljajo koeficiente polinoma:
V razredu Polinom sprogramirajte ustrezen konstruktor in redefinirajte metodo vrednost, tako da vrne vrednost polinoma v točki x. Za izračun vrednosti polinoma uporabite Hornerjevo shemo, po kateri lahko polinom zapišemo na naslednji način:
Napišite razred MExpK, ki je tudi podrazred razreda Funkcija in predstavlja funkcijo mex-k. Vsak objekt tega razreda naj bo definiran z realnima številoma m in k V razredu MExpK sprogramirajte ustrezen konstruktor in redefinirajte metodo vrednost. Vrednost funkcije izračunate z vrsto.
Napišite testni razred TestFun, v katerem v metodi main s pomočjo generatorja naključnih števil tvorite 10 funkcij (nekaj polinomov in nekaj eksponentnih funkcij). Za vsako od njih izpišite njihove ničle na ustreznih intervalih.
VII. GRAFIKA
1. Diagram krožnih izsekov
Napišite metodo public void paintComponent(Graphics g), ki bo narisala diagram krožnih izsekov (ang. pie chart) na podlagi podatkov, shranjenih v tabelah delezi in barve. Tabela delezi določa velikost posameznih krožnih izsekov tako, da vsebuje podatke o procentualnih deležih (vsota vseh deležev mora biti enaka 100), tabela barve pa določa, s kakšno barvo naj bo 'napolnjen' vsak izsek.
Poskrbite tudi za ustrezno polnjenje tabel delezi in barve, npr. na naslednji način:
double[] delezi=;
Color[] barve=;
Rešitev naj upošteva dejansko število elementov v obeh tabelah.
2. Grafični prikaz starostne strukture prebivalstva po spolu
Napišite program, ki bo narisal diagram starostne strukture prebivalstva po spolu na podlagi podatkov, shranjenih v tabelah stMoskih in stZensk
Obe tabeli vsebujeta podatke o številu moških oziroma žensk v nekem kraju po starostnih razredih: prvi element tabele predstavlja starost od 0 do dopolnjenih 10 let, drugi starost od 10 do dopolnjenih 20 in tako naprej do zadnjega (enajstega), ki predstavlja osebe z dopolnjenimi 100 ali več leti. Poleg obeh tabel ostaja tudi tabela barve, ki določa, s kakšno barvo naj bo 'napolnjena' vrstica za posamezne starostne razrede.
Grafični prikaz (glej sliko) prikazuje starostno strukturo moških in žensk na isti sliki (v primerno velikem kvadratu). Moški so po starostnih razredih predstavljeni z enajstimi ustrezno dolgimi pravokotniki (ang. bar), ki so narisani drug nad drugim (od »najmlajšega« do »najstarejšega« razreda od spodaj navzgor), vsi pa se širijo od sredine kvadrata proti levi. Podobno velja tudi za ženske, le da se zanje pravokotniki širijo iz sredine proti desni.
Pri rešitvi naloge poskrbite tudi za ustrezno polnjenje vseh tabel, npr. na naslednji način:
int[] stMoskih=;
int[] stZensk=;
Color[] barve=;
3. Grafični prikaz temperature pacienta
Napišite program, ki bo izrisal graf temperature pacienta v zadnjem tednu na dva načina: z lomljeno črto in s stolpci. Predpostavite, da temperaturo merijo dvakrat dnevno (ob 6.00 in ob 18.00 uri), izmerjene vrednosti pa so shranjene v dvodimenzionalni tabeli t , ki že obstaja kot globalna spremenljivka:
static double[][] t=,, , };
Diagram naj se izriše v ustrezno velikem oknu – velikost je odvisna od velikosti zaslona. Program naj najprej nariše vodoravne črte, ki predstavljajo temperature med 35 in 42 stopnj (na vsake pol stopinje), pri čemer naj bo črta ob 37 rdeče barve, ostale pa črne, ob celih stopinjah pa naj bodo črte debelejše. Pred črtami naj se na ustreznih mestih izpišejo stopinje, pod črtami pa zaporedna številka dneva.
Na prvi način naj se prikaz gibanja temperature pacienta naj se prikaže z debelejšo modro črto, na drugi pa z ustrezno visokimi stolpci, ki predstavljajo obdobje od meritve (recimo ob 6.00) do druge meritve (ob 18.00). Za jutranjo meritev naj bodo stopci modri, za večerno pa zeleni (glej sliko).Preklapljanje med obema načinoma izrisa naj bo s pomočjo gumba v oknu.
4. Spletna menjalnica
Napišite aplet za menjalnico, ki omogoča pretvorbo iz petih različnih tujih valut v slovenske tolarje in obratno. Pretvorba naj se izvaja s pomočjo tabele menjalnih tečajev, ki se izpiše v oknu v obliki posameznih vnosnih polj, tako da je možno tudi enostavno popravljanje tečajev. Poleg tega naj okno obsega še vnosno polje za znesek, labelo za izpis izračunane vrednosti v drugi valuti ter deset gumbov, ki omogočajo vse mogoče pretvorbe med SIT in tujimi valutami. Po potrebi lahko aplet vsebuje tudi dodatne labele, vnosna polja in gumbe. Primer izgleda okna, ki prikazuje menjavo 100 eurov v tolarje, je na spodnji sliki.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1646
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved
Distribuie URL
Adauga cod HTML in site