Jak liczby całkowite są oznaczane w turbopascalu. TurboPascal. Typy danych. Kolejność operacji

Zwykle dane podczas komputerowego przetwarzania prezentowane są albo w postaci pojedynczych wartości, albo w postaci ich agregatów. Jedną z najważniejszych i być może najważniejszą cechą ilości jest jej rodzaj.

Co definiują typy danych Pascala?

Po pierwsze, możliwe wartości zmiennych, funkcji, wyrażeń, stałych należących do oryginalnego typu; po drugie, określa wewnętrzną formę reprezentacji danych w komputerze; i po trzecie, definiuje funkcje i operacje wykonywane na wartościach należących do tego lub innego typu.

W języku Pascal wszystkie zmienne, które będą później wykorzystywane w programie muszą być zadeklarowane w sekcji opisu, wskazując ich typ. Ciągły obowiązkowy opis typu prowadzi do pojawienia się redundancji w tekście źródłowym programów, ale jednocześnie ta redundancja jest narzędziem pomocniczym w procesie tworzenia programów - co jest niezbędną właściwością współczesnych języków wysokiego poziomu .

Pascal wyróżnia następujące typy danych:

Poniższa tabela przedstawia odmiany prostych typów danych w Pascalu i ich cechy:

Typy porządkowe zaliczane do grupy prostych charakteryzują się następującymi właściwościami:

  1. Nieskończony zbiór wartości typu porządkowego jest ograniczonym uporządkowanym zbiorem;
  2. Standardowa funkcja Ord (zwraca liczbę porządkową określonej wartości w danym typie) dotyczy każdego możliwego typu porządkowego;
  3. Do każdego możliwego typu porządkowego, gdy zajdzie taka potrzeba, możesz aplikować standardowe funkcje Pred i Succ, które zwracają odpowiednio poprzednią i następną wartość;
  4. Do każdego możliwego typu porządkowego czasami można zastosować standardowe funkcje Low i High, które zwracają odpowiednio najmniejszą i największą wartość danego typu.

Równoważność i zgodność typów danych:

Równie ważne w języku Pascal są pojęcia równoważności i zgodności typów. Zdefiniujmy te pojęcia. Dwa typy TIP1 i TIP2 są nazywane równoważnymi, jeśli spełniony jest jeden z następujących warunków:

  1. TIP1 i TIP2 to ta sama nazwa typu;
  2. typ TIP2 jest deklarowany przy użyciu typu TIP1 przy użyciu równości lub sekwencji równości:

wpisz TIP1 = liczba całkowita; WSKAZÓWKA2 = WSKAZÓWKA1; WSKAZÓWKA3 = WSKAZÓWKA2;

Teraz wprowadzamy pojęcie zgodności typów. Mówi się, że typy są zgodne, jeśli:

  1. te typy są równoważne;
  2. są albo liczbami całkowitymi, albo rzeczywistymi;
  3. jeden z dwóch typów to interwał, drugi to jego podstawa;
  4. oba typy są typami interwałowymi o wspólnej podstawie;
  5. jeden z dwóch typów to łańcuch, drugi to znak.

Ograniczenia zgodności typów można obejść za pomocą rzutowania typów:

Gdy rzutowanie typu jest używane w odwołaniu do zmiennej, zmienna jest traktowana jako wystąpienie typu reprezentowanego przez identyfikator typu. Rozmiar zmiennej (czyli liczba bajtów zajmowanych przez zmienną) musi być równy rozmiarowi typu reprezentowanego przez identyfikator typu.

Typ danych definiuje zestaw dozwolonych wartości i zestaw dozwolonych operacji.

Proste typy.

Typy proste dzielą się na PORZĄDKOWE i RZECZYWISTE.

1. Typy porządkowe , z kolei są:

cały

Pascal definiuje 5 typów liczb całkowitych, które są określane w zależności od znaku i wartości, jaką przyjmie zmienna.

Wpisz imię

Długość (w bajtach)

Zakres wartości

32 768...+32 767

2 147 483 648...+2 147 483 647

b) logiczne

Nazwa tego typu to BOOLEAN. Wartości logiczne mogą być jedną ze stałych logicznych: TRUE (prawda) lub FALSE (fałsz).

c) symboliczne

Nazwa tego typu CHAR - zajmuje 1 bajt. Wartość typu znaku to zestaw wszystkich znaków PK. Do każdego znaku przypisana jest liczba całkowita z zakresu 0...255. Numer ten służy jako kod do wewnętrznej reprezentacji postaci.

