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



Hasonló dokumentumok
Algoritmizálás és adatmodellezés tanítása 1. előadás

JAVA PROGRAMOZÁS 3.ELŐADÁS

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Borkereskedő. Dokumentáció a Programozási módszertan elmélete című tárgy beadandó programjához. Magyar Attila mattila@inf.elte.hu

A feladat. A főprogram

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektum orientált programozás (Object Oriented Programming = OOP)

Objektumorientált programozás C# nyelven

Programozás alapjai. 5. előadás

C++ programozási nyelv

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Megoldott feladatok. Informatika

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Delphi programozás IV.

Programozás 1. 2.gyakorlat

Érdekes informatika feladatok

Adatstruktúrák, algoritmusok, objektumok

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Származtatási mechanizmus a C++ nyelvben

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

7. Strukturált típusok

PASzSz. Dr. Kotsis Domokos

Algoritmizálás + kódolás C++ nyelven és Pascalban

Objektumorientált programozás C# nyelven

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

Objektum orientált alapelvek

Objektumorientált programozás C# nyelven III.

Számítógépes grafika

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Delphi programozás III.

Osztály és objektum fogalma

Bánsághi Anna

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Programozás I. 2. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

6. A Pascal nyelv utasításai

Számítógépes grafika

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Előzmények

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Szoftvertechnológia alapjai Java előadások

1. A feladatról. 2. Az áramkör leírása. Mechatronika, Optika és Gépészeti Informatika Tanszék D528. Léptetőmotor vezérlése

Programozás C++ -ban 2007/4

Pénzügyi algoritmusok

Objektumorientált programozás C# nyelven

INFORMATIKAI ALAPISMERETEK

C#, OOP. Osztályok tervezése C#-ban

Access adatbázis elérése OLE DB-n keresztül

Bánsághi Anna

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

INFORMATIKAI ALAPISMERETEK

A SZOFTVERTECHNOLÓGIA ALAPJAI

Magas szintű programozási nyelvek 2 Előadás jegyzet

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Egyszerű példaprogramok gyakorláshoz

14. Mediánok és rendezett minták

Generikus Típusok, Kollekciók

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Hetedik témakör kiegészítés:

OOP #14 (referencia-elv)

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozási tételek általánosítása 2. Szlávi Péter 2015

Adatbázis-kezelés ODBC driverrel

Elemi Alkalmazások Fejlesztése II.

Ködös határ (Félreértés, hiba)

Tartalomjegyzék. Bevezetés...2

Smalltalk 2. Készítette: Szabó Éva

OOP #7 (init, done) v :45:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

4. Öröklődés. Programozás II

VISUAL BASIC ALAPISMERETEK

Informatika terméktervezőknek

Apple Swift kurzus 3. gyakorlat

JAVA PROGRAMOZÁS 2.ELŐADÁS

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

C# osztályok. Krizsán Zoltán

Java programozási nyelv

OOP: Java 8.Gy: Abstract osztályok, interfészek

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

A C# programozási nyelv alapjai

AZ OOP KÓDOLÁSI ALAPJAI

Objektumelvű programozás

8.4 Többszálú alkalmazások készítése

Adatbázisok webalkalmazásokban

A JavaScript főbb tulajdonságai

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Java programozási nyelv 4. rész Osztályok II.

15. Programok fordítása és végrehajtása

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Intelligens Rendszerek I. Tudásábrázolás szemantikus hálókkal, keretekkel és forgatókönyvvel

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Átírás:

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

Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása 5. Több űrlapos alkalmazások 6. Kivételkezelés 7. Grafika 8. Adatbázis-kezelés 2

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 3

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 4

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 5

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 6

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) 7

1. ELŐADÁS Turbo Pascal ismétlés és kiegészítés Objektumorientált programozás (OOP) 8

Pascal típusai Egyszerű típusok 9

Pascal típusai Összetett típusok Típusdefiniálás (type): segítségével készíthetünk saját változó típusokat Definició: Type ujvaltozotipusnev = változótipus; Példa: Type Szovegtipus = String; Var Bekert_szoveg : Szovegtipus; Felsorolt típus Példa: Madarak = (fecske, golya, sas, bagoly); Intervallum típus Betuk : 'A'..'Z'; MunkaNapok : Hetfo..Pentek; Tömb típus Type Sor = array[1..20] of real; Type Tablazat = array[1..10,1..20] of real; 10

Pascal típusai Összetett típusok Rekord típus: különböző típusokból állhat Pé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 11

Iterációk Elől tesztelős ciklus while kifejezes do utasitas; Hátul tesztelős ciklus repeat utasitas until feltetel; Növekményes ciklus fel for kezdo to veg do utasitas; Növekményes ciklus le for kezdo downto veg do utasitas; 12

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; 13

Függvények, eljárások Függvények: function nev(argumentumok):tipus; Lokális változók begin Utasítások; nev:= tipus; end; Eljárások: procedure nev(argumentumok); Lokális változók begin Utasítások; end; 14

Egységek (Unit-ok) Egység (Unit): a főprogramhoz hozzászerkeszthető tárgykód Az egység célja: Korábban kipróbált, bevált programrészek hozzáférhetővé tétele más programokban Megvalósítási részletek elrejtése 15

