Seite 1 von 1

Zweidemensionale dynamische Arrays

Verfasst: Mo Sep 14, 2009 9:39 pm
von soufian88

Code: Alles auswählen

#include <iostream>



using namespace std;



int main(void) {

   int i, j, zeile, spalte;

   int ** matrix;

   

   cout << "Wie viele Zeilen : ";

   cin >> zeile;

   cout << "Wie viele Spalten: ";

   cin >> spalte;



   // Speicher für die einzelnen Zeilen reservieren 

   matrix = new int* [zeile];   



   // Speicher für die einzelnen Spalten in der i-ten Zeile 

   for(int i = 0; i < zeile; i++) {

      matrix[i] = new int [spalte];

   }

   

   // Mit beliebigen Werten initialisieren

   for (i = 0; i < zeile; i++) {

      for (j = 0; j < spalte; j++) {

         matrix[i][j] = i + j;   // matrix[zeile][spalte]

      }   

   }

   

   // Inhalt ausgben 

   for (i = 0; i < zeile; i++) {

      for (j = 0; j < spalte; j++) {

         cout << matrix[i][j] << " ";

      }

      cout << "\n";

   }

   

   // Speicherplatz wieder freigeben 

   // Wichtig! In umgekehrter Reihenfolge



   // Spalten der i-ten Zeile freigeben

   for(i = 0; i < zeile; i++)

      delete matrix[i];

   // Jetzt können die leeren Zeilen freigegeben werden

   delete [] matrix;

   return 0;

}
Hallo,

Ich habe mal wieder das Problem das genau Code zu verstehen. :|
Das ist echt ein Problem.


In diesen Abschnitt :

Code: Alles auswählen

for (i = 0; i < zeile; i++) {

      for (j = 0; j < spalte; j++) {

         matrix[i][j] = i + j;   // matrix[zeile][spalte]

      }   
}

Werden Werte initialisiert in dem i und j inkrementiert allerdings weiß ich nicht wie die initialisiert werden. :?:
Wieo wird i+j addiert ?

mfg soufian

Re: Zweidemensionale dynamische Arrays

Verfasst: Mo Sep 14, 2009 9:53 pm
von fat-lobyte
soufian88 hat geschrieben: Hallo,

Ich habe mal wieder das Problem das genau Code zu verstehen. :|
Das ist echt ein Problem.

In diesen Abschnitt :

Code: Alles auswählen

for (i = 0; i < zeile; i++) {
      for (j = 0; j < spalte; j++) {
         matrix[i][j] = i + j;   // matrix[zeile][spalte]
      }   
Werden Werte initialisiert in dem i und j inkrementiert allerdings weiß ich nicht wie die initialisiert werden. :?:
Wieo wird i+j addiert ?

Initialisiert bedeutet einfach nur "Am Anfang einen Wert zuweisen". Für diesen "einen Wert" hat der Autor aus Willkür i+j gewählt, daran gibts nix zu verstehen. Wenn man das allerdings außerhalb eines tutorials verwenden würde, dann würde ich die Matrix gar nicht intialisieren, sonder gleich mit Sinnvollen werten Füllen. Bringt ja nix so ne schleife nur zum spaß, wenn die Werte dann eh überschrieben werden...
Also das Programm ist einfach ein Mittelmäßiges Beispiel. Hab shcon sinnvollere gesehen...

Re: Zweidemensionale dynamische Arrays

Verfasst: Mo Sep 14, 2009 9:58 pm
von soufian88
Langsam gefällt mir das Buch nicht und glücklicherweise habe ich es von der Bücherhalle geholt. :cry:

Re: Zweidemensionale dynamische Arrays

Verfasst: Di Sep 15, 2009 7:00 am
von sonic
Kannst dir ja mal Thinking in C++ anschauen. Das gibts als frei legal zugängliches PDF hier zum download.

Das hier könnte auch ganz brauchbar sein.

Re: Zweidemensionale dynamische Arrays

Verfasst: Di Sep 15, 2009 5:50 pm
von fat-lobyte
sonic hat geschrieben:Kannst dir ja mal Thinking in C++ anschauen. Das gibts als frei legal zugängliches PDF hier zum download.
Also Bücher von 2001 würde ich schlicht und einfach nicht empfehlen. Auch wenn es nach der ersten Standardisierung geshrieben wurde, hat sich vor allem in der Mitte dieses Jahrzehnts ziemlich viel getan.
Einige Konzepte und Gedanken haben sich entwickelt, die erst Moderne Bücher beinhalten.

Re: Zweidemensionale dynamische Arrays

Verfasst: Di Sep 15, 2009 7:42 pm
von soufian88
Also ich habe mir jetzt diese Buch
http://www.amazon.de/C-f%C3%BCr-C-Progr ... 990&sr=8-1
von der Zentralbibliothek für 4 Wochen ausgeliehen erstmal.
Das Buch deckt alle relevanten Themen in C++ und ist für C Programmierer ,zusätzlich befinden sich da Übungen zu den entsprechenden Kapitel und selbstverständlich sind auch die Lösungen vorhanden . :)

Re: Zweidemensionale dynamische Arrays

Verfasst: Mi Sep 16, 2009 7:11 am
von sonic
fat-lobyte hat geschrieben:
sonic hat geschrieben:Kannst dir ja mal Thinking in C++ anschauen. Das gibts als frei legal zugängliches PDF hier zum download.
Also Bücher von 2001 würde ich schlicht und einfach nicht empfehlen. Auch wenn es nach der ersten Standardisierung geshrieben wurde, hat sich vor allem in der Mitte dieses Jahrzehnts ziemlich viel getan.
Einige Konzepte und Gedanken haben sich entwickelt, die erst Moderne Bücher beinhalten.
Nun dann lass mal höhren, welche Themen du bei Thinking in C++ zum lernen der Sprache vermisst. Vol. 1 beinhaltet die Grundlagen der Sprache C++. Welche neuen Konzepte sich da, bevor der neue Standard verabschiedet wird, auftun, ist mir schleierhaft. Vol. 2 beinhaltet ausfürlich Themen wie die STL, Algorithmen der STL, Verwendung von Templates (ohne Meta Programmierung und solche Scherze) etc. Selbst auf Design Patterns Exceptionhandling und RTTI wird eingegangen.

Von daher empfehle ich zum lernen lieber ein Buch von 2001, dass sich an den Standard hält, als Bücher die oftmals noch ein

Code: Alles auswählen

#include <iostream.h>
beinhalten.

Will man auf spezielle Themen eingehen, kann man auch spezielle Bücher empfehlen (Sutter, Meyers, Alexandrescu etc.), aber zum lernen der Grundlagen und auch einigem mehr sollte Thinking in C++ (vol. 1 und vol. 2) sehr gut geeignet sein.

Greets
Sonic