Objektumorientált programozás C# nyelven

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Objektumorientált programozás C# nyelven"

Átírás

1 Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok Felbontott típusok Készítette: Miklós Árpád Dr. Kotsis Domokos

2 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelezı irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges.

3 Osztályok és objektumok Osztály: belsı adatok és a rajtuk mőveleteket végzı algoritmusok által alkotott egységes struktúra Objektum: valamely osztály egy tényleges példánya Az objektumok (bizonyos esetekben maguk az osztályok is) a program futása során egymással kommunikálnak Osztály tartalma (az osztály tagjai ): Mezık ( field ) Normál és csak olvasható változók, konstansok ( constant ) Metódusok ( method ) Normál metódusok, konstruktorok ( constructor ), destruktorok ( destructor ) Tulajdonságok* ( property ) és indexelık* ( indexer ) Események* ( event ) Operátorok* ( operator ) Beágyazott típusok ( nested type ) Osztályok ( class ), struktúrák* ( struct ), interfészek* ( interface ), képviselık* ( delegate )

4 Osztályok és objektumok Az osztályok deklarálása a class kulcsszó segítségével történik Az osztályok deklarációja egyben tartalmazza az összes tag leírását és a metódusok megvalósítását Az osztályoknál tehát nincs külön deklaráció (létrehozás) és definíció (kifejtés) class Példaoszt ldaosztály ly // Itt kell deklarálnunk lnunk az osztály összes tagját t (mezıket, metódusokat dusokat ) // A metódusok konkrét megvalósítását t szintén n itt kell megadnunk Osztályok és objektumok tagjainak elérése:. operátor Példány szintő tagoknál a példány nevét, osztály szintő tagoknál (ezeket lásd késıbb) az osztály nevét kell az operátor elé írnunk Az osztály saját tagjainak elérésekor (tehát az osztály saját metódusainak belsejében) nem kötelezı kiírni a példány, illetve az osztály nevét

5 Láthatósági szintek Láthatósági (hozzáférési) szintek a C# nyelvben Szint public protected internal protected internal private Hozzáférési lehetıség az adott taghoz Korlátlan Adott osztály és leszármazottai* Adott program, adott osztály Adott program, adott osztály és leszármazottai* Adott osztály Megjegyzés.NET.NET 1 1 A.NET biztosít még egy további láthatósági szintet ( protected and internal ), amelyet a C# nyelv nem támogat A névterek láthatósága mindig public A típusok (osztályok) láthatósága public vagy internal (alapértelmezés) Az osztályok tagjainak láthatósága tetszılegesen megválasztható A tagok láthatósága alapértelmezésben mindig private A beágyazott típusok (osztályok) láthatóság szempontjából normál tagoknak minısülnek (láthatóságuk tetszılegesen megadható, alapértelmezésben private) A felsorolások elemeinek és az interfészek* tagjainak láthatósága mindig public V október 20. 5

6 Mezők Minden változó tagja egy osztálynak (tagváltozó) Ezeket az adatelemeket nevezzük mezıknek A mezık értéke helyben is megadható (inicializálás) string jegy = "jeles"; int j = ; A mezık lehetnek Olvasható/írható mezık Értékük tetszés szerint olvasható és módosítható Csak olvasható mezık Értékük kizárólag inicializálással vagy konstruktorból állítható be readonly string SosemVáltozomMeg = "I Will Stay The Same"; Konstans mezık Értéküket a fordítóprogram elıre letárolja, futási idıben sosem módosíthatók const double π = ; const int összeg = 23 * ( );

7 Metódusok Minden metódus tagja egy osztálynak (tagfüggvény) A metódusok rendelkezhetnek Megadott vagy változó darabszámú paraméterrel (params kulcsszó) void EgyparaméteresMet teresmetódus dus(bool feltétel); tel); void Többparam bbparaméteresmet teresmetódus dus(int a, float b, string c); void MindenbılSokatElfogad lsokatelfogadómet Metódus dus(params object[] paramétert tertömb mb); Visszatérési értékkel Nem kötelezı, ha nincs, ezt a void kulcsszóval kell jelölni void NincsVisszatérési siért rtékem kem(); int EgészSz szszámotadokvissza motadokvissza(float paraméter); string VálaszomEgyKaraktersorozat laszomegykaraktersorozat(string string bemenıadat Adat); SajátT ttípus Átalak talakító(saj SajátT ttípus forrásobjektum sobjektum, int egyikmezıújért rtéke ke, string másikmez sikmezıújért rtéke ke); A paraméterek és a visszatérési érték határozzák meg azt a protokollt, amelyet a metódus használatához be kell tartani Szokás ezt a metódus aláírásának vagy szignatúrájának is nevezni

8 Függvények Séma: típus függvénynév(paraméterek) függvénytörzs

9 Függvények típusa 1. A típus a viszaadott érték típusa, vagy void. 2. A típust megelızheti a.) a láthatóság megadása, b.) osztály szintő tagnál a static szó.

10 Függvénytörzs A végrehajtandó utasítások, melyek használhatják a bemenı paramétereket. A függvény visszatérı értéke a return alapszót követi (ebbıl több is lehet a program különbözı ágain). Visszatérési érték nélküli (void) függvénynél ha a program mindig a függvénytörzs fizikai végénél fejezıdik be a return utasítás nem kötelezı.

