The page has been modified since the last reload. Refresh now?

There are {{ $ctrl.pendingUpdatesCount() }} pending paragraph updates.

{}

Ohjelmointi 2 2016 / Demo 1

Hei! Olisiko mahdollista saada kevään ohj1 tuttu demo summa laskuri myös tälle kurssille?

25 May 16

Demot » Demo 1, 18.1.2016

{}

AJANKOHTAISTA

{}

Demoista yleisesti sekä niiden pisteistä ja miten niitä lasketaan, kerrotaan tarkemmin kurssin Demot-sivulla

Demot palautetaan viimeistään maanantaina klo 13:00 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä.

Demotehtävän alussa tai muualla iso M ja linkki tarkoittaa viittausta luentomonisteeseen. Linkki menee TIM-monisteeseen, mutta käynnistää joka kerta siitä uuden “esiintymän”. Jos haluat säästää aikaa, katso M-kirjaimen jälkeen oleva otsikko ja etsi aina 1. kerran avatusta TIM-monisteesta vastaava otsikko (Ctrl-F) ja siirry siellä siihen kohtaan. Tai siirry M-linkin kohdalle, hiiren oikealla paina “Kopioi linkin osoite” ja mene kerran avattuun TIM-monisteen sivulle ja liimaa kopioitu linkki osoiteriville. Tämän pitäisi siirtyä oikeaan kohtaan lataamatta monistetta uudelleen.

{}
#

Tehtävien pisteistä

Jokaisella tehtäväkerralla voi olla tavallisia tehtäviä (Tehtävä 1 - Tehtävä 8). Lisäksi on vapaaehtoisia Ville-tehtäviä Tauno-tehtäviä (T=Tauno), (V=Ville), lisätehtäviä (B=Bonus) ja harrastajien tehtäviä (G=Guru).

Tehtävät ovat yhden pisteen tehtäviä, ellei ole erikseen mainittu, että tehtävästä saa useamman pisteen (esim. Tehtävä 1 ja B2 eli Bonus 2 ovat maksimimissaan yhden pisteen tehtäviä, mutta G1-2 on maksimissaan kahden pisteen tehtävä) samoin kuin Tehtävä 1-4 on 4 pisteen arvoinen.

{}

Prosentteja laskettaessa enimmäispisteet demokertaa kohti on tavallisten tehtävien lukumäärä (eli lähes poikkeuksetta 8 kpl). Siten Tauno/Ville/bonus/GURU-tehtävillä voi “kerätä pisteitä varastoon”. GURU-tehtävien tarkoitus on myös tarjota asiaa jo osaaville hieman haastavampia tehtäviä. Kuitenkin kultakin demokerralta lasketaan max. 10 p.  Eli vaikka tekisi enemmän kuin 10 pistettä, siirtyy automaattisesti korkeintaan 10 pistettä Korppiin. Toisella jaksolla (demot 8-12) maksimi on 8.

Jokaiselta kerralta on minimissään kerättävä 2 pistettä perustehtävistä tai B tai G tehtävistä (tämä ei vielä riitä minkään oppimiseen ja ennuste 2 tehtävää/kerta tekeville on erittäin huono), ja kunkin jakson minimiyhteispistemäärä on oltava vähintään 40 %. Tauno ja Ville eivät siis riitä laskettavaksi 2 pisteeseen minimiiin.

{}

Mikäli tehtävissä on Aja ja Test -painikkeet, niin yleensä täydet pisteet saa vain mikäli molempia on käyty kokeilemassa ja molemmat menevät läpi.

Joissakin tehtävissä on sallittu käyttäjän itse muuttaa pisteitä (ruksi kohta Set custom points). Tämä pitää tehdä jos automaatti antaa liian suuret pisteet vastauksen laatuun nähden. Tai mikäli automaatti ei kykene järkevästi pisteitä laskemaan.

Esimerkki arvolauseesta

Kurssin arvolause tulee kaavalla

{}
pisteet = 3/5*vk + dp1 + 2*dp2 
max=32, josta 12p = 1/5, 27p = 5/5, dpn = demopisteet, ei prosentit, jaksosta n

Esim: 50% pistettä ensimmäisestä jaksosta, 70% pistettä toisesta jaksosta ja välikokeesta 16 pistettä

{}
  dp1: 50% => 2p 
  dp2: 70% => 4p
  pisteet = 3/5*16 + 2 + 2*4 = 19.6  =>  3/5

Jos olisi toisesta jaksosta tehnyt vain minimin, eli 40% niin tulos olisi:

