Typy danych w Pascalu i ich opis
1. Typy proste
A) porządkowe
- wyliczeniowe
type dzien_tygodnia=(poniedzialek, wtorek, sroda, czwartek,
piatek, sobota, niedziela);
type pora_roku=(wiosna, lato, jesień, zima);
type zbior=(a,b,c,d);
- całkowite
shortint od -128 do 127 1 bajt
byte od 0 do 255 1 bajt
integer od -32768 do 32767 2 bajty
word 0-65535 2 bajty
longint -2147483648 2147483647 4 bajty
deklaracja
type liczba=integer;
var i,j,k:liczba;
jest równoważna deklaracji
var i,j,k:integer;
- logiczne
boolean (0 false, 1 true), bytebool, wordbool, longbool
- typ znakowy char
elementami tego typu są znaki ASCII
- typy okrojone
ograniczenie dolne i ograniczenie górne
type litera='A'..'Z';
type litera jest podzbiorem typu char
type zakres =0..100;
typ okrojony jest podzbiorem każdego ze standardowych typów całkowitych
const a=10;
b=20;
type przedzial=2*(a-b)..2*(a+b)
elementami tego typu są liczby całkowite z przedziału [-20,60]
B) typy rzeczywiste
real 2.9e-39 1.7e38 6 bajtów
single 1.5e-45 3.4e38 4 bajty
double 5.0e-324 1.7e308 8 bajtów
extended 3.4e-4932 1.1e4932 10 bajtów
comp -9.2e18 9.2e18 8 bajtów
2. Typy łańcuchowe string
type nazwisko = string[20]; max długość 20 znaków
const zakres = 100;
type text = string[zakres];
3. Typy strukturalne
-typ tablicowy
type wektor = array[0..50] of integer;
type macierz = array[1..20] of array [1..30] of real;
type macierz = array[1..20,1..30] of real;
type zakres = 10..20;
tablica = array [zakres] of char;
-typ rekordowy
type data = record
rok: integer;
miesiac : 1..12;
dzien: 1..31
end;
type osoba = record
imie :string[20];
nazwisko :string[20];
nazwiskopanienskie :string[15];
posiadanie = (posiada, nie posiada);
stancywilny: (kawaler,panna,zonaty, zamezna, wolny);
end;
- typ zbiorowy
type dni_tygodnia = set of (poniedzialek, wtorek, sroda, czwartek, piątek);
type znaki = set of char;
male_litery = set of 'a'..'z';
- typ plikowy
type dane = file of integer;
type wyniki = file of real;
4. Typy wskaźnikowe
type wskaznik = ^zapis;
zapis = record
naglowek: char;
tekst : string[50];
liczba : integer;
end;
var adres:wskaznik;
5. Typy proceduralne
type procedura = procedure;
proc_1 = procedure(x :real, k: Integer, var y:real);
fun_1 = function(x:real):real;
licz = function(i:byte):real;
6. Typ obiektowy
type punkt = object
x,y:integer;
end;
type polozenie = object(punkt)
kolor:byte;
end;
type odcinek = object
x,y:integer;
procedure zaznacz(dx,dy:integer);
end;
procedure odcinek.zaznacz(dx,dy:integer);
begin
LineReal(dx,dy);
x:=x+dx;
y:=y+dy;
end;