Pääteohjaus 3


Funktiot

Kirjoita seuraavat funktiot tai aliohjelmat sekä testiohjelma, jolla testataan niiden toimivuus.
    Funktio int etumerkki(double x, double eps) joka palauttaa
    -1  mikäli x<-eps
     0  mikäli -eps<=x<=eps
     1  mikäli x>eps
    

    Aliohjelma kysy_vuosi, joka kysyy vuosiluvun ja palauttaa sen parametrinaan. Aliohjelman nimessä palautetaan 0 mikäli annettu vuosiluku ei ole tältä vuosisadalta tai syöttö on muuten väärin. Mikäli syöttö on tältä vuosisadalta, palautetaan aliohjelman nimessä 1.

Kerho-ohjelma 1. versiot

Runko

    Kopioi KERHO-ohjelman 1. versio omaan hakemistoosi:
    C:\MyTemp\ohj\vesal>copy n:\kurssit\cpp\kerho\runko.1\*.*[RET]
    

    Tutki Borland-C:llä tiedostoa kerho.cpp
    Aja ohjelmaa kokonaisena ja askel kerrallaan.

    Ymmärrätkö nyt [F7] ja [F8] eron?

    Siirry riville, jossa lukee
      nimi = "Ankka Aku";
    

    Laita riville keskeytyskohta ([Ctrl-F8]).

    Aja ohjelma ([Ctrl-F9]).

    Vastaile kunnes ohjelma pysähtyy.

    Laita watch ikkunaan muuttujat this ja *this.

    Aja askel kerrallaan ja seuraa mitä tapahtuu.

    Tutki mitkä osat ymmärrät (vrt. listaus monisteessa).

Taulukot

    Kirjoita funktio joka palauttaa nimessään C-merkkijonon pituuden. Kirjoita testiohjelmaksi vakiokutsuja:
    pit=pituus("Aku Ankka");
    ...
    

    Kirjoita funktio, joka palauttaa nimessään parametrina annetun C-merkkijonon välilyöntien lukumäärän. Kirjoita testiohjelmaksi vakiokutsuja:
    val=valeja("Aku Ankalla on merimiespusero päällä.");
    ...
    

#define

Tutki (=kirjoita lyhyt malliohjelma, jolla voit testata) pitävätkö seuraavat väitteet paikkansa (kirjoita vastaukset väitteiden viereen ja tarkista lopuksi ohjaajan kanssa väitteet):
    Myös lainausmerkeissä oleva teksti korvautuu!

    #define pitää kirjoittaa ennen kaikkia aliohjelmia!

    #define on muotoa #define vakio=arvo

    #define rivi pitää päättää puolipisteeseen.

    Seuraavasta seuraa käännösvirhe:
    #define OMA 5;
    ...
      a = a + OMA + 3;
    

    #define korvaa vain kokonaisia sanoja.

    #define ei voi sisältää funktiokutsuja.

    #definellä ei voi määritellä tyhjiä jonoja