GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Hasonló dokumentumok
BME MOGI Gépészeti informatika 6.

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 4.

BME MOGI Gépészeti informatika 13.

BME MOGI Gépészeti informatika 1.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

BME MOGI Gépészeti informatika 5.

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

Kalapácsvetés 2016 szöveges

.Net adatstruktúrák. Készítette: Major Péter

BME MOGI Gépészeti informatika 2.

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

BME MOGI Gépészeti informatika 15.

BME MOGI Gépészeti informatika 14.

Szoftvertechnolo gia gyakorlat

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

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

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

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

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Form1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100

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

OOP #14 (referencia-elv)

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

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

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

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.

INFORMATIKAI ALAPISMERETEK

Programozási technológia

Informatika terméktervezőknek

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

INFORMATIKAI ALAPISMERETEK

Java Programozás 1. Gy: Java alapok. Ismétlés ++

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

3. Osztályok II. Programozás II

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

1. ábra Fájl feltöltése 2. ábra Megtekintés

OOP: Java 8.Gy: Gyakorlás

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

Bánsághi Anna

Programozási nyelvek Java

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

Eseménykezelés - Lottó játék

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Generikus osztályok, gyűjtemények és algoritmusok

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

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

OOP: Java 1.Gy: Java alapok

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

Johanyák Zsolt Csaba: Képnézegető program oktatási segédlet

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Osztályok. 4. gyakorlat

Entity Framework alapú adatbáziselérés 2

Entity Framework alapú adatbáziselérés

Mentsd el code file-t kektura.cs néven, illetve kiterjesztéssel! Másold be a kektura.csv állományt a Projects munkamappa megfelelő almappájába!

Mérési adatgyűjtés és adatfeldolgozás 2. előadás

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

HVK Adminisztrátori használati útmutató

Ugráló gomb oktatási segédlet Ugráló gomb

Pénzügyi algoritmusok

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

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

4. Gy: JAVA osztályok

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

Java és web programozás

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

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

C#---Access adatbáziskezelési gyakorlat

C++ programozási nyelv Konstruktorok-destruktorok

Szoftvertervezés és -fejlesztés I.

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Gyakorló feladatok az 1. nagy zárthelyire

Elemi Alkalmazások Fejlesztése II.

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

Objektumorientált Programozás VI.

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

Webszolgáltatás és XML alapú adatbázis. 1. Az adatbázis megtervezése

Adatszerkezetek és algoritmusok

117. AA Megoldó Alfréd AA 117.

OOP: Java 4.Gy: Java osztályok

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

Programozás I. Objektum-orientált programozás Stringműveletek V 1.0 ÓE-NIK-AII,

Programozás alapjai 9.Gy: Struktúra 2.

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Programozás I gyakorlat

Objektumorientált programozás C# nyelven

Átírás:

BME MOGI Gépészeti informatika 17. A C# nyelv generikus típusait a System.Collections.Generics névtérben találhatjuk meg. Ez a névtér számos osztályt és interfészt tartalmaz, amelyek lehetővé teszik előre meg nem határozott típusú objektumok tárolását. Generikus osztályok esetén a tárolt objektum típusát az osztály nevét követően kisebb és nagyobb jelek között adjuk meg: GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>(); 1. feladat Készítsen Windows Forms alkalmazást véletlen koordinátákkal létrehozott pontok közül a két legközelebbi megkeresésére! Hozza létre a következő struktúrát, melynek elemei legyenek public elérésűek! Pont tulajdonságok: o double X, o double Y, konstruktor o double x_, double y_ paraméterekkel rendelkező konstruktor, ami inicializálja a tulajdonságokat, metódus: o Távolság a pont távolságát számítja ki egy paraméterként adott ponttól, és valós számként adja vissza a távolság értékét. Hozzon létre egy listát, melynek elemei Pont típusúak, és töltse fel a listát adott számú, adott intervallumból származó véletlen koordinátájú pontokkal! A pontok számát és az intervallum határait TextBox vezérlőkből olvassa be, a pontok indexét és koordinátáit ListBox vezérlőben jelenítse meg! A számítást egy gombbal indítsa, a legközelebbi pontok indexeit TextBox vezérlőbe írja ki! Megoldási mód: Windows Forms alkalmazás Oktatási cél: A listakezelés bemutatása, struktúrák használatának gyakorlása Az elkészítendő form: 1

