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:\OMAT\OHJELMOI\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