Alweer geen Excel

Datatypes en operators

Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.

TP kent een hele reeks datatypes. Integers, reals, tekst:

Type
Range
Aantal bytes
Byte
0..255
1
Shortint
-128..127
1
Integer
-32768..32767
2
Word
0..65535
2
Longint
-2147483648..2147483647
4
Real
12 significante cijfers
6
Single
8 significante cijfers
4
Double
16 significante cijfers
8
Extended
20 significante cijfers
10
Comp
20 significante cijfers integer
8
Char
ASCII-karakter
1
String[n]
n karakters, maximaal 255
n+1
Boolean
True of False
1
     

Daarnaast kent TP ook een pointer-type. Een variabele van het pointer-type bevat een adres dat wijst naar data van het type dat in de declaratie van het pointer-type is aangegeven.

De operators van TP zijn vrij standaard. +, -, * en / voor optellen, aftrekken, vermenigvuldigen en delen. Aangezien met integere gerekend kan worden natuurlijk ook integer deling, div, en een rest-operator: mod (van modulus). Dan zijn er operators op bit-niveau: shl (shift left), shr, and, or, xor en not. Deze werken ook als logische operators, afhankelijk van het type van de gebruikte variabelen. A and B levert een bitwise and op als A en B bytes zijn en een logische and als A en B booleans zijn. 

Van de relationele operators (=, >=, <> et cetera) is in een opvallende. Je kan in Pascal een set definiëren, bijvoorbeeld als [‘a’..’z’], dan levert c in [‘a’..’z’] een true op als de waarde van c een kleine letter is.

Voor het werken met pointers zijn de operators @ en ^ van nut. @A geeft het adres van A en B^ geeft de inhoud van het adres waar B naar verwijst.

Voor de al eerdergenoemde sets zijn drie operators beschikbaar, denk aan een Venn-diagram: A+B is de set waarin de sets A en B zijn samengevoegd, A-B is de set van het verschil tussen A en B en A*B ten slotte geeft de set waarin A en B overlappen.

Ten slotte is er een operator die waardes aan een variabele toekent, de :=

Waar BASIC in de beginjaren het statement LET gebruikte voor toewijzing (LET A=10), maar later simpelweg A=10 toeliet en C voor vergelijkingen == gebruikt, doet Pascal dat door te vergelijken met = en toe te kennen met :=. A := 10 wijst de waarde 10 toe aan A, en A = 10 levert True op als A gelijk is aan 10.

Arnout van Kempen is naast computernerd ook directeur compliance & risk bij aaff. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.