Pääteohjaus 1


Tämän pääteohjauksen tarkoituksena on tutustua Ohjelmointi -kurssin malliohjelmina olevien KERHO ja TULKKI -ohjelmien toimintaan. Näistä voi saada joitakin ideoita oman harjoitustyön suunnitelmaan.

Seuraavat harjoitukset on parasta tehdä komentotulkissa. Siis jos olet Windowissa, napauta 2 kertaa CMD -ikonia päästäksesi komentotulkki-tilaan.

Aivan ensimmäiseksi tee kovalevylle (esim. C) oma hakemisto
(C:\MyTemp\ohj\tunnus, missä tunnus on oma käyttäjätunnuksesi).

Hakemistot

Kerho

KERHO -ohjelma tullaan kurssin aikana toteuttamaan TOP-DOWN suunnittelua käyttäen ja kehityksen eri vaiheita on seuraavissa hakemistoissa:
 Directory of N:\kurssit\cpp\kerho

05.09.2000 14:48 <DIR> paamenu.0 12.01.2002 14:58 <DIR> menut.05 12.01.2002 14:22 <DIR> raken.09 12.01.2002 14:23 <DIR> jako.15 28.12.2001 10:31 <DIR> runko.1 12.01.2002 14:36 <DIR> talletus.2 12.01.2002 15:06 <DIR> lukemine.3 12.01.2002 15:20 <DIR> tarkistu.4 12.01.2002 15:29 <DIR> etsilaj.5 05.09.2000 14:48 <DIR> vapaatyy.8


Hakemiston nimessä oleva tarkennin 0-8 viittaa kehitysvaiheeseen (ei samat kuin harjoitustyön vaihenumerot). Kuhunkin alihakemistoon on käännetty valmiiksi ohjelma nimeltä KERHO.EXE. Tarkoituksena on katsoa eri vaiheissa olevan ohjelman toimintaa.

Tulkki

Tulkki-ohjelma on toteutettu 3 vaiheessa.
 Directory of N:\KURSSIT\C\TULKKI
.            <DIR>     30.12.91   11.05
..           <DIR>     30.12.91   11.05
VALITES  1   <DIR>     30.12.91   11.05
SANASLUK 2   <DIR>     30.12.91   11.05
VALMIS   3   <DIR>     30.12.91   11.05
Eri vaiheiden testaaminen vaatii debuggerin käytön osaamista, ja tässä pääteohjauksessa tutustutaan vain viimeiseen vaiheeseen eli alihakemistoon VALMIS.3, josta löytyy "valmis" tulkki-ohjelma nimeltä TULKKI.EXE.

Kerho

Päämenu

Kerho ohjelman ensimmäisessä vaiheessa on tehty ohjelma, joka tulostaa vain pelkän ohjelman päävalikon.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\PAAMENU.0
    Käynnistä ohjelma kirjoittamalla
    N:\KURSSIT\CPP\KERHO\PAAMENU.0>KERHO[RET]
    

Päämenu

Seuraavassa vaiheessa on toimivat valikot, mutta mikään alakohta ei toimi.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\MENUT.05
    Käynnistä ohjelma kirjoittamalla
    N:\KURSSIT\CPP\KERHO\MENUT.05>KERHO[RET]
    

Runko

Seuraava vaihe on lisätä ohjelmaan niin paljon koodia, että tietorakenteet saadaan toimiviksi. Mitään järkevää ei vielä saada aikaan, mutta rakenteiden toimivuus voidaan todeta.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\RUNKO.1
    Käynnistä KERHO-ohjelma

    Kokeile tulostusta (3).

    Lisää jäsen pari kertaa.

    Kokeile tulostusta.

    Kokeile muita toimintoja.

    Lopeta ohjelma.

    Käynnistä ohjelma uudelleen.

    Kokeile tulostusta.

    Lopeta ohjelma

Talletus