A Form1 osztályba írandó programkód: public struct Pont // a Pont struktúra definíciója // automatikus, írható, olvasható tulajdonságok public double X get; set; public double Y get; set; public Pont(double x_, double y_) // paraméteres konstruktor X = x_; Y = y_; public double Távolság(Pont p) return Math.Sqrt((X - p.x) * (X - p.x) + (Y - p.y) * (Y - p.y)); List<Pont> lista = new List<Pont>(); // üres Pont-lista létrehozása Random rnd = new Random(); double alsó=0, felső=0; int n = 0; // A Számol gomb eseménykezelő metódusa private void button1_click(object sender, EventArgs e) n = int.parse(textbox1.text); alsó = double.parse(textbox2.text); felső = double.parse(textbox3.text); double min = double.maxvalue; int mini = 0, minj = 0; listbox1.items.clear(); // a listaablak törlése lista.clear(); // a lista elemeinek eltávolítása // a lista feltöltése véletlen pontokkal for (int i = 0; i < n; i++) Pont p = new Pont(rnd.NextDouble() * (felső - alsó) + alsó, rnd.nextdouble() * (felső - alsó) + alsó); lista.add(p); // hozzáadás a listához // formázott megjelenítés a listaablakban listbox1.items.add(i.tostring("n0") + "\t" + p.x.tostring("f2") + "\t" + p.y.tostring("f2")); // a pontok közötti távolságok minimumának keresése for (int i = 0; i < lista.count ; i++) for (int j = i+1; j < lista.count ; j++) double táv = lista[i].távolság(lista[j]); if (táv < min) // ha a táv < min, eltesszük az adatokat min = táv; mini = i; minj = j; // a legközellebi pontok indexei textbox4.text = mini.tostring(); textbox5.text = minj.tostring(); 2

2. feladat Készítsen alkalmazást, mely egy beolvasott mondat szavaiból sort készít, és lehetővé teszi új szó bevitelét a sorba, illetve elem kivételét abból! Megoldási mód: Windows Forms alkalmazás Oktatási cél: a sorkezelés bemutatása Az elkészítendő form: A Form1 osztályba írandó programkód: string[] szavak; // string típusú elemek lesznek a sorban Queue<string> sor = new Queue<string>(); char[] jelek = ' ', ',', '.', '!', '?', ';' ; // tagoló karakterek // A Sort létrehoz gomb eseménykezelője private void button1_click(object sender, EventArgs e) // A mondat felbontása szavakra szavak = textbox1.text.split(jelek, StringSplitOptions.RemoveEmptyEntries); sor = new Queue<string>(); // üres sor létrehozása // a mondat szavainal bevitele a sorba for (int i = 0; i < szavak.length; i++) sor.enqueue(szavak[i]); // hozzáadás a sor végéhez SorKiír(); // a sor tartalmának megjelenítése // A sor adatsor tartalmának megjelenítése a testbox2-ben private void SorKiír() textbox2.text = ""; // végigmegy a sorban tárolt elemeken foreach (var elem in sor) 3

textbox2.text += elem + " "; // hozzáadás a szövegmezőhöz // A Kivesz gomb eseménykezelőjében kiveszünk egy elemet a sor elejéről private void button2_click(object sender, EventArgs e) if (sor.count>0) // ha a sorban vannak elemek sor.dequeue(); // kivesszük az első elemet, és eldobjuk SorKiír(); // A Betesz gomb eseménykezelőjében a textbox3 tartalmát // hozzáadjuk a sor végéhez private void button3_click(object sender, EventArgs e) sor.enqueue(textbox3.text); // hozzáadás a sor végéhez SorKiír(); 3. feladat Készítsen alkalmazást, mely egy beolvasott mondat szavait beteszi egy verembe, és lehetővé teszi új szó bevitelét a verembe, illetve elem kivételét onnan! Megoldási mód: Windows Forms alkalmazás Oktatási cél: a veremkezelés bemutatása Az elkészítendő form: A Form1 osztályba írandó programkód: string[] szavak; // string típusú elemek lesznek a veremben Stack<string> verem = new Stack<string>(); char[] jelek = ' ', ',', '.', '!', '?', ';' ; // tagoló karakterek 4

// A Vermet létrehoz gomb eseménykezelő metódusa private void button1_click(object sender, EventArgs e) // A mondat felbontása szavakra szavak = textbox1.text.split(jelek, StringSplitOptions.RemoveEmptyEntries); verem = new Stack<string>(); // üres verem létrehozása // a mondat szavainal bevitele a verembe for (int i = 0; i < szavak.length; i++) verem.push(szavak[i]); // behelyezés a verem tetejére VeremKiír(); // a verem tartalmának megjelenítése // A verem tartalmának megjelenítése a listbox1-ben private void VeremKiír() listbox1.items.clear(); // a listablak törlése // végiglépkedve a vermen, betesszük az elemeket a listaablakba foreach (var elem in verem) listbox1.items.add(elem); // A Kivesz gomb eseménykezelőjében kiveszünk egy elemet a verem tetejéről private void button2_click(object sender, EventArgs e) if (verem.count > 0) // ha a veremben vannak elemek verem.pop();// kivesszük a felső elemet, és eldobjuk VeremKiír(); // A Betesz gomb eseménykezelőjében a textbox2 tartalmát // ráhelyezzük a verem tetejére private void button3_click(object sender, EventArgs e) verem.push(textbox2.text); VeremKiír(); 4. feladat önálló feldolgozásra (nem törzsanyag) Készítsen alkalmazást, mely egy sztringkonstansokat tartalmazó tömb szavaiból láncolt listát hoz létre! Írjon metódust a láncolt lista elemeinek képernyőre írására! Végezze el a következő műveleteket a láncolt listában, minden művelet után írja ki a lista elemeit a képernyőre: törölje az első és utolsó szót, a lista végére szúrjon be új szót, vizsgálja meg, hogy egy beolvasott szó előfordul-e a listában, ha igen cserélje ki egy másik, szintén beolvasott szóra Megoldási mód: konzolalkalmazás 5

