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;