The referenced paragraph does not exist.

Ohjelmointi 2 2016 / Demo 4

Tähdellä (*) on merkitty ne tehtävät, jotka ehdottomasti kannattaa tehdä.

Viitteissä tyyliin "Luvun 7.5" noudatetaan luentomonisteen numerointia. Demoissa saa käyttää vapaasti aliohjelmapaketteja ohj2/ali. Hakemistossa on kirjaston käyttöohje.

Mitä palautetaan? Itse tehdyt tiedostot. Eli Javasta .java. Jos testit tehdään ComTestillä niin se generoi toisen Test.java tiedoston joka siis ei ole itse kirjoitettu ja tätä EI palauteta. Mutta jos testit tehdään JUnitilla ja ITSE kirjoitetaan tuo testitiedosto, niin silloin se toki palautetaan. .class -tiedostoja EI MISSÄÄN NIMESSÄ palauteta.

Huomaa että jos tehtävässä on linkki Document, niin dokumentaatio pitää käydä tutkimassa jotta saa tehtävästä täydet pisteet.

Kun palautatte ohjelmatehtäviä, niin tarkistakaa että Java-tiedostot alkavat aina package JOTAKIN. Testejä ei saa toimimaan niin hyvin ilman packagea ja tiedostossa oleviian aliohjelmiin ei pääse viittaamaan kunnolla jos ne eivät ole packagessa. Eclipsessä 1. operaatio aina projektin luomisen jälkeen on luoda ongelmaa kuvaava package.

Pisteytyksestä

Pisteet aina niin, että yksi perustehtävä on yksi piste (jos tehty ja ohjelmatehtävä koneella testattu). Jos samassa tehtävässä on kaksi tehtävänumeroa, esim. 2*3, niin silloin siinä on kaksi tehtävää, eli pis­teet 1+1. Jos yhden pisteen tehtävässä on kohdat a ja b, niin vastaavasti yksi kohta on 0.5 pistettä. Jos tehtävässä on vaikka 4 selvästi eri funktiota tai kohtaa, niin silloin tehtävän voi ajatella koostu­van 4 osasta. Syöttöä vaativissa tehtävissä saa käyttää Ali.jar:in funktioita. Ja muistakaa että Java-ohjelmien on käännyttävä ja toimittava kuten pyydettiin sekä sisällettävä Javadoc-tyyliset kommentit, jotta sen saa merkitä täyden veroisena.

Useimmissa tehtävissä on mahdollisuus itse muuttaa automaatin antamaa pistemäärää. Test-painike yrittää aina ajaa ohjelmaan liittyviä ComTest -testejä.

Testit

Tehtävissä pyydetyt testit voit kirjoittaa toistaiseksi joko:

Edellisen kerran itsearvio

Pakollinen:

# itsearvio1
==================================================
Tauno T1
==================================================


==================================================
Ville V1
==================================================



==================================================
Tehtävä 1
==================================================




==================================================
Tehtävä 2
==================================================

 

en ymmärrä tämän itsearvion käytännön hyötyjä. tuntuu vain työläältä toistella joka tehtävän kohdalla jotain "hyvin meni". mitä esimerkiksi taunosta tai villestä voisi keksiä sanottavaa muutenkaan?
- VL: Käytännön hyöty on se, että vertaat omia vastauksiasi mallivastauksiin ja opit josko jotakin olisi voinut tehdä toisin ja mistä syystä. Ja erityisesti niiden tehtävien osalta jota et ole tehnyt, ymmärtäisit mitä mallivastauksessa on tehty ja pystyisit vastaavan tekemään toisella kerralla. Demoista ei ole mitään suurempaa hyötyä jos niiden vastauksien järkevyyttä ei pohdi. Useimmilla esim. on monesti turhia iffejeä, sisennykset mitä sattuu, kommentointi puuttuu jne. Silti ohjelma voi "toimia". Eli toimivuus ei yksin ole riittävä tae "oikealle" ohjelmalle. Taunossakin on ne silmukkaratkaisut. Jos kaikki on juuri kuten mallissa, niin hyvä sitten. Useimmilla ei ole ja se on ymmärrettävää kun vielä opetellaan.

