Języki programowania zaliczenie wykłady Języki programowania2

Języki programowania – 30 marca 2011

Typy zmiennej określa się w deklaracji zmiennej.

Typy proste:

Typy łańcuchowe

Typy strukturalne:

Typy wskaźnikowe

Typy proceduralne

Typ obiektowy

Typy proste są podstawowymi typami języka TP i BP, za ich pomocą określa się bardziej złożony struktury danych.

Wszystkie typy proste składają się ze skończonego i uporządkowanego zbioru wartości. Dzięki temu na wartościach tych typów możemy m. in. Wykonywać operacje porównań.

Typy proste dzielimy na porządkowe i rzeczywiste.

Typami porządkowymi są typy, dla których można określić wartości poprzednie i następne (z wyjątkiem wartości krańcowych). Do typów porządkowych zaliczamy: typ wyliczeniowy, typy całkowite, logiczne, typ znakowy i typy okrojone.

Typ wyliczeniowy stosuje się zwykle dla zbiorów o niewielkiej liczbie elementów, na których nie wykonuje się operacji arytmetycznych.

TYPE identyfikator_typu=(lista_identyfikatorów);

Elementy typu wyliczeniowego są uporządkowane zgodnie z kolejnością ich wyliczenia w definicji typu i mają liczby porządkowe odpowiednio 0,1,2 idt.

TYPE Uczniowie=(Antek, Franek, Zenek); {Antek ma lp. 0, Franek 1, Zenek 2}

Typy całkowite są w języku BP prefediniowane i nie wymagają opisu w programie. Wszystkie typy całkowite są podzbiorami zbioru liczb całkowitych. Wśród typów całkowitych wyróżniamy:

ShortInt (-128 do 127)

Byte (0-255)

Integer (-32768 do 32767)

Word (0 do 65535)

LongInt (…)

TYPE

Xx=integer;

Var

I,j:x,y;

Typy logiczne (standardowe typy logiczne to Boolean, ByteBool – 1 bajt, WordBool – 2 bajty, LongBool – 4 bajty).

Wartości typów logicznych są oznaczone za pomocą predefiniowanych literałów: True i False.

Typ znakowy: Char. Elementami typu znakowego są znaki ASCII, z których każdy jest pamiętany w jednym bajcie pamięci. (Rysowanie ramek, okienek)

Typ okrojony służy do ograniczania zakresów wartości dowolnego z dotychczas opisanych typów porządkowych. Definicja jednego typu okrojonego ma postać:

TYPE identyfikator_typu=stała1 .. stała2;

TYPE

Litery=’A’ .. ‘Z’;

Typ rzeczywisty – każdy z dostępnych typów rzeczywistych jest dyskretnym i skończonym podzbiorem zbioru liczb rzeczywistych.

Dostępnych jest pięć standardowych typów rzeczywistych o następujących predefiniwanych identyfikatorach.

Typy łańcuchowe służą do reprezentowania ciągu znaków, w tym niewidocznego znaku spacji.

Elementami typu łańcuchowego sąłańcuchy o długości od 0 do długości podanejw definicji typu łańcuchowego. Typ ten definiuje się następująco:

TYPE indentyfikator_typu=String[rozmiar];

Gdzie rozmiar jest liczbą typu Byte. Brak wyspecyfikowania rozmiaru powoduje doyślnie przyjęcie długości 255 znaków.

Typy strukturalne stosuje się do opisu obietków złożonych, przy czym dany obiekt możemy opisać na kilka różnych sposobów.

Każdy z typów strukturalnych zdefiniowany jest poprzez podanie typów składowych.

W ogólności definicja pojedynczego typu strukturalnego ma postać:

TYPE indentyfikator_typu=opis_typu_strukturalnego;

Typ tablicowy, a konkretnie tablica, składa się z ustalonej liczby elementów tego samego typu, zwanego typem składowym. Typ składowy może być typem prostym łańcuchowym lub typem strukturalnym.

Za pomocą tablic są reprezentowane regularne układy danych, np. wektory i macierze.

Dostęp do poszczególnych elementów tablic uzyskuje się za pomocą indeksów.

Dopuszczalny zakres indeksów jest podany w definicji typu tablicowego. Definicja pojedynczego typu tablicowego ma postać:

TYPE indentyfikator_typu=array[typy_indeksowe] of typ_składowy;

TYPE

V=array[1..5] of integer;

