Zweidemensionale dynamische Arrays

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Zweidemensionale dynamische Arrays

Beitrag von soufian88 » Mo Sep 14, 2009 9:39 pm

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
C ( Durchschnittlich ) C++ (am Lernen)

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Zweidemensionale dynamische Arrays

Beitrag von fat-lobyte » Mo Sep 14, 2009 9:53 pm

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...
Zuletzt geändert von Kerli am Mo Sep 14, 2009 10:03 pm, insgesamt 1-mal geändert.
Grund: Quote-Tags korrigiert
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Re: Zweidemensionale dynamische Arrays

Beitrag von soufian88 » Mo Sep 14, 2009 9:58 pm

Langsam gefällt mir das Buch nicht und glücklicherweise habe ich es von der Bücherhalle geholt. :cry:
C ( Durchschnittlich ) C++ (am Lernen)

sonic
Beiträge: 29
Registriert: Do Aug 13, 2009 6:58 pm

Re: Zweidemensionale dynamische Arrays

Beitrag von sonic » Di Sep 15, 2009 7:00 am

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.
Frei nach dem refrain für Let it be...

Write in C, Write in C,
Write in C, yeah, Write in C.
Only wimps use BASIC.
Write in C.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Zweidemensionale dynamische Arrays

Beitrag von fat-lobyte » Di Sep 15, 2009 5:50 pm

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.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Re: Zweidemensionale dynamische Arrays

Beitrag von soufian88 » Di Sep 15, 2009 7:42 pm

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 . :)
C ( Durchschnittlich ) C++ (am Lernen)

sonic
Beiträge: 29
Registriert: Do Aug 13, 2009 6:58 pm

Re: Zweidemensionale dynamische Arrays

Beitrag von sonic » Mi Sep 16, 2009 7:11 am

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
Frei nach dem refrain für Let it be...

Write in C, Write in C,
Write in C, yeah, Write in C.
Only wimps use BASIC.
Write in C.

Antworten