04 Feb 16 (edited 07 Feb 16)

Itselleni näistä on ollut valtavasti hyötyä, sillä vaikka saisikin demot tehtyä onnistuneesti ja kerättyä pisteet laariin, mallivastauksista löytyy usein todella paljon näppärämpiä ratkaisuja ongelmiin, joihin itse on käyttänyt ilmeisempiä vaihtoehtoja. Vielä tärkeämpänä asiana tulee varmasti huomanneeksi, jos omassa koodissa on toistuvia puutteita tai maneereja, joita ei tarvitsisi olla.

07 Feb 16

VIDEO 1

Muista että voit saada demopisteitä myös indeksoimalla luento/demovideoita, ks: videohakemisto. Demopisteen saat lisäämällä vähintään 3 linkkiä. Video-tehtävä ei saa olla yksi pakollisesta kahdesta tehtävästä.

# video1

Mitkä videolinkit lisäsin:

 

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.

# tim1

Mitä sivuja päivitin ja miten:

 

Tauno T1 (0.5 p)

Katso Taunon käyttöohjeita.

Kunkin Tauno-tehtävän aluksi klikkaa Click here to show Tauno -linkkiä. Lopuksi muista ajaa Test.

Koita vastauksissa välttää turhia apumuuttujia ja mieti kuinka hyvin ratkaisusi yleistyy jos taulukon kokoa kasvatetaan.

Halutessasi voit tehdä kokeilun myös Eclipsellä: 1. luo Eclipsessä uusi projekti vaikka nimelle demot (jos sellaista ei jo ole sinulla). 2. luo src-kansion alle uusi paketti demo.d3 3. luo paketin alle uusi Java-luokka TaulukonSummia 4. Kopioi Java-pohja tuon tiedoston sisällöksi

# lisaaviisi

Tehtävä Tauno T1 a

Tee ensin muuttuja lisattava, jonka arvo on 5. Sitten lisää tämän muuttujan arvo jokaiseen taulukon alkioon (Esim: taulukko 5 4 6 2 9 1 muuttuu taulukoksi 10 9 11 7 14 6).

 

# lasketaulukkoon

Tehtävä Tauno T1 b

Laske yhteen peräkkäisissä paikoissa olevat taulukon alkiot ja laita tulos aina parilliseen (0,2,4) paikkaan. Vastaavaan parittomaan paikkaan laitetaan arvo 0, eli taulukon summa pysyy samana, mutta parittomissa (1,3,5) paikoissa olevat alkiot nollautuvat (Esim: taulukko 5 4 6 2 9 1 muuttuu taulukoksi 9 0 8 0 10 0).

 

Ville V1 (0.5 p)

Tee JAVA Villestä tehtävät 5.1-5.7 Toistolauseet.

# VilleV1

 

Tehtävä 1*. Käyttöliittymä

# v01
JavaFX-ohjelmien palautus. Ole tarkkana NIMIEN ja HAKEMISTOJEN kanssa video (2m54s)

Vinkki projektin tekemiseksi (paina +).

Kerron sinulle paljonko täytät tänä vuonna!
Syntymävuotesi [1978]
Täytät tänä vuonna 38 vuotta.
# ika

Mahdollinen eri tiedostoon kirjoitettu laskenta, ei pakollinen

 

# ikaCss

Palautus css-tiedostolle

 

# ikaView

Palautus fxml-tiedostolle

 

# ikaController

Palautus controllerille

 

# ikaMain

Palautus pääohjelmalle

 

Koodi toimii oikein kun ajan eclipsessä, täällä ei. "java.lang.NullPointerException: Location is required". En kuitenkaan löydä että missä näin tapahtuisi.

05 Feb 16

Kannattaa ainaki kattoa että on noi tiedostojen nimet varmasti oikein. Itellä herjas tota samaa kunnes tajusin et olin laittanu fxml-tiedoston nimelle ikaView.fxml vaikka piti olla IkaView.fxml

05 Feb 16

VL: tuo "Location" juttu tulee nimenomaan silloin kun ko. .fxml-tiedostoa ei löydetä.

05 Feb 16

Jos osaat käyttäää Linuxin komentoriviä, voit alla olevalla Shellilä tarkistaa mihin tiedostosi ovat menneet ja millä nimellä.

# inputShell

Shell

ls -R

 

Joku vois kirjoittaakin miten tuota käytetään
- VL: siis mitä käytetään ja miten? Tarkoitatko Linuxin shelliä? Se on kerrottu teidän ekan kurssin komentoriviosuudessa. Tietokoneet työvälineenä.

07 Feb 16 (edited 07 Feb 16)

Tehtävä 2.* Kolmio

Kirjoita funktio, joka palauttaa suorakulmaisen kolmion hypotenuusan pituuden, kun para­metrina on kateettien pituus. Kirjoita testi. Kirjoita funktio kolmionAla, jo­ka laskee vastaavista tiedoista suorakulmaisen kolmion pinta-alan. Kirjoita testit. Muista, että funktiot eivät tulosta mitään!

Mitähän tää haluaa? Testit menee läpi ja dokumentaatiokommentit on tehty mutta pisteitä tulee 0.1. Nyt lakkas dokumentaatiolinkkikin toimimasta kun kokeilin vaihtaa paketin nimeä.
- VL: näyttää olevan

    run: 0.9
    doc: 0.1

eli 0.9 pistettä ajosta ja 0.1 jos katsoo dokun. Muistakaa että näissä on myös mahdollisuus antaa itse pisteensä jos kokee tulleensa kaltoin kohdelluksi.

Jotta ajon voi suorittaa, pitää ohjelmassa olla edes tyhjä Main.

06 Feb 16 (edited 07 Feb 16)

Kun katson dokua, niin tulee +0.1p, mutta doku ei näy, vaan: "404 Not Found nginx/1.9.10".

06 Feb 16

Mikähän tässä bugaa kun tulee kaksi kommenttia tylikkäästi päällekkäin. Tehtävässä neljä näkyy normaalisti Alla kuva:

Image

Image

08 Jun 16 (edited 08 Jun 16)
# kolmio

Tehtävä 2. Kolmio

package demo.d4;

public class Kolmio {

    /**
    * @example
    * <pre name="test">
    * TODO:testit
    * </pre>
    */
    public static ... kolmionAla(...){
        //TODO: täydennä funktion paluuarvo, parametrit ja itse toiminta
    }


    /**
    * @example
    * <pre name="test">
    * TODO:testit
    * </pre>
    */
    public static ... hypotenuusa(...){
        //TODO: täydennä funktion paluuarvo, parametrit ja itse toiminta
    }
}

 

Error: Main method not found in class demo.d3.Kolmio, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application hmm??

08 Feb 16

Seuraavaan palautetaan VAIN jos on tehnyt itse suoraan JUNit testejä. ComTestien tuottamaa tiedostoa ei tuohon kannata palauttaa.

# Teht2

Palautus JUnit-testin koodille, mikäli teit testit ilman ComTestia.

 

Tehtävä 3. Tarkkuus

Kirjoita funktio ja testit: int etumerkki(double x, double eps), joka palauttaa

-TP: Tehtävässä ei ollut packagea määritelty. Lisäsin sen pohjaan, niin nyt pitäisi toimia testit automaattisesti.

03 Feb 16 (edited 03 Feb 16)
-1  mikäli x<-eps,   eps on aina >= 0
 0  mikäli -eps<=x<=eps
 1  mikäli x>eps
# tarkkuus

Tehtävä 3. Tarkkuus

package d4;

public class Tarkkuus {

    /**
    * @example
    * <pre name="test">
    * TODO:testit
    * </pre>
    */
    public static int etumerkki(double x, double eps){
       //TODO: funktion toteutus ja testit
    }
}

 

Tehtävä 4. Demopisteet

Kirjoita funktio demopisteet, jolle viedään opiskelijan tekemien demopisteiden (aka palautettujen tehtävien pisteiden) summa ja de­motehtävien maksimimäärä. Funktio palauttaa sitten Ohjelmointi 2-kurssin taulukon mu­kaiset hyvityspisteet, jotka siis vastaavat demopisteprosenttia. Luonnollisesti myös testit.

Funktio / Metodi?

04 Feb 16

funktio/metodi ==> aliohjelma . . .funktio on ALIOHJELMA, joka palauttaa aina arvon, eli sisältää "return x;" lauseen

04 Feb 16

Metodi on olio-ohjelmoijien keksimä hieno sana funktiolle :) Eli, jos aliohjelma on olion aliohjelma, niin se on olion metodi. Tässä aliohojelma on funktio, koska se ei ole olion. Funktio ei palauta aina arvoa, koska funktio voi olla myös void. Void aliohjelmat voivat vaikka tulostaa tai piirtää... Lisäys: Tuli flashback kymmenen vuode takaa, ku joku java jäbä sano "javassa ei ole kuin olioita" tjsp. - jos pilkkua viilataa, nii javassahan tuo mainiki on metodi, eli javan yhteydessä ei kai "saisi" puhua funktioista, mutta tuo äskeinen esimerkki käy yleisesti muihin kieliin. Joku korjaa, joka tietää javan käytänteistä enemmän.

05 Feb 16 (edited 05 Feb 16)
05 Feb 16
# demopisteet

Tehtävä 4. Demopisteet

Kirjoita funktio demopisteet, jolle viedään opiskelijan tekemien demopisteiden (eli palautettujen tehtävien pisteiden) summa ja de­motehtävien maksimimäärä. Funktio palauttaa sitten Ohjelmointi 2-kurssin taulukon mu­kaiset hyvityspisteet, jotka siis vastaavat demopisteprosenttia. Luonnollisesti myös testit.

package d4;

public class Demo {

    /**
    * @example
    * <pre name="test">
    * TODO:testit
    * </pre>
    */
    public static int demopisteet(int pisteet, int maksimi){
       //TODO: funktion toteutus ja testit
    }
}

 

# v01
Tehtävä 5 selitys video (43m31s)

Tutki pöytätestin avulla mitä ovat muuttujien arvot seuraavassa ohjelmassa kunkin lauseen suorittamisen jälkeen. Funktiot i ja set käsitellään "atomaarisina", eli niiden sisään ei mennä pöytätestissä. Merkitse testiin myös aina mitä ohjelma tulostaa.

/**
 * Mitä ohjelma tulostaa?? 
 * @author  Vesa Lappalainen
 * @version 1.0, 19.01.2003
 */
 public class Alisotk2 {

  private static int i(StringBuffer s) {
    return Integer.parseInt(s.toString());
  }
  private static void set(StringBuffer s,int i) {
    s.delete(0, s.length()).append(""+i);
  }

/* 01 */ private static StringBuffer b; private static int c;
/* 02 */
/* 03 */ private static void s_1(StringBuffer a, int b)
/* 04 */ {
/* 05 */   int d;
/* 06 */   d  = i(a);
/* 07 */   c  = b + 3;
/* 08 */   b  = d - 1;
/* 09 */   set(a,c - 5);
/* 10 */ }
/* 11 */
/* 12 */ private static void a_2(int a, StringBuffer b)
/* 13 */ {
/* 14 */   c  = a + i(b);
/* 15 */   { int c; c = i(b);
/* 16 */   a = 8 * c; }
/* 17 */   set(b,175);
/* 18 */ }
/* 19 */
/* 20 */ public static void main(String[] args) {
/* 21 */   StringBuffer a = new StringBuffer("4"); int d=9;
/* 22 */   System.out.println("" + a + " " + b + " " + c + " " + d);
/* 23 */   b=new StringBuffer("3"); c=2; d=1;
/* 24 */   s_1(b,c);
/* 25 */   a_2(d,a);
/* 26 */   s_1(a,3+d);
/* 27 */   System.out.println("" + a + " " + b + " " + c + " " + d);
/* 28 */ }
}

Voit kirjoittaa vastauksesi alla olevaan taulukkoon (muista Highlight ja Insert) tai tehdä sen Excelillä tai vastaavalla kuten luennolla, tallentaa vaikka PDF:änä ja laittaa sen jonnekin nettiin ja alle linkki siihen (TIMissä ei ole vielä uploadia).

