Mittelalterliche Währungen umrechnen - bin ratlos :(
-
Ich habe mich jetzt an dem entlanggehangelt, was wir als Beispiele in den Stunden hatten...(das waren erst 2). ich bin wie gesagt noch super neu und hab die Begriffe noch nicht alle drauf

Kann ich die Fehlermeldungen hier irgendwie reinkopieren? (Benutze den Qt-Creator)
-
ich kenne den Creator nicht gut, aber man wird die Meldungen wohl irgendwie kopieren können.
Array:
int pfennig**[10]**
-
Lena1906 schrieb:
Dabei gilt: 1 Pfund = 20 Shilling = 240 Pfennig.
Das heißt:
1 Pfund = 240 Pfennig
und
1 Shilling = 12 PfennigVariablen braucht es nicht viele und vor allem keine Arrays:
int summePfennig = 0; int pfund, shilling, pfennig;Dann solltest du jeweils einen Wert für die drei Einheiten einlesen. Das hast du ja schon mehr oder minder versucht:
cout << "Pfund: "; cin >> pfund; cout << "Shilling: "; cin >> shilling; cout << "Pfennig: "; cin >> pfennig;Jetzt musst du die drei Einheiten in Pfennige umrechnen (siehe oben) und auf
summePfennigaddieren.Das ganze soll zweimal geschehen: Eine einfache
for-Schleife würde sich anbieten.Die Summe in Pfennigen ausgeben hast du ja auch schon hinbekommen.
Das ganze wieder in die drei Einheiten aufdröseln geht dann in etwa so:
pfennig = summePfennig % 12; shilling = (summePfennig / 12) % …; pfund = …;PS: Und Fehlermeldungen helfen ungemein bei der Fehlerbeseitigung, lerne früh sie richtig zu lesen um Fehler schneller zu finden und zu beheben.
PPS: Code-Tags machen es für andere erheblich leichter den Quelltext zu lesen.
-
Zu deiner Zweiten Aufgabe: Den String kannst du mit cin einlesen, oder wenn es auch Abstände gibt mit getline(cin, *Variablenname*) (Speichers in einem String).
Danach kannst du mit *Variablenname.find("@") Das erste Zeichen suchen (find() liefert die Position des Zeichens als als Zahl. Anschliessend würde ich die Suche nach der Anzahl der jeweiligen Zahlen über eine Schleife machen. Also zb. so,
int st = 0;
int anzzeichen[26] //Als Zahl musst du hier natürlich die Anzahl zeichen //nehmen, die du abfragen willst
while(st < *Variablenname.find("@")) {
if(*Variablenname*[st] == 'a') {
anzzeichen[0]++;}
if(*Variablenname*[st] == 'b') {
anzzeichen++;}
//Und so weiter, für alle Zeichen die du abfragen musst eine if-Bedingung
st++;
}
Anschliessend kannst du Alles aus anzzeichen ausgeben (In meinem Beispiel wäre anzzeichen[0] = wie oft a vorkommt, anzeichen[1] = wäre wie oft b vorkommt, usw.PS: Evtl. musst du zuerst alle Werte von anzzeichen = 0 setzen.
-
Vielen Dank schonmal, das werd ich alles mal ausprobieren!

(Könnte was dauern)
Wenn noch jemand Tipps hat, immer her damit!
-
Mach alle Gedanken um Arrays weg.
Und rechne lagalopexs Formeln mal per Hand mit ein paar Zahlen. Die stimmen, sind nur noch nicht ganz fertig.
-
bitte löschen
-
Chapeau!
Jetzt bekommt der TE die Lösung auf dem Silbertablett und der Lerneffekt liegt irgendwo bei Null.
-
@DocShoe
Ruhig Blut.
Der Code buggt und macht auch nicht genau das was in der Aufgabe gefordert wurde. (Bzw. würde auch nicht das machen wenn er nicht sowieso buggy wäre.)
-
bitte löschen
-
Zwoertsch schrieb:
ist allerdings ohne den Modulo da ich keinen grund finde den zu benutzen aber evtl hab ich die aufgabe falsch verstanden kannst sie ja ma komplett posten die Aufgabenstellung wenn dir das hier nicht helfen sollte
Du hast ja auch nur den einfachen Teil der Aufgabe gelöst. Modulo kann man gebrauchen, wenn man einen Betrag in Pfund, Schilling und Pfennig aufteilen will.
BTW, deine Kommataste ist anscheinend kaputt. Kannst bei mir ein paar rauskopieren, wenn du willst.