11 Speciális metódusok a konstruktor Minden osztálynak rendelkeznie kell konstruktorral A konstruktor gondoskodik az osztály példányainak létrehozásáról Szokás példánykonstruktornak is nevezni A konstruktorok neve mindig megegyezik az osztály nevével Több konstruktort is létrehozhatunk más-más paraméterlistával Egy konstruktor a this kulcsszó segítségével meghívhat egy másik konstruktort is Ha mi magunk nem deklarálunk konstruktort, a C# fordító automatikusan létrehoz egy paraméter nélküli alapértelmezett konstruktort Új objektum a new operátor segítségével hozható létre A new operátor gondoskodik a megfelelı konstruktor hívásáról Az osztályok konstruktorait kívülrıl nem kell és nem is lehet más módon meghívni System.Object Igaziİsk skövület = new System.Object Object(); Paraméter nélküli konstruktor hívása SajátT ttípus péld ldány = new SajátT ttípus pus(25); Egy int típusú paraméterrel rendelkezı konstruktor hívása

12 Speciális metódusok a destruktor Az osztályoknak nem kötelezı destruktorral rendelkezniük A destruktor neve egy ~ karakterbıl és az osztály nevébıl áll Az objektumok megszüntetése automatikus Akkor szőnik meg egy objektum, amikor már biztosan nincs rá szükség Az objektumok megszüntetésének idıpontja nem determinisztikus (nem kiszámítható) A futtatókörnyezet gondoskodik a megfelelı destruktor hívásáról Nem kell (és nem is lehet) közvetlenül meghívni az osztályok destruktorait A destruktor nem tudhatja, pontosan mikor hívódik meg SajátT Destruktorra ttípus ritkán van szükség class Saj // Destruktor ~Saj SajátT ttípus pus()

13 Függvények paraméterei A paramétereknél megadandó a típus és az a név, amelyen a függvénytörzsben a paraméterre hivatkozunk. Referencia típusú paramétereknél a paraméter mind bemenı, mind visszatérı értéket tartalmazhat. Érték típusú paramétereknél a paramétert megelızı out, vagy ref alapszó jelzi az Output, vagy input/output paramétert. Az out, vagy ref alapszónak a hívásnál is szerepelnie kell!

14 Példa out-ra class Out public void kiír(int a, out int b) b=a; Példány létrehozás class Outpld static void Main() int x=3; int y=4; Out próba=new Out(); próba.kiír(x,out y); System.Console.WriteLine(x+" "+y); System.Console.ReadLine(); Kimenı paraméter

15 Példa ref-re class Ref public void kiír(ref int a) a=a+5; class Reftpld static void Main() int x=3; Ref próba=new Ref(); próba.kiír(ref x); System.Console.WriteLine(x); System.Console.ReadLine(); Példány létrehozás Változtatható paraméter

16 Példa bemenőparaméterre class Bepar static void Main(string[] args) int i; for (i=0;i<args.length-1; i=i+1) System.Console.Write(args[i]+" "); if (args.length>0) System.Console.WriteLine(args[i]); System.Console.ReadLine(); Stringek száma Paraméter Paraméter stringek

17 class Részv szvény private readonly string részv szvényn nynév; private double részv szvény nyárfolyam = 0.0; public int Darabszám; 1. példa public Részv szvény ny(string név, double árfolyam, int darabszám) // Konstruktor (neve megegyezik az osztály nevével) vel) - beáll llítja az adatmezık kezdeti ért rtékét public void Vétel( tel(int mennyiség) // A paraméterben megadott mennyiségő részv szvény vásárlv rlása public void Eladás( s(int mennyiség) // A paraméterben megadott mennyiségő részv szvény eladása public void ÁrfolyamBe rfolyambeáll llítás(double árfolyam) // Az aktuális árfolyam beáll llítása a paraméterben megadott árfolyam alapján public double Ért rték() // Részv szvény össz sszért rtékének kiszámítása sa

18 1. példa (folytatás) class Részv szvénykezel nykezelı static void Main() Részv szvény IBM = new Részv szvény( ny("ibm" "IBM",, 77.59, 100); Részv szvény nvidia = new Részv szvény ny("nvda" "NVDA",, 21.49, 100); IBM.Vétel tel(50); nvidia.vétel tel(25); nvidia.árfolyambe rfolyambeáll llítás(29.15); nvidia.eladás(50); System.Console Console.WriteLine.WriteLine("IBM: " + IBM.Darabszám + " db ($" + IBM.Ért rték() + ")"); ); System.Console Console.WriteLine.WriteLine("nVidia nvidia: : " + nvidia.darabszám + " db ($" + nvidia.ért rték() + ")"); ); System.Console Console.Read ReadLine();

19 Névterek A névterek az elnevezések tetszıleges logikai csoportosítását teszik lehetıvé Nincs közük a fizikai tároláshoz (fájlokhoz és mappákhoz) Egy fájlban több névtér, egy névtér több fájlban is elhelyezhetı Tetszılegesen egymásba ágyazhatók A beágyazott névterek tagjait a. karakterrel választhatjuk el A névtérbe be nem sorolt elemek egy ún. globális névtérbe kerülnek namespace A namespace B class Egyik A.B.Egyik példa = new A.B.Egyik Egyik(); Ez a két névtér azonos (A.B) namespace A.B class Másik namespace C class Harmadik A.B.Másik példa2 = new A.B.Másik sik(); C.Harmadik példa3 = new C.Harmadik Harmadik();