# Tehtava5poytatesti
+----------+--------+-------+------------+-----------+-------+
|          | luokan | main  | s_1        | a_2       | keko  |
+----------+----+---+---+---+---+----+---+---+---+---+---+---+
|          |    |   |   |   |   |    |   |   |   |   |   |   | tulostus ja
|   lause  |    |   |   |   |   |    |   |   |   |   |   |   | apulaskut
+----------+----+---+---+---+---+----+---+---+---+---+---+---+
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
|          |    |   |   |   |   |    |   |   |   |   |   |   |
+----------+----+---+---+---+---+----+---+---+---+---+---+---+

 

Tehtävä 6. if-lauseiden uudelleen järjestely

Mitä ovat muuttujien arvot seuraavien ohjelmanpätkien jälkeen? Sisennä (ja selvennä) ohjel­manpätkät "oikein"! Huomaa että alla on kahdessa sarakkeessa 4 toisistaan riippumatonta koodinpätkää.

/* 1 */                    |    /* 2 */ 
a=4; b=2; c=0;             |    a=4; b=2; c=0;
if ( a-b != 0 ) c++; a=1;  |    if ( c != 0 ) 
b=3;                       |      c--; else b=1;
                           |    a = b-2;

/* 3 */                    |    /* 4 */
a=4; b=2; c=0;             |    a=4; b=2; c=0;
if ( a > 0 ) if ( b > 1 )  |    if ( c++ != 0 ) if ( a-- != 0);
  c=9;                     |    else b-=3; else c+=8;
else if ( c == 1 ) ;       |
else b = 0;                |
a = 3;                     |
# Tehtava6iflauseet

 

Tehtävä 7-8*. Henkilo-luokka

Malliluokassa Aika kaikki attribuutit olivat int-tyyppisiä. Kissa/ Elain- esimerkissä oli myös String-tyyppisiä attribuutteja.

Kirjoita luokka Henkilo, jossa on (attribuutteina) sukunimi, etunimi ja syntymävuosi. Tee luokka sellaiseksi, että alla olevan kaltainen pääohjelma toimii:

public static void main(String[] args) {
    Henkilo aku = new Henkilo("Aku", "Ankka", 1934);
    System.out.println(aku.getNimi());  // tulostaa Aku Ankka
    System.out.println(aku.getSyntymavuosi());  // tulostaa 1934
    System.out.println(aku.toString()); // tulostaa Aku|Ankka|1934
}
# henkilo

Tehtävä 7-8. Henkilo-luokka

Kirjoita luokka Henkilo, jossa on (attribuutteina) sukunimi, etunimi ja syntymävuosi. Tee luokka sellaiseksi, että mallina oleva pääohjelma toimii:

public class Henkilo {

  //TODO: täydennä tarvittavat metodit

  public static void main(String[] args) {
     Henkilo aku = new Henkilo("Aku", "Ankka", 1934);
     System.out.println(aku.getNimi());  // tulostaa Aku Ankka
     System.out.println(aku.getSyntymavuosi());  // tulostaa 1934
     System.out.println(aku.toString()); // tulostaa Aku|Ankka|1934
     }
  }

 

"Aja" nappia painamalla antaa oikean tulosteen, mutta "Test"-napilla tulee virheilmoitus java.lang.Exception: No runnable methods. Mikä meni pieleen?

08 Feb 16

Tehtävä B1. Raajoja heilutteleva ukko

Katso Ohj1-kurssin Wikistä miten käytetään Graphics.jar-kirjastoa.

Malli ohjelman ajosta
Malli ohjelman ajosta

Ota malliohjelma UkkoSample.java ja muuta se sellaiseksi, että ainakin yksi ukko pyörittää jokaista jalkaansa ja kättänsä.

# tehtB1ukko

Tehtävä B1. Raajojaan heilutteleva ukko

package sample;

import java.awt.Color;
import fi.jyu.mit.graphics.*;

/**
 * Piirretään ukkoja jotka liikkuvat ja pyörivät.
 * @author vesal
 */
public class UkkoSample {

    /**
     * Ukko-luokka josta saadaa viite toiseen käteen
     * @author vesal
     */
    public static class Ukko extends DrawableCollection {
        private final Drawable kasi;
        private final Drawable jalka;


        /**
         * Alustetaan ukko haluttuun paikkaa
         * @param dx ukon pään keskipiste
         * @param dy ukon pään keskipiste
         */
        public Ukko(double dx, double dy) {
            super();
            move(dx, dy, 0.0);
            add(new Circle(0, 0, 20));
            add(new Line(0, 0, 0, 100)).move(0, 20, 0);
            kasi = add(new Line(0, 0, 0, 90)).move(0, 30, 0).rotate(Axis.Z, 30);
            add(new Line(0, 0, 0, 90)).move(0, 30, 0).rotate(Axis.Z, -130);
            add(new Line(0, 0, 0, 100)).move(0, 120, 0).rotate(Axis.Z, 25);
            jalka = add(new Line(0, 0, 0, 100)).move(0, 120, 0).rotate(Axis.Z, -25);
        }


        /**
         * Alustetaan ukko haluttuun paikkaan ja kokoon
         * @param dx ukon pään keskipiste
         * @param dy ukon pään keskipiste
         * @param s  ukon skaalauskerroin
         * @param deg ukon kiertokulma Z-akselin suhteen
         * @param color ukon väri
         */
        public Ukko(double dx, double dy, double s, double deg, Color color) {
            this(dx, dy);
            if (s != 1) scale(s, s, s);
            if (deg != 0) rotate(Axis.Z, deg);
            if (color != null) setColor(color);
        }


        /**
         * @return palautetaan viite ukon toiseen käteen
         */
        public Drawable getKasi() {
            return kasi;
        }


        /**
         * @return palautetaan viite ukon toiseen jalkaan
         */
        public Drawable getJalka() {
            return jalka;
        }

    }


    /**
     * @param args
     */
    @SuppressWarnings("unused")
    public static void main(String[] args) {
        Window window = new Window();
        window.add(new Ukko(60, 60));
        Ukko pukko = new Ukko(160, 60, 0.5, 0, Color.RED);
        window.add(pukko);
        Drawable oukko = window.add(new Ukko(260, 60, 0.3, 0, Color.ORANGE));
        window.showWindow();
        Ukko ukko = new Ukko(260, 180, 0.3, 0, null);
        window.add(ukko);

        new Rotator(ukko, Axis.Z, 3, 200);
        new Rotator(ukko.getKasi(), Axis.Z, 5, 230);
        new Mover(oukko, 2, 3, 0, 300);
        new Rotator(oukko, Axis.Y, 10, 230);

        // window.scale(0.5,2, 1);

        // Esimerkki ukon siirtamisesta hiiren kohdalle.
        new MouseFollower(window.getPanel(), pukko, 0, 0, 0, true);

        // window.getPanel().setBackground(Color.CYAN);
        window.setTitle("Ukot heiluu");
    }

}

 

# automaatti1

Tehtävä B2-3. Äärellinen automaatti 1.

Lue syksyn 2012 pääsykokeen tehtävä 2.

Tee aliohjelma tutkiJono, jolle annetaan merkkijono muodossa "01001" ja aliohjelma palauttaa true niistä jonoista, joita b-kohdan automaatti hyväksyisi, muista palautetaan false. Älä kuitenkaan toteuta tehtävää automaattia tekemällä (se tehdään Guru-tehtävässä}.

Args kenttään annettu syöte on luettavavissa pääohjelman args-muuttujasta.

Mietin, että mitä tarkoittaa "älä tee automaattia", miten tuo siis pitäisi tarkemmin otten tehdä?
- VL: "tyhmästi" tuhraamalla merkkijonolla.

03 Feb 16 (edited 03 Feb 16)
# TehtB23automaatti

Tehtävä B2-3. Äärellinen automaatti

package demo.d4;

public class Automaatti
{
    public static void main(String[] args)
    {
         //
    }

