43
Programozási technikák Sapientia EMTE, Csíkszereda, 2009/2010 Pál László

Programozási technikák Pál Lászlószikszai/oop/1.Eloadas.pdf2 Programozási technikák - Pál László Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Programozási

technikák

Sapientia

EMTE, Csíkszereda, 2009/2010

Pál László

2

Programozási technikák - Pál László

Előadás

tematika

1.

Pascal ismétlés, kiegészítések2.

Objektum orientált programozás (OOP)3.

Delphi

környezet4.

Komponensek bemutatása5.

Több űrlapos alkalmazások6.

Kivételkezelés7.

Grafika8.

Adatbázis-kezelés

3

Programozási technikák - Pál László

Laborgyakorlat tematika

1. Nagyjából követi az előadás tematikát. Kitűzött feladatok közös illetve egyéni megoldása.

2. Használt software: Delphi

7, 8

4

Programozási technikák - Pál László

Könyvészet

-1/3[1] Angster

Erzsébet :

Programozás tankönyv I.-

II.Akadémia nyomda, Martonvásár, 1999

[2] Angster

Erzsébet : Az objektumorientált tervezés és programozás alapjai : UML Turbo

Pascal

4 Kör Bt., Budapest, 2000

5

Programozási technikák - Pál László

Könyvészet

2/3[3] Baga

Edit : Delphi

másképp

Akadémia nyomda, Martonvásár, 1999

[4] Marco

Cantú

: Delphi

7 mesteri szinten I. –II.Kiskapu Kft, 2003

6

Programozási technikák - Pál László

Könyvészet

-

3/3[5] Pál László, Máté

Szilárd: Alkalmazásfejlesztés

Delphiben, Nyomtatás alatt.

Előadások, labor feladatok, egyéb dokumentációk megtalálhatók az alábbi linken:

www.emte.siculorum.ro/~pallaszlo

7

Programozási technikák - Pál László

Vizsgakövetelmények

1. Felmérési mód: kollokvium

a)

Zárthelyi vizsga I.: 40%

(8. hét)b)

Zárthelyi vizsga II.: 40% (14. hét)

c)

Elméleti teszt: 20% ( 14. hét)

8

Programozási technikák - Pál László

1. ELŐADÁS

Turbo

Pascal ismétlés és kiegészítésObjektumorientált programozás (OOP)

9

Programozási technikák - Pál László

Pascal típusaiEgyszerű típusok

10

Programozási technikák - Pál László

Pascal típusaiÖsszetett típusok

Típusdefiniálás (type): segítségével készíthetünk sajátváltozó típusokat

Definició: Type ujvaltozotipusnev = változótipus;Példa: Type Szovegtipus = String;

Var Bekert_szoveg : Szovegtipus;

Felsorolt típusPélda: Madarak = (fecske, golya, sas, bagoly);

Intervallum típusBetuk : 'A'..'Z';MunkaNapok : Hetfo..Pentek;

Tömb típusType Sor = array[1..20] of real;Type Tablazat = array[1..10,1..20] of real;

11

Programozási technikák - Pál László

Pascal típusaiÖsszetett típusok

Rekord típus: különböző típusokból állhatPélda: Type Datum = record

Ev : 1900..2050;Ho : 1..12;Nap : 1..31;

end;var d:Datum;

d.Ev:= 2009;d.Ho:=9;d.Nap:=14;

Halmaz típus: Példa: Type KarakterKeszlet = set of char;

szamok = 1..10;sz10 = set of szamok;

Var paros: sz10;paros := [2,4,6,8,10];

Műveletek:

+ egyesítés, * metszet, -

Különbség

12

Programozási technikák - Pál László

Iterációk

Elől tesztelős cikluswhile kifejezes do utasitas;

Hátul tesztelős ciklusrepeat utasitas until feltetel;

Növekményes ciklus felfor kezdo to veg do utasitas;

Növekményes ciklus lefor kezdo downto veg do utasitas;

13

Programozási technikák - Pál László

SzelekcióFeltételes utasítás:if feltetel then utasitas;if feltetel then utasitas1

else utasitas2;

Választás:case kifejezes of

ertek1:utasitas1;ertek2:utasitas2;…else utasitas;

end;

14

Programozási technikák - Pál László

Függvények, eljárásokFüggvények:

function nev(argumentumok):tipus;Lokális változókbegin

Utasítások; nev:= tipus;

end;

Eljárások: procedure nev(argumentumok);Lokális változókbegin

Utasítások; end;

15

