OHJELMOINTI-KURSSIN PROJEKTITYÖT



Samankaltaiset tiedostot
Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Asko Ikävalko, k TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Tietokannan luominen:

Johdatus Ohjelmointiin

Ohjelmoinnin perusteet Y Python

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Tietueet. Tietueiden määrittely

Ohjelmoinnin jatkokurssi, kurssikoe

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit

Moodle TurnitIN:n käyttöohje opiskelijalle

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmoinnin perusteet Y Python

4. Lausekielinen ohjelmointi 4.1

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Ohjelmoinnin perusteet Y Python

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Luento 4. Timo Savola. 21. huhtikuuta 2006

Zeon PDF Driver Trial

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelma on tarkoitettu pankkiyhteysohjelmalla vastaanotettujen Finvoiceverkkolaskujen

IIO10200 Tietokantaohjelmointi (4 op)

Ohjelmoinnin perusteet, syksy 2006

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Ohjelmoinnin perusteet Y Python

SUOMEN PANKKIYHDISTYS

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Harjoitustehtäväkierros 1

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

ESIOPETUS-1-2 LUOKKA OMA OPPIMISPOLKU

Python-ohjelmointi Harjoitus 2

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Korpusten käsittely clt131, P Luento 5

Sisällysluettelo. 1 Yleistä Palautuslaatikosta Tarkastajan yhteenvetonäkymä Palautusten tallentaminen omalle koneelle...

Määrittelydokumentti. Olutkortisto

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

YH2: Office365 II, verkko-opiskelu


YH1b: Office365 II, verkko-opiskelu

1. Uuden Ilmon käytön eroavaisuudet vanhasta Ilmosta lyhyesti

ALVin käyttöohjeet. Kuvaus, rajaus ja tallennus puhelimella ALVin -mobiilisovelluksen avulla dokumentit kuvataan, rajataan ja tallennetaan palveluun.

CLT131 Korpusten käsittely

finnish BOI 2015, päivä 1. Muistiraja: 256 MB

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Harjoitus 5 (viikko 41)

ASCII-taidetta. Intro: Python

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Algoritmit 1. Luento 1 Ti Timo Männikkö

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

NÄYTÖT JA TYÖSSÄOPPIMINEN -pikaohje

Python-ohjelmointi Harjoitus 5

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

ASENNUS JA KÄYTTÖOHJE

Opettajan ohje kypsyysnäytteen toteuttamiseen ja arvioimiseen sähköisenä Exam-tenttinä

3 Tee ohjelma, joka tulostaa kahden opiskelijan nimet ja osoitteet rinnakkain. 4 Tee ohjelma, joka kysyy käyttäjältä numeron ja tulostaa sen näytölle.

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

TEHTÄVIEN PALAUTTAMINEN MOODLEEN

Harjoitus 5 (viikko 48)

Ohjelmoinnin perusteet Y Python

OHJEET WORDPRESS-BLOGIN LUOMISEEN JA TAVALLISIMPIIN BLOGITOIMINTOIHIN

12. Javan toistorakenteet 12.1

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

ITKP102 Ohjelmointi 1 (6 op)

75059 Suuri lajittelusarja

Moodle-oppimisympäristö

Ohjelmoinnin perusteet Y Python

Kurssin oppimistavoitteet. Heikki Lokki Kurssin suorituksen jälkeen osaat

opiskelijan ohje - kirjautuminen

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

elearning Salpaus Elsa-tutuksi

Toinen harjoitustyö. ASCII-grafiikkaa

Ohjelmoinnin perusteet, 1. välikoe

Hakemistojen sisällöt säilötään linkitetyille listalle.

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia.

Ohjelmoinnin perusteet Y Python

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

811312A Tietorakenteet ja algoritmit I Johdanto

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Kustannuslaskenta. Käyttöohje tarjouslaskelma

Transkriptio:

TYÖOHJE 1 OHJELMOINTI-KURSSIN PROJEKTITYÖT Suunnitelma Tämä työohje kuvaa opintojakson Ohjelmointi (T0004) TP02S:lle syksyllä 2003 pidetyn toteutuksen projektitöiden suoritustavan ja aiheet. Projektitöitä tehdään yksi tai kaksi ja niiden vaatima arvioitu työaika on yhteensä 60 tuntia. Ratkaisut toteutetaan C-kielellä. Työt tehdään pääsääntöisesti itsenäisesti. Pari- tai ryhmätyöskentely on mahdollista, jos siitä etukäteen erikseen sovitaan (työsuunnitelmassa), mutta työn on oltava yksin tehtävää selvästi vaativampi ja laajempi, ja kunkin tekijän osuus on oltava selvästi erotettavissa ja etukäteen dokumentoitu. Työhön kuuluu myös projektisuunnitelman tekeminen ja toteutuman seuranta. Suunnitelman ja toteutuman yhtäpitävyys ei vaikuta arvosteluun. Projektista tehdään työsuunnitelma, josta käy ilmi eri valitut tehtävät, niihin varattu työtuntimäärä ja aikataulu. Suunnitelma palautetaan viimeistään tenttitilaisuudessa 16.12.2003 kirjallisena. Työsuunnitelman liitteeksi laaditaan kummastakin tehtävästä lyhyt vaatimusmäärittely eli käytännössä tehtävänasettelun täsmennys, jonka perusteella voidaan todeta täyttääkö ratkaisu etukäteen asetetut vaatimukset. Työn palautus Työt palautetaan 15.2.2004 mennessä, jolloin se arvioidaan normaalisti. Työn saa palauttaa vielä 15.3.2004 asti, mutta viivästyminen otetaan huomioon arvioinnissa. Töitä voi palauttaa vielä tämän jälkeenkin 30.4. 2004 asti, mutta pisteet eivät enää vaikuta kurssin arvosanaan. Tätäkin myöhemmin palautetut työt otetaan huomioon vain erityisen painavista syistä. Projektitöistä tehdään lyhyt paperidokumentti, joka sisältää seuraavat asiat: a) Ratkaisun kuvaus ja ratkaisun mahdolliset rajoitukset. Jos ohjelmakoodi on selkeästi kirjoitettu ja hyvin kommentoitu, tämä kohta voi sisältää vain lyhyen sanallisen tai kuvia apuna käyttävän (esim. lohkokaavio) selostuksen ratkaisusta. Ratkaisu siis kuvataan lyhyesti ja erityisesti kerrotaan sellaiset asiat, jotka eivät ilmene helposti itse ohjelmakoodista. b) käytettyjen tiedostojen kuvaus: käyttötarkoitus ja sisäinen rakenne. c) tietorakenteiden kuvaus: Kuvataan ohjelmassa käytetyt tietueet (struct). Tämä kohta voidaan jättää pois jos a-kohta ja

TYÖOHJE 2 ohjelmakoodi kuvaavat ohjelmassa käytetyt tietueet ja niiden käyttötarkoituksen. d) lyhyt käyttöohje, jonka perusteella ohjelmaa pitää pystyä ajamaan ilman, että perehtyy itse ohjelmakoodiin e) yhteenveto ohjelman toimivuudesta ja laajennusmahdollisuuksista f) vähintään kaksi käyttöesimerkkiä, käyttöesimerkkien tarkoitus on antaa mahdollisimman kattava ja uskottava kuva ohjelman toiminnasta g) ohjelmalistaus h) työaikaraportti Raporttiin voi liittää oman arvionsa siitä, kuinka ohjelma toimii ja mitä parantamisen varaa jäi. Pituus ei ole raportin arviointiperuste. Työ palautetaan lähettämällä ohjelmakoodi ascii-tekstitiedostoina pakattuna yhdeksi.zip tiedostoksi sähköpostilla opettajalle osoitteeseen olli.hamalainen@evtek.fi. Paperidokumentti palautetaan huoneen 1.116 postilokeroon tai (sisä)postitse. Töiden arviointi Projektitöistä voi yhteensä saada enintään 20 pistettä, jotka lasketaan yhteen koepisteiden (enintään 30) ja kotitehtävistä saatujen pisteiden (enintään 10) kanssa. Kurssin arvosana määräytyy näin saadun kokonaispistemäärän perusteella. Kummastakin työstä on saatava hyväksyttävä arvosana eli vähintään 2 pistettä. Projektitöiden arviointiin vaikuttaa tehtävän vaativuus ja laajuus sekä toteutuksen laatu. Laadun arviointiin vaikuttaa ohjelman toteutuksen lisäksi dokumentointi ja määräaikojen noudattaminen.