2. PRAWDZIWE TYPY .

W przeciwieństwie do typów porządkowych, których wartości są zawsze porównywane z szeregiem liczb całkowitych, a zatem są reprezentowane w komputerze absolutnie dokładnie, wartości typów rzeczywistych określają dowolną liczbę tylko z pewną skończoną dokładnością, w zależności od formatu wewnętrznego liczby rzeczywistej.

Długość liczbowego typu danych, bajty

Nazwa liczbowego typu danych

Liczba cyfr znaczących liczbowego typu danych

Dziesiętny zakres wykładnika liczbowego typu danych

2*1063 +1..+2*1063 -1

TYPY STRUKTURALNE

Ustrukturyzowane typy danych definiują uporządkowany zestaw zmiennych skalarnych i charakteryzują się typem ich składników.

Ustrukturyzowane typy danych, w przeciwieństwie do prostych, definiują zestawy złożonych wartości o jednej wspólnej nazwie. Można powiedzieć, że typy strukturalne definiują pewien sposób tworzenia nowych typów z istniejących.

Istnieje kilka metod strukturyzacji. W zależności od sposobu organizacji i rodzaju komponentów w złożonych typach danych rozróżnia się następujące odmiany: typ regularny (tablice); łączony typ (zapisy); typ pliku (pliki); wiele typów; typ ciągu (stringi); Turbo Pascal w wersji 6.0 i nowszych wprowadza typ obiektu (obiekty).

W przeciwieństwie do prostych typów danych, dane typu strukturalnego charakteryzują się wieloma elementami, które składają się na ten typ, tj. zmienna lub stała typu strukturalnego zawsze ma wiele składników. Każdy składnik z kolei może należeć do typu strukturalnego, tj. możliwe zagnieżdżanie typów.

1. Tablice

Tablice w Turbo Pascal są pod wieloma względami podobne do podobnych typów danych w innych językach programowania. Cechą charakterystyczną tablic jest to, że wszystkie ich składniki są danymi tego samego typu (ewentualnie ustrukturyzowane). Elementy te można łatwo zamówić, a dostęp do każdego z nich można uzyskać po prostu podając numer seryjny.

Opis tablicy jest zdefiniowany w następujący sposób:

<имя типа>= tablica[<сп.инд.типов>] z<тип>

Tutaj<имя типа>- poprawny identyfikator;

Tablica, z - słowa zastrzeżone (tablica, z);

<сп.инд.типов>- lista jednego lub więcej typów indeksów oddzielonych przecinkami; nawiasy kwadratowe otaczające listę są wymogiem składni;

<тип>- każdy rodzaj Turbo Pascala.

Jako typy indeksów w Turbo Pascal można używać dowolnych typów porządkowych, z wyjątkiem LongInt i typów zakresowych z typem podstawowym LongInt.

Głębokość zagnieżdżenia typów strukturalnych w ogóle, a więc tablic, jest dowolna, więc liczba elementów na liście indeksów typów (wymiar tablicy) nie jest ograniczona, jednak całkowita długość wewnętrznej reprezentacji jakiejkolwiek tablicy nie może przekracza 65520 bajtów.

2. Nagrania

Rekord to struktura danych, która składa się ze stałej liczby komponentów zwanych polami rekordu. W przeciwieństwie do tablicy, składniki (pola) rekordu mogą być różne rodzaje. Aby móc odwoływać się do jednego lub drugiego składnika rekordu, pola są nazwane.

Struktura deklaracji typu rekordu jest następująca:

< imięrodzaj>= ZAPIS< cn. pola>KONIEC

Tutaj<имя типа>- poprawny identyfikator;

RECORD, END - słowa zastrzeżone (rekord, koniec);

<сп.полей>- lista pól; to sekwencja sekcji rekordu oddzielona średnikiem.

3 zestawy

Zbiory to zbiór powiązanych ze sobą obiektów logicznych tego samego typu. Charakter relacji między obiektami jest jedynie implikowany przez programistę i nie jest w żaden sposób kontrolowany przez Turbo Pascal. liczba elementów wchodzących w skład zbioru może wahać się od 0 do 256 (zestaw nie zawierający elementów nazywany jest pustym).Zbiory różnią się od tablic i rekordów zmiennością liczby ich elementów.

Dwa zestawy są uważane za równoważne wtedy i tylko wtedy, gdy wszystkie ich elementy są takie same, a kolejność elementów zestawu jest obojętna. Jeśli wszystkie elementy jednego zestawu są również zawarte w innym, mówimy, że pierwszy zestaw jest zawarty w drugim.

