Datentyp: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) (→Visuelle Programmierung: NEPO) |
Sn (Diskussion | Beiträge) K (Letzte Lücke geschlossen.) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Typische Datentypen, die in den meisten Programmiersprachen vorkommen, sind '''Ganzzahlen''', '''[[Fließkommazahlen]]''', '''[[Wahrheitswert]]e''' oder '''[[String (Datentyp)|Zeichenketten]]'''. | Typische Datentypen, die in den meisten Programmiersprachen vorkommen, sind '''Ganzzahlen''', '''[[Fließkommazahlen]]''', '''[[Wahrheitswert]]e''' oder '''[[String (Datentyp)|Zeichenketten]]'''. | ||
== Statisch getypte Sprachen == | |||
In manchen [[Programmiersprache]]n wie [[Java (Programmiersprache)|Java]] oder [[NEPO]] muss man bei der Deklaration einer [[Variable (Informatik)|Variable]]n ihren Datentyp festlegen. An dieser Stelle wird nämlich festgesetzt, wie viel Speicherplatz für diese Variable reserviert wird, denn das hängt vom Datentyp ab. An diesen Datentyp ist die Variable für den gesamten Programmablauf gebunden. Das bedeutet, dass in dieser Variablen keine Daten eines anderen Typs gespeichert werden dürfen. Programmiersprachen, in denen der Datentyp jeder Variablen bereits beim Programmieren feststehen muss und unveränderbar ist, heißen '''statisch getypt'''. | In manchen [[Programmiersprache]]n wie [[Java (Programmiersprache)|Java]] oder [[NEPO]] muss man bei der Deklaration einer [[Variable (Informatik)|Variable]]n ihren Datentyp festlegen. An dieser Stelle wird nämlich festgesetzt, wie viel Speicherplatz für diese Variable reserviert wird, denn das hängt vom Datentyp ab. An diesen Datentyp ist die Variable für den gesamten Programmablauf gebunden. Das bedeutet, dass in dieser Variablen keine Daten eines anderen Typs gespeichert werden dürfen. Programmiersprachen, in denen der Datentyp jeder Variablen bereits beim Programmieren feststehen muss und unveränderbar ist, heißen '''statisch getypt'''. | ||
Zeile 27: | Zeile 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
== Dynamisch getypte Sprachen == | |||
Andere Programmiersprachen wie [[JavaScript]], [[Scratch]] oder [[Python (Programmiersprache)|Python]] sind da entspannter. Auch hier haben die Daten Typen, aber diese dürfen sich während der Laufzeit des Programms ändern. Diese Sprachen heißen '''dynamisch getypt'''. | Andere Programmiersprachen wie [[JavaScript]], [[Scratch]] oder [[Python (Programmiersprache)|Python]] sind da entspannter. Auch hier haben die Daten Typen, aber diese dürfen sich während der Laufzeit des Programms ändern. Diese Sprachen heißen '''dynamisch getypt'''. | ||
Zeile 61: | Zeile 65: | ||
=== Textuelle Programmierung === | === Textuelle Programmierung === | ||
====Java==== | |||
{{:Java (Programmiersprache)/Datentypen}} | {{:Java (Programmiersprache)/Datentypen}} | ||
====Python==== | |||
{{:Python (Programmiersprache)/Datentypen}} | {{:Python (Programmiersprache)/Datentypen}} | ||
=== Datenbanken === | === Datenbanken === | ||
====SQL==== | |||
{{:SQL/Datentypen}} | {{:SQL/Datentypen}} | ||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] |
Aktuelle Version vom 28. August 2024, 11:37 Uhr
In der Programmierung werden verschiedene, aber gleichartige Daten zu Gruppen zusammengefasst, für die dieselben Regeln und Einschränkungen gelten und für die dieselben Operationen erlaubt sind. Diese Gruppen bezeichnet man als Datentyp.
Typische Datentypen, die in den meisten Programmiersprachen vorkommen, sind Ganzzahlen, Fließkommazahlen, Wahrheitswerte oder Zeichenketten.
Statisch getypte Sprachen
In manchen Programmiersprachen wie Java oder NEPO muss man bei der Deklaration einer Variablen ihren Datentyp festlegen. An dieser Stelle wird nämlich festgesetzt, wie viel Speicherplatz für diese Variable reserviert wird, denn das hängt vom Datentyp ab. An diesen Datentyp ist die Variable für den gesamten Programmablauf gebunden. Das bedeutet, dass in dieser Variablen keine Daten eines anderen Typs gespeichert werden dürfen. Programmiersprachen, in denen der Datentyp jeder Variablen bereits beim Programmieren feststehen muss und unveränderbar ist, heißen statisch getypt.
Ein kurzer Codeschnipsel in Java:
int antwort = 42;
// Die Variable antwort hat den Typ int.
// Darum dürfen in ihr nur ganze Zahlen gespeichert werden.
antwort = antwort * 2;
// Die Multiplikation ist ein zulässiger Operator für Ganzzahlen.
antwort.length()
// Die Methode length() darf nur auf Strings aufgerufen werden.
// Deswegen wird dieser Aufruf eine Fehlermeldung produzieren.
antwort = 3.141592;
// 3.141592 ist keine Ganzzahl und passt nicht mit dem Datentyp von antwort zusammen.
// Deswegen ist diese Zuweisung nicht zulässig.
antwort = 12345678987654321;
// Das ist zwar eine Ganzzahl, aber sie ist zu groß für den Wertebereich eines int.
// Deswegen ist auch diese Zuweisung nicht zulässig.
Dynamisch getypte Sprachen
Andere Programmiersprachen wie JavaScript, Scratch oder Python sind da entspannter. Auch hier haben die Daten Typen, aber diese dürfen sich während der Laufzeit des Programms ändern. Diese Sprachen heißen dynamisch getypt.
Ein kurzer Codeschnipsel in Python:
antwort = 42
print(type(antwort))
# ergibt <class 'int'>
# Die Variable antwort enthält also gerade eine Ganzzahl.
antwort = antwort * 2;
// Die Multiplikation ist ein zulässiger Operator für Ganzzahlen.
len(antwort)
# Die Funktion len() darf nur auf Strings aufgerufen werden.
# Deswegen wird dieser Aufruf eine Fehlermeldung produzieren.
antwort = 3.141592
print(type(antwort))
# ergibt <class 'float'>, da in der Variable nun eine Kommazahl gespeichert ist.
Datentypen in einigen Programmiersprachen
Visuelle Programmierung
Scratch
In Scratch wird zwischen zwei Datentypen unterschieden, die an der Form ihrer Blöcke auseinandergehalten werden können.
Typ | Art | Mögliche Werte | Zulässige Operationen | |
---|---|---|---|---|
<sechseckig>
|
Wahrheitswert | <wahr> , <falsch>
|
<nicht <>> , <<> und <>> , <<> oder <>>
| |
(rund)
|
Zahlen | bis zu 308 Ziffern | (() + ()) , (() - ()) , (() * ()) , (() / ()) , (() mod ()) , (() gerundet) , ([Betrag v] von ())
|
<() < ()> , <() > ()> , <() = ()>
|
Zeichen(-ketten) | beliebig lang | (verbinde () und ()) , (Länge von ()) , (Zeichen () von ()) , <() enthält ()?>
|
NEPO
Die Datentypen der Ausdrücke und Parameter in NEPO erkennt man an der Farbe der Puzzle-Nupsis an den Blöcken:
- Bei Ausdrücken zeigt der Nupsi nach links und zeigt den Datentyp an, den der Ausdruck zurückliefert
- Bei Parametern zeigt die Lücke nach rechts und zeigt den Datentyp an, den die Funktion an dieser Stelle benötigt.
Farbe | Art | Beispielwert | Beispiel für einen Block, der diesen Datentyp erfordert | Beispiel für einen Block, der diesen Datentyp zurückgibt |
---|---|---|---|---|
türkis | Wahrheitswerte | |||
blau | Zahlen | |||
grün | Zeichenketten | |||
gelb | Farben | |||
pink | Bilder |
Textuelle Programmierung
Java
Typ | Größe | Art | Mögliche Werte | Zulässige Operationen |
---|---|---|---|---|
boolean
|
1 Bit | Wahrheitswert | true , false
|
! , && , ||
|
char
|
2 Byte | Zeichen[J 1] | alle Unicode-Zeichen wie 'a' , '@' , '🦭'
|
+ , - , * , / , % , ^ , == , != , < , > , <= , >=
|
byte
|
1 Byte (duh!) | Ganzzahl | bis | |
short
|
2 Byte | bis | ||
int
|
4 Byte | bis | ||
long
|
8 Byte | bis | ||
float
|
4 Byte | Fließkommazahl | bis | |
double
|
8 Byte | bis |
- ↑ Unter der Haube werden Zeichen als Zahl zwischen 0 und 65536 gespeichert. Deswegen sind mit
char
s auch mathematische Operationen möglich.
Python
Typ | Erklärung | Beispiele |
---|---|---|
int
|
für ganze Zahlen (engl. integer numbers) | 0 , 42 , 3190701205
|
float
|
für Dezimalzahlen (“Kommazahlen”, engl. floating-point numbers) | 0.5 , 42.0 , 3.141592
|
str
|
für beliebige Zeichenketten (engl. strings) | 'Hello World' , '42' , 'https://wiki.kah.gs'
|
bool
|
für Wahrheitswerte (engl. boolean)[P 1] | True , False
|
- ↑ Logische Wahrheitswerte werden nach George Boole, einem Pionier der mathematischen Logik, auch als "boolesche Werte" bezeichnet (im Englischen "boolean").
Datenbanken
SQL
Typ | Beschreibung | |
---|---|---|
Numerische Datentypen | INT
|
Ganzzahlen zwischen und |
BIGINT
|
Ganzzahlen zwischen und | |
REAL
|
Reelle Zahlen zwischen und | |
Strings | CHAR(länge)
|
Strings mit der vorgegebenen Länge (max. 8000 Zeichen) |
VARCHAR(länge)
|
Strings mit variabler, aber höchstens mit der vorgegebenen Länge (max. 8000 Zeichen) | |
TEXT
|
Strings mit beliebiger Länge, höchstens 2 GB Text. | |
Datum und Zeit | DATE
|
Daten zwischen 0001-01-01 und 9999-12-31
|
TIME
|
Zeitangaben mit einer Genauigkeit von 100 Nanosekunden | |
DATETIME
|
Datum und Zeitangaben kombiniert |