protected
Goto Top

Frage zu einer Kombinierten Umrechnung ohne IF, Arrays

Hallo,

ich komme leider gerade bei einer Aufgabe nicht weiter.

Ich habe folgendes Programm programmiert, aber komme nicht auf die Lösung.

Die Aufgabe lautet:
Das Programm soll einen double Fließkomma-Eingabewert einlesen und dann die gewünschte Umrechnung als Integer-Zahl auswahl erfragen. Anschließend soll der umgerechnete Wert ausgegeben werden.
Für diejenigen unter Ihnen, die Konstrukte wie if, case oder Array schon kennen: Das Programm darf kein if, case, ?-Operator oder andere KontrollflussKonstrukte (z.B. Schleifen) benutzen. Ferner dürfen keine Datenstrukturen verwendet werden (arrays). Stattdessen dürfen nur Eingabe, Ausgabe, Wertzuweisung, Variablen der einfachen Datentypen sowie die Grundrechenarten benutzt werden. Alle drei vorherigen UmwandlungsBerechnungen müssen daher in einer einzigen Berechnung zusammengefasst werden, die auch die Zahl auswahl (zur Auswahl der Umrechnungsform) einbezieht.
Hinweise:
Die resultierende Berechnungsformel ist eine Summe, in deren drei Summanden sich die drei einzelnen Umrechnungsformeln wiederfinden.
Jeder Summand besteht aus einem Produkt (Multiplikation). Ein Teil des Produkts ist die jeweilige Umrechnungsformel. In die anderen Teile des Produkts muss der Wert auswahl einbezogen werden.
Wenn man einen Wert mit Null multipliziert, so ergibt sich Null. Der Wert Null trägt nicht zu einer Summe bei, d.h. er wird „nicht berücksichtigt“.

Die Ausgabe soll wie folgt sein:

Ihre Eingabe: ? 23.4

Ihre Auswahl der Umwandlung: 1 - Celsius in Fahrenheit 2 - Meter in Fuss 3 - Euro in US Dollar 2 Das Ergebnis lautet: 76.7707

Drücken Sie eine beliebige Taste . . .

#include <iostream>
#include <string>
using namespace std;


// Aufgabe: 2.01
int main(){

	char eingabe;

	cout << "Bitte geben Sie einen kleinen Buchstaben im Alphabet ein: ? ";  

	cin >> eingabe;

	int value = int(eingabe);

	cout << "Der Buchstabe befindet sich an der Stelle: " << value - 96 << endl;  
	system("PAUSE");  
	return 0;
}

// Aufgabe 2.02
/* int main() {
	double celsius;

	cout << "Bitte geben Sie die Temperatur in Grad Celsius ein:"; 
	cin >> celsius;
	double rechner = celsius*1.8 + 32;
	cout << "Die Temperatur in Fahrenheit lautet" << rechner; 

	system("PAUSE"); 
	return 0;


} */
// Aufgabe 2.03
/*
int main() {
	double laenge;

	cout << "Bitte geben Sie die Länge in Metern ein:"; 
	cin >> laenge;
	double rechner = laenge*3.2808;
	cout << "Die Länge in Fuß lautet:" << rechner; 

	system("PAUSE"); 
	return 0;	

}
*/
// Aufgabe 2.04
/*
int main() {
double geld_menge;

cout << "Bitte geben Sie die Geldmenge in Euro ein:"; 
cin >> geld_menge;
double rechner = geld_menge*1.2957;
cout << "Die Geldmenge in US Dollar lautet:" << rechner; 

system("PAUSE"); 
return 0;

}
*/

Content-Key: 318035

Url: https://administrator.de/contentid/318035

Printed on: April 24, 2024 at 19:04 o'clock

Mitglied: 131026
131026 Oct 16, 2016 at 16:32:04 (UTC)
Goto Top
Member: Protected
Protected Oct 16, 2016 at 18:49:10 (UTC)
Goto Top
Dort gibt es kein forum für c++
Member: emeriks
emeriks Oct 17, 2016 at 05:53:50 (UTC)
Goto Top
Hi,
mal abgesehendavon, dass Du die Frage hier irre kompliziert formulierst. (Und warscheinlich deshalb auch nicht den Wald siehst ...)
Habe keine Ahnung von C++. Aber auch hier sollt "true" als Integer "-1" sein.

Wenn man als Eingabe z.B. die "2" erwartet, dann wäre
(eingabe = 2) als Integer ein "-1"

In einer Formel könnte das so aussehen

-1 * (eingabe = 1) * ( ......) - (eingabe = 2) * ( ......) - (eingabe = 3) * ( ......)

Das musst Du natürlich für C++ umsetzen.

E.