C++ Problem mit einer Aufgabe die sich um einen Tilgungsplan dreht



  • Ich habe schon das meiste fertig aber es kommen immer noch Fehler bei folgender Aufgabenstellung :
    Fehlercodes : C2679 und E0349
    Schreiben Sie ein Programm, welches einen Annuitätentilgungsplan ausgibt.
    Eingaben: Hypothek, Zinssatz, Tilgungsatz, Laufzeit.

    Mein Code

     ...// Aufgabe210.cpp: Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <fstream>
    #include <istream> 
    using namespace std;
    int main()
    {
    	float kapital = 100000, zinsenmonatlich, tilgungssatz, laufzeit, Tilgung;
    	int zinssatz = 5, restbetrag = 0, i = 0;
    
    	tilgungssatz = cin >> "tilgungssatz";
    	laufzeit = 240;
    
    	cout << "Monat\t\t" << "Betrag\t\t" << "Zinsen\t\t" << "Tilgung\t\t" << "Restbetrag" << endl;
    
    	for (int i = 0; i <= laufzeit; i++)
    	{
    	zinsenmonatlich = ((kapital * 5) / 100);
    	zinsenmonatlich = zinsenmonatlich / 12;
    	Tilgung = ((kapital * tilgungssatz) / 100);
    	Tilgung = Tilgung / 12;
    
    	cout << i + 1 << "\t\t" << zinsenmonatlich + Tilgung << " \t\t " << endl;
    	}
    }

  • Global Moderator

    Wie macht man Eingaben in C++? Das ist so ungefähr das zweite Kapitel in jedem Werk zu C++. Ich denke, am besten ist dir geholfen, indem man dich zwingt, mal ein solches zu lesen, anstatt dir einfach den Fehler zu korrigieren.

    Ansonsten finde ich es schade, dass du keinen einzigen der Ratschläge befolgt hast, die du in deinem letzten Thread bekommen hast. Das lässt immer Zweifel aufkommen, ob es sich überhaupt lohnt, jemandem zu helfen.

    Ein weiterer Ratschlag aber noch: Fließkommazahlen sind so ungefähr der am wenigsten geeignete Datentyp für Geldbeträge. Geld ist eine Größe, die nur diskrete Werte annehmen kann, Fließkommazahlen sind hingegen für Größen gemacht, bei denen dies möglichst vermieden werden soll. In der Finanzmathematik gibt es gewiss genaue Regeln, wie genau bei Berechnungen vorgegangen werden muss, aber allgemein wirst du bereits bessere Ergebnisse erhalten, wenn du Ganzzahltypen rechnest (die dann Cent, oder besser 100stel Cent darstellen).



  • habs schon herausgefunden hab jetzt nur probleme mit der ausgabe weil da frägt er nur nach dem Tilgungssatz und rechnet dann von unten das cout aber der Rest der Liste ist leer


  • Global Moderator

    @hurt sagte in C++ Problem mit einer Aufgabe die sich um einen Tilgungsplan dreht:

    habs schon herausgefunden hab jetzt nur probleme mit der ausgabe weil da frägt er nur nach dem Tilgungssatz und rechnet dann von unten das cout aber der Rest der Liste ist leer

    Ich habe das jetzt 5x durchgelesen und habe leider immer noch keine Ahnung, was du sagen möchtest.

    Wenn das irgendwie heißen soll, dass du mit dem Ergebnis deiner Berechnung nicht zufrieden bist: Deine Rechnung stimmt in keinster Weise. Das wird schon dadurch offensichtlich, dass weder i in die Berechnung eingeht, noch eine nicht-lokale Variable verändert wird. Sprich: Deine Schleife macht 240x genau das gleiche.

    Um das zu erkennen, ist es natürlich hinderlich, dass du im typischen C-Stil alles am Anfang der Funktion definierst. So siehst du gar nicht, dass zinsenmonatlich und Tilgung eigentlich lokale Variablen der Schleife sind. Das hat @manni66 schon in deinem letzten Thread bemängelt, aber du hast diesen Mangel nicht abgestellt.

    Wie hast du überhaupt C++ gelernt, dass man dir diesen grauenhaften Stil beigebracht hat? Dieser Stil hält dich zurück und es wäre dringend empfehlenswert, dass du dir ein anderes Lehrbuch zulegst, bevor du bei dir noch mehr kaputt machst.



  • @seppj Ich hab das lokale Lösungsproblem schon gelöst Mir gings um die eigentliche Aufgabenstellung die auch in meinem Post steht die Ausgabe
    da steht tilgungssatz dann soll man was eingeben aber die Liste wird ja nicht vollkommen automatisch mit zahlen gefüllt

    ich kann nichts kaputt machen weils nur ne übung ist



  • das lokale Lösungsproblem

    Was ist das? Ich kenne lokale Maxima, lokale Stetigkeit, lokal integrierbare Funktionen, den "Lokales"-Abschnitt in der Zeitung, aber ein lokales Problem, noch dazu ein Lösungsproblem (was ist das?!), ist mir noch nicht untergekommen.

    ich kann nichts kaputt machen weils nur ne übung ist

    Der Stil ist so hinderlich, dass er dir die C++-Denkweise kaputt macht. Bzw. vermutlich niemals richtig beigebracht hat. Diesen Code würde man, hätte man echtes Interesse an C++, so nicht schreiben.

    Wenn du nur irgendwie durch Prüfungen kommen willst, dir das so beigebracht wurde, dann lautet der Rat: vergiss es möglichst schnell nach der Prüfung wieder. Ansonsten gilt der Ratschlag, von einem fähigen Lehrmeister oder einem guten Buch zu lernen.