TYÖOHJE 3 1 YKSINKERTAINEN KORVAUSSALAKIRJOITUS Yksinkertainen korvaussalakirjoitus on menetelmä, jossa käytettävät merkit sekoitetaan siten, että kukin merkki korvataan toisella saman kirjaimiston merkillä. Kutakin merkkiä korvaava merkki on aina sama eli merkistö kuvautuu yksikäsitteisesti itselleen. esim. harjoituksissa esillä ollut Caesarsalakirjoitus on tätä tyyppiä. Tällaista salakirjoitusta voidaan yrittää purkaa laskemalla yksittäisten merkkien lukumäärät tekstissä ja vertaamalla sitä käytetyn kielen tunnettuihin kirjainten esiintymisfrekvensseihin. Jos siis esimerkiksi analysoitavassa tekstissä useimmiten esiintyvä kirjain on R ja tiedetään, että teksti on suomea, R on varsin todennäköisesti I:n vastine, koska I on suomen kielen yleisin kirjain. Myös kirjainparien (digrammien) ja kirjainkolmikoiden (trigrammien) esiintymistiheydet voivat auttaa salakirjoituksen selvittämisessä. Suunnittele ja toteuta ohjelmakokonaisuus, joka tukee salausta ja salauksen purkua seuraavin toiminnoin: käyttäjän antamien korvaussääntöjen mukaan salakirjoitetaan annettu teksti yksinkertaisella korvaussalakirjoituksella lasketaan annetusta tekstitiedostosta yksittäisten merkkien esiintymisfrekvenssit lasketaan annetusta tekstitiedostosta peräkkäin esiintyvien merkkien muodostamien parien esiintymisfrekvenssit ehdotetaan frekvenssien perusteella yleisimmin esiintyville salakirjoitusmerkeille vastineita tulostetaan käyttäjän antamien korvaussääntöjen (arvausten) mukaan muunnettu tiedosto korvaussääntö voi koskea joko yksittäistä merkkiä tai merkkijonoa Voit olettaa, että salakirjoitettu teksti koostuu vain isoista kirjaimista ja tulostaa muunnetut merkit pienillä kirjaimilla. Näin käyttäjä voi nähdä havainnollisesti muunnoksen (muunnosten) tulokset. Suomenkielisessä tekstissä yleisimmin esiintyvät kirjaimet ovat i, t, a, e, s, n ja l. Myös digrammien ja trigrammien esiintymistaajuuksista ja muiden kielten vastaavista ominaisuuksista on olemassa tilastotietoa.

TYÖOHJE 4 2 INTERNET-LINKKIEN REKISTERIOHJELMA Tee ohjelma, jonka avulla voidaan tallettaa, selata ja ylläpitää Internet-linkkejä samaan tapaan kuin selainohjelmien suosikkilinkit toiminnossa (Favoritesvalikko MS Explorer-selaimessa). Internet-linkistä talletetaan vähintään: 1. Käyttäjän antama linkin nimi. 2. Linkin internet-osoite (URL=Uniform Resource Locator) 3. Käyttäjän antama kuvaus linkistä, max 256 merkkiä. 4. Ryhmä, jonka alle linkki halutaan tallettaa. Tämä voi olla myös ei ryhmää, vertaa selaimien toteutukseen. Ohjelman toiminnot ovat vähintään: 1. Uuden linkin lisäys. 2. Linkin tuhoaminen. 3. Linkkien selaus (=toiminto seuraava/edellinen linkki, jonka avulla käyttäjä voi löytää etsimänsä linkin ilman, että täsmälleen muistaa tai tietää linkin tietoja) 4. Linkkien tulostaminen (joko kaikki tai valittu ryhmä). Tulostus valittavissa näyttöön tai tekstitiedostoon. Ohjeita: Linkkien ryhmittelyn toteutuksessa on monta vaihtoehtoa: kiinteät ennalta määritellyt ryhmät, ryhmät määritellään erillisessä tekstitiedostossa (jota käyttäjä voi tarvittaessa editoida) tai ohjelma voi tarjota toiminnot myös ryhmien luomiseksi ja tuhoamiseksi. Jos haluat, voit toteuttaa ryhmiä myös ryhmien sisälle. Tätä ei kuitenkaan vaadita ja sen toteuttaminen vaatii hyvää C-kielen ja ohjelmoinnin rakenteiden hallintaa. Siis älä ryhdy tähän, jos tehtävä tuntuu muutenkin riittävän työläältä. Talleta linkkien tiedot pysyvästi binääritiedostoon tietueina (struct). Tämä on tehokkain ja selkein tapa ohjelmoida tiedostotalletus. Tulostuksen tiedostoon voi tehdä myös HTML-muodossa, jolloin linkkien katselu ja niihin hyppääminen on mahdollista selainohjelmilla. 3 RAJATTOMAN LUKUALUEEN LASKIN Tee laskinohjelma, joka suorittaa laskutoimituksia mielivaltaisen suurilla kokonaisluvuilla (esim. ainakin 50 numeroa pitkillä luvuilla). Periaatteessa laskenta-aluetta ei saa rajoittaa muu kuin käytettävissä oleva tietokoneen muisti.

