mitä vikaa tässä?

OpettelijaVasta

Hei! Mulla on pienoinen ongelma, kun sen saa seuraavaa pätkää käännettyä vaan aina tulee joku error ja mitähän tehtävässä haetaan muutenkin, auttakaa jos osaatte!

1. Toteuta allaolevaan luokkaan metodin alkioTaulukossa() runko siten, että se palauttaa totuusarvon sen mukaan, löytyykö argumenttina annettu kokonaisluku haettava argumenttina
annetusta taulukosta luvut.

public class AlkioTaulukossa {

/**
* Testaa metodin alkioTaulukossa()toimintaa.
*/

public static void main(String[] args) {
int alkio = 2; //haettavan alkion arvo. Testaa eri arvoilla!
int[] luvut = {1, 2, 3, 4, 5};
System.out.println(alkioTaulukossa(luvut, alkio));
}
/**
* Esiintyykö haettava taulukossa luvut?
*
* Alkuehto: luvut != null
*/
public static boolean alkioTaulukossa (int[] luvut, int haettava) {
// Toteuta tähän...
}
}

5

508

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • metodiisi

      for(int luku : luvut)
      if(luku == haettava)
      return true;
      return false;

    • The Rat

      Muutama pointti tulee mieleen.

      Ensinnäkään, en javaa ihan hirveän tarkkaan muista, mutta pystyykös booleanin tulostamaan suoraan? Jos ei, korvaa vaikka jollain tyyliin:
      alkioTaulukossa(luvut, alkio) ? "true" : "false"

      Toinen kohta johon itse kiinnittäisin huomiota, on tuon funkkarin määritteleminen staattiseksi. En sitä tekisi, vaikka se kai teoriassa toimiikin.

      Lisäksi ihan perusvittumaisuuttani lisäisin konstruktorin tuolle luokalle.

      Ja sitten tietysti toteutus. Loopilla varmaan...

      • fidel1

        Javassa pystyy tulostamaan ihan minkä tahansa tietotyypin tai luokan instanssin. Tietotyypeistä tulostetaan niiden merkkijonovastine, luokista se, mitä toString()-metodi palauttaa.

        Metodi juurikin kannattaa mieluummin määritellä staattiseksi, koska se ei millään tavalla käytä luokan sisäisiä jäseniä, eli kaikki käsiteltävät tiedot annetaan sille parametreinä. Sen luonne on silloin nimenomaan staattinen. Tietenkin jos "luvut"-taulukko olisi instanssimuuttuja ja metodi käsittelisi sitä suoraan, metodi pitäisi määritellä ei-staattiseksi. Tällöin ei myöskään tarvitsisi välittää taulukkoa parametrina.

        Java-luokkiin ei tarvitse määritellä konstruktoria, jos konstruktori ei tee mitään eikä sen näkyvyyttä tarvitse rajoittaa. Varsinkin tässä tapauksessa, jossa mitään instanssimuuttujia tai -metodeita ei edes ole, vaan kaikki on määritelty staattisiksi, luokan konstruktoria ei edes missään vaiheessa kutsuttaisi.


      • The Rat
        fidel1 kirjoitti:

        Javassa pystyy tulostamaan ihan minkä tahansa tietotyypin tai luokan instanssin. Tietotyypeistä tulostetaan niiden merkkijonovastine, luokista se, mitä toString()-metodi palauttaa.

        Metodi juurikin kannattaa mieluummin määritellä staattiseksi, koska se ei millään tavalla käytä luokan sisäisiä jäseniä, eli kaikki käsiteltävät tiedot annetaan sille parametreinä. Sen luonne on silloin nimenomaan staattinen. Tietenkin jos "luvut"-taulukko olisi instanssimuuttuja ja metodi käsittelisi sitä suoraan, metodi pitäisi määritellä ei-staattiseksi. Tällöin ei myöskään tarvitsisi välittää taulukkoa parametrina.

        Java-luokkiin ei tarvitse määritellä konstruktoria, jos konstruktori ei tee mitään eikä sen näkyvyyttä tarvitse rajoittaa. Varsinkin tässä tapauksessa, jossa mitään instanssimuuttujia tai -metodeita ei edes ole, vaan kaikki on määritelty staattisiksi, luokan konstruktoria ei edes missään vaiheessa kutsuttaisi.

        Tuo nyt vain näytti koulutehtävältä ja niissä muistaakseni aina painotetaan tuota luokkamallia ja yritetään välttää staattisten funktioiden sotkemista sekaan. Toimiihan se, mutta samalla se hieman ehkä sotii sitä javaideologiaa vastaan, jota minulle 90-luvun puolivälin jälkeen yritettiin opettaa. :)

        Alkuperäiselle tiedoksi, helpottaisi tietysti, jos tietäisi mikä tuo virheilmoitus on, jonka kääntämisestä saat...


      • fidel1
        The Rat kirjoitti:

        Tuo nyt vain näytti koulutehtävältä ja niissä muistaakseni aina painotetaan tuota luokkamallia ja yritetään välttää staattisten funktioiden sotkemista sekaan. Toimiihan se, mutta samalla se hieman ehkä sotii sitä javaideologiaa vastaan, jota minulle 90-luvun puolivälin jälkeen yritettiin opettaa. :)

        Alkuperäiselle tiedoksi, helpottaisi tietysti, jos tietäisi mikä tuo virheilmoitus on, jonka kääntämisestä saat...

        Niinpä, javan olio-ohjelmointi-ideologiaa yritetään tunkea väkisin kurkusta alas käyttämällä esimerkkejä, joissa olio-ohjelmoinnista ei ole mitään hyötyä. Tämä kai on perua siitä, että java otettiin niin nopeasti yleiseksi opetuskieleksi, etteivät edes opettajat ehtineet syventyä siihen tarpeeksi.

        Staattisilla jäsenillä on kuitenkin paikkansa ja tärkeä rooli olio-ohjelmoinnissa, ja jos niitä ei jossain koulutehtävässä "saa" käyttää, kannattaisi tehtävä muotoilla sitten oikein. Ylipäätään mitä ohjelmoinnin opetusta se on, ettei käytetyn kielen kaikkia ominaisuuksia saa käyttää hyväkseen? Jos haluaa, ettei ole mitään kirjastoja tai muita "helpotuksia" saatavilla, käyttäisivät sitten opetuskielenä vaikka schemeä. (niinkuin silloin 90-luvulla, kun ohjelmointi oli vielä "tosi miesten hommaa" ;)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Porvarimediat paniikissa demareiden huiman kannatuksen vuoksi

      Piti sitten keksiä "nimettömiin lähteisiin" perustuen taas joku satu. Ovat kyllä noloja, ja unohtivat sen, että vaalit
      Maailman menoa
      106
      6756
    2. KATASTROFI - Tytti Tuppurainen itse yksi pahimmista kiusaajista!!!

      STT:n lähteiden mukaan SDP:n eduskuntaryhmän puheenjohtaja Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti
      Maailman menoa
      378
      6387
    3. Mikä siinä on ettei persuille leikkaukset käy?

      On esitetty leikkauksia mm. haitallisiin maataloustukiin, kuin myös muihin yritystukiin. Säästöjä saataisiin lisäksi lei
      Maailman menoa
      61
      3198
    4. Lääppijä Lindtman jäi kiinni itse teosta

      Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-2000011780852
      Maailman menoa
      113
      2689
    5. Juuri nyt! Tytti Tuppurainen on käyttäytynyt toistuvasti epäasiallisesti

      Ai että mä nautin, Tytti erot vireille! "Käytös on kohdistunut avustajia ja toisia kansanedustajia kohtaan, uutisoi STT
      Maailman menoa
      108
      2330
    6. Onko kaivattusi

      liian vetovoimainen seksuaalisesti?
      Ikävä
      125
      1824
    7. Puolen vuoden koeaika

      Voisi toimia meillä. Ensin pitäis selvittää "vaatimukset" puolin ja toisin, ennen kuin mitään aloittaa. Ja matalalla pro
      Ikävä
      20
      1677
    8. Huomaatteko Demari Tytti ei esitä pahoitteluitaan

      Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään
      Maailman menoa
      34
      1495
    9. Tytti Tuppurainen nöyryyttää avustajiaan

      Tytti Tuppurainen nöyryyttää SDP:n eduskuntaryhmän kokouksissa sekä avustajia että kansanedustajia. Hän nolaa ihmisiä ju
      Kotimaiset julkkisjuorut
      182
      1357
    10. On todella hassua

      Ajatella että pitäisit erityisen kuumana tai seksikkäänä?
      Ikävä
      74
      1247
    Aihe