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

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

BME MOGI Gépészeti informatika 15.

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

BME MOGI Gépészeti informatika 6.

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 1.

BME MOGI Gépészeti informatika 4.

BME MOGI Gépészeti informatika 13.

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

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

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

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 2.

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

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

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

VISUAL BASIC ALAPISMERETEK

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

Vizuális, eseményvezérelt programozás I.

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

Eseményvezérelt alkalmazások fejlesztése II 3. előadás. Windows Forms dinamikus felhasználói felület, elemi grafika

Regresszió számítás. Tartalomjegyzék: GeoEasy V2.05+ Geodéziai Kommunikációs Program

F# (efsárp) példaprogramok

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

IV. LEGO Robotprogramozó Országos Csapatverseny

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

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

VI. Robotprogramozó Országos Csapatverseny Döntő versenyfeladatok. 5. évfolyam

Az objektum leírására szolgálnak. Mire jók? Sokszor maga a jellemző az érdekes: Tömörítés. Objektumok csoportosítására

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

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

Eseménykezelés. Aszinkron kommunikáció

A lengőfűrészelésről

munkafüzet open eseményéhez

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

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

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

Matematika A1. 8. feladatsor. Dierenciálás 2. Trigonometrikus függvények deriváltja. A láncszabály. 1. Határozzuk meg a dy/dx függvényt.

2009/2010. tanév Országos Középiskolai Tanulmányi Verseny döntő forduló. FIZIKA I. kategória FELADATLAP. Valós rugalmas ütközés vizsgálata.

6000 Kecskemét Nyíri út 11. Telefon: 76/ ; Fax: 76/ Gyakorló feladatok

Mechatronika segédlet 2. gyakorlat

Tartalomjegyzék. Bevezetés...2

Eseményvezérelt alkalmazások fejlesztése II 5. előadás. Windows Forms alkalmazások párhuzamosítása. Giachetta Roberto

Windows alkalmazások készítése. A Windows rendszerben a felhasználó hozzászokott a menü, az eszköztár és a többalakos programok használatához.

VIII. Robotprogramozó Országos Csapatverseny Regionális versenyfeladatok évfolyam

Mágneses mező tesztek. d) Egy mágnesrúd északi pólusához egy másik mágnesrúd déli pólusát közelítjük.

TABLETTÁK ÉS KAPSZULÁK SZÉTESÉSE

Programozás I. Grafika Eseménykezelés. Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények. Surányi Márton PPKE-ITK

Összeállítás 01 gyakorló feladat

Szilárd Leó Fizikaverseny Számítógépes feladat

VARIO Face 2.0 Felhasználói kézikönyv

Áramlástan feladatgyűjtemény. 3. gyakorlat Hidrosztatika, kontinuitás

1. gyakorlat. Egyenletes és egyenletesen változó mozgás. 1. példa

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

5.osztály 1.foglalkozás. 5.osztály 2.foglalkozás. hatszögéskörök

Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján. Típusok: felügyelt és felügyelet nélküli tanuló eljárások

Elemi Alkalmazások Fejlesztése Beadandó Feladat Juhász Ádám

Eseménykezelés. Aszinkron kommunikáció