Oktatási cél: láncolt lista kezelésének bemutatása A programkód: static void Main(string[] args) // a sztringkonstansok tömbje string[] szavak = "ma", "ragyogó", "tavaszi","nap","van", "szépen", "süt","a","nap","és","nem","esik","az","eső"; // üres lácolt lista létrehozása LinkedList<string> lista = new LinkedList<string>(szavak); Kiír(lista); // a lista elemeinek megjelenítése Console.WriteLine(); Console.WriteLine("Az első és utolsó szót töröltük, a végére új szót"+ " szúrtunk be!"); lista.removefirst(); // az első elem törlése lista.removelast(); // az utolsó elem törlése lista.addlast("hó"); // beszúrás a lista végére Kiír(lista); Console.WriteLine(); Console.WriteLine("Kérek egy szót!"); string szó = Console.ReadLine(); if (lista.contains(szó)) // ha a lista tartalmazza a megadott szót Console.WriteLine("A szó előfordul a listában! Mire cserélje?"); string csere = Console.ReadLine(); LinkedListNode<string> hely = lista.find(szó); // a szó pozíciója // az új szó beszúrása az eredeti szó mögé lista.addafter(hely, csere); lista.remove(szó); // az eredeti szó törlése Console.WriteLine(); Kiír(lista); else Console.WriteLine("A szó nem fordul elő a listában!"); Console.ReadLine(); // A megadott láncolt lista tartalmának megjelenítése static void Kiír(LinkedList<string> láncoltlista) // Végiglépkedünk a lácolt listán foreach (string elem in láncoltlista) Console.Write(elem + " "); // megjelenítjük az elemet Console.WriteLine(); 6

Gyakorló feladatok 1. Készítsen Windows Forms alkalmazást, amely véletlen adatokkal előállított körök közül egy ListBox vezérlőbe kiírja azokat K(x;y) r=érték formában, melyek koncentrikusak egymással; azt is jelezze, ha ilyen körök nem fordulnak elő, egy másik ListBox vezérlőbe a fentiekhez hasonló formában kiírja azokat a köröket, melyek több példányban fordulnak elő, a példányszámmal együtt! Hozza létre a következő struktúrákat, melyek elemei legyenek public elérésűek! Pont Kör tulajdonságok: o int X, o int Y, konstruktor o két egész paraméterrel rendelkező konstruktor, melyek annak az intervallumnak a határai, ahonnan generálni kell a tulajdonságok értékeit, metódus: o Egybeesik igaz értéket ad vissza, ha a pont egybeesik egy paraméterként adott ponttal, különben hamisat. mező és tulajdonság: o Pont k, o int R, konstruktor o két egész paraméterrel rendelkező konstruktor, melyek annak az intervallumnak a határai, ahonnan generálni kell azokat az értékeket, amikkel egyrészt a középpont létrehozásához és inicializálásához meghívja a Pont struktúra konstruktorát, másrészt véletlen egész értékkel inicializálja a sugarat, metódus: o Azonos igaz értéket ad vissza, ha a kör egybevágó egy paraméterként adott körrel, különben hamisat. A pontok koordinátáit a [0;5], a sugár értékeket az [1;5] intervallumból generálja. Hozzon létre egy listát, melynek elemei Kör típusúak, és töltse fel a listát! A pontok számát TextBox vezérlőből olvassa be! A számítást egy gombbal indítsa! 2. Készítsen Windows Forms alkalmazást egy ügyfélszolgálatnál várakozó sor kezelésére! Az ügyfelek kiszolgálás utáni távozását, illetve az új ügyfelek beérkezését egy-egy Timer vezérlő segítségével oldja meg! A kiszolgálási időt és a beérkezés várható idejét a [100;1000] ms intervallumból generált véletlen szám adja. Az ügyfeleket egy 1-től kezdődő folyamatos sorszámmal azonosítsa. A várakozási sort sor szerkezetben tárolja, melynek elemeit egy TextBox vezérlőben jelenítse meg! Az ügyfelek mindenkori számát, a kiszolgálási és a beérkezési időt szintén TextBox vezérlőbe írja ki! 7

3. Írjon Windows Forms alkalmazást a Fibonacci számsor elemeinek animált kiszámítására! A feladatot úgy oldja meg, hogy a kiszámítandó elemek sorszámait a legnagyobb sorszámtól kezdődően írja egy verembe, a verem tartalmát pedig egy ListBox vezérlőben jelenítse meg! Az elemek kiszámítását egy Timer vezérlő irányítsa, a vezérlőt egy gomb megnyomásakor engedélyezze! Mindig a verem legfelső sorszámú elemét számítsa ki, a számokat egy TextBox vezérlőben jelenítse meg! Ha a verem üres, állítsa meg a Timert! Beviteli mezőből kérje be, hogy hány elemet kell kiszámítani! 8