VV=array[1..10] of V;

Macierz=array[1..20,1..30] of real;

Dzien=(po,wt,sr,cz,pi,so,ni); {typ wyliczeniowy}

Tablica=array[1..7] of Dzien;

Typ rekordowy, a dokładniej rekord, to złożona struktura danych, której składowe, zwane polami, mogą być różnego typu.

Poszczególne pola mogą być strukturami złożonymi, przy czym liczba pól rekordu jest ustalona. Definicja typu rekordowego określa typ i identyfikator dla każdego pola.

TYPE indentyfikator_typu=record

Lista_deklaracji_pól

end;

TYPE Data=record

rok :integer;

miesiac:1..12;

dzien:1..31;

end;

TYPE punkt=record

x:real;

y:real;

end;

Typ zbiorowy jest zbiorem potęgowym danego typu porządkowego, tzn. jest zbiorem wszystkich podzbiorów tego typu, w tym zbioru pustego.

Liczba elementów typu zbiorowego nie może przekraczać 256 (od 0 do 255). Definicja pojedynczego typu zbiorowego ma postać:

TYPE indentyfikator_typu=set of typ_porządkowy;

TYPE Klasy=set of (LO_1d, LO_d2, LO_3d, LO_4d);

Typ plikowy jest ściśle powiązany z plikami. Plik jest ciągiem elementów tego samego typu, tyle że liczba tych elementów jest zmienna. Liczba elementów jest uzależniona od przebiegu wykonywania programu i skojarzenia pliku z fizycznym zbiorem danych.

Od tablicy plik różni się ponadto metodą dostępu do poszczególnych elementów. Definicja pojedynczego typu plikowego ma postać:

TYPE indentyfikator_typu=file of opis_typu_elementów_pliku;

TYPE indentyfikator_typu=file; {tzw. plik niezdefiniowany)

Pliki niezdefiniowane są stosowane głównie w celu dostępu do fizycznych zbirów dyskowych zgodnie z ich wewnętrznym formatem. W Pascalu istnieje predefiniany plik tekstowy o nazwie Text.

TYPE

Dane=file of Integer;

Zbior=file;

Wyniki=Text;

F=file of record

rok :integer;

miesiac:1..12;

dzien:1..31;

end;

Typ wskaźnikowy

Zmienne typów prostych i strukturalnych charakteryzują się tym, że istnieją przez cały czas wykonywania tej części programu, w której są zadeklarowane. Są to tzw. zmienne statyczne. W języku BP występują też zmienne dynamiczne, dla których pamięć jest przydzielana i zwalniana na określone żądanie.

Zmienne te nie posiadają identyfikatorów, a odwołanie do nich następują za pomocą wskaźnika

TYPE indentyfikator_typu=^Identyfikator_typu_bazowego;

TYPE a=^real;

TYPE www=^bbbb;

bbbb=record

end;

Definicja ta wiąże typ www ze zbiorem wskazań na dane typu bbbb. Jeśli wprowadzimy teraz deklarację VAR aaa:www; to zmiennej wskaźnikowej aaa będą mogły być w programie przypisywane adresy w pamięci (danych typu bbbb).

W Pascalu występują dwa predefiniowane typy wskaźnikowe. Są to: typ Pointer (zmienne tego typu są zgodne z dowolnym innym typem wskaźnikowym) i typ PChar (Reprezentuje on wskaźnik do łańcuchów skończonych….)

Typ proceduralny

Procedury i funkcje mogą być traktowane jako:

Zmienne tego drugiego rodzaju powinny być typu proceduralnego. Definicja typu proceduralnego może mieć jedną z dwóch postaci:

TYPE Nazwa=procedure;

TYPE Nazwa=procedure(lista_parametrów);

TYPE Nazwa=function: typ_wartosci_funkcji;

TYPE Nazwa=Function(lista_parametrów): typ_wartosci_funkcji;

TYPE