TYÖOHJE 5 Ohjelmalla pitää pystyä suorittamaan ainakin yhteen- ja vähennyslaskuja. Ohjelman ei tarvitse ymmärtää sulkuja. Jos tehtävä tuntuu liian helpolta, voidaan laskutoimituksiin lisätä kertolasku. Tällöin ohjelman pitää myös osata laskea oikeassa järjestyksessä, eli kertolasku pitää suorittaa ennen yhteen- ja vähennyslaskua. Laskutoimitukset voidaan syöttää ohjelmalle joko vuorovaikutteisesti tai tekstitiedostona. Tekstitiedostossa pitää voida antaa kerralla monta laskutehtävää, jotka kaikki ohjelma suorittaa kun tiedosto annetaan ohjelmalle laskettavaksi. 4 RIVIPOHJAINEN TEKSTINTOIMITIN Tee rivipohjainen tekstintoimitin (editori). Ohjelmalle annetaan parametrina tiedoston nimi (tai se voidaan kysyä vasta kun ohjelma on käynnistynyt). Tiedosto luetaan sisään ja sen ensimmäinen rivi asetetaan valituksi riviksi. Tämän jälkeen ohjelma jää odottamaan komentoja. Komennot ovat seuraavat (saat itse valita niiden nimet ja esitystavat): valitun rivin tulostus ota valituksi riviksi rivi N, jossa N annetaan komennon parametrina poista valittu rivi lisää rivi ennen valittua riviä. Uudelle riville tuleva teksti annetaan komennon parametrina lisää tekstiä valitun rivin loppuun (lisättävä teksti annetaan parametrina) lisää tekstiä valitulle riville M:nnestä merkistä alkaen, jossa M ja lisättävä teksti annetaan parametrina poista valitusta rivistä K merkkiä M:nnestä merkistä alkaen (K ja M annetaan parametrina) poistu ohjelmasta - tallentaa tiedoston takaisin levylle. Periaatteesa käsiteltävien rivien pituutta ja lukumäärää saa rajoittaa vain käytettävissä oleva muisti. Ohje: Voit karsia editorin toimintoja, jos tehtävä tuntuu liian työläältä. 5 TIEDOSTON SELAUSOHJELMA Tehtävänä on kehittää ohjelma, joka avaa minkä tahansa levyllä olevan tiedoston ja joka osaa näyttää sen tiedot sekä heksadesimaalisena että ASCIImuodossa. Käyttäjältä kysytään avattavan tiedoston nimi. Tietojen lukua ja näyttämistä käyttäjä ohjaa yksinkertaisilla komennoilla seuraavasti: 1) käyttäjän pitää voida muuttaa kerralla luettavien tavujen lukumäärää

