geordnete liste



  • 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



  • hab die "fortgeschrittenen sprachelemente" jetzt rausgenommen.

    #include<iostream.h>
    
    int
    main ()
    { 
      int n,a[10],i,x,f;
      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
        do
        {
          f=0;
    
          for(i=1; i<n; i++)
            if(a[i-1]>a[i])
            {
              x=a[i-1];
              a[i-1]=a[i];
              a[i]=x;
    
              f=1;
            }
        }
        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; 
    }
    


  • ich glaube das kann ich nachvollziehen....ich danke euch jungs!!! besonders dir Konfusius!!!

    als letztes noch eine frage: kan man text unterstreichen?? also er soll in der ausgabe unterstrichen sein...



  • unterstreichen geht im textmodus bei den meißten computern nicht. du kannst aber ein bißchen ascii-art machen und minus-zeichen in die darunterliegende zeile setzten.

    hmm... unter linux gehts glaub ich mit "\b_". wenn du einen text unterstreichen willst, dann gebe nach jedem zeichen "\b_" aus. also zb "H\b_a\b_l\b_l\b_o\b_" für ein unterstrichenes "Hallo". wenn du die zahlen unterstreichen willst, dann wirds knifflig. die müßtest du erst in einen string umwandeln und dann zeichenweise ausgeben, immer mit "\b_" hinter jedem zeichen. aber vielleicht gibst in der c++-bibliothek unter linux ja auch einen speziellen befehl fürs unterstreichen. bin in linux leider nicht so fit.



  • aso...na denn.....thx


Anmelden zum Antworten