Lösungstipps bei Anfängerbeispiel bitte
-
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
-
-
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??
-
Jester schrieb:
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.
Hallo Jester,
Nun - mein 'Zähler' ist die Variable 'pscl'. Er wird im ersten Teil der for-Schleife angelegt, im zweiten auf den gültigen Bereich abgefragt und im dritten Teil hochgezählt. Die eigentliche Arbeit besteht in der Ausgabe der Zeile - also 'pscl' - und das befindet sich im Body der for-Schleife. Also doch ganz schulmäßig.
Man könnte sich auch eine Struktur 'PascalZeile' vorstellen, mit der folgender Code möglich ist:for( PascalZeile pz; pz != 11; ++pz ) cout << pz << endl;wobei sich hinter Konstruktor, Ungleich- und Inkrement-operator genau der Code verbirgt, der da jetzt schon steht.
Das man solche Abstraktionen in C++ auch in Code gießen kann, ist genau der Grund warum ich gerne mit C++ arbeite.
@Th: Danke
judith schrieb:
wie mach ich das mir das feld dann ausgegeben wird???
mit cout<<p<<endl; funktionierts leider nicht

indem Du alle int-Werte in einer Schleife ausgibst. Dies ist auch der Grund ein solches Feld zu benutzen. Die Ausgabe des Dreiecks könnte etwa so aussehen:
int p[10][10]; // p[][] füllen for( int iZeile = 0; iZeile < 10; ++iZeile ) { for( int iSpalte = 0; iSpalte <= iZeile; ++iSpalte ) cout << p[iZeile][iSpalte] << " "; cout << endl; }Der Index in einem Feld beginnt übrigens immer bei 0 und endet bei N-1, also hier bei 9. Daher auch die Bedingung 'iZeile < 10'.
Gruß
Werner