/* atk i - harjoitus 5 tehtävä 1 */ #include /* esitellään funktioiden prototyypit, nämä eivät ole mitään muuta kuin määrittelyjen ensimmäiset rivit puolipisteen kanssa. prototyypeillä kerrotaan kääntäjälle, kuinka omat funktiomme toimivat. Funktioden varsinaiset määrittelyt tulevat vasta main funktion jälkeen. */ void funa(); int funb(); double func(double x); double fund(double x, double y); main() { int k; double x = 1, y = 2, z; /* seuraavassa käytämme funktioitamme */ funa(); k = funb(); /* funb antaa käyttäjältä luetun kok. luvun */ z = func(y); /* func:lle kerrotaan millä arvolla laskea lauseke kirjoittamalla se sulkeisiin funktion nimen perään */ x = fund(x, y); /* fund tarvitsee kaksi argumenttiä */ /* tulostetaan kaikkien muuttujien arvot ruudulle */ printf("k = %d\nx = %lf, y = %lf, z = %lf\n", k, x, y, z); } /* funa:n tulostaa viestin ruudulle. Se ei tuota mitään tulosta, joten sen tyyppi on void */ void funa() { printf("Jello, word!\n"); } /* funb:n tyyppi on int, se siis palauttaa kokonaislukuja */ int funb() { int i; scanf("%d", &i); return (i); } /* func laskee lausekkeen 1 / (1 - x) arvon. laskemista varten se tarvitsee x:n, jonka se saa argumenttina. tuloksena funktio antaa lausekkeen arvon */ double func(double x) { return 1 / (1 - x); } /* kaksi argumenttinen funktio, palauttaa suuremman argumentin arvon */ double fund(double x, double y) { if (x > y) return x; return y; }