/* ********************************************************* PAINO6.CPP Lasketaan ihannepaino. Siististi kommentoitu versio. ********************************************************* */ #include #include /* ------------------------------------------------------ */ /* Käytettävät vakiot */ /* ------------------------------------------------------ */ #define SUHDELUKU 100.0 // ihannepainon laskentavakio #define ALIN_PITUUS 10.0 // pituuden alaraja #define YLIN_PITUUS 300.0 // pituuden yläraja #define ALIN_PAINO 1.0 // painon alaraja #define YLIN_PAINO 350.0 // painon yläraja /* ------------------------------------------------------ */ /* tulosta_esittely - tulostetaan näytölle ohjelman */ /* esittelyteksti */ /* ------------------------------------------------------ */ void tulosta_esittely(void) { cout << "\n\n"; cout << " Ihannepaino\n\n"; cout << "Ohjelma laskee ihannepainosi\n"; cout << "pituutesi perusteella.\n" << endl; } /* ------------------------------------------------------ */ /* kysy_pituus - luetaan näppäimistöltä käyttäjän pituus */ /* - tarkistetaan pituuden järkevyys */ /* - palautetaan pituus parametrissa */ /* ------------------------------------------------------ */ void kysy_pituus(double &pituus) { cout << "Anna pituutesi sentteinä > "; cin >> pituus; while (pituus < ALIN_PITUUS || pituus > YLIN_PITUUS) { cout << "Antamasi pituus on järjetön!\n"; cout << "Anna pituutesi sentteinä > "; cin >> pituus; } } /* ------------------------------------------------------ */ /* kysy_paino - luetaan näppäimistöltä käyttäjän paino */ /* - tarkistetaan painon järkevyys */ /* - palautetaan paino parametrissa */ /* ------------------------------------------------------ */ void kysy_paino(double &paino) { cout << "Anna painosi kiloina > "; cin >> paino; while (paino < ALIN_PAINO || paino > YLIN_PAINO) { cout << "Antamasi paino on järjetön!\n"; cout << "Anna painosi kiloina > "; cin >> paino; } } /* ------------------------------------------------------ */ /* laske_ihanne - lasketaan ihannepaino vähentämällä */ /* pituudesta suhdeluku */ /* - pituus tuodaan parametrina */ /* - paluuarvona ihannepaino */ /* ------------------------------------------------------ */ double laske_ihanne(double pituus) { return (pituus - SUHDELUKU); } /* ------------------------------------------------------ */ /* laske_erotus - lasketaan painon ja ihannepainon erotus */ /* - painot tuodaan parametreina */ /* - paluuarvona erotus */ /* ------------------------------------------------------ */ double laske_erotus(double paino, double ihanne) { return (paino - ihanne); } /* ------------------------------------------------------ */ /* tulosta_painot - tulostetaan näytölle paino, */ /* ihannepaino ja näiden erotus */ /* - arvot tuodaan parametreina */ /* ------------------------------------------------------ */ void tulosta_painot(double paino, double ihanne, double erotus) { printf("\n"); printf("Nykyinen painosi %5.1lf kg\n", paino); printf("Ihannepainosi %5.1lf kg\n", ihanne); printf("Erotus %5.1lf kg\n", erotus); } /* ------------------------------------------------------ */ /* Pääohjelma */ /* ------------------------------------------------------ */ int main(void) { double pituus, paino, ihanne, erotus; tulosta_esittely(); kysy_pituus(pituus); kysy_paino(paino); ihanne = laske_ihanne(pituus); erotus = laske_erotus(paino, ihanne); tulosta_painot(paino, ihanne, erotus); return 0; }