Egységek felépítése Egysé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ész Implementation [Uses azonosító [,azonosító...];] A globális és lokális eljárások kifejtése Végrehajtó rész [Begin [utasítás [; utasítás...]] End. 16

Példa egységre Egység Főprogram 17

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 18

Objektumorientált Programozás (OOP) Természetes gondolkodást, cselekvést közelítő módszer. Valós világ modellezése Modellezési alapelvek: Absztrakció Megkülönböztetés Osztályozás Két legfontosabb eleme: objektum, osztály 19

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

Objektum példa Üzenetek andor megy(táv) elmegy(x,y) fordul(szög) andor (100,50) 30º pozíció(x,y) irányszög Adatok (attribútumok) 21

Objektum példa Programozási technikák - Pál László Üzenetek Lathato(true) Pozició(40,8) Méret(20,16) Cim("Ablak") Ablak (20,16) (100,80) "Ablak" true Adatok pozicio(x,y) meret(sz,m) cim lathato 22

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

Objektum azonossága Programozási technikák - Pál László Minden objektum egyértelműen azonosítható Az objektum azonossága független a tárolt értékektől Két objektum akkor sem azonos, ha állapotaik megegyeznek! 24

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 25

Osztály, példány - Példa Programozási technikák - Pál László kati Ember pozíció(x,y) irányszög megy(táv) elmegy(x,y) fordul(szög) andor zsófi 26

Osztály, példány - Példa Programozási technikák - Pál László Ablak pozicio(x,y) meret(sz,m) cim lathato Lathato(lathato) Pozicio(x,y) Meret(sz,m) Cim(cim) 27

Osztály és példány jelölése UML-ben UML (Unified Modeling Language): egységesített modellezési nyelv Példány (Objektum) Osztály neve Ablak Adatok/ Attribútumok/ Információk/ Változók/ Mezők Metódusok/ Operációk/ Rutinok pozicio(x,y) meret(sz,m) cim: String lathato: boolean Lathato(lathato) Pozicio(x,y) Meret(sz,m) Cim(cim) aablak:ablak pozicio=(10,6) meret=(20,12) cim="ablak" lathato=true Osztály 28

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 - Create Destruktor (destructor): felszabadítja az erőforrásokat mielőtt az objektum megsemmisül Destroy Free metódus 29

Objektum inicializálása 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) kati = Ember.Create(100,50) kati:ember pozíció=(100,50) irányszög=0 30

Láthatóság, védelem Az információ elrejtése azt jelenti, hogy az objektum elrejti belügyeit, azt csak az interfészén keresztül lehet megközelíteni Implementáció Interfész metódus1 metódus2 metódus3.. metódusn. Adatok 31

Láthatóság, védelem Hozzáférési módok Publikus (public): az adatok a program bármely részéről elérhetünk Védett (protected): az adott osztályból és abból származó alosztályokból lehet elérni az adatokat Privát (private): az adatmezők és metódusok kívülről nem érhetők el 32

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.publikusadat objektum.publikusmetódus objektum.védettadat objektum.védettmetódus objektum.privátadat objektum.privátmetódus 33

Ö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 fel Műveleteket veszünk fel: új művelet, módosítjuk az ős viselkedését Jelölés Õs osztály Utód osztály 34

Ö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ályhoz Az ősosztály metódusait felülírjuk Ember Nev Szülév Tanul Beszél Hallgató TanfSzám Eredmény Tanul Oktató Tanszék Fizetés Tanít Beszél 35

Utód osztály adatai, üzenetei - Példa Küldhetõ üzenetek A B M1 M2 Õs A, B Ob1 : Õs M1 M2 Õs.M1 Õs.M2 C D M1 M3 Utód A, B, C, D Ob2 : Utód M1 M2 M3 Utód.M1 Õs.M2 Utód.M3 36

Objektumok, osztályok Object Pascalban Osztály deklaráció Type osztalynev = class Adatlista Metoduslista End; Osztály deklaráció Példa Metódus definíció - Példa 37

Objektumok, osztályok Object Pascalban Objektum létrehozás alk1 Az Object Pascal, objektum hivatkozási modellre épül nev fizetes Hivatkozás Objektum adatai Osztály TAlkalmazott nev:string fizetes:integer fizetestemel(f: integer) Kiir Objektum példány alk1 : TAlkalmazott nev = 'Kiss Istvan' fizetes = 1000 38

Konstruktor - Példa 39

Láthatóság, védelem Az osztályok egységekben vannak tárolva Hozzáférési módok: Public (+) Protected (#) Private (-) Published 40

Öröklődés Object Pascalban Osztály származtatás: UML diagram Ős osztály, utód osztály deklaráció TAlkalmazott nev fizetes Create fizetestemel fizeteski Kiir TFonok beosztottakszama Create beosztottakotnovel Kiir 41

Öröklődés Object Pascalban Create és Kiír definiálása Inherited: a legközelebbi örökölt metódus hajtódik végre Objektum példányok létrehozása 42

Láthatóság, védelem protected (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 UML diagram és osztály deklaráció hozzáférési szintekkel TAlkalmazott #nev #fizetes + Create + fizetestemel + fizeteski +Kiir TFonok - beosztottakszama + Create + beosztottakotnovel +Kiir 43