Seuraavana ohjelmaan lisätään talletus, jotta syöttöaineistoa on riittävästi käytössä myöhemmin, kun muita toimintoja lisätään. Ohjelma ei vieläkään osaa lukea päätteeltä, mutta se osaa lukea ja kirjoittaa tiedoston, jossa jäsenistö on.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\TALLETUS.2
    Siirry C-levyn omaan hakemistoosi (jollei ole, tee se).

    Kopioi N-levyn *.DAT -tiedostot
    C:\MyTemp\ohj\VESAL>copy n:*.dat
    

    Käynnistä KERHO-ohjelma n:kerho
    Vastaa kerhon nimeksi KELMIT
    Kokeile tulostusta (3).

    Lisää jäsen.

    Kokeile tulostusta.

    Kokeile muita toimintoja.

    Lopeta ohjelma.

    Käynnistä ohjelma uudelleen.

    Kokeile tulostusta. Onko lisätty jäsen tallessa?

    Lopeta ohjelma.

    Käynnistä vaikkapa Borland-C editori ja editoi sillä tiedostoa KELMIT.DAT:
    C:\MyTemp\ohj\VESAL>BC KELMIT.DAT[RET]
    
    Lisää tiedostoon jokin uusi jäsen ja poista pari muuta.

    Lopeta Borland-C ([Alt-X]).

    Käynnistä KERHO-ohjelma jälleen kerran.

    Kokeile tulostusta. Onko muutokset kunnossa?

    Lopeta ohjelma.

Päätesyöttö

Kun tiedot osataan tallettaa tiedostoon, voidaankin ohjelmaan jo lisätä päätesyöttö. Tässä vaiheessa ei vielä huolehdita oikeellisuustarkistuksista.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\LUKEMINE.3
    Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT
    Käynnistä KERHO-ohjelma

    Vastaa kerhon nimeksi KELMIT
    Kokeile tulostusta (3).

    Lisää jäsen.

    Kokeile tulostusta.

    Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?

    Kokeile tulostusta.

    Lopeta ohjelma.

Oikeellisuustarkistukset

Kun päätesyöttö toimii luotettavasti, voidaan lisätä syöttöön oikeellisuustarkistukset.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\TARKISTU.4
    Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT sekä N:*.HLP
    Käynnistä KERHO-ohjelma

    Vastaa kerhon nimeksi KELMIT
    Kokeile tulostusta (3).

    Lisää jäsen.

    Kokeile tulostusta.

    Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?

    Kokeile tulostusta.

    Lopeta ohjelma.


Etsiminen ja korjailu

Seuraavaksi lisätään vielä ohjelmasta puuttuvia toimintoja. Esimerkiksi tietojen etsiminen ja korjailu.
    Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\ETSILAJ.5
    Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT, N:*.HLP
    Käynnistä KERHO-ohjelma

    Vastaa kerhon nimeksi KELMIT
    Kokeile tulostusta (3).

    Kokeile tietojen etsimistä (2).

    Valitse kysymysmerkki (?) jotta näet mitä kenttiä on käytössä.

    Valitse vaikkapa nimikenttä (1).

    Etsi kaikki A:lla alkavat nimet (a*).

    Valitse vaikkapa nimikenttä (1).

    Etsi kaikki nimet jotka ovat aakkosissa ennen nimeä KISSA (<kissa).

    Selaile löytyneitä nimiä (+ ja -).

    Palaa päävalintaan ([Ret]).

    Koeta muuttaa James Bondin tietoja.

    Lopeta ohjelma.

Yleistystä

Seuraavat ohjelmankehitysvaiheet liittyvät rakenteen yleistämiseen, eivätkä tarjoa mitään ulospäin näkyviä toiminnallisia muutoksia. Viimeinen kehitysvaihe ylittää jo ohjelmointikurssin vaatimustason; siinä yleistys on viety niin pitkälle, että rekisterin tietueiden tiedot on talletettu .RAK -nimisiin tiedostoihin. Näin jokainen voi periaatteessa kokeilla voiko hän saada oman harjoitustyönsä aikaiseksi muuttamalla tiedostoa OLETUS.RAK.
    Siirry alihakemistoon N:\KURSSIT\C\KERHO\VAPAATYY.8
    Siirry omaan hakemistoosi ja kopioi nyt N:*.DAT, N:*.HLP ja N:*.RAK
    Käynnistä KERHO-ohjelma.

    Vastaa kerhon nimeksi KELMIT
    Kokeile avustusta (?).

    Kokeile tulostusta (3).

    Laita kaikkien henkilöiden maksettu maksu kentään 0 mk.
    (Voit kokeilla avustusta ? missä kohti vaan).
    Muutetaan muuttamisessa käytettävät kentät.
    Kentät >B[RET]
    Maksettu maksu mk >0.0[RET]
    2 = täytä kentät..
    Valitse kenttä... :1 
    Jäsenen nimi ...>*
    

    Kokeile muuttaa jäsenmaksuksi 10 mk kaikille niille, jotka ovat liittyneet ennen vuotta 1986.

    Lopeta ohjelma.

    Käynnistä KERHO-ohjelma.

    Vastaa kerhon nimeksi KOULU
    Kokeile tulostusta (3).

    Kokeile lisätä koululaisia.

    Lopeta ohjelma.

    Kopioi KOULU.RAK nimelle OLETUS.RAK
    C:\MyTemp\ohj\VESAL>COPY KOULU.RAK OLETUS.RAK[RET]
    

    Muokkaa tiedostoa OLETUS.RAK vastaamaan osittain omaa harjoitustyötäsi. Ohjeita rakennetiedoston kirjoittamiseen löydät tiedostoston KERHOLRA.C alkukommenteista.
    C:\MyTemp\ohj\VESAL>BC OLETUS.RAK[RET]
    

    Lopeta Borland-C ([Alt-X]).

    Käynnistä KERHO-ohjelma.

    Vastaa tiedoston nimeksi OMA ja kokeile toimiiko.

