Vaje iz metod in preprostih programov
Tokrat bomo na predavanjih in na vajah skupaj reševali preproste
naloge za utrjevanje znanja.
Naloga 1: Sinusoida
Napiši program
Vedno se nariše natanko ena perioda.
Sinusoida, ki z ukazne
vrstice sprejme celi števili n in
m, nato pa na zaslon nariše sinusoido širine
n stolpcev in višine m vrstic. Primer
uporabe:
> java Sinusoida 20 10
*
*
*
*
*
*
*
*
*
*
> java Sinusoida 50 15
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* |
Naloga 2
Napiši metodo
veljaven_datum, ki sprejme cela
števila d, m in l in vrne
true, če je d.m.l veljaven datum.
Naloga 3
Napiši metodo
potem je tabela
tabela_stevk, ki sprejme niz
String s, v katerem so zapisane števke (cifre) in
vrne tabelo celih števil, ki vsebuje te števke. Na primer,
če izvedemo
int[] a = tabela_stevk("0451290"); |
a enaka {0, 4, 5, 1, 2, 9, 0}.
Naloga 4
Napiši metodo
skalarni_produkt, ki sprejme dve
tabeli celih števil a in b enake dolžine
in vrne njun skalarni produkt.
Namig
Če je
a = {a0, ..., an} in
b = {b0, ..., bn} potem je
skalarni produkt a in b število
a[0]*b[0] + a[1]*b[1] + ... + a[n]*b[n].
Naloga 5
Napiši metodo
potenca, ki sprejme celi števili
m in n ter vrne vrednost potence
mn.
Nalogo lahko najprej rešiš z zanko
for, potem pa še
na inteligenten način. Upoštevaj, da velja tole:
- če je
msodo število, jenm = (n2)m/2, - če je
mliho število, jenm = n * (n2)(m-1)/2,
Naloga 7
Napiši metodo
povprecna_vrednost, ki sprejme
neprazno tabelo realnih števil in vrne povprečno vrednost
števil v tabeli.
Naloga 8
(a) Napiši metodo
najmanjsi_element, ki
sprejme neprazno tabelo realnih števil in vrne najmanjše
število v tabeli.
(b) Napiši metodo
najmanjsi_indeks, ki
sprejme neprazno tabelo realnih števil in vrne indeks
najmanjšega števila v tabeli.
Naloga 9
Matrika je tabela tabel enakih dolžin. Primer
matrike je
Število vrstic v matriki je
int[][] a = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 0, 1, 2} }; |
a.length, število
stolpcev pa je a[0].length.
Napiši metodo, ki sprejme matriko
m celih števil in
vrne novo matriko, ki je njena transponirana
matrika. Na primer, transponirana matrika matrike
a iz zgornjega primera je matrika
int[][] b = { {1, 5, 9},
{2, 6, 0},
{3, 7, 1},
{4, 8, 2} }; |
Naloga 10
(a)
Napiši metodo
vsota_matrik, ki sprejme matriki celih
števil enakih dimenzij in vrne novo matriko, ki je njena
vsota.
(b)
Napiši metodo
pristej_matriko, ki sprejme matriki celih
števil a in b enakih dimenzij ter matriki
a prišteje matriko b.
Namig
(b) Metoda
pristej_matriko ne vrača ničesar,
ampak samo spremeni matriko a.
Naloga 11
Napiši metodo
je
diagonalna_matrika, ki sprejme tabelo
celih števil int[] a in vrne kvadratno matriko, ki
ima na glavni diagonali elemente tabele a, povsod
drugje pa ničle. Na primer, ko se izvede
int[] a = {1, 4, 2, 3};
int[][] b = diagonalna_matrika(a); |
b enaka tabeli
{ {1, 0, 0, 0},
{0, 4, 0, 0},
{0, 0, 2, 0},
{0, 0, 0, 3} } |