Wissensdatenbank Wirtschaftsrecht

aktuelles Dokument: ProzProg10Strukturen
image4
image3
image2
image1
 Alle Kategorien:
  Forschungsdatenbank
  Lehrveranstaltungen
  Lexikon
  Literatur
  Rechtsgebiete
  Rechtsprechung
  Service
  Studium F H S
  Wissensmanagement
ich war hier: ProzProg10Strukturen

Revision history for ProzProg10Strukturen


Revision [83286]

Last edited on 2017-08-16 15:46:36 by ClaudiaMichel
Additions:
----
CategoryProzeduraleProgrammierung


Revision [83281]

Edited on 2017-08-16 15:43:11 by ClaudiaMichel
Deletions:
----
CategoryProzeduraleProgrammierung


Revision [83239]

Edited on 2017-08-16 14:49:50 by ClaudiaMichel
Additions:
CategoryProzeduraleProgrammierung
Deletions:
CategoryDelete


Revision [72095]

Edited on 2016-09-27 12:40:35 by NicoleHennemann
Additions:
CategoryDelete
Deletions:
CategoryProzProg


Revision [22740]

Edited on 2013-03-28 22:05:58 by RonnyGertler
Additions:
===Operationen mit Strukturvariablen===
1. Initialisierung von Strukturvariablen:
Bruch a={5, 3}, b, c;
2. Zuweisung:
b=a;
3. Kopieren bei der Parameterübergabe und bei der Rückgabe per Wert:
c= addBruch (a, b);
4. Referenzierung und Dereferenzierung:
Bruch* p=& c; Bruch d= *p;
5. Dynamische Reservierung:
Bruch* p1 = new Bruch;
6. Kein Vergleich und keine Konvertierung.
===Zugriff auf Komponenten ===
Bei Bedarf kann man natürlich immer noch auf die Komponenten zugreifen. Für den Zugriff auf Komponenten (Elementzugriff) gibt es zwei eigene Operatoren:
1) Punktoperator (Strukturoperator, Element-Operator)
{{image url="pp68.gif" width="500"}}
""⇒"" Demo 1.
2) Pfeiloperator (Zeigeroperator auf Strukturen):
{{image url="pp69.gif" width="500"}}
Die beide Operatoren sind gegenseitig ersetzbar:
(*p).k entspricht p->k
v.k entspricht (&v)->k
=====10.2. Verwendung von Strukturen =====
===Komplexe Daten zusammenfassen ===
1) Komplexe Daten, auch Felder, können sehr effektiv in einer Struktur zusammenfasst werden, z.B.:
struct Datum
{ short tag;
char monat[10];
int jahr;
};
2) Strukturen können als Elemente ebenfalls wieder Strukturen enthalten (geschachtelte Strukturen), z.B.:
%%(cpp)
struct Person
{ char name[20];
Datum geburtsdatum;
};
3) Strukturen können als Elemente zu Feldern zusammengefasst werden, z.B.:
struct Firma
{ Person bestand[20];
int anzahl;
};
===Übergabe von Strukturen an Funktionen ===
Es gibt dafür wenigstens drei Möglichkeiten:
a) Komponenten getrennt übergeben, z.B.:
void f1(short tag, char monat[10], int jahr ){ }

b) Eine gesamte Strukturvariable durch call-by-value übergeben, z.B.:
void f2(Datum d ){ }
c)eine gesamte Strukturvariable durch call-by-reference übergeben, z.B.:
void f3(Datum & d ){ }
**Eigenschaften**:
1) Bei der Struktur-Übergabe ist die Parameterliste kürzer als bei der Komponenten-Übergabe.
2) Im Gegensatz zu Arrays werden Strukturen bei der call-by-value kopiert. Die Wertekopie kostet insbesondere bei
großen Strukturen Zeit und Speicherplatz.
===Strukturen als Rückgabewert von Funktionen ===
Anders als Arrays können Strukturen auch Rückgabetyp von Funktionen sein, z.B.:
struct Person
{ char name[20];
int geburtsjahr;
};
Person scanPerson()
{ Person tmp;
cout<<"Name und Geburtsjahr: ";
cin>>tmp.name;
cin>>tmp.geburtsjahr;
return tmp;
""⇒"" Demo 2.


Revision [22739]

Edited on 2013-03-28 21:50:27 by RonnyGertler
Additions:
{{image url="pp63.gif" width="500"}}
{{image url="pp64.gif" width="500"}}
{{image url="pp65.gif" width="250"}}
{{image url="pp66.gif" width="250"}}
{{image url="pp67.gif" width="500"}}
Deletions:
{{files}}
{{image url="63.gif" width="500"}}
{{image url="64.gif" width="500"}}
{{image url="65.gif" width="250"}}
{{image url="66.gif" width="250"}}
{{image url="67.gif" width="500"}}


Revision [22738]

Edited on 2013-03-28 21:49:45 by RonnyGertler
Additions:
{{files}}
6. Strukturen werden in ""C++"" zu Klassen erweitert.
Deletions:
6. Strukturen werden in C++ zu Klassen erweitert.


Revision [22737]

Edited on 2013-03-28 21:49:08 by RonnyGertler
Additions:
{{image url="63.gif" width="500"}}
**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 url="64.gif" width="500"}}
===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.
%%(cpp)
struct Bruch
{ int zaehler;
int nenner;
};
%%
Auf der Anwendungsebene muss man nicht wissen, welche innere Konstruktion die Struktur „Bruch“ hat.
%%(cpp)
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:
a) legt die Innenstruktur des definierten Types fest,
b) reserviert keinen Speicherplatz.
{{image url="65.gif" width="250"}}
2) Definition einer Strukturvariable bzw. Variablendefinition:
a) erzeugt eine Instanz (Variable, Strukturvariable) des Strukturtypes,
b) belegt Speicherplatz,
c) initialisiert eventuell die erzeugte Variable.
{{image url="66.gif" width="250"}}
===Typdefinition und Variablendefinition. Beispiel ===
{{image url="67.gif" width="500"}}


Revision [22736]

Edited on 2013-03-28 21:40:43 by RonnyGertler
Additions:
===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.


Revision [22735]

Edited on 2013-03-28 21:37:57 by RonnyGertler
Additions:
=====10.1 Begriffsdefinition=====
Deletions:
{{files}}
=====10.1. Begriffsdefinition=====


Revision [22734]

Edited on 2013-03-28 20:57:09 by RonnyGertler
Additions:
{{files}}
=====10.1. Begriffsdefinition=====
Deletions:
=====10.1. Begriffsdefinition======


Revision [22733]

The oldest known version of this page was created on 2013-03-28 20:53:20 by RonnyGertler
Valid XHTML   |   Valid CSS:   |   Powered by WikkaWiki