2.3.4 Takaisin painonvartijaan

Kun nyt on nähty, kuinka ohjelma saadaan lukemaan käyttäjän syötteitä, voidaan ihannepainon ratkaisussa edetä jälleen aimo loikkaus eteenpäin.

Lisätään ohjelmaan lauseet, joilla luetaan henkilön pituus- ja painotiedot suoraan käyttäjältä. Nyt on kuitenkin huomattava, että syötteitä saadakseen ohjelman täytyy kehottaa käyttäjää antamaan haluamansa tiedot. Lisäksi olisi kenties aiheellista pistää ohjelma esittäytymään, jotta myös käyttäjä, joka käynnistää ohjelman ensi kertaa, tietää, mistä on kyse.

/* *********************************************************
PAINO3.CPP
  Lasketaan ihannepaino.
  Kysytään tiedot käyttäjältä.
********************************************************* */

#include <iostream.h>
#include <stdio.h>

#define SUHDELUKU 100.0

int main(void)
{
  double pituus, paino, ihanne, erotus;

  /* tulostetaan alkutekstit */
  cout << "\n\n";
  cout << "       Ihannepaino\n\n";
  cout << "Ohjelma laskee ihannepainosi\n";
  cout << "pituutesi perusteella.\n\n";

  /* kysytään tarvittavat tiedot */
  cout << "Anna pituutesi sentteinä > ";
  cin >> pituus;
  cout << "Anna painosi kiloina     > ";
  cin >> paino;

  /* lasketaan ihannepaino ja erotus */
  ihanne = pituus - SUHDELUKU;
  erotus = paino - ihanne;

  /* tulostetaan tulokset */
  printf("\n");
  printf("Nykyinen painosi %5.1lf kg\n", paino);
  printf("Ihannepainosi    %5.1lf kg\n", ihanne);
  printf("Erotus           %5.1lf kg\n", erotus);

  return 0;
}

Ohjelman tulostus näyttää seuraavalta, kun käyttäjä antaa pituudeksi 175 cm ja painoksi 89 kg:

       Ihannepaino

Ohjelma laskee ihannepainosi
pituutesi perusteella.

Anna pituutesi sentteinä > 175
Anna painosi kiloina     > 89

Nykyinen painosi  89.0 kg
Ihannepainosi     75.0 kg
Erotus            14.0 kg

Ihannepainon laskeminen on jo edennyt hyvin pitkälle. Lähdimme liikkeelle yhden pituus-paino mahdollisuuden laskemisesta, sitten rakensimme vakioiden avulla hieman selkeämmän ohjelman, ja nyt olemme saaneet aikaan yleisen ohjelman, joka laskee ihannepainon käyttäjän antamin arvoin.