geordnete liste



  • wenn der lehrer dir so eine aufgabe stellt, dann müßt ihr doch schon sortieralgorithmen durchgenommen haben?

    kannst du deinen code mal hier reinstellen?



  • das ist das problem....der prof macht sich das ganz schön leicht und verteilt irgendwelche aufgaben und wir müssen uns da jetzt irgendwie durchwurschteln. ich hab noch nie was von sortieralgorithmen gehört.
    willst du den ganzen code haben den ich bisher geschrieben habe??



  • ja.



  • #include<iostream.h>
    int main (float)

    {

    int n, m, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10;
    char wdhlg = 'j';

    cout<<"\n\n\t\tAUSGABE GEORDNETE LISTE:\n\n";

    while(wdhlg=='j')
    {

    n=0;
    m=0;
    while((n<1)||(n>10))
    {

    cout<<"\n\nGeben Sie bitte die Anzahl der Zahlen an, die Sie eingeben";
    cout<<"\nmoechten. Die von Ihnen eingegebene Zahl muss zwi-";
    cout<<"\nschen 1 und 10 liegen, wobei die werte 1 und 10 selbst";
    cout<<"\nauch zulaessig sind.\n\n";

    cin>>n;

    }

    cout<<"\n\nBitte geben Sie nun ihre "<<n; cout<<" Zahlen ein:";

    if(n==1)
    {
    cin>>n1;
    }

    if(n==2)
    {
    cin>>n1;
    cin>>n2;
    }

    if(n==3)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    }

    if(n==4)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    }

    if(n==5)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    }

    if(n==6)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    cin>>n6;
    }

    if(n==7)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    cin>>n6;
    cin>>n7;
    }

    if(n==8)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    cin>>n6;
    cin>>n7;
    cin>>n8;
    }

    if(n==9)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    cin>>n6;
    cin>>n7;
    cin>>n8;
    cin>>n9;
    }

    if(n==10)
    {
    cin>>n1;
    cin>>n2;
    cin>>n3;
    cin>>n4;
    cin>>n5;
    cin>>n6;
    cin>>n7;
    cin>>n8;
    cin>>n9;
    cin>>n10;
    }

    cout<<"\n\nHier sind die " <<n; cout<<" Zahlen in der Reihenfolge, wie Sie sie";
    cout<<"\neingegeben haben:\n\n";

    cout<<"\n\n";

    if(n==1)
    {
    cout<<" "<<n1;
    }

    if(n==2)
    {
    cout<<" "<<n1;cout<<" "<<n2;
    }

    if(n==3)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;
    }

    if(n==4)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;
    }

    if(n==5)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;
    }

    if(n==6)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;cout<<" "<<n6;
    }

    if(n==7)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;cout<<" "<<n6;cout<<" "<<n7;
    }

    if(n==8)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;cout<<" "<<n6;cout<<" "<<n7;cout<<" "<<n8;
    }

    if(n==9)
    {
    cout<<" "<<n1;cout<<" "<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;cout<<" "<<n6;cout<<" "<<n7;cout<<" "<<n8;cout<<" "<<n9;
    }

    if(n==10)
    {
    cout<<" "<<n1;cout<<""<<n2;cout<<" "<<n3;cout<<" "<<n4;cout<<" "<<n5;cout<<" "<<n6;cout<<" "<<n7;cout<<" "<<n8;cout<<" "<<n9;cout<<" "<<n10;
    }

    cout<<"\n\n\nHier sind die "<<n; cout<<" eingegebenen Zahlen der Groesse nach geord-";
    cout<<"\nnet:\n\n";

    cout<<"\nWenn Sie fuer neu einzugebende Zahlen die Ausgabe der";
    cout<<"\ngeordneten Liste wiederholen wollen, dann geben Sie bitte";
    cout<<"\nein 'j' ein, sonst ein 'n'!";

    cin>>wdhlg;"\n\n";

    }

    return 0;

    }



  • lol

    nimm bitte codetags!



  • was sind enn man codetags?????



  • au weia! das sieht düster aus...

    und wir sollen dir jetzt deine hausaufgabe machen?



  • coe tags sind hier im forum, das der quellcode den du hier her krachst deutlich erkennbar mit syntaxhighlight ist!
    dazu machst du das so: vorm code (cpp)
    nachm code (/cpp)

    ACHTUNG, die runden Klammern müssen durch eckige ersetzt werden! lol

    Wobei, wenn ich mir so den code mal anschaue....naaja!



  • nee...ich brauch nur ne art wie ich die zahlen in geordneter reihenfolge der gräße nach ausgeben kann...
    und das "AUSGABE GEORDNETE LISTE:" sollte noch unterstrichen sein.



  • du kennst schon schleifen, oder?



  • naja, immerhin hast du überhaupt was getan. deswegen helf ich dir mal und schreib dein programm auf arrays um. das sortieren fehlt aber noch.

    #include<iostream> // das .h sollte man weglassen
    
    using namespace std; // allerdings muß dann das da stehen
    
    int
    main () // was hatte das float da zu suchen ???
    { 
      int n, m, a[10], i; // ich nenn das array mal a; i ist laufvariable für die schleifen
      char wdhlg = 'j'; 
    
      cout<<"\n\n\t\tAUSGABE GEORDNETE LISTE:\n"<<endl; 
    
      while(wdhlg=='j') 
      { 
        n=0; 
        m=0; 
    
        while(n<1 || n>10) // die klammern kannst du weglassen
        { 
          cout<<"Geben Sie bitte die Anzahl der Zahlen an, die Sie eingeben\n"; 
          cout<<"moechten. Die von Ihnen eingegebene Zahl muss zwi-\n"; 
          cout<<"schen 1 und 10 liegen, wobei die werte 1 und 10 selbst\n"; 
          cout<<"auch zulaessig sind.\n"<<endl; 
    
          cin>>n; 
        } 
    
        cout<<"\n\nBitte geben Sie nun ihre "<<n<<" Zahlen ein:"<<endl; 
    
        for(i=0; i<n; i++) // so macht man das
          cin>>a[i];       // in c++ beginnen array-indizes immer mit 0!
    
        cout<<"\n\nHier sind die "<<n<<" Zahlen in der Reihenfolge, wie Sie sie\n"; 
        cout<<"eingegeben haben:\n"<<endl; 
    
        for(i=0; i<n; i++)
          cout<<" "<<a[i];
    
        cout<<endl;
    
        cout<<"\n\n\nHier sind die "<<n<<" eingegebenen Zahlen der Groesse nach geord-\n"; 
        cout<<"net:\n"<<endl; 
    
        cout<<"\nWenn Sie fuer neu einzugebende Zahlen die Ausgabe der\n"; 
        cout<<"geordneten Liste wiederholen wollen, dann geben Sie bitte\n"; 
        cout<<"ein 'j' ein, sonst ein 'n'!"<<endl;
    
        cin>>wdhlg;
        cout<<endl<<endl;
      }
    
      return 0; 
    }
    

    PS: code-tags gehen ganz einfach: paste deinen code wie oben rein. dann markierst du ihn und klickst unten auf den "C/C++"-knopf. fertig!



  • also:ich bin maschinenbaustudent und ihr könnt euch sicher vorstellen wie sehr ich mich als solcher für c++ programmierung interessiere. in der info lehrveranstaltung hat uns der prof irgendwas über die entsteheung der rechentechnik und des internets erzählt. dann kam noch kurz was zu c++. das war aber nur ne grobe abhandlung wo kurz while schleifen und if erklärt wurde. dazu ein paar unzureichende beispiel programme und das wars.
    dummerweise brauch ich aber den schein um dann mal die prüfung schreiben zu können. und fertig ist mein dilemma.
    ich bin ja schon froh das ich das soweit habe das es mir die zahlen in der gewünschten weise einliest. bleibt halt nur das problem mit der geordneten ausgabe, und morgen mittag ist testat....



  • kochalle schrieb:

    ich bin ja schon froh das ich das soweit habe das es mir die zahlen in der gewünschten weise einliest. bleibt halt nur das problem mit der geordneten ausgabe, und morgen mittag ist testat....

    Sei mir nicht boese, ich bin noch kein Student, aber ist das irgendwie gaengige
    Praxis, dass man bei solchen Problemen sich immer die Zeit nimmt und so frueh
    vor der Klausur die Fragen stellt?

    Zu deinem Problem:

    Sortiert wird dein Array z. B. durch folgende Funktion, welche in der Header
    algorithm definiert ist:

    sort(array, array+arraySize);
    

    mfg
    v R



  • naja, wenns so ernst ist, dann will ich mal nicht so sein 😉

    #include<iostream>
    
    using namespace std;
    
    int
    main (int argc, char **argv)
    { 
      int n,a[10],i;
      char nochmal='j'; 
    
      cout<<"\n\n\t\tAUSGABE GEORDNETE LISTE:\n"<<endl; 
    
      while(nochmal=='j') 
      { 
        do
        { 
          cout<<"Geben Sie bitte die Anzahl der Zahlen an, die Sie eingeben\n"; 
          cout<<"moechten. Die von Ihnen eingegebene Zahl muss zwi-\n"; 
          cout<<"schen 1 und 10 liegen, wobei die werte 1 und 10 selbst\n"; 
          cout<<"auch zulaessig sind.\n"<<endl; 
    
          cin>>n; 
        } 
        while(n<1 || 10<n);
    
        cout<<"\n\nBitte geben Sie nun ihre "<<n<<" Zahlen ein:"<<endl; 
    
        for(i=0; i<n; i++)
          cin>>a[i];
    
        cout<<"\n\nHier sind die "<<n<<" Zahlen in der Reihenfolge, wie Sie sie\n"; 
        cout<<"eingegeben haben:\n"<<endl; 
    
        for(i=0; i<n; i++)
          cout<<" "<<a[i];
    
        cout<<endl;
    
        cout<<"\n\n\nHier sind die "<<n<<" eingegebenen Zahlen der Groesse nach geord-\n"; 
        cout<<"net:\n"<<endl; 
    
        // bubblesort
        bool f;
    
        do
        {
          f=false;
    
          for(i=1; i<n; i++)
            if(a[i-1]>a[i])
            {
              int x=a[i-1];
              a[i-1]=a[i];
              a[i]=x;
    
              f=true;
            }
        }
        while(f);
    
        for(i=0; i<n; i++)
          cout<<" "<<a[i];
    
        cout<<endl;
    
        cout<<"\nWenn Sie fuer neu einzugebende Zahlen die Ausgabe der\n"; 
        cout<<"geordneten Liste wiederholen wollen, dann geben Sie bitte\n"; 
        cout<<"ein 'j' ein, sonst ein 'n'!"<<endl;
    
        cin>>nochmal;
        cout<<endl<<endl;
      }
    
      return 0; 
    }
    

    da die aufgabenstellung lautet, bis zu 10 zahlen zu sortieren, bin ich mal davon ausgegangen, daß einfache c-arrays und nicht stl-vektoren gemeint sind.



  • thanks @ Konfusius.

    das progarmm sieht gleich viel übersichtlicher aus. und ich denke ich hab das sogar verstanden. wär bloß schön gewesen wenn man sowas gleich vom prof lernt...

    @ VR: was ist ein algorithm header??? ich finds klasse das ihr mir helfen wollt, aber bitte benutz keine fachausdrücke, bzw. erklärt sie ausreichend.....sonst kann ich mit euren, bestimmt sehr hilfsreichen, hinweisen nichts anfangen...



  • wow.....das klappt tatsächlich..

    aber was heißt argc, **argv und das bool????

    ich muß das ja verstehen, da ich das womöglich erklären muß......



  • Naja, du siehst beim meinem Vorposter die Zeile

    #include <iostream>

    mit include inkludiert man Headerdateien, in denen Deklarationen von Funktionen,
    Klassen und Variablen stehen koennen. In diesem Fall hier wird die Headerdatei
    'iostream' inkludiert.

    mfg
    v R



  • In argc stehen zur Laufzeit die Anzahl Parameter drin, die du dem Programm
    beim Aufruf uebergeben hast. In argv[0] bis argv[argc-1] stehen dann jeweils
    die entsprechenden Parameter.

    mfg
    v R



  • in der c++-standardbibliothek gibt es eine headerdatei namens algorithm, die man mit #include<algorithm> in das programm einbinden kann. dort befindet sich auch eine funktion namens sort(), mit der man stl-vektoren automatisch sortieren kann. stl-vektoren sind eine c++-alternative zu den c-arrays, wie sie das obige programm verwendet. aber ich denke, das schreiben einer eigenen sortierroutine ist teil der aufgabenstellung und deshalb habe ich in dem programm die in der standardbibliothek vorhandenen sortierroutinen auch nicht benutzt.



  • Konfusius schrieb:

    in der c++-standardbibliothek gibt es eine headerdatei namens algorithm, die man mit #include<algorithm> in das programm einbinden kann. dort befindet sich auch eine funktion namens sort(), mit der man stl-vektoren automatisch sortieren kann. stl-vektoren sind eine c++-alternative zu den c-arrays, wie sie das obige programm verwendet. aber ich denke, das schreiben einer eigenen sortierroutine ist teil der aufgabenstellung und deshalb habe ich in dem programm die in der standardbibliothek vorhandenen sortierroutinen auch nicht benutzt.

    Kleine Korrektur: Du kannst auch normale Arrays damit sortieren.

    mfg
    v R


Anmelden zum Antworten