TYÖOHJE 6 2) käyttäjän pitää voida lukea tietoja tiedostossa eteen- ja taaksepäin 3) käyttäjän pitää voida lukea tietoja halutusta kohdasta Lisäksi ohjelma kertoo aina mistä kohdasta tiedostoa näytetyt tiedot ovat (sijainti tavuina tiedoston alusta). 6 C-KIELISEN OHJELMAN KATSELU INTERNET-SELAIMESSA Tee ohjelma, joka muuntaa C-kielisen ohjelman HTML-muotoon siten, että kaikki C-kielen varatut sanat näytetään lihavoituna (ja/tai käyttäjän antamalla värillä, vertaa harjoituksissa käytetty ohjelmointiympäristö). Ei pakollisena lisäpiirteenä voit ottaa huomioon myös C-kielen kommentit. Niissä voi myös esiintyä C-kielen varattuja sanoja, mutta niitä ei pidä korostaa. Sen sijaan voit korostaa kommentit kokonaisuudessaan jollakin toisella tavalla, esimerkiksi eri värillä kuin varatut sanat. Tarvittavien HTML-komentojen selvittäminen kuuluu tehtävään. Ohje: Voit tehdä ohjelmasta komentopohjaisen. Se voi esimerkiksi tuntea seuraavat komennot: Syöttötiedoston nimen antaminen. Tulostustiedoston nimen antaminen Avainsanojen korostustavan valinta (väri ja lihavointi parametreina) Kommenttien värin valinta (väri parametrina) Ajokomento 7 PROSESSIEN AJOITUKSEN SIMULOINTI Moniajokäyttöjärjestelmässä suoritetaan useita prosesseja rinnakkain. Käytännössä voidaan noudattaa ns. aikaviipaletekniikkaa, missä kukin prosessi saa vuorollaan käyttöönsä pienen aikaviipaleen prosessoriaikaa. Aikaviipale voi olla esim. 200 ms. Koska prosessien kokonaisaikatarpeet vaihtelevat, eri prosessit tarvitsevat eri määrän aikaviipaleita valmistuakseen. Prosessin läpimenoaika järjestelmässä muodostuu näin ollen prosessoriajasta ja odotteluajasta. Prosessien ajoitus eli skedulointi voi perustua lisäksi prioriteettien käyttöön: korkeampiprioriteettiset työt palvellaan aina loppuun ennen kuin aletaan palvelemaan seuraavan alemman prioriteettitason töitä. Jos järjestelmään saapuu suorituksessa olevaa työtä korkeamman prioriteetin työ, se saa seuraavan aikaviipaleen. Yhden prioriteettitason sisällä työt ovat jonossa (FIFO). Ajoitus toimii siten, että käytettyään aikaviipaleen prosessi siirtyy (siirretään) saman prioriteetin omaavien töiden jonon viimeiseksi. Tehtävänä on laatia ohjelma, jolla voit simuloida yllä esitettyä aikaviipaletekniikkaan perustuvaa prioriteettiskedulointia.

TYÖOHJE 7 Ohjelmalla on käyttöliittymä, joka antaa käyttäjälle mm. mahdollisuuden lisätä järjestelmään uusia töitä (yksi kerrallaan) ajaa järjestelmää eteenpäin aikayksikkö kerrallaan (aikayksiköksi voidaan valita aikaviipaleen pituus) 8 MUU OHJELMOINTITEHTÄVÄ Muita mahdollisia aiheita ovat mm. seuraavat 1. Interaktiivinen opetusohjelma (päässälaskutehtäviä vaikeusaste valittavissa, vieraan kielen sanakoe tms.) 2. Peli, joka voi olla esimerkiksi ventti, nopanheitto tai jatsi, jota pelataan konetta vastaan. 3. Tiedostoihin perustuva tilastointi. 4. Sanapeli ("hirsipuu") tai peli, jossa pelaajia on useampia tai opetusohjelman eri osien tilastointi. Myös omia aiheita voi mielellään ehdottaa.

TYÖOHJE 8 OHJELMOINTIOHJEITA 1. Kiinnitä huomiota vakioiden, muuttujien ja funktioiden nimeämiseen sekä funktioiden parametrointiin. Käytä samaa nimeämistapaa kaikkialla ohjelmassa ja pyri valitsemaan tarkoitusta kuvaavat ja itseään selittävät muuttujien ja parametrien nimet. Käytä yksikirjaimisia tunnuksia vain silmukkalaskureissa ja muissa vastaavissa tehtävissä. 2. Kommentoi ohjelma selkeästi: a) Funktioiden eteen kommentti, jossa kerrotaan funktion tehtävä ja kuvataan sen parametrit. b) Käytetyt tietorakenteet (muuttujat, taulukot ja tietueet = struct) kommentoidaan. Kerro tietueen käyttötarkoitus ja yksittäisten kenttien tehtävä. c) Kommentoi erikoiset ratkaisut ja yleensä ohjelmakoodin ymmärtämisen kannalta välttämättömät asiat. d) Käytettyjen ratkaisujen mahdolliset rajoitukset kommentoidaan. e) Muista, että kommentoinnin tarkoitus on auttaa toista henkilöä ymmärtämään ohjelman toiminta. Älä kuitenkaan kommentoi liikaa, vaan suunnittele kommentointi sellaista henkilöä varten joka osaa ohjelmoida C-kielellä.