Opis typu zestawu to:

< imięrodzaj>=ZESTAW< podstawy. rodzaj>

Tutaj<имя типа>- poprawny identyfikator;

SET, OF - słowa zastrzeżone (zestaw, od);

<баз.тип>- typ bazowy elementów zbioru, który może być dowolnym typem porządkowym, z wyjątkiem WORD, INTEGER i LONGINT.

Do określenia zestawu używany jest tzw. konstruktor zestawu: lista specyfikacji elementów zestawu oddzielonych od siebie przecinkami; lista jest ujęta w nawiasy kwadratowe. Specyfikacje elementów mogą być stałymi lub wyrażeniami typu podstawowego lub typem zakresu tego samego typu podstawowego.

4. Pliki

Plik jest albo nazwanym obszarem pamięć zewnętrzna Komputer PC lub urządzenie logiczne jest potencjalnym źródłem lub odbiornikiem informacji.

Każdy plik ma trzy charakterystyczne cechy

    ma nazwę, dzięki której program może pracować z kilkoma plikami jednocześnie.

    zawiera komponenty tego samego typu. Typ komponentu może być dowolnym typem Turbo Pascal, z wyjątkiem plików. Innymi słowy, nie można utworzyć „pliku plików”.

    znowu długość utworzony plik nie jest określana w żaden sposób, gdy jest deklarowana i jest ograniczona jedynie pojemnością zewnętrznych urządzeń pamięci.

Typ pliku lub zmienną typu pliku można określić na jeden z trzech sposobów:

< imię>= PLIK< rodzaj>;

< imię>=TEKST;

<имя>= PLIK;

Tutaj<имя>- nazwa typu pliku (poprawny identyfikator);

FILE, OF - słowa zastrzeżone (plik, z);

TEKST to nazwa standardowego typu plików tekstowych;

<тип>- każdy rodzaj Turbo Pascala, z wyjątkiem plików.

W zależności od metody deklaracji można wyróżnić trzy typy plików:

Typowane pliki (określone w klauzuli FILE OF…);

pliki tekstowe (określane przez typ TEKST);

pliki bez typu (określone przez typ FILE).

Informacje o konwersji liczbowych typów danych w Pascal

Niejawne (automatyczne) konwersje liczbowych typów danych są w Pascalu prawie niemożliwe. Wyjątek dotyczy tylko typu integer, który może być używany w wyrażeniach typu rzeczywistego. Na przykład, jeśli zmienne są zadeklarowane w następujący sposób:

VarX: liczba całkowita; Y: prawdziwe

wtedy operator

będzie poprawna składniowo, chociaż wyrażenie liczby całkowitej znajduje się po prawej stronie znaku przypisania, a zmienna rzeczywista po lewej, kompilator automatycznie dokona konwersji typów danych numerycznych. Automatyczna konwersja odwrotna z typu rzeczywistego na typ całkowity jest w Pascalu niemożliwa. Pamiętajmy ile bajtów jest przydzielonych na zmienne typu integer i real: 2 bajty pamięci są przeznaczone na dane typu integer, a 6 bajtów na real. Istnieją dwie wbudowane funkcje do konwersji liczby rzeczywistej na liczbę całkowitą: round(x) zaokrągla liczbę rzeczywistą x do najbliższej liczby całkowitej, trunc(x) obcina liczbę rzeczywistą przez odrzucenie części ułamkowej.

Dane są ogólna koncepcja za wszystko, z czym współpracuje komputer. Każdy typ danych definiuje zestaw wartości, jakie może przyjąć dana zmienna oraz operacje, które można na nich zastosować.Z każdą zmienną napotkaną w programie musi być powiązany jeden i tylko jeden typ.

W Pascalu istnieją dwa rodzaje typów prostych: typy porządkowe i typy rzeczywiste. Typ porządkowy jest zdefiniowany przez programistę (typ wyliczeniowy lub typ zakresu) lub oznaczony nazwą jednego z trzech wstępnie zdefiniowanych typów porządkowych: Boolean, Integer lub Char . Typ rzeczywisty jest oznaczony predefiniowaną nazwą typu Real .

Typ wyliczany charakteryzuje się zestawem odrębnych wartości, które zawiera, wśród których definiuje się porządek liniowy. Same wartości są oznaczone w definicji tego typu nazwami.

