Typumwandlung Konstanten Variablen und Konstanten

Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 50 um 1 erhöht und wiederum ausgegeben. Durch ReadLn wird verhindert, dass sich das Konsolenfenster sofort wieder schließt. ReadLn wartet darauf, dass der Benutzer eine Eingabe durch Drücken der Enter- Taste bestätigt. Die Anwendung kann jetzt über das Menü Start - Ausführen oder den Shortcut F9 kompiliert und gestartet werden. Es erscheint das folgende Fenster: Das ist jetzt aber merkwürdig. Die Variable wird im Programmcode um 1 erhöht, hat danach aber auf einmal einen negativen Wert. Wenn man sich den Wertebereich von Integer ansieht, fällt einem auf, dass der zuerst zugewiesene Wert die obere Grenze ist. Wenn man jetzt den Wert erhöht, kann die Variable den Wert nicht mehr speichern. Anstatt aber einen Fehler auszugeben, wird einfach von vorne begonnen zu zählen. Das hängt damit zusammen, wie Zahlen intern repräsentiert werden. Ist dieses Verhalten nicht erwünscht, dann sollte man in den Compiler-Optionen die Überlaufprüfung aktivieren.

4.1.9. Typumwandlung

Im Gegensatz zu einigen anderen Sprachen ist Delphi bei Typen sehr streng. Es ist also nicht möglich, einer Integer-Variablen eine Gleitkommazahl-Variable zuzuweisen. Dafür steht eine große Auswahl an Konvertierungsfunktionen zur Verfügung: von nach Funktion Beispiel Integer Real kein Problem, einfache Zuweisung var intzahl: integer; realzahl: real; begin realzahl := intzahl; Real Integer Möglichkeiten: - Nachkommastellen abschneiden trunc - kaufm. Runden round - aufrunden ceil, Unit Math - abrunden floor, Unit Math var realzahl: real; intzahl: integer; begin intzahl := truncrealzahl; intzahl := roundrealzahl; Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 51 Integer String IntToStr var textzahl: string; intzahl: integer; begin textzahl := IntToStrintzahl; Real String FloatToStr FloatToStrF var textzahl: string; realzahl: real; begin textzahl := FloatToStrrealzahl; String Integer StrToInt StrToIntDef var textzahl: string; intzahl: Integer; begin intzahl := StrToInttextzahl; String Real StrToFloat var textzahl: string; realzahl: real; begin realzahl := StrToFloattextzahl; String Char Zugriff über Index 1 ist erstes Zeichen var text: string; zeichen: char; begin zeichen := text[1]; Char String kein Problem, einfache Zuweisung var zeichen: char; text: string; begin text := zeichen;

4.1.10. Konstanten

Konstanten sind letztendlich Variablen, die innerhalb des Programms jedoch nur ausgelesen, nicht überschrieben werden dürfen. Deklariert werden sie an den gleichen Stellen wie Variablen, allerdings mit dem Schlüsselwort const anstelle von var, einem Gleichheitszeichen und ohne Angabe eines Datentyps: Object Pascal im Detail - Variablen und Konstanten www.delphi-treff.de 52 const Version = 1.23; Der Datentyp ergibt sich aus dem zugewiesenen Wert. Sind Anführungszeichen davor und dahinter, handelt es sich um einen String, sonst um eine Zahl. Enthält die Zahl kein Dezimaltrennzeichen, wird der Datentyp Integer verwendet, ansonsten Real. Ü BUNGSAUFGABEN 1. Welche dieser Variablendeklarationen sind in Delphi erlaubt mehr als eine Antwort möglich:  var _var1: Integer;  var i: String;  var 2teZahl: Integer;  var übung: Double; 2. A el he “telle i folge de Code ist die eile „ a : I tege ; nicht erlaubt? unit 1; interface uses SysUtils; 1 implementation 2 procedure DoSomething; 3 begin 4 x := 1; WriteLnIntToStrx; end; end. 3. Was passiert bei folgender Zuweisung: var x: Integer; begin x := 100.123; end; o Beim Kompilieren tritt ein Fehler auf. o Zur Laufzeit tritt ein Fehler auf. o Es tritt gar kein Fehler auf. Object Pascal im Detail - Datentypen www.delphi-treff.de