{}
  dp1: 50% => 2p 
  dp2: 40% => 1p
  pisteet = 3/5*16 + 2 + 2*1 = 13.6  =>  1/5
{}

Vanhat vastaukset tai kavereiden vastaukset

Tehtävistä saattaa liikkua edellisten vuosien vastauksia ja jos niiden tai kavereiden vastauksien käyttämisestä jää kiinni, ovat rangaistukset lunttaamiseen verrattavia! Tärkeintä kurssilla on OPPI­MINEN, ei demopisteiden kalastelu tai kopiointi. Kopiot saa jo demoissa valmiiksi painetussa muo­dossa.

Ryhmätyö on sallittua, mutta tämä ilmaistaan laittamalla aina tiedoksi - esimerkiksi ohjelman kommentteihin - kaikkien ryhmään osallistuneiden nimet.

#

Taunon käyttöohjeita:

#

Kunkin Tauno-tehtävän aluksi klikkaa Click here to show Tauno -linkkiä.

Taunossa raahaa taulukon alkioita niin, että sinulla on lopuksi tehtävässä pyydetty lopputulos. Katso samalla minkälaista koodia Tauno sinulle generoi. Tämä on C#-kielinen algoritmi tehtävän suorittamiseksi. Jos haluat aloittaa Tauno-tehtävän alusta, piilota ja näytä Tauno uudelleen.

Raahaamisen sijaan (ja joissakin mobiileissa ei muuten voi tehdäkkään) voit myös tökätä ensin lähdealkiota ja sitten kohdealkiota.

Jos tarvitset apumuuttujia, joihin voit viedä alkioita tilapäiseen “säilöön”, paina uusi muuttuja-painiketta. Keksi muuttujalle kuvaava nimi. Muuttujalle voit antaa alkuarvon, mutta tämä ei ole pakollista jos olet heti aikeissa raahata siihen jonkin toisen muuttujan arvon talteen.

Laskutoimituksia voit tehdä raahaamalla arvoja vasemmassa alakulmassa olevaan laskualueeseen ja valitsemalla arvojen välistä minkä laskutoimituksen haluat tehdä. Laskun tuloksen voit sitten raahata takaisin johonkin muuttujaan (siis myös taulukon alkioksi).

Muuttujan arvoa voit lisätä/vähentää yhdellä vetämällä ++ tai -- -operaattorin muuttujan arvon päälle.

Kun olet saanut Taunolla ohjelman mielestäsi valmiiksi, voit painaa Aja tai Test -painikkeita nähdäksesi miten ohjelma toimii. Molemmissa tapauksissa Taunon tekemä ohjelmakoodi kopioidaan ohjelma-alueeseen ja ajetaan. Ajossa voidaan käyttää eri taulukkoakin kuin mitä Taunossa käytettiin, mutta hyvä “algortimi” selviää tästäkin. Jos testissä saat punaista, lue huolella virheilmoitus ja mieti mikä meni pieleen.

Halutessasi voit aloittaa Taunolla alusta tai sitten jos osaat, voit korjata suoraan ohjelma-alueeseen kopioitua koodia. Demotehtävän vastauksena palauta aina ohjelma-alueessa oleva koodi.

Näytä koko koodi-linkistä voit katsoa minkälaisilla arvoilla ohjelma ajetaan tai minkälaisilla arvoilla testataan. Tästä kokonaisuudesta ei kurssin aluksi tarvitse vielä ymmärtää kaikkea. Voit tietysti yrittää “arvailla” mistä on kyse.

Tauno (0.25 + 0.25 p)

#

Please to interact with this component

#

Please to interact with this component

{}

Video 1 (1 p)

Joka demokerta voi hankkia yhden lisäpisteen jos tekee luentojen indeksointia lisäämällä vähintään 3 linkkiä indeksi-sivulle.

#

Please to interact with this component

TIM dokumenttien päivitys (1 p)

Joka demokerta voi saada yhden lisäpisteen tekemälle selkeästi muita hyödyttäviä lisäyksiä, parannuksia ja selkeytyksiä TIM-dokumentteihin.

#

Please to interact with this component

Ville V1 (0.5 p)

Tehtävät löytyy kyllä, pitää huomata valita Java linkki Villen ohjeesta että saa rekistöröityä itsensä kurssille.

25 May 16

Tee JAVA Villestä tehtävät 2.1-2.6. Muuttujat ja lausekkeet. Huomaa että nämä ovat Ohjelmointi 1 Java-tehtäviä!

Ei ollut java tehtäviä saatavilla Turust (23.5. 19:57)

