Frage von DarkLea, 20

Was bedeutet das/welches Ziel?

Die Aufgabenstellung ist: Schreiben Sie eine Klasse Matrix 4x4 innerhalb eines Namensbereichs Geometrie, deren Objekte mit einem 4x4 Array über eine Setter Methode initialisiert werden können. Das Array soll dann mit einer display() Methode als Matrix ausgegeben werden können. Realisieren Sie dies 1. Mit zwei verschachtelten for-schleifen und einem Zugriff auf das Array mit zwei aufeinanderfolgenden Indexoperatoren

  1. Mit einer for-schleife und einem einfachen Indexoperator, wobei sie den "Sprung" in die nächste Zeile der Matrix arithmetisch berechnen.

Was genau muss ich dort jetzt machen? Ich verstehe nicht, wie ich mit for-schleifen ne Matrix bilden soll und wie das geht. Und was heißt arithmetisch berechnen, wie mache ich sowas? Ich programmier in C++

Antwort
von surbahar53, 10

Die Klasse könnte so aussehen (ist nur ein Beispiel zum besseren Verständnis), das ganze noch mit "using namespace Geometrie" einklammern.


class Matrix
{
public:

// setzen eines Matrix-Elements
void Set ( int row, int col, float value );

// setzen einer Matrix-Zeile
void Set ( int row, int col, float val1, float val2, float val3, float val4 );

// Ausgabe der Matrix
void Display();

private:

float elements[4][4];

}

Im ersten Fall werden die elements in zwei verschachtelten for-Schleifen ausgegeben.

void Display () ...

for ( row=0; row< 4; row++)
{
   for ( col=0; col< 4; col++)
   {
     printf ( "...", elements[row][col] );
   }

   // Zeile zu ende
   printf ( "\n" );
}

Im zweiten Fall würde man z.B. in der Klasse

float elements[4*4];

schreiben mit

void Display () ...

for ( row=0; row< 4; row++)
{
   for ( col=0; col< 4; col++)
   {
      printf ( "...", elements[ row * 4 + col] );
   }

   // Zeile zu ende
   printf ( "\n" );
}

Kommentar von DarkLea ,

was macht printf? ist das das gleiche wie std::cout?

Kommentar von surbahar53 ,

Ja, dient der Ausgabe auf den standard output stream.

P.S. Das ganze dient nur als Schema, nicht als fertiges Programm.

Keine passende Antwort gefunden?

Fragen Sie die Community