Läuft Programm durch ohne irgentwas zu machen



  • hmja... ich blicks nich... es lässt sich compilieren aber beim Start rasselts einfach ohne Ausgabe durch...

    zum Programm: Es sollen max. 20 Zahlen eingelesen werden, und diese den jeweiligen Zahlenbereich zugeordnet und die Anzahl der in den jeweiligen Zahlenbereich vorkommenden Zahlen ausgegeben werden.

    //ZahlenEinlesenUndSortieren.h
    class Sortieren
    {
       private:
          int Wertefeld[20];
          int durchgaenge;
          int a0_9;
          int a10_19;
          int a20_29;
          int a30_39;
          int a40_49;
          int a50_59;
          int a60_69;
          int a70_79;
          int a80_89;
          int a90_99;
          int groesser100;
       public:
          int ZahlenEinlesen(int* Wertefeld, int durchgaenge);
          void ZahlenSortieren();
          void Ausgabe();
    };
    
    //ZahlenEinlesenUndSortieren.cpp
    #include <iostream>
    #include "ZahlenEinlesenUndSortieren.h"
    using std::cin;
    using std::cout;
    using std::endl;
    
    int Sortieren::ZahlenEinlesen(int* Wertefeld, int durchgaenge)
    {
       cout << "Geben sie die Werte ein die sie sortiert haben möchten: " << endl;
       for(int i=0;i != -1 && i<=20; i++)
          {
             cout<<"Geben sie den "<<i<<".ten wert ein:"<<endl;
             cout<<"(Zum Beenden der Eingabe -1 eingeben und bestätigen)";
             cin >> Wertefeld[i]; //Zahlen werden mittels for-Schleife eingelesen
             durchgaenge++; //Durchgänge werden gezählt um die Feldgröße von Eingelesenen zu bestimmen
          }
    return durchgaenge;
    }
    
    void Sortieren::ZahlenSortieren()
    {
       int a0_9 = 0;
       int a10_19 = 0;
       int a20_29 = 0;
       int a30_39 = 0;
       int a40_49 = 0;
       int a50_59 = 0;
       int a60_69 = 0;
       int a70_79 = 0;
       int a80_89 = 0;
       int a90_99 = 0;
       int groesser100;
       for(int i = 0;i<=durchgaenge;i++)   //Werte werden für die jeweilige Variable Aufaddiert
          {
             if(Wertefeld[i]>=0 && Wertefeld[i]<=9)
                a0_9++;
             if(Wertefeld[i]>=10 && Wertefeld[i]<=19)
                a10_19++;
             if(Wertefeld[i]>=20 && Wertefeld[i]<=29)
                a20_29++;
             if(Wertefeld[i]>=30 && Wertefeld[i]<=39)
                a30_39++;
             if(Wertefeld[i]>=40 && Wertefeld[i]<=49)
                a40_49++;
             if(Wertefeld[i]>=50 && Wertefeld[i]<=59)
                a50_59++;
             if(Wertefeld[i]>=60 && Wertefeld[i]<=69)
                a60_69++;
             if(Wertefeld[i]>=70 && Wertefeld[i]<=79)
                a70_79++;
             if(Wertefeld[i]>=80 && Wertefeld[i]<=89)
                a80_89++;
             if(Wertefeld[i]>=90 && Wertefeld[i]<=99)
                a90_99++;
             if(Wertefeld[i]>=100)
                groesser100++;
          }
    }
    void Sortieren::Ausgabe()
    {
       cout<< "Werte: "<< endl;
       for(int i=0; i<= durchgaenge;i++)
          {
             cout<< i << ".ter Wert:" << Wertefeld[i] << endl; //Es werden Erst alle Werte, dann wie viele Werte
          }                                                    //in Welchen Bereich vorkommen ausgegeben
    
       cout << "Werte im Zahlenbereich: " << endl;
       cout << "0-9: " << a0_9 << endl;
       cout << "10-19: " << a10_19 << endl;
       cout << "20-29: " << a20_29 << endl;
       cout << "30-39: " << a30_39 << endl;
       cout << "40-49: " << a40_49 << endl;
       cout << "50-59: " << a50_59 << endl;
       cout << "60-69: " << a60_69 << endl;
       cout << "70-79: " << a70_79 << endl;
       cout << "80-89: " << a80_89 << endl;
       cout << "90-99: " << a90_99 << endl;
    }
    
    //main.cpp
    #include "ZahlenEinlesenUndSortieren.h"
    #include <iostream>
    
    using std::cin;
    using std::cout;
    using std::endl;
    
    int main()
    {
       int ZahlenEinlesen(); //Funktion zum Zahlen einlesen wird aufgerufen
       void ZahlenSortieren(); // Zahlen werden sortiert
       void Ausgabe(); //Zahlen werden sotiert ausgegeben
    
       system("pause");
       return 0;
    }
    

    danke im Voraus 😕 😕 😕 😞



  • Du musst ein Sortieren Objekt erstellen und dann die Methoden aufrufen.
    Du hast nur Funktionen Deklariert in deiner Main.

    int main()
    {
       Sortieren sort;
       sort.ZahlenEinlesen(/*...*/); //Funktion zum Zahlen einlesen wird aufgerufen
       sort.ZahlenSortieren(/*...*/); // Zahlen werden sortiert
       sort.Ausgabe(/*...*/); //Zahlen werden sotiert ausgegeben
    
       system("pause");
       return 0;
    }
    

    Edit: Und natürlich müssen die Methoden mit den entsprechenden Parametern aufgerufen werden. Das überlasse ich aber Dir.

    Simon



  • hi,

    danke für die schnelle Antwort, den einen teil hab ich Verstanden,
    nur wenn ich

    sort.ZahlenEinlesen(int* Wertefeld, int durchgaenge)
    

    als parameter setze,
    gibt der compiler mir 3 Fehlermeldungen als ausgabe

    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2144: Syntaxfehler: 'int' sollte auf ')' folgen
    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2660: 'Sortieren::ZahlenEinlesen': Funktion akzeptiert keine 0 Argumente
    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2059: Syntaxfehler: ')'
    

    mfg und nochmal danke, bin leider noch n blutiger anfänger...

    carsten



  • Ohne mir deinen Code wirklich angesehen zu haben: Kann es sein, dass du versuchst, deine Funktion aufzurufen und dabei als Parameter "int *Wertefeld" schreibst? Wenn dem so ist, dann lass das "int *" weg, das gehört nur in die Deklaration/Definition, nicht in den Aufruf.



  • c4r573n schrieb:

    hi,

    danke für die schnelle Antwort, den einen teil hab ich Verstanden,
    nur wenn ich

    sort.ZahlenEinlesen(int* Wertefeld, int durchgaenge)
    

    als parameter setze,
    gibt der compiler mir 3 Fehlermeldungen als ausgabe

    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2144: Syntaxfehler: 'int' sollte auf ')' folgen
    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2660: 'Sortieren::ZahlenEinlesen': Funktion akzeptiert keine 0 Argumente
    1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2059: Syntaxfehler: ')'
    

    mfg und nochmal danke, bin leider noch n blutiger anfänger...

    carsten

    Ich schätze mal, Du versuchst die Funktion

    Sortieren::ZahlenEinlesen(int* Wertefeld, int durchgaenge)
    

    mit dem Aufruf

    sort.ZahlenEinlesen(int* Wertefeld, int durchgaenge);
    

    aufzurufen.
    Das geht so nicht. Du musst da Werte oder Variablen übergeben, und nicht eifach die Funktionssignatur (die Beschreibt, wie die Funktion heisst, und wie die Parameter beschaffen sind) hinschreiben:

    const int Durchgaenge_Anzahl = 20;
    int Wertefeld_Daten[Durchgaenge_Anzahl];
    sort.ZahlenEinlesen(Wertefeld_Daten, Durchgaenge_Anzahl);
    

Anmelden zum Antworten