Typ zakresu (zastrzeżony) jest określany przy użyciu wartości minimalnych i maksymalnych opisanego wcześniej typu porządkowego. W ten sposób generowany jest nowy typ porządkowy.

Porządkowe typy danych

Porządkowy typ danych opisuje skończony i uporządkowany zestaw wartości. Wartości te są mapowane do sekwencji numerów seryjnych 0,1,2,...; wyjątek jest zrobiony tylko dla liczb porządkowych liczb całkowitych, które mapują się na siebie. Każdy typ porządkowy ma wartość minimalną i maksymalną. Dla wszystkich wartości z wyjątkiem wartości minimalnej istnieje wartość poprzednia, a dla wszystkich wartości oprócz wartości maksymalnej istnieje wartość kolejna.

Predefiniowane funkcje succ, pred, ord akceptują argumenty dowolnego typu porządkowego:
succ(X) - podaje kolejną wartość porządkową po X
pred(X) - daje poprzednią wartość porządkową X
ord(X) - podaje liczbę porządkową dla X

Dla wszystkich typów porządkowych istnieją operatory relacyjne = , = i > i zakłada się, że oba operandy są tego samego typu.

Typ Boole'a (Boole'a)

Wartość logiczna jest jedną z dwóch wartości logicznych oznaczonych predefiniowanymi nazwami false i true .

Istnieją następujące operacje logiczne, które po zastosowaniu do operandów logicznych dają wartość logiczną:
oraz - logiczne AND
lub - logiczne OR
nie - logiczne NIE

Ponadto każda z operacji relacyjnych (= , = , > , in) daje wynik logiczny.

Dodatkowo typ logiczny jest zdefiniowany tak, że false

Istnieją również predefiniowane funkcje logiczne (tj. funkcje dające logiczny wynik):
nieparzyste(F) - prawda, jeśli liczba F jest nieparzysta, a fałsz, jeśli F jest parzyste
eoln(F) - sprawdza koniec ciągu
eof(F) - sprawdź koniec pliku

Typ liczby całkowitej (liczba całkowita)

Typ integer zawiera zestaw liczb całkowitych.

Podczas operacji na operandach całkowitych następujące operacje arytmetyczne dają wartości całkowite:
* - mnożenie
div - część całkowita dzielenia
mod - modulo
+ - dodawanie
- - odejmowanie

Istnieje również predefiniowana stała w Pascalu o nazwie MaxInt , która zawiera maksymalną wartość typu Integer i jest równa 32767

Cztery ważne predefiniowane funkcje dają również cały wynik:
abs(I) - wartość bezwzględna liczby całkowitej I
sgr(I) - liczba całkowita I do kwadratu, pod warunkiem, że I trunc(R) - daje całkowitą część liczby rzeczywistej R
round(R) — Zwraca zaokrągloną liczbę całkowitą. W tym przypadku: dla R>0 oznacza obcięcie(R+0.5) , a dla R

Jeśli I jest liczbą całkowitą, to:
succ(I) - podaje następną liczbę całkowitą (I+1)
pred(I) - podaje poprzednią liczbę całkowitą (I-1)

Typ znaku (znak)