Harjoitustyöksi ei kuitenkaan kelpaa tämän hakemiston tiedostojen listaaminen!

Kurssin WWW-sivut

Tutki kurssin WWW-sivuja
http://www.mit.jyu.fi/~vesal/kurssit/ohjelmointi2002/ ja sieltä erityisesti kohtaa Harjoitustyö ja palautusohjeet. Samoin harjoittele demojen laittamista verkkoon!

Tulkki

Tulkki-ohjelmasta kokeilemme vain "valmista" ohjelmaa.
    Kopioi hakemisto N:\KURSSIT\C\TULKKI\VALMIS.3 omaan hakemistoosi (tee vaikka uusi TULKKI-alihakemisto ensin).

    Sanasto on talletettu tiedostoon SANASTO.DAT. Katso mitä sanoja on sanastossa.

    Käynnistä TULKKI-ohjelma
    C:\MyTemp\ohj\VESAL>TULKKI[RET]
    

    Paina kysymysmerkkiä ja return-näppäintä (?[RET]).
    Kokeile tulkkaamista vaikkapa seuraaville sanoille
    HÄN suomi -> englanti
    HE  englanti -> ruotsi
    

    Kokeile muitakin käännöksiä (muista, että myös jokerimerkki * toimii, ja että sanaston koko on rajallinen!).

    Lopeta ohjelma ([Ret]).

    Käynnistä ohjelma jollakin sanalla:
    C:\MyTemp\ohj\VESAL>TULKKI sukka[RET]
    

    Lopeta ohjelma.

    Kopioi sanasto omaan hakemistoosi ja lisää sanastoon savon-kieli ja kokeile toimintaa. Iso kirjain tarkoittaa kielen valintaa käännöksessä. Miten siis lisäät savon kielen?

C-kielen opetusohjelma

C-kielen opetusohjelma on matematiikan laitoksella erikoistyönä tehty harjoitelma "interaktiivisesta" C-kielen opetusohjelmasta. Ohjelman voit kopioida itsellesi omaan koneeseesi kopioimalla itsellesi hakemiston:
N:\Kurssit\cpp\c_opetus

Ensimmäinen ohjelma

Tutkitaan aluksi mitä ohjelma osaa sanoa yksinkertaisesta C-ohjelmasta:
    Etsi Windowsin ikoneista ryhmä C-kielen opetus
    Klikkaa opetusohjelma käyntiin.

    Valitse ylärivin työkaluista sisällysluettelo

    Valitse sisällysluettelosta Ensimmäinen ohjelma
    Kulje hiirellä ohjelma eri komponentteja ja täydennä luentomonisteen luvun 7 ensimmäiseen malliohjelmaan itsellesi tärkeimmät asiat.

    Valitse seuraavaksi sisällysluettelosta Ohjelman synty ja tutki miten tekstitiedosto muuttuu ajettavaksi ohjelmaksi

Miten ohjelmalauseita "keksitään"

Seuraavaksi tutkimme miten "mystisiltä" näyttäviä ohjelmarakenteita voidaan "keksiä":
    Valitse sisällysluettelosta Ohjelman kehityksestä
    Aja animaatio asiaan keskittyen läpi. Palaa tähän animaatioon kurssin myöhemmissä vaiheissa jos asiat tuntuvat vaikeilta.

    Taulukoista löytyy mukava esimerkki kohdasta Merkkijonot

Opetusohjelman HTML-versio

Katso myös vastaavaa HTML-versiota osoitteesta:
http://www.mit.jyu.fi/opiskelu/Ciao