Version [22737]
Dies ist eine alte Version von ProzProg10Strukturen erstellt von RonnyGertler am 2013-03-28 21:49:08.
Prozedurale Programmierung - Kapitel 10 - Strukturen
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.
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.
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;
};
{ 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;
}
{ 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:
- legt die Innenstruktur des definierten Types fest,
- reserviert keinen Speicherplatz.
2) Definition einer Strukturvariable bzw. Variablendefinition:
- erzeugt eine Instanz (Variable, Strukturvariable) des Strukturtypes,
- belegt Speicherplatz,
- initialisiert eventuell die erzeugte Variable.
Typdefinition und Variablendefinition. Beispiel
CategoryProzProg
Diese Seite wurde noch nicht kommentiert.