23 May 16

Palauta tehtävä kirjoittamalla alla olevaan tekstilaatikkoon mitä opit ja mitä mieltä olit kerran Ville-tehtävistä ja auttoivatko Ville-tehtävät sinua yhtään. Muutama rivi riittää.

#

Please to interact with this component

{}

Tehtävä 1-4, harjoitustyön vaihe 1 (4 p)

Harjoitustyön vaihe 1 (lue ohjeet ja vaatimukset). Jokainen näyttää ohjaajalle (ajanvaraus Korpista) harjoitustyön vaihetta 1 viikkojen 3 ja 4 aikana. Suunnitelma kirjoitetaan kurssin Wikiin.

Tehtävä palautetaan kirjoittamalla suunnitelman osoite alla olevaan tekstilaatikkoon tyyliin:

 https://trac.cc.jyu.fi/projects/ohj2ht/wiki/k2016/suunnitelmat/vesal
#

Please to interact with this component

{}

Tehtävä 5-6, erikoismerkit numeroksi (2 p)

{}

Haluat tehdä opettajalle ohjelman, jolla hän voi syöttää oppilaiden koenumeroja. Haluat että mm. seuraavat syötöt olisivat mahdollisia:

Koenumero >6.5[RET]
Koenumero >6½[RET]
Koenumero >6.25[RET]
Koenumero >6+[RET]
Koenumero >5.75[RET]
Koenumero >6-[RET]

Kuitenkin laskemisen kannalta koenumero kannattaa aina säilyttää reaalilukuna (eli merkki­jono 6+ reaalilukuna 6.25). Kirjoita selkeät säännöt (ei Java-ohjelmaa) siitä, miten mikäkin syötetty merkkijono muutetaan reaaliluvuksi. Kirjoita vastaavat säännöt tulostamista varten, eli 5.75 tulostetaan aina muodossa 6-.

#

Please to interact with this component

{}

Tehtävä 7, nimen osien järjestyksen vaihtaminen (1 p)

Jos nimi olisi muodossa “Ankka Aku” ja se haluttaisiin tulostaa muodossa “Aku Ankka” (tai “Palo Jukka Pekka” muodossa “Jukka Pekka Palo”), niin mitä kohdan M: 2.6.2 Alemman tason aliohjelmat aliohjelmista eh­dottaisit käytettäväksi ja miten? Mieti mitä muita oleellisesti erilaisia vaihtotilanteita voisi tulla vastaan. Kirjoita esimerkkejä ja mitä pitäisi tulla.

Tehtävä jatkuu seuraavilla demokerroilla.

#

Please to interact with this component

{}

Tehtävä 8, kävelyalgoritmi (1 p)

Ohjelmointi 2 -monisteen Tehtävä 3.1, molemmat kohdat.

Yritä kirjoittaa ohjeet siitä miten kävellään.

#

Please to interact with this component

Kirjoita kaverillesi kävelyohjeet (missä käännytään, ei miten kävellään) rautatieasemalta asunnollesi.

#

Please to interact with this component

{}

Tehtävä B1, karkkien heittely (1 p)

Lue Ohj1 syksyn 2015 tentti ja tee sen tehtävä 2 Javalla. Kannattaa ensin kirjoittaa lisää testejä. Huomaa että testeissä ei tule luokan nimeä kuten C#:issa. Tässä tehtävässä Aja ajaa aliohjelman 25 eri kutsulla. Test ajaa 11 testiä sekä tuohon näkyviin kirjoitetut testit.

#

Please to interact with this component

//
    /**
     * Lasketaan lukujen keskiarvo niin että vialliset tai pienemmät
     * hylätään. Mikäli tulee lopetus tai suurempi, laskeminen
     * lopetetaan.
     * @param taulukko luvut jotka lasketaan keskiarvoon
     * @param vialliset raja josta hylätään
     * @param lopetus raja jonka jälkeen lopetetaan
     * @return lukujen keskiarvo, vialliset jos ei yhtään lukua laskettu mukaan
     * @example
     * 
     *    keskiarvo(new int[]{ 12, 0, 42, 14, 99, 12, 55 }, 0, 99 ) ~~~ 22.666666;
     *    keskiarvo(new int[]{ -5 }, -5, 99 ) ~~~ -5;
     * 
*/ public static double keskiarvo(int[] taulukko, int vialliset, int lopetus) { // Täydennä toimivaksi return 0.0; }

Tehtävä B2, neliöjuuret (1 p)

Olin jo saannut tehtävästä täydet pisteet. En muuttanut koodia, mutta kun tarkastin tehtäviä niin nollille oli mennyt. Mitäs?

17 Jan 16

Tee Java -ohjelma, joka tulostaa alekkain kaikki ne kokonaisluvut <= 1000, joiden neliöjuuri on ko­konaisluku. TDD: Kirjoita ennen koodaamista käsin lukuja ja niiden neliöjuuria.

#

Please to interact with this component

public class Neliojuuret
{
    public static void main(String[] args)
    {

    }
}

Tästä tulee kaksi pistettä vaikka tulostus olisi mitä sattuu.
- vl: joo, koska tulostusmuostoa ei ole kiinnitetty, tuota on hieman hankala testata. Niin ja tosi, 1 p piti olla max.

12 Jan 16 (edited 14 Jan 16)

Nollaa pistettä heittää. Onko kyse ohjelman virheestä vai tulostanko jotenkin väärässä muodossa?
- VL: tää pitäisi olla korjattu

12 Jan 16 (edited 12 Jan 16)

Sain tehtyä toimivan koodinm ,mutta en saanut pisteitä.

15 Jan 16

Alkaako teillä for-loop 0:sta vai 1:stä?

15 Jan 16

Tehtävään tosiaan mahdollista saada vastaus, jolla nettiapplet/whatever kyllä ajaa sen, mutta ei edes tulosta mitään. Tämä aiheutti allekirjoittaneelle hieman hämminkiä, mutta lopulta sain aiheen korjattua. PS: Nollasta aloitin for-loopin. -Adi Saikkonen

17 Jan 16

Nolla pistettä tuli :(

18 Jan 16
{}

Tehtävä G1-5, vaihtoehtojen määrä (5 p)

Etsitään mikä on todennäköisyys voittaa seuraavassa pelissä: On 3:n värisiä palloja. Niistä poimitaan 4 kappaletta. Sitten poimitaan vielä 2 kappaletta. Pelissä voittaa mikäli nämä 2 palloa löytyvät 4 pallon joukosta. Eli jos molemmat pallot ovat punaisia, pitää neljän pallon joukossa olla myös olla 2 punaista (yksi ei riitä).

Ratkaisu voidaan tehdä etsimällä ensin kaikki kuuden pallon erilaiset jonot (jonossa on järjestys, eli kuuden pallon jonot PSVPPS ja PVPSSP ovat eri jonoja). Näistä sitten lasketaan monellako kaksi ensimmäistä kuuluu loppuun joukkoon.

Tällä ensimmäisellä demokerralla tehtävänä on tehdä ohjelma joka tulostaa kaikki kuuden pallon erilaiset jonot, missä kukin pallo voi olla mikä tahansa kolmesta väristä. Värejä kuvataan numeroilla 0-2. Luonnollisesti tuo luku 6 (eli 4+2) on voitava korvata millä luvulla tahansa (mutta jos se menee paljon yli 10, rupeaa kyllä kestämään :-) samoin kuin värien määrä 3. Kielenä Java.

Kaksi lisäpistettä sille, joka antaa pelin voittotodennäköisyydelle analyyttisen lausekkeen (parametrina nuo 4,2 ja 3).

Tehtävä jatkuu seuraavilla demokerroilla.

#

Please to interact with this component

public class Kombinaatiot
{
    public static void main(String[] args)
    {
        //TODO: kirjoita koodi tähän
    }
}

HUOM! Pisteytys vaatii tulostetta, jossa esiintyy järjestyksellisesti erilaisia, mutta yhdistelminä silti aivan samanlaisia sarjoja! (esim. 1 punaista, 1 vihreä, 4 sinistä).

13 Jan 16 (edited 13 Jan 16)

Saan ajamalla 5 pistettä, mutta testillä 0. Mistäköhän tämä johtuu? Tyylikkäästi printtaa kyllä sarjan ajettaessa. Testillä seuraavaa erroria: 1) initializationError(KombinaatiotTest) java.lang.Exception: No runnable methods. -Adi Saikkonen
-vl et ole kirjoittanut testejä. Guru tehtävissä ne tulee osata itse tehdä.

17 Jan 16 (edited 17 Jan 16)

En osaa, en ehkä olekkaan guru. Yritin jopa googlettaa miten testit toimivat ja huijata testaamalla 1=1 oikean asian sijaan, mutten saa sitäkään toimimaan. Oliko testaaminen Ohjelmointi 1-asiaa, vai käydäänkö se vasta tällä kurssilla läpi? -AS

18 Jan 16

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.