Projekt mit
1 €
unterstützen?
So geht das *:


Step 04 - Variablen und Konstanten

Was sind Variablen überhaupt?

Eine Variable ist, wie aus der Mathematik bekannt, ein Feld, das gewisse Werte annehmen kann. In Delphi, werden diese Werte durch einen bestimmten Variablentyp bzw. Wertebereich eingegrenzt. Als Variablenname sollte man möglichst sprechende Namen nehmen, die dann einen sprechenden Text ergeben lassen, so dass man auch später wieder leicht in das Projekt reindenken kann.

Lazarus hat die gleichen Variablen-Definitionsbereiche wie Delphi. Daher wurde dieser Step fast vollständig vom Anfängerbereich übernommen.

 

Die gebräuchlichsten Variablentypen sind u.a. für Zahlen:

Typ Wertebereich Beispiel
Byte (Ganzzahl) von 0 bis 255 3
Smallint von -32768 bis 32767 300
Word von 0 bis 65535 32768
Integer von -2147483648 bis 2147483647 65536
Cardinal von 0 bis 4294967295 300000
Int64 von -9223372036854775808 bis 9223372036854775807 4294967296
Real or Double (Kommazahl) 5.0 x 10324 bis 1.7 x 10308 1.53
Extended

von -3,6 x 104951 bis 1,1 x 104932

6.74E4000

#2 Mehr Infos

Für Lazarus gibt es eine sehr detailiertes Online-Wiki in Englisch:
Hier zum Artikel über Ordinal Types

 

Nun zu den Typen die Zeichenketten speichern

Typ Wertebereich Beispiel
Char Buchstabe 'a' (Zeichen und Zeichenketten werden mit einfachem Anführungszeichen abgegrenzt)
oder: #[Zahl] gibt den ASCII-Code des Zeichens an. Beispiel:
#13 ist ein Zeilenumbruch.
String Viele Buchstaben-> Zeichenkette 'Dies ist eine Zeichenkette'
PChar Wie ein String, nur - sagen wir mal - anders gemanaged. 'Diese Zeichenkette geht auch als PChar'
'diese hier'+'nicht!'

Ein PChar ist ein String-Objekt. Später lernen wir genauer, was Objekte sind, aber soviel schonmal vorweg: Wenn dem Objekt nicht "beigebracht" wurde, was passieren soll, wenn man es addiert, dann bekommt man auch keine zufriedenstellenden Ergebnisse. PChar + PChar ist also nicht möglich, es sei denn wir "konvertieren" es.

 

Konstanten

Konstanten sind im Grunde auch Variablen mit dem Unterschied, dass sie nicht verändert, sondern nur gelesen werden können. Konstanten werden in der Regel KOMPLETT GROSS geschrieben.

Konstantentypen werden nicht benötigt. Die Werte nehmen automatisch den kleinstmöglichen Speicher an.

 

Deklaration und Initialisierung von Variablen

Beim Benennen der Variablen sollte kleingeschrieben angefangen und ggf. Binnenmajuskel gebildet werden:

var
  s            : String;
  a,b,i        : Integer;
  r,s,t        : Extended;
  durchschnitt : Integer;
  kleinOtto    : Word;
  vorname,
  nachname     : String;
Name der Variable : Variablentyp;

Variablen initialisieren / einen Wert zuweisen:

  s := 'Meine Zeichenkette';
  i := 20;
Das ":=" weist einer Variable einen Wert zu. Der Wert muss auch in der Definitionsmenge des Variablentypes liegen.

 

Ein guter Stil.

Was man sich wirklich gleich zu Beginn aneignen sollte, ist der gute Programmierstil.
Im Grunde könnte man ein Programm in nur einer Zeile schreiben, aber um den maximalen ▄berblick zu haben, empfiehlt es sich, eine gewisse Ordnung einzuhalten.
Wie in dem obigen Beispiel, kann es sehr hilfreich sein, die Variablen und ihre Typ-Zuweisungen sichtlich zu trennen.
Bei einer Zuweisung empfiehlt sich auch immer ein Leerzeichen mehr einzutippen. Das erleichtert dann die Suche, wenn wir nur die Zuweisung von Werten bei einer Variable suchen: " s := "

 

Deklaration von Konstanten

const 
  APP_NAME = 'Mein Programm';
  VERSION = 1170;

Name der Konstante = Wert;

 

Rechenoperatoren

Die "normalen" Rechenoperatoren (+,-,*) sind auf alle Zahlentypen anwendbar.
Kritisch ist es aber bei der Division. Da z.B. die Rechnung 7/3 für Integer-Werte lösbar ist, muss hierfür ein spezieller Operator eingeführt werden: DIV
Dieser Operator gibt an wie oft die 3 in die 7 passt (2).
Nun ist aber je nach dem auch die Information über den bei der Division entstandenen Rest brauchbar.
Lösung: Der Operator MOD
7 MOD 3 = 1

 

Beispiele:
// mit zwei Slashes wird ein einzeiliger Kommentar eingeleitet
// Kommentare werden vom Compiler beim Übersetzen des Quellcodes in Binärcode ignoriert.

// Beispiel 1 - Integer:
var

  a,b,r,q : Integer;
 [..]
  a := 7 * 5;
  b := 5 - 3 + 1;
  q := a DIV b; // q ist hiernach = 11

  r := a MOD b; // r ist hiernach = 2
 [..]


// Beispiel 2 - Real:
const
  E = 2.71828183;
  // VORSICHT! In Delphi wird Groß und Kleinschreibung 
  //           Nicht berücksichtigt! Wird irgendwo eine lokale
  //           Variable auch e genannt, so kann auf E nichtmehr
  //           zugegriffen werden. Näheres später in OOP
  // Es bietet sich also eher an, "Sprechendere Namen" zu verwenden:
  EULER_EXP = 2.71828183;


 [..]
var
  a, b, q : Real;
begin
  a := EULER_EXP*2;
  b := 20*EULER_EXP/4;
  q := a/b; // q ist hiernach 0.4
 [..]

 
// Beispiel 3 - Strings:
var
  s1, s2, hallo_welt : String
[..]
  s1:='Hallo ';
  s2:='Welt';
  hallo_welt:=s1+s2;// Strings addieren = Strings zusammenfügen.
// Subtraktion, Multiplikation und Division logischerweise nicht möglich.

 

Sollten weitere Fragen oder Unklarheiten zu den hier vorgestellten Themen bestehen, könnt ihr gerne das unten befindliche Kommentar-Modul benutzen um die Fragen zu beschreiben!

 


Da das Kommentarmodul dieser Seite zur Zeit neu überarbeitet werden muss, sendet bitte alle Fragen, Anregungen oder Probleme mit Betreff zu welchem Thema es sich handelt an folgende Mailadresse:



www.marco-hetzel.de
www.delphi-lernen.de
www.lazarus-lernen.de

© 2006-2019 by Marco Hetzel , last modified 01.11.2018, 11:28

(* Unterstützung dient der Aufrechthaltung laufender Kosten für dieses Projekt.)