Programming Fundamentals/Loop Examples C++

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Temperature[edit]

// This program displays a temperature conversion table showing Fahrenheit
// temperatures from 0 to 100, in increments of 10, and the corresponding 
// Celsius temperatures using While, Do While, and For loops.
//
// References:
//     https://www.mathsisfun.com/temperature-conversion.html
//     https://en.wikibooks.org/wiki/C%2B%2B_Programming

#include 

using namespace std;

void whileLoop();
void doLoop();
void forLoop();
void displayHeading();
double calculateCelsius(double);
void displayResult(double, double);

int main() {
    whileLoop();
    doLoop();
    forLoop();
}

void whileLoop() {
    double fahrenheit;
    double celsius;
    
    displayHeading();
    fahrenheit = 0;
    while (fahrenheit <= 100) {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
        fahrenheit += 10;
    }
    cout << endl;
}

void doLoop() {
    double fahrenheit;
    double celsius;
    
    displayHeading();
    fahrenheit = 0;
    do {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
        fahrenheit += 10;
    } while (fahrenheit <= 100);
    cout << endl;
}

void forLoop() {
    double fahrenheit;
    double celsius;
    
    displayHeading();
    for (fahrenheit = 0 ; fahrenheit <= 100 ; fahrenheit += 10) {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
    }
    cout << endl;
}

void displayHeading() {
    cout << "F°\tC°" << endl;
}

double calculateCelsius(double fahrenheit) {
    double celsius;

    celsius = (fahrenheit - 32) * 5 / 9;

    return celsius;
}

void displayResult(double fahrenheit, double celsius) {
    cout << fahrenheit << "\t" << celsius;
    cout << endl;
}

Output[edit]

F°	C°
0	-17.7778
10	-12.2222
20	-6.66667
30	-1.11111
40	4.44444
50	10
60	15.5556
70	21.1111
80	26.6667
90	32.2222
100	37.7778

F°	C°
0	-17.7778
10	-12.2222
20	-6.66667
30	-1.11111
40	4.44444
50	10
60	15.5556
70	21.1111
80	26.6667
90	32.2222
100	37.7778

F°	C°
0	-17.7778
10	-12.2222
20	-6.66667
30	-1.11111
40	4.44444
50	10
60	15.5556
70	21.1111
80	26.6667
90	32.2222
100	37.7778

References[edit]