C++ :: Aufgabe #265

2 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von basic (1310 Punkte) - 21.10.2020 um 16:00 Uhr
Quellcode ausblenden C-Code
#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;
	}
}
vote_ok
von JKooP (18090 Punkte) - 08.01.2021 um 16:14 Uhr
C++ 11
Quellcode ausblenden 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";
}