C++ :: Aufgabe #265
2 Lösungen
Angelsächsische Maße umrechnen
Anfänger - C++
von DragStar
- 23.03.2020 um 09:41 Uhr
Die angelsächsischen Maße sind ja manchmal etwas seltsam. Schreiben Sie ein Programm, welches nach einer Menüauswahl:
1: inch, 2: foot, 3: yard, 4: mile
und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:
inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m
1: inch, 2: foot, 3: yard, 4: mile
und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:
inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m
Lösungen:
#include <iostream>
#define INCH 0.0254
#define FOOT 0.3048
#define YARD 0.9144
#define MILE 1609.34
using namespace std;
int main() {
int query;
float dim;
cout << "Angelsächsische Maße auswählen\n";
cout << "-> Inch (1)\n";
cout << "-> Foot (2)\n";
cout << "-> Yard (3)\n";
cout << "-> Mile (4)\n";
cout << "Auswahl: ";
cin >> query;
cout << "\nMaße angeben: ";
cin >> dim;
switch(query) {
case 1:
cout << "\nMeter: " << dim * INCH << "\n";
break;
case 2:
cout << "\nMeter: " << dim * FOOT << "\n";
break;
case 3:
cout << "\nMeter: " << dim * YARD << "\n";
break;
case 4:
cout << "\nMeter: " << dim * MILE << "\n";
break;
}
}
C++ 11
C-Code
#include <iostream>
#include <vector>
#include <string>
#include <tuple>
using namespace std;
int main()
{
int unit;
double value;
vector<tuple<string, double>> v { {"Inch", 0.0254}, {"Foot", 0.3048}, {"Yard", 0.9144}, {"Mile", 1609.34} };
for (size_t i = 0; i < v.size(); i++)
cout << i + 1 << " - " << get<0>(v[i]) << endl;
cout << "Bitte Zielma\xE1 ausw\x84hlen: ";
cin >> unit;
if (unit < 1 || unit > v.size()) return 0;
cout << "Bitte Wert eingeben: ";
cin >> value;
cout << "\n" << value << " " << get<0>(v[unit - 1]) << " entsprechen " << get<1>(v[unit - 1]) * value << " Meter!\n";
}