    public static ??? tutkiJono(PARAMETRIT)
    {
     //TODO: aliohjelman toteutus tähän
    }
}

 

Tehtävä G1-3. Äärellinen automaatti 2.

Lue syksyn 2012 pääsykokeen tehtävä 2.

Kirjoita luokat Solmu ja Automaatti joiden avulla pääohjelmassa muodostat pääsykokeen T2b-kohdan automaatin. Anna automaatille syötteeksi merkkijonoja tyyliin "01001" ja testeillä kokeile, että automaattisi palauttaa oikean tuloksen.

Tässä tehtävässä pitää siis saada noiden avulla tehtyä automaatti joka palauttaa hyväksyvän tiedon pääsykokeen kohdan b) hyväksyttäville jonoille ja muille hylkäävän. G4 tehtävässä pitää kokeilla että saa automaatin myös muille ongelmille.

# TehtG13automaatti

Tehtävä G1-3. Äärellinen automaatti

package demo.d4;


public class Automaatti {

    public static void main(String[] args) {
        //
    }

}

 

Tehtävä G4. Äärellinen automaatti 3.

Jatkoa edelliseen. Tee pääohjelma, jolla kokeilet edellisten luokkien toimintaa tekemällä erilaisia automaatteja. Eli automaatteja jotka hyväksyvät/hylkäävät muita kuin pääsykokeen Tehtävän 2 kohdan b jonoja. Esimerkiksi tee automaatit, jotka osaavat käsitellä T2c,T2d ja T2e kohtien jonot. Test-painike on vain sitä varten että jos olet tehnyt testejä, niin voit ajaa ne.

# g14virheilmoitukset

Tehtävä G4. Äärellinen automaatti 3

package demo.d4;

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

 

Tehtävä G5-8. Wizard JavaFX-ohjelman luomiseen.

Eclipsen JavaFX lisäke osaa luoda JavaFX projektin, mutta ei olemassa olevan projektin sisälle toista JavaFX ohjelmaa, mikä olisi varsin kätevää demoissa.

Tee JavaFX-ohjelma, jossa on ikkuna, johon kirjoitetaan paketin nimi ja ohjelman nimi (esim. Kerho). Ohjelma tekee sitten oikeaan paikkaan kurssin nimeämiskäytänteiden mukaiset tiedostot ja laittaa niissä olevat "viitteet" oikein. Samoin tuotetaan riittävät kommentit jotta ohjelma kääntyy virheettä kurssin oletusasetuksilla.

Ohjelman nimeksi saa antaa myös skandeja, esim: ikä, mutta tiedostojen nimissä skandit muutetaan pisteettömiksi ( ä -> a jne.).

Saat tehdä myös suoraan Eclipsen pluginin, jolloin voi merkitä tästä 5 p enemmän nyt tai seuraavalla demokerralla! Jos joku lähtee tätä näin tekemään, kannattaa liittoutua muiden yrittäjien kanssa kimppaan. Ei tule turhaan kilpailevia versioita vaan yksi hyvä! Laita viereen kommenttiin sp jos olet kiinostunut, niin muut voivat ottaa yhteyttä.

Ole huolellinen tiedostojen nimien kanssa kun palautat. Mikäli paketin nimi on vaikkapa demo.d4.fx, niin tallenna WizardView.fxml nimelle demo/d4/fx/WizardView.fxml ja vastaavasti .css tiedostolle. Mikäli paketin nimi on demo4, kelpaa oletusnimet.

# wizardCss

Palautus css-tiedostolle

 

# wizardView

Palautus fxml-tiedostolle

 

# wizardController

Palautus controllerille

 

# wizardMain

Palautus pääohjelmalle

 

Mikäli olet tehnyt jotakin muuta kurssia oleellisesti hyödyttävää koodia (tai em. Eclipsen pluginiksi), niin laita alle osoite mihin olet tehnyt ja pieni selostus siitä, että mitä olet tehnyt. Tästä voi merkitä itsellesi max 9 p jos et merkinnyt yhtään G5-8 kohtaan. Näiden summa kuitenkin max 9 p.

# wizardMuut

Palautustiedot muista ratkaisuista

 

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