20 Névterek (folytatás) Minden névre a saját névterével együtt kell hivatkozni A teljes (minısített) név formája: névtér.elnevezés A névterek importálhatók (hivatkozás céljára elıkészíthetık) a using kulcsszó segítségével using System; using System.Text; Ezt követıen az adott névtérben található elnevezések elé hivatkozáskor nem kell kiírni a névteret, feltéve, hogy az elnevezés így is egyértelmően azonosítható A névtereknek importálás helyett álnév is adható Célja a hosszú, de importálni nem kívánt névterek egyértelmő rövidítése Importált névtér using System; using SOAP = System.Runtime.Serialization.Formatters.Soap; SOAP.SoapFormatter SoapFormatter form ormázó = new SOAP.SoapFormatter SoapFormatter(); Console.WriteLine.WriteLine(form (formázó); A névterek Microsoft által javasolt formátuma: Cégnév.Technológia.Funkció[.Design] Példa: Microsoft.VisualBasic.CompilerServices Nem importált névtér álnévvel

21 Hatókörök Kijelöli a változók érvényességi tartományát Nem azonos a névtérrel (amely a hivatkozás módját szabályozza) A C# hatókörre vonatkozó szabályai: Osztályok tagváltozói csak ott érhetık el, ahol az osztály is elérhetı Helyi változók a deklarációjukat tartalmazó blokk vagy metódus lezárásáig ( ) érhetık el A for, foreach, while, do while utasításokban deklarált helyi változók csak az adott utasítás belsejében érhetık el Ha egy változó érvényes, de nem azonosítható egyértelmően, akkor a C# a hivatkozást a legbelsı érvényességi tartományra vonatkoztatja Azonos érvényességi tartományon belül azonos néven nem hozhatók létre változók A tagváltozók érvényességi tartományában létrehozhatók azonos nevő helyi változók Ebben az esetben a legbelsı változó elrejti a vele azonos nevő, hozzá képest külsı szinten elhelyezkedı változókat Ha a legbelsı érvényességi tartományban egy azonos nevő külsı tagváltozót kívánunk elérni, akkor példány szintő változók esetén a this kulcsszót, osztály szintő változók esetén az osztály nevét kell a változó elé írnunk. karakterrel elválasztva

22 Metódusok átdefiniálása Egy osztályon belül is létrehozhatunk több azonos nevő, de eltérı paraméterlistával és visszatérési értékkel rendelkezı metódust Ezzel a technikával ugyanazt a funkciót többféle paraméterekkel és visszatérési értékkel is meg tudjuk valósítani ugyanazon a néven Logikusabb, átláthatóbb programozási stílust tesz lehetıvé class Részv szvény public void Vétel( tel(int mennyiség) // A paraméterben megadott mennyiségő részv szvény vásárlv rlása darabszám += mennyiség; public void Vétel( tel(int mennyiség, double árfolyam) // A paraméterben megadott mennyiségő részv szvény vásárlv rlása a megadott árfolyam beáll llításával darabszám += mennyiség; this.árfolyam = árfolyam;

23 Osztály szintűtagok Az osztály szintő mezık az osztály saját adatmezıi Minden osztály csak egyet tárol ezekbıl a mezıkbıl, függetlenül a késıbb létrehozott példányok számától Ezeket a mezıket tehát nem a példányok, hanem maga az osztály birtokolja Az osztály szintő metódusok magán az osztályon mőködnek Akkor is hívhatók, ha még egyetlen példány sem létezik az osztályból Csak osztály szintő mezıket használhatnak Osztály szintő metódusoknál nem létezik aktuális objektum, így this paraméter sem Konkrét példányt nem igénylı feladatra is alkalmasak (pl. fıprogram megvalósítása) // Az és most osztály már minden szintő kulcsszót tagokat könnyen felismerhetünk a static ebben kulcsszóval a "bonyolult" programban jelöljük internal class ElsıProgram public static void Main() System.Console Console.WriteLine.WriteLine("Hello, C# World");

24 Osztály szintűtagok (példa, 1. rész) using System; class Péld ldánysz nyszáml mláló public static int Darabszám; Osztály szintő adatmezı Osztály szintő konstruktor (egyik fı célja az osztály szintő mezık kezdeti értékének beállítása) static Péld ldánysz nyszáml mláló() Darabszám = 0; Konstruktor public Péld ldánysz nyszáml mláló() Darabszám++; Destruktor ~Péld ldánysz nyszáml mláló() Darabszám-- --; Console.WriteLine.WriteLine("Megsz "Megszőnt egy péld ldány. A fennmaradók száma: " + Darabszám);

25 Osztály szintűtagok (példa, 2. rész) class Péld ldánysz nyszáml mlálóteszt static void Main() Péld ldánysz nyszáml mláló teszt = new Péld ldánysz nyszáml mláló(); Console.WriteLine.WriteLine("L "Létrehoztam egy péld ldányt" nyt"); Console.WriteLine.WriteLine("P ("Péld ldánysz nyszám: " + Péld ldánysz nyszáml mláló.darabsz.darabszám); for (int i = 0; i < 10; i++) new Péld ldánysz nyszáml mláló(); Console.WriteLine.WriteLine("L "Létrehoztam még tíz t péld ldányt" nyt"); Console.WriteLine.WriteLine("P ("Péld ldánysz nyszám: " + Péld ldánysz nyszáml mláló.darabsz.darabszám); Console.ReadLine.ReadLine();

26 Feladat Készítsen programot a háromelemő valós vektorok kezelésére az alábbi menüpontokkal. Beolvasás Kiíratás Használjon statikus (osztály szintő) metódusokat!

27 Megoldás stat. metódusokkal I. class Vektordef A sorrend teszıleges public static void beolvas(float [] partomb) for(int i=0;i<3; i++) Kötelezıen a metódus neve elıtt System.Console.WriteLine( Az"+(i+1)+"-ik elem: "); partomb[i]=float.parse(system.console.readline()); public static void kiír(float [] partomb) for(int i=0;i<3; i++) System.Console.WriteLine(partomb[i]); return; Nincs visszatérı érték, egy kimenet van, így a return nem kötetelezı

28 Megoldás stat. metódusokkal II. class Vektorkez static void Main() float [] vektor=new float[3]; Vektordef.beolvas(vektor); Vektordef.kiír(vektor);

29 Feladat Készítse el az elızı feladatban leírtakat objektum példány használatával! V október

30 class Vektordef Megoldás példánnyal I. Nincs static. public void beolvas(float [] partomb) for(int i=0;i<3; i++) System.Console.WriteLine( Az"+(i+1)+"-ik elem: "); partomb[i]=float.parse(system.console.readline()); V1.2 public void kiír(float [] partomb) for(int i=0;i<3; i++) System.Console.WriteLine(partomb[i]); return; október

31 Megoldás példánnyal II. class Vektorkez static void Main() float [] vektor=new float[3]; Vektordef sajvekt=new Vektordef(); sajvekt.beolvas(vektor); sajvekt.kiír(vektor); Oblektum példány létrehozása. V október

32 Feladat Egészítse ki a háromelemő valós vektorok kezelésére készített programot az alábbi menüpontokkal. Skaláris szorzat. Skalárral való szorzás. Használjon objektum példányt!

33 Skaláris szorzás public float skalarissz(float [] partomb1,float [] partomb2) float s=0; for(int i=0;i<3; i++) s=s+partomb1[i]*partomb2[i]; return s;

34 Skalárralszorzás a. A visszaadott érték public void skalarralsz(float [] partomb, float k) for(int i=0;i<3; i++) partomb[i]=partomb[i]*k;

35 Skalárralszorzásb. public float [] skalarralsz(float [] partomb, float k) float [] p=new float[3]; for(int i=0;i<3; i++) p[i]=partomb[i]*k; return p; A visszaadott érték

36 Megoldás obj. pld-aliva. class Vektorkez static void Main() float [] vektor1=new float[3]; float [] vektor2=new float[3]; float [] vektor3=new float[3]; float v; Vektordef sajvekt=new Vektordef(); sajvekt.beolvas(vektor1); sajvekt.beolvas(vektor2); sajvekt.skalarralsz(vektor1,3); vektor3=vektor1; v=sajvekt.skalarissz(vektor3,vektor2); sajvekt.kiír(vektor3); System.Console.WriteLine(v); System.Console.ReadLine(); A visszaadott érték Oblektum példány létrehozása.

37 A metódusok kipróbálása class Vektorkez static void Main() float [] vektor1=new float[3]; float [] vektor2=new float[3]; float [] vektor3=new float[3]; float v; vektordef sajvekt=new vektordef(); sajvekt.beolvas(vektor1); sajvekt.beolvas(vektor2); vektor3=sajvekt.skalarralsz(vektor1,3); v=sajvekt.skalarissz(vektor3,vektor2); sajvekt.kiír(vektor3); System.Console.WriteLine(v); System.Console.ReadLine(); Oblektum példány létrehozása. A visszaadott érték

38 Feladat Adott, hogy egy vállalat három gépkocsija hány km-t futott az elsı illetve a második félévben. Ismert továbbá az elsı féléves üzemeltetési költség autók szerint km-enként. Ez a költség a második félévre 5%-kal emelkedett. Készítsünk programot, amely meghatározza a gépkocsik éves összköltségét!

39 class Auto static void Main() float [] km1=new float[3]; float [] km2=new float[3]; float [] kolt=new float[3]; float v1,v2,költség; Vektordef sajvekt=new Vektordef(); System.Console.WriteLine("Elsı félévi km.:"); sajvekt.beolvas(km1); System.Console.WriteLine("Második félévi km.:"); sajvekt.beolvas(km2); System.Console.WriteLine("Elsı félévi költség:"); sajvekt.beolvas(kolt); v1=sajvekt.skalarissz(km1,kolt); sajvekt.skalarralsz(kolt,(float)1.05); v2=sajvekt.skalarissz(km2,kolt); költség=v1+v2; System.Console.Write("A teljes költség összege: "); System.Console.WriteLine(költség); System.Console.ReadLine();

40 A thisparaméter A példány szintő metódusokban szükség lehet rá, hogy hivatkozni tudjunk arra az objektumra, amelyik a metódust éppen végrehajtja E hivatkozás a rejtett this paraméter segítségével valósul meg A rejtett this paraméter minden példány szintő metódusban az aktuális objektumot jelöli Osztály szintő tagok esetén ez a paraméter nem létezik (az osztály szintő tagokat lásd késıbb) Nem kell deklarálni, ezt a fordítóprogram automatikusan megteszi Általában a következı esetekben használatos: Az aktuális objektumot paraméterként vagy eredményként szeretnénk átadni Az érvényes hatókörön belül több azonos nevő tag található (pl. egymásba ágyazott hatókörök vagy névterek esetén), így ezek a tagok csak segítséggel azonosíthatók egyértelmően V október

41 A thisparaméter (példa) Milyen nehézség adódott volna, ha az 1. példában az alábbi mezıneveket használjuk? class Részv szvény private string név; private double árfolyam; public int darabszám; public Részv szvény ny(string név, double árfolyam, int darabszám) részv szvényn nynév = név; részv szvény nyárfolyam = árfolyam; Darabszám = darabszám; Probléma: hogyan tudjuk módosítani a Részvény osztály név, árfolyam és darabszám nevő mezıit? public void ÁrfolyamBe rfolyambeáll llítás(double árfolyam) részv szvény nyárfolyam = árfolyam; V október

42 A thisparaméter (példa) Megoldás a this paraméter segítségével class Részv szvény private string név; private double árfolyam; public int darabszám; public Részv szvény ny(string név, double árfolyam, int darabszám) this.n.név = név; this.árfolyam = árfolyam; this.darabsz.darabszám = darabszám; public void ÁrfolyamBe rfolyambeáll llítás(double árfolyam) this.árfolyam = árfolyam; V október

43 Beágyazott osztályok Az osztályok tetszıleges mélységben egymásba ágyazhatók Az egymásba ágyazással logikai tartalmazást jelezhetünk Az egymásba ágyazás nem jelent hierarchikus alá-, illetve fölérendelést A beágyazott típusok (osztályok) láthatóság szempontjából normál tagoknak minısülnek (láthatóságuk tehát tetszılegesen megadható, alapértelmezésben private) Beágyazott osztályokra azok teljes (minısített) nevével hivatkozhatunk A hivatkozás formája: osztály.beágyazottosztály

44 using System; Beágyazott osztályok (példa) class Küls lsıoszt Osztály public class BelsıOszt Osztály public void Üzen zenı() Console.WriteLine.WriteLine("Hurr "Hurrá,, belül l vagyunk!"); public void Üzen zenı() Console.WriteLine.WriteLine("K "Kívül l vagyunk."); Küls lsıoszt Osztály K = new Küls lsıoszt Osztály ly(); Küls lsıoszt Osztály ly.bels BelsıOszt Osztály B = new Küls lsıoszt Osztály ly.bels BelsıOszt Osztály ly(); K.Üzen zenı(); B.Üzen zenı();

45 Felbontott típusok A felbontott típusok több fizikai részre osztott, logikai szempontból viszont egységes típusok Példa: egy-egy osztály forráskódja elosztva, több fájlban is tárolható A felbontott típusok minden részét a partial kulcsszóval kell megjelölni Elınye, hogy a típusok úgy oszthatók meg több programozó vagy automatikus kódgenerátor között, hogy fizikailag nem kell osztozniuk a forrásfájlokon Különválasztható (és ezáltal külön fejleszthetı és verzionálható) az osztályok automatikusan, illetve kézzel elıállított része Különválasztható az egyes osztályok kódján dolgozó fejlesztıcsapatok munkája is A felbontott típusok elemeit a C# fordító összefésüli A fordító úgy kezeli az elemeket, mintha egy fájlban, egy típusdefinícióként hoztuk volna létre ıket Ellentmondás esetén a fordítás nem lehetséges A felbontott típusok elemei csak együtt, egyszerre fordíthatók le Nem lehetséges tehát már lefordított osztályokat utólag ilyen technikával bıvíteni

46 Felbontott típusok (példa) partial class Részv szvény private readonly string részv szvényn nynév; private double részv szvény nyárfolyam = 0.0; public int Darabszám; class Részv szvény public Részv szvény ny(string név, double árfolyam, int darabszám) private readonly string részv szvényn nynév; private double részv szvény nyárfolyam = 0.0; public int Darabszám; public Részv szvény ny(string név, double árfolyam, int darabszám) partial class Részv public szvény void Vétel( tel(int mennyiség) public void Eladás( s(int mennyiség) public void public Vétel( tel(int void mennyiség) ÁrfolyamBe rfolyambeáll llítás(double árfolyam) public void public Eladás( double s(int mennyiség) Ért rték() public void ÁrfolyamBe rfolyambeáll llítás(double árfolyam) public double Ért rték() Részvény_KovácsJános.cs Részvény_SzabóPéter.cs

47 Feladat Készítsen osztályt, amely lakóhelyiségek alapterületét, falfelületét és a mennyezet méretét számolja ki a helyiség hossza, szélessége és belmagassága alapján. Az osztály teszteléseként kérje be, hogy hány helyiségben szeretne az illetı kövezni és festeni, majd kérje be a helyiségek adatait. Végül adja meg, hogy mennyi kıre és falfestékre lesz szükség (az ajtók és ablakok méretét elhanyagoljuk). V október

48 Feladat Készítsünk egy Háromszög nevő osztályt, amely háromszögek kezelését valósítja meg. Az osztály a következı jellemzıkkel rendelkezzen: - Legyen képes tárolni a 3 csúcs koordinátáit - Legyen képes az adatok alapján eldönteni, hogy a háromszög egyenlıszárú, illetve szabályos-e - Legyen képes kiszámítani a saját kerületét és területét Készítsünk továbbá egy másik osztályt, amelynek segítségével tesztelni lehet a Háromszög osztályt. V október

49 Feladat Készítsünk egy számoló osztályt, amely két megadott valós számmal ( float típus) képes elvégezni a négy alapmőveletet, és tárolja a mőveletek eredményét is. Készítsünk továbbá egy másik osztályt, amelynek segítségével tesztelni lehet a számoló osztályt. V október

50 Feladat Készítsen osztályt, mely tárol egy szöveget, és a szöveget képes nagybetősen, kisbetősen kiírni. Tudjon szövegrészre rákeresni, ki tudja írni, hogy egy szövegrész hányszor fordul elı és egy-egy elıfordulás hol kezdıdik. Egy példány tartalmazza Móricz Zsigmond: A török és a tehenek címő versét. Keressük meg benne hányszor szerepel benne a tehén szó és ragozott változatai. A tehén szót és ragozott változatait írjuk át a szövegbe csupa nagybetővel! Volt egy török, Mehemed, sose látott tehenet. Nem is tudta Mehemed, milyenek a tehenek. Egyszer aztán Mehemed lát egy csomó tehenet. "Én vagyok a Mehemed!" "Mi vagyunk a tehenek!" Csodálkozik Mehemed: "Ilyenek a tehenek?" Számlálgatja Mehemed, hányfélék a tehenek. Meg is számol Mehemed háromféle tehenet: fehéret, feketét, tarkát, "Meg ne fogd a tehén farkát!" Nem tudta ezt Mehemed, s felrúgták a tehenek! V október

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

Részletesebben

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

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

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

Programozás II. labor

Programozás II. labor Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

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

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Származtatási mechanizmus a C++ nyelvben

Származtatási mechanizmus a C++ nyelvben Származtatási mechanizmus a C++ nyelvben Miskolci Egyetem Általános Informatikai Tanszék CPP2 / 1 Az öröklődés s fogalma 1. Egy osztály deklarálható valamely más osztály(ok) leszármazottjaként. Az deklaráció

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezők és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintű tagok Beágyazott osztályok

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezők és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintű tagok Beágyazott osztályok

Részletesebben

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 0802 ÉRETTSÉGI VIZSGA 2008. október 20. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

Részletesebben

Kalapácsvetés 2016 szöveges

Kalapácsvetés 2016 szöveges Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat után

Részletesebben

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

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

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

Magas szintű programozási nyelvek 2 Előadás jegyzet Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 1. ELŐADÁS - C# ÁTTEKINTÉS - 1 2015 Bánsághi Anna 1 of 84 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84

Részletesebben

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

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

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

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

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

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

Részletesebben

Készítette: Citynform Informatikai Zrt.

Készítette: Citynform Informatikai Zrt. Dokumentumtár Felhasználói kézikönyv Készítette: Citynform Informatikai Zrt. Tartalomjegyzék "Dokumentumtár" főablak... 4 A dokumentumtár egészére vonatkozó műveletek... 4 Új dokumentum felvétele... 4

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán Publication date 2011 A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046

Részletesebben

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek I. fejezet Hello Világ! Programozás tankönyv II. Fejezet Helló Világ! avagy a Miért?-ek elkezdődnek 1 Programozás tankönyv I. fejezet Majd minden programozó ezzel a kedves kis programmal kezdi a programozás-tanulást:

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

2.3. A C nyelv utasításai

2.3. A C nyelv utasításai 2.3. A C nyelv utasításai A C szabvány hét csoportban osztályozza a C nyelv utasításait: Csoport Kulcsszavak, ill. jelölések Kifejezés utasítás Üres utasítás: ; Összetett utasítás: } Szelekciós utasítások:

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 0911 ÉRETTSÉGI VIZSGA 2011. október 17. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Vizuális és eseményvezérelt programozás , II. félév BMF NIK Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

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

4. Öröklődés. Programozás II 4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()

Részletesebben

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

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció

Részletesebben

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

A C++ öröklés. (Előfeltétel: 12. tétel ismerete) Az öröklés fogalma: A C++ öröklés (Előfeltétel: 12. tétel ismerete) olyan alapvető programozási technika, amely lehetővé teszi, hogy a már meglévő osztályainkból újakat tudunk származtatni, valamint az

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 7. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/17 Tartalomjegyzék Házi

Részletesebben

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

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 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

Részletesebben

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek SZERVER OLDALI JAVASCRIPT 3. hét Javascript nyelvi elemek NYELVI ALAPOK: Ez sajnos igen száraz anyag, Viszont a megértékhez és a nyelv elsajátításához kell. Próbáljuk meg random gifekkel feldobni. MIRŐL

Részletesebben

Java programozási nyelv 8. rész Grafikus felhasználói felület

Java programozási nyelv 8. rész Grafikus felhasználói felület Java programozási nyelv 8. rész Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17

Részletesebben

C# feladatok gyűjteménye

C# feladatok gyűjteménye C# feladatok gyűjteménye Készítette: Fehérvári Károly I6YF6E Informatika tanár ma levelező tagozat 1) Feladat: ALAPMŰVELETEK Készítsünk programot, amely bekér két egész számot. Majd kiszámolja a két szám

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló

Részletesebben

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás. Emlékeztető: a fordítás lépései Forrás-kezelő (source handler) Szimbólumtábla-kezelés Fordítóprogramok előadás (A, C, T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus elemző

Részletesebben

Ingrid Signo Felhasználói kézikönyv. Pénztári használatra

Ingrid Signo Felhasználói kézikönyv. Pénztári használatra Ingrid Signo Felhasználói kézikönyv Pénztári használatra 3.0 verzió Microsoft Windows 98SE, NT 4.0, XP, 2000 operációs rendszerekre 2006. január 20. Tájékoztató a Ingrid Signo felhasználási jogáról A felhasználás

Részletesebben

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek

Részletesebben

Objektumorientált programozás IX. Osztályok, objektumok

Objektumorientált programozás IX. Osztályok, objektumok Objektumorientált programozás IX. Osztályok, objektumok 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 11. Jó hír Jó hír Java lesz! Tárgyismertet Elérhet ségek: Kovács Kristóf: kkovacs@math.bme.hu Rimay Zoé: zrimay@math.bme.hu, Követelmények: Év végi beadandó (facebook):

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv

Részletesebben

Lemezkezelés, állományrendszerek

Lemezkezelés, állományrendszerek Lemezkezelés, állományrendszerek A fizikai lemezek területét használat előtt logikai lemezekké kell szerveznünk. A logikai lemez az az egység, amely a felhasználó számára külön lemezként jelenik meg, vagyis

Részletesebben

PHP5 Új generáció (2. rész)

PHP5 Új generáció (2. rész) PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Objektum orientált alapelvek

Objektum orientált alapelvek Krizsán Zoltán 1 [2012. február 12.] Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Programozási nyelvek A programozási eszközök absztrakciós

Részletesebben

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

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System P r o g r a m o z á s i n y e l v e k I I. C # E jegyzet másolata nem használható fel szabadon,az előadás anyagának kivonata. Ezen teljes jegyzetről,vagy annak bármely részéről bármely másolat készítéséhez

Részletesebben

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése...

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése... 1 Bevezető... 2 1.1 Szakdolgozat témája... 2 1.2 A Program célja... 2 1.3 Fejlesztői környezet... 2 1.4 A használt technológiák ismertetése... 2 2 A program megtervezése... 4 2.1 Az ablak kinézetének megtervezése:...

Részletesebben

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok

Részletesebben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben Az emelt szintű informatika érettségi programozási feladatainak megoldása Java nyelven NetBeans IDE 8.1 környezetben Klement András 2016 Utolsó módosítás: 2016. május 25. Tartalomjegyzék Tartalomjegyzék

Részletesebben

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA Programozási nyelvek II.: JAVA 6. gyakorlat 2017. október 16-20. 6. gyakorlat Programozási nyelvek II.: JAVA 1 / 24 Az 6. gyakorlat tematikája túlterhelés - összefoglalás statikus adattagok és metódusok

Részletesebben

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4 C# versus Java Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3 Bedők Dávid 2016.10.01. v0.4 Azonosságok I. Curly-bracket nyelvek ({}) C, C++, PHP, JavaScript, stb.) ProgrammingTheorem

Részletesebben

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS EMELT SZINTŰ ISKOLAI PROGRAMJA 11-12. évolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. Az

Részletesebben

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE Kezelési leírás 2015. Program azonosító: WUJEGYKE Fejlesztő: B a l o g h y S z o f t v e r K f t. Keszthely, Vak Bottyán utca 41. 8360 Tel: 83/515-080

Részletesebben

II. év. Adatbázisok és számítógépek programozása

II. év. Adatbázisok és számítógépek programozása II. év Adatbázisok és számítógépek programozása A programozási ismeretek alapfogalmai a) algoritmus b) kódolás c) program a) algoritmus: elemi lépések sorozata, amely a következı tulajdonságokkal rendelkezik:

Részletesebben

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

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat 2. Digitális óra 28 OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK 2.1 A feladat Ebben a fejezetben egy viszonylag egyszerő problémára alkalmazva tekintjük át az OO tervezés modellezési technikáit. A feladat

Részletesebben

5. modul - Adatbázis-kezelés

5. modul - Adatbázis-kezelés 5. modul - Adatbázis-kezelés Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük az 5. modul (Adatbázis-kezelés) syllabusát, amely a gyakorlati modulvizsga követelményrendszere. A modul célja A

Részletesebben

Intézményi felhasználók karbantartása, jogosultság beállítása. Felhasználói dokumentáció. 1 / 9 oldal

Intézményi felhasználók karbantartása, jogosultság beállítása. Felhasználói dokumentáció. 1 / 9 oldal Intézményi felhasználók karbantartása, jogosultság beállítása Felhasználói dokumentáció v2 1 / 9 oldal Tartalomjegyzék 1 Általános ismertető... 3 1.1 Illetményszámfejtő hely... 3 1.2 Intézményi végpont...

Részletesebben

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 1. Előadás Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu A tantárgyi

Részletesebben

Vényírás. 1. ábra. 1. oldal

Vényírás. 1. ábra. 1. oldal Vényírás Amennyiben sikeresen kitöltöttük és elmentettük a megvizsgált személy ápolási esetét, lehetőségünk van vény felírására, az alábbi módon; 1. ábra A gomb megnyomásával egy legördülő menü tárul elénk,

Részletesebben

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A Microsoft Visual Studio 2005 fejlesztőkörnyezet Vizuális és eseményvezérelt programozás BMF NIK A Microsoft Visual Studio 2005 fejlesztőkörnyezet Az integrált fejlesztőkörnyezet (IDE) alapelemei Projektek és megoldások Új projekt indítása, projektek

Részletesebben

Események C#-ban Krizsán Zoltán iit

Események C#-ban Krizsán Zoltán iit Krizsán Zoltán Mi az? Aszinkron törtt rténésről értesítés s egy vagy több t objektum számára. Delegátumok segíts tségével valósítja meg a C#. 2 Lehetőségek 1. Egy objektum bejelentheti érdeklődését egy

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés. Felhasználói kézikönyv

MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés. Felhasználói kézikönyv MAGYAR POSTA BEFEKTETÉSI ZRT. e-befektetés Felhasználói kézikönyv a Magyar Posta Befektetési Zrt. e-befektetéséhez Verziószám: 1.1 Hatályos: 2016.02.16. Magyar Posta Befektetési Zrt. Felhasználói kézikönyv

Részletesebben

Programozás alapjai 1. (BMEVIEEA100)

Programozás alapjai 1. (BMEVIEEA100) Programozás alapjai 1. (BMEVIEEA100) Gyakorlat anyaga az 6. oktatási héten (4-5. gyakorlat) A 7. oktatási hét péntekje előbbre csúszik a 6. hét szombatjára, ezért a 7. heti anyagot a szokottnál előbb kapjátok

Részletesebben

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes

Részletesebben

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól. Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket:

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk

Részletesebben

XML technikák II Kovács, László

XML technikák II Kovács, László XML technikák II Kovács, László XML technikák II Kovács, László Kelet-Magyarországi Informatika Tananyag Tárház Nemzeti Fejlesztési Ügynökség http://ujszechenyiterv.gov.hu/ 06 40 638-638 Lektor Dr. Johanyák

Részletesebben

4. Adatkezelő: AGE Optima Bt.. (székhely: 1094 Budapest, Berzenczey utca 39-41.)

4. Adatkezelő: AGE Optima Bt.. (székhely: 1094 Budapest, Berzenczey utca 39-41.) Adatvédelmi szabályzat Hatályos: 2016.01.01. napjától I. A szabályzat hatálya Jelen Adatkezelési és adatvédelmi szabályzat (továbbiakban: Szabályzat) a www.horvatorszagszeretlek.hu címen elérhető oldalhoz

Részletesebben

Matematikai és matematikai statisztikai alapismeretek

Matematikai és matematikai statisztikai alapismeretek Kézirat a Matematikai és matematikai statisztikai alapismeretek című előadáshoz Dr. Győri István NEVELÉSTUDOMÁNYI PH.D. PROGRM 1999/2000 1 1. MTEMTIKI LPOGLMK 1.1. Halmazok Halmazon mindig bizonyos dolgok

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv

Eseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II A.NET keretrendszer és a C# programozási nyelv Objektumorientált programozási nyelvek A Smalltalk nyelv 1980-ban

Részletesebben

Programozási Paradigmák és Technikák

Programozási Paradigmák és Technikák Programozási Paradigmák és Technikák Öröklődés Interfészek Kivételkezelés Rekurzió Eseménykezelés Programozási Paradigmák és Technikák Öröklődés Öröklődés a C# nyelvben Öröklődés feladatok Gyakorló feladatok

Részletesebben

A hierarchikus adatbázis struktúra jellemzői

A hierarchikus adatbázis struktúra jellemzői A hierarchikus adatbázis struktúra jellemzői Az első adatbázis-kezelő rendszerek a hierarchikus modellen alapultak. Ennek az volt a magyarázata, hogy az élet sok területén első közelítésben elég jól lehet

Részletesebben

Elemi Alkalmazások Fejlesztése II.

Elemi Alkalmazások Fejlesztése II. Elemi Alkalmazások Fejlesztése II. Osztályok közötti kapcsolatok öröklődés asszociáció aggregáció kompozíció 1. Feladat Készítsünk programot, amellyel testek térfogatát határozhatjuk meg, illetve megadhatjuk

Részletesebben

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki A Közlekedési Főfelügyelet közleménye a nemzetközi forgalomban használt autóbuszok (M2 és M3 jármű-kategóriába tartozó gépkocsik) vizsgálatát (is) végző vizsgálóállomásokon alkalmazandó mérő-adatgyűjtő

Részletesebben

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai. Halmazok Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai. 1. lapfogalmak halmaz és az eleme fogalmakat alapfogalmaknak tekintjük, nem deniáljuk ket. Jelölés: x H,

Részletesebben

Mesterséges intelligencia 1 előadások

Mesterséges intelligencia 1 előadások VÁRTERÉSZ MAGDA Mesterséges intelligencia 1 előadások 2006/07-es tanév Tartalomjegyzék 1. A problémareprezentáció 4 1.1. Az állapottér-reprezentáció.................................................. 5

Részletesebben

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben