Lösungstipps bei Anfängerbeispiel bitte
-
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
-
jasmin schrieb:
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??1. cin.get() wartet auf auf eine Tastatureingabe. Erst danach läuft das Programm weiter und beendet sich. Es dient dazu, dass Du noch die Ausgabe des Programms sehen kannst, bevor das Konsolenfenster sich schließt.
2. "/n" steht für newline bzw. den Code LF (13) - also ein Zeilenende.
3. cout << setw(4) setzt die Ausgabebreite für die unmittelbar folgende Ausgabe auf 4. Also z.B. hat der Code cout << "1234\n" << setw(4) << 42 << endl; die Ausgabe1234 42zur Folge.
4. Ja - die Initialisierung muss zumindest formal gesehen auch mit einer doppelten for-Schleife geschehen, genau wie die Ausgabe. Aber sie ist unnötig, wenn Du bei der Berechnung und der Ausgabe der Zeilen nur soviel Spalten berücksichtigst, wie auch benötigt wurde.
//Zeilen aus ihren Vorgängern berechnen for (i = 1; i < 10; i++) { x[i][0] = 1; x[i][i] = 1; for (j = 1; j < i; j++) // nur bis 'i' laufen { x[i][j] = x[i-1][j-1] + x[i-1][j]; } } // Dreieck ausgeben: for (int i = 0; i< 10; ++i) { for (int j = 0; j <= i; ++j) // hier auch nur <= i { cout << setw(4) << x[i][j]; } cout<<"\n"; }Gruß
Werner