{"id":398,"date":"2018-10-18T21:32:13","date_gmt":"2018-10-18T18:32:13","guid":{"rendered":"https:\/\/coursepages.uta.fi\/tiep5\/?page_id=398"},"modified":"2018-12-07T18:23:04","modified_gmt":"2018-12-07T16:23:04","slug":"harjoitustyo1","status":"publish","type":"page","link":"https:\/\/coursepages2.tuni.fi\/tiep5\/syksy-2018\/harjoitustyot\/harjoitustyo1\/","title":{"rendered":"Harjoitusty\u00f6 1"},"content":{"rendered":"<h2>Teht\u00e4v\u00e4nanto ja muuta materiaalia<\/h2>\n<ul>\n<li>Harjoitusty\u00f6n <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/info\/\">esittelykalvot<\/a>.<\/li>\n<li><a href=\"http:\/\/www.sis.uta.fi\/%7Elaki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/laki2_2018_harjoitustyo1.pdf\">Teht\u00e4v\u00e4nanto<\/a> pdf-muodossa.<\/li>\n<li>Esimerkinomainen kansilehti <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/laki2_2018_harjoitustyo1_tyoselostuksen_kansilehti.pdf\">pdf<\/a>&#8211; ja <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/laki2_2018_harjoitustyo1_tyoselostuksen_kansilehti.rtf\">rtf<\/a>-muodossa. Merkitse kansilehdelle oma tutkinto-ohjelmasi ja tiedekunta, joka vastaa tutkinto-ohjelmasi opetuksesta. Onni Ohjelmoija on k\u00e4pistelij\u00e4: h\u00e4nen tutkinto-ohjelmansa on tietojenk\u00e4sittelytieteet, jota opetetaan luonnontieteiden tiedekunnassa.<\/li>\n<\/ul>\n<h2>Esimerkkitiedostot<\/h2>\n<p>Oman ohjelman tulosteita kannattaa vertailla esimerkkitiedostoihin ennen WETO-palautuksia.<\/p>\n<p>Kussakin <em>input<\/em>-alkuisessa tiedostossa on ohjelmalle annettavia komentoja ja vastaavassa <em>output<\/em>-alkuisessa tiedostossa ovat komentoja vastaavat n\u00e4ytt\u00f6tulosteet. Esimerkiksi <em>input_abba.txt<\/em>-tiedoston komennot tuottavat <em>output_abba.txt<\/em>-tiedoston sis\u00e4lt\u00e4m\u00e4t tulosteet. Sy\u00f6tteet ja vastaavat tulosteet on yhdistetty <em>combination<\/em>-alkuisiin tiedostoihin. N\u00e4in esimerkiksi <em>input_abba.txt<\/em>&#8211; ja <em>output_abba.txt<\/em>-tiedostojen sis\u00e4lt\u00f6 esitet\u00e4\u00e4n <em>combination_abba.txt<\/em>-tiedostossa yhdess\u00e4 aivan kuin komennot olisi annettu komentoikkunassa.<\/p>\n<p><em>Abba<\/em>-esimerkin voi ajaa omalla ohjelmalla seuraavasti:<\/p>\n<p><code>java SubstringFinder &lt; input_abba.txt &gt; out.txt<\/code><\/p>\n<p>Yll\u00e4 ohjelman tuloste kaapataan <em>out.txt<\/em>-tiedostoon uudelleenohjausmerkin &gt; avulla.<\/p>\n<p>Esimerkit ovat saatavilla kahdessa muodossa:<\/p>\n<ul>\n<li>Windows-muotoiset rivinvaihdot. N\u00e4m\u00e4 tiedostot ovat saatavilla <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/esimerkit\/\">yksitt\u00e4in<\/a> tai <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/esimerkit\/laki2_2018_harjoitustyo1_esimerkit.zip\">zip-paketissa<\/a>.<\/li>\n<\/ul>\n<ul>\n<li>Linux\/Mac-muotoiset rivinvaihdot. Saatavilla <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/esimerkit_lf\/\">yksitt\u00e4in<\/a> tai <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/esimerkit_lf\/laki2_2018_harjoitustyo1_esimerkit_lf.zip\">zip-paketissa<\/a>.<\/li>\n<\/ul>\n<p>Esimerkeist\u00e4 ei ole versioita eri merkist\u00f6ille, koska tiedostoissa on vain 7-bittisen ASCII-merkist\u00f6n &#8221;n\u00e4kyvi\u00e4&#8221; merkkej\u00e4, joiden esitystapa on sama niin Latin 1 (ISO 8859-1) kuin UTF-8-koodatussa Unicode-merkist\u00f6iss\u00e4.<\/p>\n<h2>Salaiset testit<\/h2>\n<p>Salaiset testit ovat julkisessa testauksessa k\u00e4ytettyjen esimerkkien tapaan saatavilla kahdessa muodossa:<\/p>\n<ul>\n<li>Windows-muotoiset rivinvaihdot. N\u00e4m\u00e4 tiedostot ovat saatavilla <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/salaiset\/\">yksitt\u00e4in<\/a> tai <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/salaiset\/laki2_2018_harjoitustyo1_salaiset.zip\">ZIP-paketissa<\/a>.<\/li>\n<\/ul>\n<ul>\n<li>Linux\/Mac-muotoiset rivinvaihdot. Saatavilla <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/salaiset_lf\/\">yksitt\u00e4in<\/a> ja <a href=\"http:\/\/www.sis.uta.fi\/~laki2\/syksy-2018\/harjoitustyot\/harjoitustyo1\/salaiset_lf\/laki2_2018_harjoitustyo1_salaiset_lf.zip\">ZIP-paketissa<\/a>.<\/li>\n<\/ul>\n<h2>Kysymyksi\u00e4 ja vastauksia<\/h2>\n<p><strong>1. Onko continue-lause sallittu?<\/strong><\/p>\n<p>Ei. Continue on break-lauseen tapaan kielletty.<\/p>\n<p><strong>2. Onko t\u00e4htimerkin poisto j\u00e4rkev\u00e4\u00e4 ennen hakua?<\/strong><\/p>\n<p>Kyll\u00e4. Ohjelmasta tulee todenn\u00e4k\u00f6isesti yksinkertaisempi, jos osamerkkijonoa on esik\u00e4sitelty siten, ett\u00e4 alussa tai lopussa oleva t\u00e4htimerkki on poistettu. Ohjelmaa voi tehostaa siten, ett\u00e4 t\u00e4htimerkit\u00f6n osamerkkijono muodostetaan samalla, kun osamerkkijono tarkistetaan.<\/p>\n<p><strong>3. Mist\u00e4 aloittaisin?<\/strong><\/p>\n<p>Ohjelmaan voi tehd\u00e4 aluksi esimerkiksi p\u00e4\u00e4silmukan, jossa on vain tervehdyksen tulostus, sy\u00f6tteiden luvut ja jatkokysely. Kun p\u00e4\u00e4silmukka jatkuu ja loppuu oikein, voi sen sis\u00e4\u00e4n lis\u00e4t\u00e4 rutiininomaista ohjelmointia vaativat osat. P\u00e4\u00e4silmukan sis\u00e4\u00e4n voi lis\u00e4t\u00e4 ensin esimerkiksi osamerkkijonon lukevan ja tarkistavan silmukkaparin ja sitten jatkoa tinkaavan silmukan tai p\u00e4invastoin. Varsinainen haku kannattaa j\u00e4tt\u00e4\u00e4 ohjelman vaikeimpana osana viimeiseksi teht\u00e4v\u00e4ksi. Ohjelman osia voi toteuttaa ja testata my\u00f6s erillisin\u00e4 pienempin\u00e4 ohjelmina. T\u00e4m\u00e4 toisin vaatiin jossain m\u00e4\u00e4rin tarkkuutta, jotta palasten yhteensovittamisen yhteydess\u00e4 ei tule turhaa viilausta. Oli l\u00e4hestymistapa mik\u00e4 tahansa, on t\u00e4rkeint\u00e4 ettei yrit\u00e4 kirjoittaa koko ohjelmaa valmiiksi yhdell\u00e4 istumalla. Ohjelmointi edistyy paremmin, kun ohjelman toteuttaa osissa ja testaa kunkin osan ennen seuraavaan siirtymist\u00e4.<\/p>\n<p><strong>4. Mit\u00e4 pit\u00e4\u00e4 vakioida?<\/strong><\/p>\n<p>Ohjelman tuntemat komennot (\u2019y\u2019 ja \u2019n\u2019) tulee esitell\u00e4 vakioina, joita k\u00e4ytet\u00e4\u00e4n koodissa. Vakioi my\u00f6s virheilmoitus &#8221;Error!&#8221; ja k\u00e4yt\u00e4 t\u00e4t\u00e4kin vakiota koodissa. Kiinnit\u00e4 huomiota vakioiden nime\u00e4miseen. Vakiot kirjoitetaan isoin kirjaimin ja nimen tulee olla kuvaava. Erityisesti on v\u00e4ltett\u00e4v\u00e4 vakion nykyisen arvon ilmaisua nimess\u00e4, koska vakioita k\u00e4ytet\u00e4\u00e4n nimenomaan helpottamaan ohjelman yll\u00e4pitoa. Esimerkiksi Y ei ole hyv\u00e4 nimi, koska se perustuu suoraan vakion nykyiseen arvoon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Teht\u00e4v\u00e4nanto ja muuta materiaalia Harjoitusty\u00f6n esittelykalvot. Teht\u00e4v\u00e4nanto pdf-muodossa. Esimerkinomainen kansilehti pdf&#8211; ja rtf-muodossa. Merkitse kansilehdelle oma tutkinto-ohjelmasi ja tiedekunta, joka vastaa tutkinto-ohjelmasi opetuksesta. Onni Ohjelmoija on k\u00e4pistelij\u00e4: h\u00e4nen tutkinto-ohjelmansa on tietojenk\u00e4sittelytieteet, jota opetetaan luonnontieteiden tiedekunnassa. Esimerkkitiedostot Oman ohjelman tulosteita kannattaa vertailla esimerkkitiedostoihin ennen WETO-palautuksia. Kussakin input-alkuisessa tiedostossa on ohjelmalle annettavia komentoja ja vastaavassa output-alkuisessa tiedostossa &hellip; <a href=\"https:\/\/coursepages2.tuni.fi\/tiep5\/syksy-2018\/harjoitustyot\/harjoitustyo1\/\" class=\"more-link\">Jatka artikkeliin <span class=\"screen-reader-text\">Harjoitusty\u00f6 1<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"parent":396,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-398","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/pages\/398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/comments?post=398"}],"version-history":[{"count":14,"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/pages\/398\/revisions"}],"predecessor-version":[{"id":643,"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/pages\/398\/revisions\/643"}],"up":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/pages\/396"}],"wp:attachment":[{"href":"https:\/\/coursepages2.tuni.fi\/tiep5\/wp-json\/wp\/v2\/media?parent=398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}