Lösungstipps bei Anfängerbeispiel bitte



  • Beginner0815 schrieb:

    Könnte ich da eventuell eine for-schleife für die zeilen und eine forschleife für die elemente laufen lassen??

    Klar, mach das doch einfach.. Aber so ganz ohne dass du einen Ansatz hast, helfe ich halt nicht so gerne :p Und das hier double p[i][j] ist richtig so, ja. Ich würde aber einen aussagekräftigeren Bezeichner wählen, i und j müssen außerdem Konstanten sein 🙂



  • ok danke für den tipp ich probiers mal

    muss man bei definieren des feldes eigentlich angeben wie groß es is ( also wie viele einträge rein kommen??)??



  • Ja, das machst du ja schon mit i und j. Also wäre i die Zeilen und j die Anzahl der Spalten - oder andersrum, je nachdem, wie man es verwendet und interpretiert 🙂



  • ich hab grad erst mir c++ angefangen und will mich damit privat auseinander setzen .
    Wie kann man das 2 dimensionale feld definieren???



  • double feld[100][80]; oder so, Größe muss vorher feststehen oder du musst es dynamisch anlegen



  • Hallo

    Siehe zum Beispiel hier. Am besten gleich das ganze Tutorial durcharbeiten.

    bis bald
    akari



  • Ist folgender Code cool?

    #include <algorithm>    // copy
    #include <functional>   // plus
    #include <iostream>
    #include <iterator>     // ostream_iterator
    #include <numeric>      // adjacent_difference
    #include <vector>
    
    int main()
    {
        using namespace std;
        // Gibt ein Pascalsches Dreieck aus
        for( vector< int > pscl( 1, 1 ); pscl.size() <= 10
            ; adjacent_difference( pscl.begin(), pscl.end(), pscl.begin(), plus< int >() ),
                pscl.push_back( 1 ) )
        {
            copy( pscl.begin(), pscl.end(), ostream_iterator< int >( cout, " " ) );
            cout << endl;
        }
        return 0;
    }
    

    nach der Definition von pumuckl erfüllt er doch beide Kriterien (1.elegant; in wenigen Zeilen und 2.unlesbar) - oder? 🕶

    Gruß
    Werner



  • Ja, das ist wirklich "cool".
    Und "unlesbar" ist es für einen C++ Programmierer sicherlich nicht, sondern optimal. Schlimmer sind die Pseudo-C++ Codes...



  • Finde ich nicht so toll. Dann lieber nen normalen Zähle in die for-schleife. Warum sollte man die Stelle wo die Arbeit passiert im schleifenheader verstecken? Das verwirrt nur und bringt nichts.



  • und wie greif ich später auf eine zahl in diesem feld zu??

    also ich def mit

    int p[10][10];

    und dann:
    p[1][1]=1 oder geht das anders??



  • judith schrieb:

    und wie greif ich später auf eine zahl in diesem feld zu??

    also ich def mit

    int p[10][10];

    und dann:
    p[1][1]=1 oder geht das anders??

    Ich frage mich warum man seine Zeit opfern sollte jemandem zu helfen, der nichtmal selbst die Zeit hat einen Post zu verfassen, in dem man Gross- und Kleinschreibung beachtet und die Wörter ausschreibt.



  • was soll das heißen ?
    ich hab ne konstruktive frage gestellt und nicht so nen Spam wie du!!
    also kann mir das jemand bitte beantworten



  • Ich frage mich was an Fragen konstruktiv ist 🙂

    Was den Rest angeht:

    Judith schrieb:

    also kann mir das jemand bitte beantworten

    akari schrieb:

    Hallo

    Siehe zum Beispiel hier. Am besten gleich das ganze Tutorial durcharbeiten.

    bis bald
    akari



  • judith schrieb:

    und wie greif ich später auf eine zahl in diesem feld zu??

    also ich def mit

    int p[10][10];

    und dann:
    p[1][1]=1 oder geht das anders??

    Wenn du magst, kannst du das auch gerne ausprobieren 🙂 Bei so kleinen Sachen ist es schneller ausprobiert, als zu warten bis jemand geantwortet hat 😉



  • wie mach ich das mir das feld dann ausgegeben wird???

    mit cout<<p<<endl; funktionierts leider nicht 😞



  • Vielleicht nochmal das hier lesen:

    akari schrieb:

    Hallo

    Siehe zum Beispiel hier. Am besten gleich das ganze Tutorial durcharbeiten.

    bis bald
    akari

    😉 zum dritten Mal...



  • das problem ist das da nicht das drinsteht was ich brauche

    ich bauche ein 2.dimensionales FELD!!!!!!!!!!!!!!!!!

    und das sieht ´so aus p[10][10]
    aber wie kann ich da auf die einzelnen zahlen im feld zugreifen und beim ausgeben happerts auch noch



  • Du kannst so leider nicht das Feld am Stück ausgeben, sondern nur "native" Typen wie z.B. einen int, double oder float. Also solltest du nicht cout << p << endl; nehmen, sondern mit Schleifen jedes Element des Feldes einzeln ausgeben.



  • aber warum definier ich dann so ein 2 dimensionales feld wenn ich dann alles einzeln ausgebe????
    man muss doch das ganze feld auf einmal ausgeben können



  • so jetzt hab ichs
    glaub ich zumindest

    #include <iostream>

    int main()
    {
    int x[10][10],i,j;

    //Erste Zeile setzen
    x[0][0] = 1; // Erstes Element, Sonderbehandlung
    for (i = 1; i < 100; i++)
    {
    x[0][i] = 0;
    }

    //Zeilen aus ihren Vorgängern berechnen
    for (i = 1; i < 10; i++)
    {
    x[i][0] = 1;
    for (j = 1; j < 10; j++)
    {
    x[i][j] = x[i-1][j-1] + x[i-1][j];
    }
    }

    //Matrix ausgeben:
    for (int i = 0; i< 10; ++i)
    {
    for (int j = 0; j < 10; ++j)
    {
    cout<<setw(4);
    cout<<x[i][j];
    }
    cout<<"\n";
    }
    cin.get();cin.get();
    }

    aber ich hab ein problem mit dem ende

    1. was macht cin.get()?????
    2.was macht "/n"????
    3. was macht cout<<setw(4)
    4. Is in dem Programm sonst noch was falsch??


Anmelden zum Antworten