YY=procedurę(x,y: Byte…….

Typ obietkowy

Obiektem w Pascalu nazywa się złożoną strukturę o ustalonej liczbie elementów składowych. Każdy z tych elementów może być polem (daną) lub metodą (m.in. procedurą lub funkcją) – elementem opisującym operację wykowywaną na danych obiektu.

W definicji typu obiektowego, podobnie jak w definicji typu rekordowego, dla każdego pola specyfikuje się jego typ i identyfikator.

Opis metody składa się z nagłówka procedury, (funkcji), konstruktora lub destruktora.

Przy czym definicja pojedynczego typu obietkowego może zawierać opisy wielu metod i wielu pól.

TYPE identyfikator_typu=object (dziedzictwo)

Lista_deklaracji_pól

Lista_deklaracji_metod

end;

dziecictwo – jest to identyfikator innego, zdefiniowanego wcześniej typu obietkowwego. Jeśli element ten wystąpi, to definiowany typ zawiera (dziedziczy) wszystkie elementy podane w definicji typu obietkowego o nazwie dziecictwo.

Każda z deklaracji pól ma postać:

Lista_nazw_pól

Inna postać typu obiektowego

TYPE identyfikator_typu=object (dziedzictwo)

Lista_deklaracji_pól

Lista_deklaracji_metod

Sekcje_list

end;

sekcje mogą mieć postać:

private

Lista_deklaracji_pól

Lista_deklaracji_metod

public

Lista_deklaracji_pól

Lista_deklaracji_metod

Przykłady deklaracji typów obiektowych

TYPE punkt=object

X,Y:Integer;

end;

TYPE piksel=object(punkt)

kolor:Byte;

end;

Pierwszy obiekt (punkt) ma tylko 2 pola typu Integer. Drugi obiekt (piksel) ma jedno pole Kolor i dodatkowo dziedziczy elementy zdefiniowanego wcześniej obiektu punkt.

Zmienne

W języku BP wszystkie zmienne muszą być zadeklarowane. Listę deklarowanych w programie zmiennych wyszczególnia się po słowie kluczowym Var. Zmiennej można przypisywać różne wartości w ramach typu określonego dla tej zmiennej.

Zmienne zadeklarowane na zewnątrz procedur (funkcji) nazywamy globalnymi.

Zmienne zadeklarowane wewnątrz procedur i funkcji nazywamy lokalnymi.

Przykłady deklaracji zmiennych:

Type

p=^real; {def. typu wskaźnikowego}

punkt=record {def. typu rekordowego}

x:real;

y:real;

end;

W=array[1..10, 1..20] of real; {def. typu tablicowego}

Var

x,y,z:real;

a,b:W;

aa:string[10];

Podstawy Turbo Pascala c.d.

Wyrażenia skłądajś się z argumentów i operatorów. Dzięki operatorom możemy wykonywać różne operacje na argumentach. Przykłady wyrażeń:

-a

a*b

-z+y

x/(z-8)

(x+y) div w

z mod 2

b and x

DIV: dzielenie całkowite, MOD: reszta z dzielenia. XOR: różnica symetryczna (zwaraca jedynkę jeśli porówywane zmienne mają inne wartości) IN: zawiera się w

Operatory dzielimy na arytmetyczne, logiczne i operatory relacji.


Wyszukiwarka

Podobne podstrony:
Języki programowania zaliczenie wykłady Języki programowania3
Języki programowania zaliczenie wykłady Wykład 5
Języki programowania zaliczenie wykłady Opracowanie1 2
Języki programowania zaliczenie wykłady, Opracowanie1, Języki programowania
Języki programowania zaliczenie wykłady Języki programowania4
Języki formalne zaliczenie wykładów sciaga, Studia, pozostałe materiały
Mechanika płynów zaliczenie wykładów
egz TRB I 2009 c, Politechnika Poznańska, Budownictwo, Technologia Robót Budowlanych, Zaliczenie wyk
ssciaga, Studia PŚK informatyka, Semestr 4, Bazy Danych 2, Bazy Danych Zaliczenie Wykladu, Bazy Dany
Podaję listę pytań do zaliczenia wykładu, Politechnika, Podstawy marketingu
Zaliczenie wykładów z łowiectwa
Konstrukcje betonowe podstawy zaliczenie wykładu (D S )
ochrona srodowiska test 2A, iś pw, semestr I, Ochrona Środowiska, zaliczenie wykładów
ochrona srodowiska test 1B, iś pw, semestr I, Ochrona Środowiska, zaliczenie wykładów
patofizjologia pytania do zaliczenia, Wykłady
Zaliczenie wykładów pytania
teoria literatury zaliczenie wykładu
Pytania teoretyczne na zaliczenie wykładu
Obróbka ubytkowa zaliczenie wykładów Politechnika Lubelska

więcej podobnych podstron