5.5. Datentypen & Datenstrukturen in der Programmierungstechnik history menue Letztmalig dran rumgefummelt: 22.03.26 01:40:18
Neben einem eindeutigen Platzhalter (Namen) benötigen Größen (Typen, Variablen und Konstanten) eine Angabe über das Format der in den Größen zu hinterlegenden Informationen. Dieses Format bezeichnen wir landläufig als den Datentyp. Der Schwerpunkt wird im folgenden auf Delphi sowie Datenbanken gesetzt.

  1. Allgemeine Datentypen
  2. Statisch skalare Datentypen
  3. Floating Point Types
  4. Character- und String-Daten
  5. Statische & dynamsiche ARRAYS - Komponenten-ARRAYs
  6. Records & Files
  7. Aufzählungsdaten - Set's
  8. Dynamische Datentypen (Dynamische Arrays, Queue, Stack, HEAP & Liste)
  9. selbstdefinierte Datentypen - Datenstrukturen
10. Verwandte Themen

die Informatikseiten

Logo der Datentypen - sind ja auch besond're Typen gewesen ;-)

begrenzt verwendbar - selbst aufpassen, ab welcher Stelle es Blödsinn wird ;-)

Wissen für Fortgeschrittene der Informatik

Informatik-Profi-Wissen

Quellen:

1. Allgemeine Übersicht history menue scroll up

ALPHA CENTAURI, der nächste Fixstern, ist a = 40678000000000 km von uns entfernt. Und m = 0,00000000000000000000000000000091091 kg beträgt die MASSE EINES ELEKTRONS, wie uns Physiker versichern. Um Zahlen dieser Größe bzw. Kleinheit bequem aufschreiben zu können, benutzt man die Exponentialschreibweise:
  • a = 4,0678 * 1013 km,
  • m = 9,91091 * 10 -31 kg

Da Computer keine Hochzahlen schreiben können, werden obige Angaben in der Form:

  • a = 4.0678000000E+13
  • m = 9.9109100000E-31

dargestellt. Der Buchstabe „E“ steht für „Exponent“ (das heißt, Hochzahl). Diese Darstellungsart ist uns auch vom Taschenrechner her bekannt!

... bekannte Datentypen sowie bekannte Operationen mit selbigen ... ... Übersicht der Datentypen in Delphi & Lazarus ... Übersicht der Operatoren in Delphi & Lazarus  

Datentypen und -operationen

Delphi &Lazarus Datentypen - eine Übersicht

Delphi &Lazarus Operatoren - eine Übersicht

 
Nicht nur, dass wir sehr große und sehr kleine Zahlen darstellen müssen, manchmal benötigen wir Zahlen, deren Basis harmlos klingt, deren Funktion jedoch leider "abhauen" kann.
Integer-Datentypen Real (Floating-Point)-Datentypen Character-Datentypen String-Datentypen

... die Präzision des Datentyps INTEGER

... die Präzision des Datentyps REAL

... die Präzision des Datentyps CHARACTER

... die Präzision des Datentyps STRING


2. Statisch skalare Datentypen history menue scroll up
Allgemein - und die Konvertierungsfunktionen bestätigen dies nur, werden alle ganzzahligen Typen mit negativem Bereich als Integer-Datentpen bezeichnet.
Zahlenvereinbarungen
Typ Anzahl der belegten Byte Zahlenbereiche
BYTE 1 Byte 0 bis 255
SHORTINT 1 Byte -128 bis +127
INTEGER 2 Byte -32768 bis 32767

WORD

2 Byte 0 bis 65535
LONGINT 4 Byte -2147483648 bis +2147483647
INT64 4 Byte 0 bis 18446744073709551616
REAL 6 Byte -1 E-38 bis 1 E+38 mit 11 signifikanten Stellen
Zeichenkettenvereinbarungen

Integerdarstellung von Zahlen

da bleibt natürlich die Frage des Vorzeichens - ganz einfach - das wird etwas unlogisch - und damit auch etwas fehleranträchtig gelöst: das höchstwertigste Bit wird zum Vorzeichen - und zwar genau dann, wenn es eins ist - sprich: ich überschreite meinen Zahlenbereich und es gibt keine Warnung (warum auch - 's sind noch hinreichend Bitkombinationen und /oder weiterreichende Datentypen vorhanden)

Allgemeine Bitdarstellung einer Hexadeziamlzahl auf den einzelnen Bitstellen

 die Lösung des Vorzeichenproblems bei 8 Bit-Zahlen


3. Floating Point Types history menue scroll up
 
 

4. Character- und String-Daten history menue scroll up
 
 

5. Statische & dynamsiche ARRAYS - Komponenten-ARRAYs history menue scroll up
Immer genau dann, wenn mehrere Variablen eines Typs und mit gleichem Namen benötigt werden, deren Platz evtl. noch eindeutig durch Koordinaten oder einen Zähler bestimmbar bzw. ermittelbar sein soll, kommen ARRAYs ins Spiel. Durch ihre statische Deklaration können sie jedoch im Worstcase sehr groß und sehr unnütz sein.
... häufigster Fall sehr vielseitig ... wird schon selten ... ... sind leider extrem schwer zu managen

Layout des eindimensionalen Arrays

Layout des zweidimensionalen Arrays

Layout des dreidimensionalen Arrays

Layout des vierdimensionalen Arrays

... und so wird mit Arrays unter Delphi gearbeitet

das ideale eindimensionale ARRAY

... und als CorelDraw 10-Datei

das ideale zweidimensionale ARRAY

... und als CorelDraw 10-Datei

das ideale dreidimensionale ARRAY

... und als CorelDraw 10-Datei

... kleinster gemeinsamer Nenner:

Adjatzenmatrizen

Matrizenrechnung

das ideale und einfache ARRAY - zweidimensional

Zwei eindimensionale ARRAYs

Und hier das Original als CorelDraw 11-Datei zum Download

Komponenten-Arrays mit rufenden Prozeduren der Komponenten

Komponenten-Array mit Komponenten-Prozedur

UNIT-Quelltext

Anwendungsbeispiele  
Dynamische Arrays - für eindimensionale Arrays
     
Basisfakten zu Dynamische Arrays
Deklaration: Ohne feste Größe, z. B. var MeinArray: array of Integer;.
Zuweisung: SetLength(MeinArray, 10); ändert oder initialisiert die Größe.
Indizierung: Beginnt immer bei 0.
Funktionen: Low() und High() ermitteln die Grenzen.

Arbeiten mit dynamischen Arrays ... AVollständiges Projekt mit Delphi 6 (läuft bedingt unter Windows 11) mit dynamischen Arrays ...    
procedure DynamischesArrayBeispiel;

var
  IntArray: array of Integer;
  i: Integer;

begin
// Größe des Arrays zur Laufzeit festlegen (hier 10 Elemente)
SetLength(IntArray, 10);

// Array füllen
for i := 0 to High(IntArray) do
IntArray[i] := i * 2;

// Größe ändern (behält alte Werte, fügt neue hinzu)
SetLength(IntArray, 15);

// Speicher freigeben (einfach auf nil setzen)
IntArray := nil;
end;

Demo-Projekt dynamische Arrays

Projekt-Materialien

Download als ZIP-Archiv

   
   
Dynamische Variablen mittels Zeiger (Pointer)
Erstellung: New (für typisierte Zeiger) oder GetMem (für freien Speicher).
Freigabe: Dispose oder FreeMem.

6. Records & Files history menue scroll up

 
RECORD
OPEN

ATTEND

FILESIZE

SEEK

CLOSE

... das Textverarbeitungsprojekt


7. Aufzählungsdaten - Set's history menue scroll up

 
???


8. Dynamische Datentypen (QUEUE, STACK, HEAP, LIST) history menue scroll up

Dieser Datentyp erlaubt es, komplett die Dimension und somit den Speicherraum in Anforderung des aktuellen Programmes flexibel zu halten, Will sagen, Variablen werden genau dann erst zur Laufzeit kreiiert, wenn sie benötigt werden und genau so auch wieder frei gegeben, wenn sie nicht mehr benötigt werden.
TYPES

HEAP ist ein dynamischer Speicherbereich, welcher mit folgenden mit den Variablen und Funktionen verwaltet wird: HEAPPTR, MEMAVAIL, SEG, OFS

NIL

deklarieren wir mit dem Präfix my_


9. Selbstdefinierte Datentypen - Datenstrukturen history menue scroll up

 
   

Datenstrukturen

Dynamische Datenstrukturen

Listen
Bäume
Graphen
Objekte


10. Verwandte Themen history menue scroll up

Im Begriff Wide-Aera Network läuft ja nun eigentlich technisch die gesamte Informatik zusammen - können und wollen wir gar nicht alles bedienen - aber einiges haben wir und stellen es als Denkanstoß auf diesen Links zur Verfügung. Schnell ist man natürlich im Innenleben der Netzwerke - nur für ganz harte Burschen geeignet ;-)
Bereich höhere Programmiersprachen

Worst-Case-Denken

ASide-Assembler

 
Bereich Datenübertragung

Datenübertragungsverfahren

OSI Referenz-Schichtenmodell

die RS232-Schnitttstelle

Tabelle des UNICODES

Kryptologie

Digitale Signale

Information, Nachricht und Signalbegriff

 

   
Bereich Mikroprozessortechnik und Einchipcontroller

der LC-80

POLYCOMPUTER

Z80-CPU

Mnemonic-Code-Notation

höhere Programmierwerkzeuge

... und so funktioniert ein Computer

 

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Alphabetisch sortierte Dokumentation

FLAG Teile I

FLAG Teile 2

Allgemeine Funktionssymbolik

Der LC-80 Simulator

Microcontroller

   
Bereich Programmierungstechnik

Programme

Programmierung

Programmiersprachen

Software-Engeneering

Logo der Struktogramme

EVA-Prinzip & Objekt-, Attribut-, Operatiosnbeziehung

Modultechnik

Intel-Interrupt-Logo

 
Bereich Rechentechnik und Betriebssyteme

Computergeschichte

von-Neumann-Architektur

Logo der Parallelrechnersystemee

Betriebssysteme

   



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 2005

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist

Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-)