Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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)
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.
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
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