Programozási technikák - Pál László

Egységek (Unit-ok)

Egység (Unit): a főprogramhoz hozzászerkeszthető tárgykódAz egység célja:

Korábban kipróbált, bevált programrészek hozzáférhetővé tétele más programokbanMegvalósítási részletek elrejtése

16

Programozási technikák - Pál László

Egységek felépítéseEgységfej

Unit azonosító;Illesztő rész

Interface[Uses azonosító [,azonosító...];]

Globális deklarációk (változók, típusok, konstansok, eljárásfejek...)

Kifejtő részImplementation[Uses azonosító [,azonosító...];]

A globális és lokális eljárások kifejtéseVégrehajtó rész

[Begin[utasítás [; utasítás...]] End.

17

Programozási technikák - Pál László

Példa egységreEgység Főprogram

18

Programozási technikák - Pál László

Objektumorientált Programozás (OOP)

1. Objektum, osztály

2. Objektum

létrehozása, inicializálása

3. Hozzáférés az adatokhoz

4. Öröklődés

5. Object

Pascal megvalósítás

19

Programozási technikák - Pál László

Objektumorientált Programozás (OOP)

Természetes gondolkodást, cselekvést közelítő módszer. Valós világ modellezéseModellezési alapelvek:

AbsztrakcióMegkülönböztetésOsztályozás

Két legfontosabb eleme: objektum, osztály

20

Programozási technikák - Pál László

Objektum

Információkat tárol, kérésre feladatokat hajt végreAdatok (attribútumok) és metódusok összessége, mely felelős feladatai elvégzéséértMinden objektum rendelkezik

21

Programozási technikák - Pál László

Objektum példa

Üzenetek

andor(100,50)30º

pozíció(x,y) irányszög

Adatok (attribútumok)

megy(táv)elmegy(x,y)fordul(szög)

andor

22

Programozási technikák - Pál László

Objektum példa

Ablak(20,16)(100,80)"Ablak"true

Lathato(true)Pozició(40,8)Méret(20,16)

Cim("Ablak")

Üzenetek

pozicio(x,y)meret(sz,m)cimlathato

Adatok

23

Programozási technikák - Pál László

Objektum állapota

Az objektumnak mindig van egy állapota (adatok pillanatnyi értékei)Két objektumnak ugyanaz az állapota, ha az adatok értékei megegyeznekAz objektum operációkat hajt végre, melyek hatására állapota megváltozhatAz objektum mindig emlékszik állapotára

24

Programozási technikák - Pál László

Objektum azonossága

Minden objektum egyértelműen azonosíthatóAz objektum azonossága független a tárolt értékektőlKét objektum akkor sem azonos, ha állapotaik megegyeznek!

25

Programozási technikák - Pál László

Osztály, példány

Osztály (class)Olyan objektumminta vagy típus, mely alapján példányokat (objektumokat) hozhatunk létre

Példány (instance)Minden objektum születésétől kezdve egy osztályhoz tartozik

26

Programozási technikák - Pál László

Osztály, példány -

Példa

pozíció(x,y) iránySzög

megy(táv)elmegy(x,y)fordul(szög)

Ember

katiandor

zsófi

27

Programozási technikák - Pál László

Osztály, példány -

Példa

pozicio(x,y) meret(sz,m) cim

lathatoLathato(lathato)Pozicio(x,y)Meret(sz,m)

Cim(cim)

Ablak

28

Programozási technikák - Pál László

Osztály és példány jelölése UML-benUML (Unified Modeling Language): egységesített modellezési nyelv

pozicio(x,y) meret(sz,m) cim: String

lathato: boolean

Osztály

Példány (Objektum)

pozicio=(10,6)meret=(20,12)cim="Ablak"lathato=true

aAblak:AblakAdatok/Attribútumok/Információk/Változók/Mezők

Metódusok/Operációk/Rutinok

Osztály neve Ablak

Lathato(lathato) Pozicio(x,y)

Meret(sz,m)Cim(cim)

29

Programozási technikák - Pál László

Objektum létrehozása, inicializálása

Objektum életciklusa: „megszületik”, „él”, „meghal”Az objektumot létre kell hozni és inicializálni kell!Konstruktor (constructor) : speciális eljárás, memóriát foglal le az objektum számára, inicializálja az adattagokat - CreateDestruktor (destructor): felszabadítja az erőforrásokat mielőtt az objektum megsemmisül – Destroy

Free metódus

30

Programozási technikák - Pál László

Objektum inicializálásakati

=

Ember.Create(100,50)

kati:Ember

pozíció=(100,50)iránySzög=0

Ember

pozíció(x:number,y:number) iránySzög:number

Create(x:number,y:number)megy(táv:number)elmegy(x:number,y:number)fordul(szög:number)

31

Programozási technikák - Pál László

Láthatóság, védelemAz információ elrejtése azt jelenti, hogy az objektum elrejti „belügyeit”, azt csak az interfészén keresztül lehet megközelíteni

Adatok

Interfész

Implementáció

metódus1

metódusN

metódus3

metódus2

.

.

.

32

Programozási technikák - Pál László

Láthatóság, védelem

Hozzáférési módokPublikus (public): az adatok a program bármely részéről elérhetünkVédett (protected): az adott osztályból és abból származó alosztályokból lehet elérni az adatokatPrivát (private): az adatmezők és metódusok kívülről nem érhetők el

33

Programozási technikák - Pál László

Láthatóság, védelem -

Példa

Osztály

+publikusAdat#védettAdat -privátAdat

+publikusMetódus #védettMetódus-privátMetódus

objektum :Osztály

objektum.védettAdatobjektum.védettMetódus

objektum.privátAdat objektum.privátMetódus

objektum.publikusAdatobjektum.publikusMetódus

34

Programozási technikák - Pál László

Öröklődés (Inheritance)

Már meglévő osztály továbbfejlesztése, módosítása.Meglévő osztály: ős, szülő, alap.Továbbfejlesztett osztály: utód, gyerek, származtatott.Származtatás:

Új tulajdonságokat veszünk felMűveleteket veszünk fel: új művelet,módosítjuk az ős viselkedését

Õs osztály

Utód osztály

Jelölés

35

Programozási technikák - Pál László

Öröklődés megvalósítása

Örökítéskor három lehetőségünk van:Új változókat adunk hozzá az utód osztályhozÚj metódusokat adunk hozzá az utód osztályhozAz ősosztály metódusait felülírjuk

Ember

NevSzülévTanulBeszél

Hallgató

TanfSzámEredmény

Tanul

Oktató

TanszékFizetésTanítBeszél

36

Programozási technikák - Pál László

Utód osztály adatai, üzenetei -

Példa

Õs

ABM1M2

Utód

CDM1M3

Ob1 : ÕsA, B

Ob2 : UtódA, B, C, D

Küldhetõ üzenetek

M1

M2

M1M2M3

Õs.M1Õs.M2

Utód.M1Õs.M2Utód.M3

37

Programozási technikák - Pál László

Objektumok, osztályok Object

Pascalban

Osztály deklaráció

Példa

Metódus definíció

-

Példa

Type

osztalynev = class

Adatlista

Metoduslista

End;

Osztály deklaráció

38

Programozási technikák - Pál László

Objektumok, osztályok Object

Pascalban

alk1

Hivatkozás Objektum adatai

nev

fizetes

Osztály

Objektum létrehozás

Objektum példány

Az Object Pascal, objektum hivatkozásimodellre épül

TAlkalmazott

nev:stringfizetes:integer

fizetestEmel(f: integer)Kiir

alk1 : TAlkalmazottnev = 'Kiss Istvan'fizetes = 1000

39

Programozási technikák - Pál László

Konstruktor

-

Példa

40

Programozási technikák - Pál László

Láthatóság, védelemAz osztályok egységekben vannak tárolva

Hozzáférési módok:•Public

(+)•Protected

(#)•Private

(-)•Published

41

Programozási technikák - Pál László

Öröklődés Object

PascalbanOsztály származtatás:

TAlkalmazott

nevfizetesCreatefizetestEmelfizetesKiKiir

TFonok

beosztottakSzama

CreatebeosztottakotNovelKiir

UML diagram Ős osztály, utód osztály deklaráció

42

Programozási technikák - Pál László

Öröklődés Object

PascalbanCreate és Kiír definiálása

Objektum példányok létrehozása

Inherited: a legközelebbi örökölt metódus hajtódik végre

43

Programozási technikák - Pál László

Láthatóság, védelemprotected (védett): az osztályt deklaráló egységen kívülről nem enged hozzáférést, kivéve a származtatott osztályok.Egy egységben található osztályok egymás „barátai”

TAlkalmazott

# nev# fizetes+ Create+ fizetestEmel+ fizetesKi+ Kiir

TFonok

- beosztottakSzama

+ Create+ beosztottakotNovel+ Kiir

UML diagram és osztály deklaráció

hozzáférési szintekkel