(Forrás:

Matematika 8. osztály

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

Minden jó válasz 4 pontot ér, hibás válasz 0 pont, ha üresen hagyja a válaszmezőt, 1 pont.

Koordináta-geometria alapozó feladatok

VI. Robotprogramozó Országos Csapatverseny évfolyam

Egyenes mert nincs se kezdő se végpontja

Pontfelhő létrehozás és használat Regard3D és CloudCompare nyílt forráskódú szoftverekkel. dr. Siki Zoltán

CAN alapú járműves adatokat megjelenítő szoftver fejlesztése

2. Beadandó feladat dokumentáció

Koordináta-geometria feladatgyűjtemény

#include <iostream> using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi;

TABULÁTOROK TÁBLÁZATOK KÉSZÍTÉSE. A táblázatok készítésének lehetőségei:

Tervminták a valósidejű gyakorlatban

2. Beadandó feladat dokumentáció

Mechatronika segédlet 1. gyakorlat

Vizuális programozás gyakorlat

Kétdimenziós rajzolás WPF-ben

C# feladatok gyűjteménye

9. előadás. Térbeli koordinátageometria

Készítette:

Dusza Árpád Országos Programozói Emlékverseny 2012/2013

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

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

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Pálya : Az a vonal, amelyen a mozgó test végighalad. Út: A pályának az a része, amelyet adott idő alatt a mozgó tárgy megtesz.

Ajánlott szakmai jellegű feladatok

48. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY Megyei forduló HETEDIK OSZTÁLY MEGOLDÁSOK = = 2019.

Folyadékok és gázok áramlása

Ablakok. Fájl- és mappaműveletek. Paint

Folyadékok és gázok áramlása

Programozás 7.o Az algoritmus fogalma (ismétlés)

3.1. ábra ábra

A bifiláris felfüggesztésű rúd mozgásáról

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

1. fejezet. Gyakorlat C-41

Mechatronika segédlet 3. gyakorlat

3. tétel Térelemek távolsága és szöge. Nevezetes ponthalmazok a síkon és a térben.

Egyszerű példaprogramok gyakorláshoz

Tömegpontok mozgása egyenes mentén, hajítások

Átírás:

BME MOGI Gépészeti informatika 16. 1. feladat Írjon alkalmazást, melyben egy 4 pixel sugarú, pirosra kifestett kört egy másik körön mozgat! A mozgást időzítő vezérelje! Megoldási mód: Windows Forms alkalmazás Oktatási cél: rajzelemek mozgatásának bemutatása Az elkészítendő form: A form vezérlői tulajdonságainak beállításai: Form1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100 A Form1 osztályba írandó programkód: double szög = 0; Point pont = new Point(); // a kör középpontja int sugár = 0; // a kör sugara private void Form1_Paint(object sender, PaintEventArgs e) Graphics g = e.graphics; // a nagy kör befoglaló téglalapja Rectangle t1 = new Rectangle(pont.X - sugár, pont.y - sugár, 2 * sugár, 2 * sugár); g.drawellipse(pens.black,t1); // a kis kör középpontjának koordinátái int x = pont.x + Convert.ToInt32(sugár * Math.Cos(szög / 180 * Math.PI)); int y = pont.y - Convert.ToInt32(sugár * Math.Sin(szög / 180 * Math.PI)); // a kis kör befoglaló téglalapja Rectangle t3 = new Rectangle(x - 4, y - 4, 8, 8); g.fillellipse(brushes.red, t3); 1

2. feladat private void Form1_Load(object sender, EventArgs e) pont.x = this.clientsize.width / 2; // a nagy kör középpontja és sugara pont.y = this.clientsize.height / 2; sugár = 3 * Math.Min(pont.X, pont.y) / 4;; private void Form1_Resize(object sender, EventArgs e) Form1_Load(sender, e); Refresh(); private void timer1_tick(object sender, EventArgs e) Refresh(); szög = (szög + 5) % 360; Készítsen alkalmazást, amely az ablak közepén álló billiárdgolyónak megfelelő alakzatot gombnyomás hatására, véletlenszerű irányban és lépésekkel elindítja, majd az ablakot határoló kerethez teljesen rugalmatlanul ütközteti! A mozgatást időzítő vezérelje! Teljesen rugalmatlan ütközés esetén a golyó sebességének fallal párhuzamos összetevője változatlan marad, míg a falra merőleges összetevő előjelet vált. Megoldási mód: Windows Forms alkalmazás Oktatási cél: rajzelemek mozgatásának bemutatása A form vezérlői tulajdonságainak beállításai: Form1 Form Size 550; 350 Text Visszapattanó billiárdgolyó button1 Button Text Start Anchor Bottom; Left timer1 Timer Enabled False Interval 60 Az elkészítendő form: 2

A Form1 osztályba írandó programkód: const int r = 20; int x = r, y = r; int dx = 1, dy = 1; private void timer1_tick(object sender, EventArgs e) x += dx; y += dy; // a függőleges falak közelében (r távolságon belül) if (x <= r x >= (ClientSize.Width - r)) dx = -dx; // a vízszintes falak közelében if (y <= r y >= (ClientSize.Height - r)) dy = -dy; Refresh(); private void Form1_Load(object sender, EventArgs e) x = ClientSize.Width / 2; y = ClientSize.Height / 2; Refresh(); private void Form1_Paint(object sender, PaintEventArgs e) Graphics g = e.graphics; g.fillellipse(brushes.red, x - r, y - r, 2 * r, 2 * r); private void button1_click(object sender, EventArgs e) Random rnd = new Random(); dx = rnd.next(r) * (2 * rnd.next(2) - 1); // (r-1)..0 dy = rnd.next(r) * (2 * rnd.next(2) - 1); // (r-1)..0 timer1.interval = 60; // 60ms timer1.enabled =!timer1.enabled; if (timer1.enabled) button1.text = "Stop"; else button1.text = "Start"; 3

3. feladat Írjon alkalmazást, melyben egy csészét forgat a függőleges tengelye körül! A forgatást időzítő vezérelje! Megoldási mód: Windows Forms alkalmazás Oktatási cél: animáció készítésének bemutatása Az elkészítendő form: A form vezérlői tulajdonságainak beállításai: Form1 Form Size 300; 300 Text Forgó csésze picturebox1 PictureBox Size 170; 170 Location 60; 30 Anchor Top; Left imagelist1 ImageList ImageSize 180; 180 Images csésze1.gif Images csésze2.gif Images csésze3.gif Images csésze4.gif Images csésze5.gif Images csésze6.gif Images csésze7.gif Images csésze8.gif button1 Button Text Indítás Anchor Bottom; Left button2 Button Text Leállítás Anchor Bottom; Left timer1 Timer Enabled False Interval 200 A Form1 osztályba írandó programkód: int képszám = 0; 4

private void timer1_tick(object sender, EventArgs e) // a következő képet jeleníti meg picturebox1.image = imagelist1.images[képszám]; // növeli a képszámot képszám = (képszám + 1) % 8; private void button1_click(object sender, EventArgs e) timer1.enabled = true; private void button2_click(object sender, EventArgs e) timer1.enabled = false; private void Form1_Activated(object sender, EventArgs e) picturebox1.image = imagelist1.images[képszám]; 4. feladat önálló feldolgozásra Írjon programot, melyben folyadék átfolyását szimulálja egy teli tartályból egy vele csővel összekötött másik tartályba! Megoldási mód: Windows Forms alkalmazás Oktatási cél: animáció alkalmazásának bemutatása Az elkészítendő form: 5

A form vezérlői tulajdonságainak beállításai: Form1 Form Text Tartályok button1 Button Text Start/Stop timer1 Timer Enabled False Interval 50 A Form1 osztályba írandó programkód: private const int szélesség1 = 220-1; // a tartály1 szélessége private const int szélesség2 = 150-1; // a tartály2 szélessége // a tartály1-ben a víz mennyisége, ha 150 pixel magasan áll private const int térfogat = szélesség1 * 150; private Rectangle tartály1 = new Rectangle(20, 80, szélesség1 + 1, 170); private Rectangle tartály2 = new Rectangle(360, 150, szélesség2 + 1, 200); private Rectangle cső = new Rectangle(240, 220, 120, 8); private int magasság1 = 150, magasság2 = 0; private bool folyik = false; private void Form1_Load(object sender, EventArgs e) // az ablak nem méretezhető át this.formborderstyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.minimizebox = false; this.maximizebox = false; timer1.interval = 50; private void TartályRazolás(Graphics g, Rectangle tartály) g.drawline(pens.black, tartály.left, tartály.top, tartály.left, tartály.bottom); g.drawline(pens.black, tartály.left, tartály.bottom, tartály.right, tartály.bottom); g.drawline(pens.black, tartály.left, tartály.bottom, tartály.right, tartály.bottom); g.drawline(pens.black, tartály.right, tartály.bottom, tartály.right, tartály.top); private void Form1_Paint(object sender, PaintEventArgs e) Graphics g = e.graphics; TartályRazolás(g, tartály1); TartályRazolás(g, tartály2); g.drawrectangle(pens.black, cső); // a víz a tartály1-ben g.fillrectangle(brushes.darkcyan, new Rectangle(tartály1.Left + 1, tartály1.bottom - magasság1, szélesség1, magasság1)); if (folyik) g.drawrectangle(pens.black, cső); // a víz a csőben g.fillrectangle(brushes.darkcyan, new Rectangle(cső.Left, cső.top + 1, cső.width, cső.height - 1)); // a víz a tartály2-ben g.fillrectangle(brushes.darkcyan, new Rectangle(tartály2.Left + 1, tartály2.bottom - magasság2, szélesség2, magasság2)); 6

private void button1_click(object sender, EventArgs e) folyik =!folyik; timer1.enabled = folyik; private void timer1_tick(object sender, EventArgs e) magasság1--; // a tartály1-ben csökken a vízmagasság // az átfolyt víz mennyisége int újtérfogat = térfogat - magasság1 * szélesség1; // az átfolyt víz magassága a tertály2-ben magasság2 = újtérfogat / szélesség2; Refresh(); // ha a két tartályban azonos a víz magassága, // az ablak aljától számítva, leáll az átfolyás if (tartály1.bottom - magasság1 >= tartály2.bottom - magasság2) timer1.stop(); button1.enabled = false; 5. feladat önálló feldolgozásra Készítsen játékprogramot, melyben egy a form tetején oda-vissza mozgó léggömböt, egy a form aljáról indítható golyóval kell eltalálni! A form fejlécében jelezze, hogy az összes lövésből hányszor talált! Megoldási mód: Windows Forms alkalmazás Oktatási cél: példa animáció alkalmazására Az elkészítendő form: 7

A form vezérlői tulajdonságainak beállításai: Form1 Form Size 400;500 Text Céllövölde BackColor White button1 Button Text Lő picurebox1 PictureBox Size 50;60 Location 0;5 SizeMode StretchImage Image Léggömb.jpg picurebox2 PictureBox Size 20;30 SizeMode StretchImage Image Golyó.jpg timer1 Timer Enabled False Interval 100 timer2 Timer Enabled False Interval 100 A Form1 osztályba írandó programkód: int golyóy0; int lépésléggömb = 5; int lépésgolyó = 10; Random rnd = new Random(); int találat = 0; int lövések = 0; private void Form1_Load(object sender, EventArgs e) timer1.interval = timer2.interval = 60; timer2.stop(); timer1.start(); golyóy0 = picturebox2.top; // A golyó függőleges pozíciójának elmentése picturebox2.hide(); // A golyó eltüntetése private void timer1_tick(object sender, EventArgs e) picturebox1.show(); picturebox1.left += lépésléggömb; // A léggömb léptetése if ((picturebox1.left + picturebox1.width >= this.clientsize.width) (picturebox1.left <= 0)) // Az ablak jobb // széléről visszafelé indul el lépésléggömb = -lépésléggömb; // visszafelé timer1.interval = rnd.next(30, 200); // új sebességgel private void timer2_tick(object sender, EventArgs e) picturebox2.top -= lépésgolyó; // A golyó léptetése if ((picturebox2.left >= picturebox1.left) && (picturebox2.right <= picturebox1.right) && (picturebox2.top >= picturebox1.top) && (picturebox2.bottom <= picturebox1.bottom)) // Ha a golyó bemegy a // léggömbbe picturebox2.hide(); picturebox1.hide(); 8

picturebox1.left = 0; // A léggömböt az ablak bal oldalára visszük lépésléggömb = 5; találat++; this.text = "Céllövölde: " + találat.tostring() + "/" + lövések.tostring(); if (picturebox2.top + picturebox2.height <= 0) // Ha a golyó az ablak // tetején kilépett picturebox2.hide(); timer2.stop(); picturebox2.top = golyóy0; button1.enabled = true; // Az új lövés engedélyezése private void button1_click(object sender, EventArgs e) picturebox2.top = golyóy0; // A golyó függőleges kiindulási pozíciója picturebox2.show(); // A golyó megjelenítése timer2.start(); // A golyó mozgatás indítása button1.enabled = false; // A gomb letiltása lövések++; this.text = "Céllövölde: " + találat.tostring() + "/" + lövések.tostring(); 9

Gyakorló feladatok grafika 3 1. Készítsen Windows Forms alkalmazást, melyben két különböző színű golyó mozog elliptikus pályán, az egyik gyorsabban, a másik lassabban! Véletlenszerűen határozza meg, hogy a golyók induláskor hol állnak, és véletlenszerűen válassza meg a golyók sebességét is! A golyók álljanak meg, ha az egyik utoléri a másikat! 2. Írjon Windows Forms alkalmazást, melyben 5 mozgó, kis színes kör jelenik meg az ablak felületén véletlenszerűen! A körök színe legyen véletlenszerű, a körök átmérője véletlenszerűen 1 és 10 pixel között változzék! A körök pattanjanak egymáson és az ablak szélein! 3. Készítsen Windows Forms alkalmazást, melyben előállít véletlen módon 5 kis, kék körlapot, és kirajzolja azokat a formon! A körlapok mozogjanak vízszintesen az ablak szélei között oda vissza! Gombnyomásra álljanak meg, ekkor keresse meg a két legtávolabbi körlapot (a középpontok távolsága) fesse át őket pirosra, valamint a két legközelebbi körlapot és fesse át őket zöldre! 4. A tanszéki honlapon a tananyagok mappában talál egy Képek/Felhők nevű mappát, melyben van két felhőket ábrázoló kép! Készítsen Windows Forms alkalmazásban animációt, melyben a képek segítségével a felhőmozgást szimulálja! 5. A tanszéki honlapon a tananyagok mappában talál egy Képek/Holdfázisok nevű mappát, melyben van két holdfázisokat ábrázoló kép! Képszerkesztő programmal készítsen belőlük egyforma méretű önálló képeket! Készítsen Windows Forms alkalmazásban animációt, melyben a képek segítségével a Hold változását mutatja be! 6. A tanszéki honlapon a tananyagok mappában talál egy Képek/Napok nevű mappát, melyben van 8 darab napocskát ábrázoló kép! Készítsen Windows Forms alkalmazásban animációt, melyben kör alakban megjeleníti a formon a képeket, és azokat gombok segítségével vagy automatikusan jobbra vagy balra mozgatja! 10

7. Írjon Windows Forms alkalmazást, melyben henger alakú, adott méretű hordót adott magasságig töltsön fel két, a hordó fölé helyezett csapból! Az adatokat TextBox vezérlőkből olvassa be! 11