Flera funktioner - exempel 2

Oj, vad det blåser. Vindstyrkan är 30 m/s... men hur snabbt är det? I det andra exemplet på användning av flera funktioner tar vi och skapar ett program som som omvandlar m/s till km/h. Programmet ska visa följande:

Ange en hastighet i m/s
30

30 m/s motsvarar 108 km/h

Exempel 7.2

#include <iostream>

using namespace std;

float ms_till_kmh(float hastighet);

int main()
{
cout<<endl<<"Ange en hastighet i m/s"<<endl;
float ms,kmh; cin>>ms; kmh=ms_till_kmh(ms);
cout<<ms<<" m/s motsvarar "<<kmh<<" km/h"<<endl;
return 0;
}

float ms_till_kmh(float hastighet)
{
hastighet*=3.6;
return hastighet;
}

I detta exempel använder vi en funktion som utför en liten beräkning d.v.s. omvandlar hastigheter i m/s till km/h. Funktionen tar emot ett argument och returnerar ett värde. Både argumentet och returvärdet är av datatypen float vilket möjliggör decimaltal. Funktionsanropet finns i satsen:

kmh=ms_till_kmh(ms)

Som argument skickas här värdet av variabeln ms som alltså är det värde användaren angav. I funktionen ms_till_kmh multipliceras detta värde med 3.6 och sedan returneras värdet. Det är detta returvärde som tilldelas variabeln kmh.

Kunde vi inte ha gjort omvandlingen utan att lägga den i en egen funktion. Jo, givetvis men skapandet av funktionen kan vi dra nytta av i framtiden.Man kan betrakta funktionerna som byggklossar i ett program. När man skapar nya funktioner försöker man att göra dem så generella som möjligt. Då kan man i framtida program plocka in dessa funktioner om man behöver dem. Våran lilla funktion för omvandling av m/s till km/h kan vi alltså "klipp & klistra" in i framtida program som vi skapar och behöver då inte "uppfinna hjulet på nytt". Ju fler användbara funktioner man samlar på sig, desto större utbud av byggklossar har man när program ska skapas. I kursen Programmering B får du lära dig hur du kan spara användbara funktioner i egna filer som du kan inkludera i framtida program.