Wartości typu Char są elementami skończonego i uporządkowanego zbioru znaków. Wartości tego typu oznaczamy pojedynczym znakiem ujętym w pojedyncze cudzysłowy (apostrofy). Jeśli potrzebujesz samego apostrofu, to jest on napisany dwukrotnie.
Przykłady: "*" "G" "3" """" "X"

    Dla typu Char obowiązują następujące minimalne założenia:
  1. Cyfry dziesiętne od 0 do 9 są uporządkowane według ich wartości liczbowych i następują po sobie (na przykład succ("5") = "6").
  2. Mogą istnieć wielkie litery od „A” do „Z”; jeśli tak, to są zamawiane w kolejność alfabetyczna, ale niekoniecznie następują po sobie (na przykład „A”
  3. może istnieć małe litery od A do Z"; jeśli tak, są uporządkowane alfabetycznie, ale niekoniecznie następują po sobie (np. „a”

Aby odwzorować dany zestaw znaków na numery seryjne iz powrotem, istnieją dwie predefiniowane funkcje:
ord(C) - podaje liczbę porządkową znaku C we wspomnianym uporządkowanym zestawie znaków
chr(I) - podaje postać z porządkiem I

W przypadku argumentów typu Char predefiniowane funkcje pred i succ można zdefiniować w następujący sposób:
pred(C) = chr(ord(C)-I)
succ(C) = chr(ord(C)+I)

Komentarz. Znak poprzedzający lub następujący po tym znaku zależy od określonego zestawu znaków, więc obie te relacje są prawidłowe tylko wtedy, gdy istnieje znak poprzedzający lub następujący.

Typ rzeczywisty (prawdziwy)

Wartości rzeczywiste to elementy podzbioru liczb rzeczywistych zdefiniowanego w implementacji.

Wszystkie operacje na wartościach rzeczywistych są przybliżone, ich precyzja jest określona przez implementację (maszynę), z którą mamy do czynienia. Prawdziwy typ odnosi się do prosty typ, nie jest to typ porządkowy. Wartości rzeczywiste nie mają liczby porządkowej, a dla żadnej z nich nie ma żadnej poprzedniej ani następnej wartości.

Jeśli przynajmniej jeden z operandów jest typu rzeczywistego (drugi może być liczbą całkowitą), następujące operacje dają wynik rzeczywisty:
* - mnożenie
/ - dzielenie (oba argumenty mogą być liczbami całkowitymi, ale wynik jest zawsze prawdziwy)
+ - dodawanie
- - odejmowanie

Istnieją predefiniowane funkcje, które dają rzeczywisty wynik z prawdziwym argumentem:
abs(R) - wartość bezwzględna R
sqr(R) - R do kwadratu, jeśli wynik mieści się w zakresie liczb rzeczywistych

A te predefiniowane funkcje dają wynik rzeczywisty z argumentem całkowitym lub rzeczywistym:
sin(X) - daje sinus X; X wyrażone w radianach
cos(X) - daje cosinus X; X wyrażone w radianach
arctan(X) - daje arcus tangens X wyrażony w radianach
ln(X) - podaje wartość logarytmu naturalnego (o podstawie e) dla X, X>0
exp(X) - podaje wartość funkcji wykładniczej (czyli do potęgi X)
sqrt(X) - podaje wartość pierwiastka kwadratowego z X, X>=0

Ostrzeżenie. Funkcji pred, succ nie można używać z argumentami rzeczywistymi Nie można używać wartości typu rzeczywistego przy indeksowaniu tablic, do sterowania w pętli z parametrem, do określania typu bazowego zbiorów, do indeksowania w operatorze wariantu.

Typy danych w języku Pascal: klasyfikacja i opisy. Typy danych arytmetycznych i porządkowych, akcje z nimi. Wyrażenia arytmetyczne: funkcje, operacje i kolejność operacji. Zgodność i konwersje typów danych.

Kompilatory Pascala wymagają podania informacji o ilości pamięci wymaganej do uruchomienia programu przed jego uruchomieniem. W tym celu w sekcji deklaracji zmiennych ( var) musisz wymienić wszystkie zmienne używane w programie. Dodatkowo musisz także powiedzieć kompilatorowi, ile pamięci zajmie każda z tych zmiennych. Miło byłoby również uzgodnić z góry różne operacje mające zastosowanie do niektórych zmiennych…

Wszystko to można przekazać programowi, po prostu określając typ przyszłej zmiennej. Dysponując informacją o rodzaju zmiennej, kompilator „rozumie” ile bajtów należy dla niej przydzielić, jakie akcje można z nią wykonać oraz w jakich konstrukcjach może brać udział.

Dla wygody programistów, język Pascal istnieje wiele standardowych typów danych oraz możliwość tworzenia nowych typów.

Konstruując nowe typy danych na podstawie istniejących (standardowych lub ponownie zdefiniowanych przez samego programistę) należy pamiętać, że każdy budynek musi być zbudowany na dobrym fundamencie. Dlatego teraz porozmawiamy o tym „podstawie”.

Na podstawie podstawowe typy danych budowane są wszystkie inne typy języka Pascal, które nazywane są: zbudowana.

Podział na podstawowe i konstruowane typy danych w języku Pascal przedstawia tabela:

Typy danych konstruowane przez programistę są opisane w rozdziale rodzaj według następującego wzoru:

rodzaj<имя_типа> = <описание_типа>;

Na przykład:

wpisz Lat_Bukvy = "a" .. "z", "A" .. "Z";

Podstawowe typy danych są standardowe, więc nie ma potrzeby ich opisywania w sekcji rodzaj. Jednak w razie potrzeby można to również zrobić, na przykład podając długie definicje krótkie imiona. Powiedzmy, wprowadzając nowy typ danych

wpisz Int = liczba całkowita;

możesz trochę skrócić tekst programu.

W sekcji można również pominąć standardowe typy konstrukcji rodzaj. Jednak w niektórych przypadkach nadal trzeba to zrobić ze względu na wymagania dotyczące składni. Na przykład w lista parametrów procedury lub Funkcje nie można używać konstruktorów typu (zobacz wykład 8).

Porządkowe typy danych

Wśród podstawowych typów danych najbardziej widoczne są: typy porządkowe. Nazwę tę można uzasadnić na dwa sposoby:

Standardowe procedury, które przetwarzają porządkowe typy danych

Tylko dla ilości typy porządkowe zdefiniowane są następujące funkcje i procedury:

  1. Funkcjonować Ord(x) zwraca liczbę porządkową wartości zmiennej x (względem typu, do którego należy zmienna x).
  2. Funkcjonować pred(x) zwraca wartość poprzedzającą x (nie dotyczy pierwszego elementu typu).
  3. Funkcjonować Succ(x) zwraca wartość po x (nie dotyczy ostatniego elementu typu).
  4. Procedura Inc(x) zwraca wartość po x (for arytmetyczne typy danych jest to równoważne x:= x + 1).
  5. Procedura Inc(x, k) zwraca k-tą wartość po x (for arytmetyczne typy danych jest to równoważne x:= x + k).
  6. Procedura Grudzień(x) zwraca wartość przed x (for arytmetyczne typy danych jest to równoważne x:= x - 1).
  7. Procedura Grudzień(x, k) zwraca wartość k-e poprzedzającą x (for arytmetyczne typy danych jest to równoważne x:= x - k).

Na pierwszy rzut oka wydaje się, że efekt zastosowania procedury Inc(x) całkowicie pokrywa się z wynikiem zastosowania funkcji Succ(x). Jednak różnica między nimi pojawia się na granicach dopuszczalnego zakresu. Funkcjonować Succ(x) nie ma zastosowania do maksymalnego elementu typu, ale procedura Inc(x) nie da żadnego błędu, ale działając zgodnie z zasadami dodawania maszyny doda kolejną jednostkę do numeru elementu. Liczba oczywiście wykroczy poza zakres i przez obcięcie zamieni się w liczbę o minimalnej wartości zakresu. Okazuje się, że procedury Inc() I Grudzień() postrzegaj każdy typ porządkowy jako „zamknięty w pierścieniu”: zaraz po ostatnim ponownie pojawia się pierwsza wartość.

Wyjaśnijmy wszystko, co zostało powiedziane na przykładzie. Dla typu danych

wpisz szesnaście = 0 .. 15 ;

próba dodania 1 do liczby 15 da następujący wynik:

1 1 1 1 1 1 0 0 0 0

Początkowa jednostka zostanie odcięta i dlatego okaże się, że Inc(15)=0 .

Podobna sytuacja w dolnej granicy dopuszczalnego zakresu arbitralnego typu danych porządkowych jest obserwowana dla procedury Grudzień(x) i funkcje pred(x):

Typy danych związane z porządkowy

Opiszmy teraz porządkowe typy danych w szczegółach.

  1. typ logiczny Boole'a ma dwie wartości: False i True , i obowiązują dla nich następujące równości:
  2. Aby wpisać znak Zwęglać zawiera 256 znaków rozszerzona tabela ASCII(na przykład „a”, „b”, „i”, „7”, „#”). Numer znaku zwracany przez funkcję Ord() , pasuje do liczby tego znaku w Tabela ASCII.
  3. Typy danych całkowitych postawmy to w tabeli:
  4. wyliczone typy danych są określone w sekcji rodzaj jednoznaczne wyliczenie ich elementów. Na przykład:

    wpisz Tydzień = (nd., pon., wt., śr., czw., pt., sob.); 0 1 2 3 4 5 6

    Przypomnij sobie, że dla tego typu danych:

  5. Interwałowe typy danych są wyznaczane jedynie przez granice ich zasięgu. Na przykład:

    wpisz Miesiąc = 1 .. 12 ;
    Budni = pon.. pt;

  6. Programista może również tworzyć własne typy danych, które są kombinacją kilku standardowych typów. Na przykład:

    wpisz Valid_For_Identifiers = "a" .. "z" , "A" .. "Z" , "_" , "0" .. "9" ;

Ten typ polega na łączeniu kilku interwałów, a w tym przypadku kolejność jest odwrócona litery łacińskie: jeśli w standardowym typie