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

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

Feb 03, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Programozási

technikák

Sapientia

EMTE, Csíkszereda, 2009/2010

Pál László

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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)

Page 8: 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

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)

Page 9: 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

9

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

Pascal típusaiEgyszerű típusok

Page 10: 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

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;

Page 11: 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

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

Page 12: 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

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;

Page 13: 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

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;

Page 14: 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

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;

Page 15: 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

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

Page 16: 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

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.

Page 17: 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

17

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

Példa egységreEgység Főprogram

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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!

Page 25: 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

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

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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)

Page 29: 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

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

Page 30: 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

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)

Page 31: 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

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

.

.

.

Page 32: 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

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

Page 33: 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

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

Page 34: 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

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

Page 35: 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

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

Page 36: 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

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

Page 37: 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

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ó

Page 38: 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

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

Page 39: 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

39

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

Konstruktor

-

Példa

Page 40: 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

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

Page 41: 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

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ó

Page 42: 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

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

Page 43: 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

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