Tietojenkäsittelytiede Harjoitustehtäviä Ohjelmoinnin empiirinen tutkimus 5.11.2010x2. Pakollinen, yksilötehtävä, kerroin 4
a) Tee Java:lla, C:llä tai Pascal:illa allakuvattu ohjelma ja rekisteröi sen tekeminen jollain välineellä, joka nauhoittaa näytön tapahtumat tarkasti. Voit käyttää nauhoittamiseen esimerkiksi edi-nauhoitinta, johon liittyviä ohjeita on alempana. Nauhoittaminen on syytä tehdä rauhallisessa paikassa, jossa kukaan ei tule häiritsemään sinua — hyvä rauha löytyy usein kotoa.
Jos käytät Javaa, niin yksinkertainen konsolisyötettä lukeva luokka löytyy osoitteesta http://www.cs.joensuu.fi/~saja/oo_metaphors/animations/Input.txt ja sitä käyttävä esimerkkiohjelma osoitteesta http://www.cs.joensuu.fi/~saja/oo_metaphors/animations/demo6.txt.
Varsinainen laadittava ohjelma saa syötteenään seitsemän lukua ja sen on tulostettava näitä lukuja vastaten seitsemän pylvästä, joiden korkeudet riippuvat syötteenä saaduista luvuista allaolevan esimerkin mukaisesti. (Mikäli luvut eivät ole välillä 0..20, tulostukseksi riittää pelkkä huomautus syötteiden virheellisyydestä.)
Anna luvut (7 kappaletta):
7
15
4
4
0
20
5
20 **
19 **
18 **
17 **
16 **
15 ** **
14 ** **
13 ** **
12 ** **
11 ** **
10 ** **
9 ** **
8 ** **
7 ** ** **
6 ** ** **
5 ** ** ** **
4 ** ** ** ** ** **
3 ** ** ** ** ** **
2 ** ** ** ** ** **
1 ** ** ** ** ** **
Laatiessasi ohjelmaa älä käytä apuna kynää ja paperia. Kirjoita mahdolliset suunnitelmasi kommenteiksi suoraan ohjelmaan, jotta nauhoituksesta näkyisi, miten ajatuksesi etenivät. Suunnitelmien kirjoittamisessa ei kannata pyrkiä suureen tarkkuuteen; kirjoita vain sen verran kuin mitä tunnet tarvitsevasi ohjelman kirjoittamisen tueksi. Jos toisaalta suunnittelet ohjelman rakennetta pitkään, niin kirjoita kommenttiin tärkeimmät ajatuksesi, jotta nauhoitusta toistaessasi ei olisi niin tylsää katsoa näyttöä, jolla ei tapahdu mitään.
b) Toista nauhoittamasi ohjelmointiprosessi ja etsi kaikki tekemäsi virheet (alkaen välittömästi korjatuista lyöntivirheistä ja päätyen karkeisiin ohjelman suunnittelussa tekemiisi virheisiin). Anna virheille luokitus ja kirjaa kussakin luokassa esiintyneiden virheiden lukumäärät.
Etsi nauhoituksesta myös kaikki yli 3 sekunnin kohdat, joissa näytöllä ei tapahdu mitään: anna pysähtymisten syille luokitus ja kirjaa kussakin luokassa esiintyneiden pysähtymisten lukumäärät.
Tee b)-kohdan ratkaisustasi yksi verkkosivu ja lähetä sen osoite sähköpostilla osoitteeseen saja@cs.joensuu.fi viimeistään 4.11.2010 klo 13:00. (Katso verkkosivua koskevat yleisohjeet ensimmäisten harjoitusten kohdalta.)
Kirjaa vastaukseesi myös:
Ratkaisun lähettäminen ei poista velvollisuutta osallistua harjoitustilaisuuteen.
Edi-nauhoitin
Edi-nauhoitinta käytettäessä nauhoitus tehdään ohjelmalla edi_nauh ja toisto ohjelmalla edi_tois, joita voi käyttää cslinux:illa. Voit myös kopioida ohjelmat kotiisi tästä: edi_nauh ja edi_tois; lisäksi tarvitset Tcl/Tk:n, joka on usein valmiina Linux-jakeluissa ja jonka Windows- ja Mac-versiot on hyvin helppo asentaa.
Edi-nauhoittimen käytössä kannattaa huomioida seuraavat seikat:
Edi-nauhoittimen varsinainen käyttöopastus annetaan luennolla.
cslinux
Joensuulaisten kirjautuminen cslinux:ille:
- Käynnistä joku mikroluokan kone Linux:ille - Kirjoittaudu sisään cs:n tunnuksellasi - Konsoli/xterm-ikkunassa: ssh -X cslinux <anna salasanaksi oma cs:n salasanasi> [Jos kone valittaa optiosta -X niin jätä se pois.]
Kuopiolaisten kirjautuminen cslinux:ille:
- Käynnistä joku mikroluokan kone Linux:ille - Kirjoittaudu sisään uefad-tunnuksellasi - Konsoli/xterm-ikkunassa: ssh -X -l oma-cs-tunnus cslinux.joensuu.fi <anna salasanaksi oma cs:n salasanasi> [Jos kone valittaa optiosta -X niin jätä se pois.]
Ensimmäisellä käyttökerralla (Joensuu ja Kuopio):
- Kirjaudu cslinux:lle kuten yllä on kuvattu [Järjestelmä valittaa joistakin asioista, mutta jatka vain.] mkdir ~ logout [Uloskirjautuminen on tarpeen ennen varsinaista käyttöä]
Varsinaiset käyttökerrat (Joensuu ja Kuopio):
- Kirjaudu cslinux:lle kuten yllä on kuvattu edi_nauh & [ Jos ei käynnisty, niin: /usr/local/bin/edi_nauh & ] <ohjelman kääntämistä ja testaamista> edi_tois & [ Jos ei käynnisty, niin: /usr/local/bin/edi_tois & ] logout
Ohjelmointikielten kääntäjät cslinux:illa:
set path = ($path /usr/java/j2sdk1.4.0/bin .) [Jos kone valittaa komennon syntaksista, niin olet luultavasti kuopiolainen ja kuoresi on bash. Anna siis cslinux:ille kirjauduttuasi ensin komento tcsh ja tee vasta sitten kaikki hommasi. Kun lopetat, niin joudut antamaan komennon exit ennnen logout-komentoa.]
pc x2.pasSuorituskelpoisella tiedostolla on oletusarvoisesti sama nimi kuin lähdekoodilla (ilman tarkennetta), eli edellä käännetty ohjelma ajettaisiin komennolla:
./x2
Huom 2: Jos et saa ohjelmia käynnistymään yliopistollakaan, niin ota yhteyttä mikrotukeen tai kurssin luennoitsijaan. Koneongelmat eivät ole peruste olla tekemättä tätä tehtävää!