ich war hier: ProzProg10Strukturen

Version [22738]

Dies ist eine alte Version von ProzProg10Strukturen erstellt von RonnyGertler am 2013-03-28 21:49:45.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Prozedurale Programmierung - Kapitel 10 - Strukturen

Attachments
File Last modified Size
pp63.gif 2023-10-06 18:37 8Kb
pp64.gif 2023-10-06 18:37 8Kb
pp65.gif 2023-10-06 18:37 3Kb
pp66.gif 2023-10-06 18:37 1Kb
pp67.gif 2023-10-06 18:37 13Kb
pp68.gif 2023-10-06 18:37 11Kb
pp69.gif 2023-10-06 18:37 14Kb

Inhalte von Dr. E. Nadobnyh

10.1 Begriffsdefinition


Einführung


Manchmal möchte man mehrere Datenwerte zu einer Einheit zusammenfassen.

1. Die Datenstruktur Array bzw. Feld erlaubt lediglich das Speichern von Datenobjekten des gleichen Typs.
Es ist nicht möglich, in einem Array Daten vom Typ „int“ und Daten vom Typ „char“ gemischt abzulegen.

2. Sollen z. B. in einem Programm Kundendaten wie Name, Ort, PLZ, Strasse usw. zusammengefasst werden, reicht die Datenstruktur Array nicht mehr aus. Eine Struktur kann im Gegensatz zu einem Array aus Datenobjekten unterschiedlicher Datentypen zusammengefasst werden.


Grundidee


1. Eine Struktur (Record, Datenverbund, struct) ist eine Ansammlung von mehreren Variablen (Elementen, Komponenten, Feldern) mit verschiedenen Typen unter einem einzigen Namen.

2. Strukturen sind benutzerdefinierte (selbstdefinierte) Datentypen. Der Name einer Struktur kann wie jeder anderer Typname verwendet werden. Vom Datentyp können Variablen (Strukturvariablen) angelegt werden.

 (image: https://ife.erdaxo.de/uploads/ProzProg10Strukturen/63.gif)

Legende:
v –eine Strukturvariable


Beispiel:

Eine Struktur kann man sich wie eine Karteikarte vorstellen:

1) Auf einer solchen Karteikarte werden Daten, die logisch zusammengehören zusammengefasst.

2) Eine Karteikarte enthält mehrere Elemente, die verschiedene Datentypen besitzen können.

 (image: https://ife.erdaxo.de/uploads/ProzProg10Strukturen/64.gif)


Struktur als Abstraktion


Strukturen sind ein Mittel zur Abstraktion: Man kann auf einer höheren Programmebene von den einzelnen Komponenten (Elementen, Attributen) der Struktur abstrahieren. Man behandelt hier die Struktur als Ganzes.

Die einzelnen Elemente einer Struktur werden dann als unwichtige Details betrachtet.

Bei der Anwendung muss man nicht wissen, welche innere Konstruktion die Struktur hat.


Beispiel

Die einzelnen Elemente einer Struktur werden als unwichtige Details betrachtet.

struct Bruch
{    int zaehler;
      int nenner;
};  


Auf der Anwendungsebene muss man nicht wissen, welche innere Konstruktion die Struktur „Bruch“ hat.

int main()
{   Bruch a, b, c;
     a= scanBruch();      
     b= scanBruch();
     c= addBruch(a, b);  
     printBruch(c);
     return 0;
}


Vorteile

1. Durch die Zusammenfassung inhaltlich zusammengehöriger Daten zu Verbunden wird ein Programm verständlicher und wartungsfreundlicher.

2. Die Verwaltung von mehreren Datenobjekten unterschiedlichen Datentypen ohne Strukturen ist sehr umständlich.

3. Eine Strukturvariable kann als Ganzes verwalten werden, z.B.: erfassen, ausgeben, suchen usw.

4. Eine Strukturvariable kann als Ganzes an Funktionen übergeben und als Funktionsergebnis geliefert werden.

5. Mehrere Strukturvariablen können in einem Array verwaltet werden.

6. Strukturen werden in C++ zu Klassen erweitert.


Typdefinition und Variablendefinition


1) Strukturdefinition bzw. Typdefinition:
  1. legt die Innenstruktur des definierten Types fest,
  1. reserviert keinen Speicherplatz.

 (image: https://ife.erdaxo.de/uploads/ProzProg10Strukturen/65.gif)

2) Definition einer Strukturvariable bzw. Variablendefinition:
  1. erzeugt eine Instanz (Variable, Strukturvariable) des Strukturtypes,
  1. belegt Speicherplatz,
  1. initialisiert eventuell die erzeugte Variable.

 (image: https://ife.erdaxo.de/uploads/ProzProg10Strukturen/66.gif)


Typdefinition und Variablendefinition. Beispiel


 (image: https://ife.erdaxo.de/uploads/ProzProg10Strukturen/67.gif)





CategoryProzProg
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki