You are on page 1of 10

Gyakorlatok

1. Ksztsk el a 3. fejezetben lert Els programunkat. 2. Prbljunk meg klnfle komponenseket elhelyezni az ablakunkban, majd futtassuk le a programot s figyeljk, hogyan jelennek meg, ill. milyen rtkeket tudunk megadni nekik. 3. Hozzunk ltre egy alkalmazst, amelyen kt gomb lesz (Kirs, Kilps) s egy cmke. Az egyik megnyomsakor trja a cmke feliratt (ezt a programkdban:

Label1.Caption := Uj felirat; formban adhatjuk meg), a msik gomb megnyomsra kilp a programbl. 4. Ksztsnk programot, amely egy cmkt s egy nyomgombot tartalmaz (Sorsols). A gomb megnyomsakor a szmtgp a cmke feliratba rjon ki 5 vletlenszer lottszmot 1-tl 90-ig (ilyen vletlenszmokat a random(90)+1 fggvnnyel tudunk generlni, majd a szmot az IntToStr() fggvnnyel tudjuk szvegg alaktani). Ne felejtsk el eltte belltani a vletlenszm genertort (randomize;), hogy minden indts utn ne kapjuk ugyanazokat a szmokat. A program tervezsekor lltsuk be az Objektum felgyelben, hogy a cmke betmrete nagyobb legyen (ezt a cmke Font.Size tulajdonsgval tehetjk meg). 5. Prbljunk meg kszteni egy alkalmazst, amelyen hrom gomb (Pros, Pratlan, Fibonacci) s egy cmke szerepel. Az els gomb megnyomsakor a cmke feliratt trja az els 10 pros szmra (2, 4, 6, ), a msodik megnyomsakor az els 10 pratlan szmra (1, 3, 5, ), a harmadik megnyomsakor kirja az els 10 Fibonacci szmot (0, 1, 1, 2, 3, 5, 8, - mindegyik szm az elz kett sszege). A szmokat ciklus segtsgvel prbljuk meg generlni. 6. Jelenjen meg a kpernyn kt nyomgomb Belevgok! s Kilps felirattal. A belevgok gombra val kattints utn jelenjen meg az dvzllek a programozs vilgban! zenet. (tulajdonsg: Caption, esemny: OnClick, metdus: Form1.Close) 7. Jelenjen meg a kpernyn egy res cmke s egy gomb Kilps felirattal. Ha a felhasznl rkattint a gombra, jelenjen meg a cmkben egy zenet Meggondolta? krdssel. Majd ha jra rkattint a gombra, egy msik zenet Biztos benne? krdssel, stb. Ez folytatdjon mindaddig, amg a felhasznl nem kattintott tszr egyms utn a gombra. Az tdik kattintsnl zrdjon be az alkalmazs ablaka. (ismtls Turbo Pascalbl: egy i vltoz deklarlsa a unit implementation rszben, case elgazs hasznlata) 8. Bvtsk ki az elz feladatot gy, hogy az ablak helye minden gombnyoms utn mshol legyen a kpernyn vletlenszeren kivlasztva. (j tulajdonsgok: Left, Top, Width, Height, Screen.Width, Screen.Height, esemnyek: OnCreate, ismtls Turbo

Pascalbl: random, randomize)

9. Prbljuk meg a programot gy trni, hogy ha a felhasznl mshogy (X-szel a jobb fels sarokban, ALT+F4-gyel, stb.) akarja bezrni az alkalmazst, akkor se tudja s jelenjen meg neki ebben az esetben az gy nem fog menni, csak a gombbal! felirat. (j esemny: Form1.OnCloseQuery, ennek CanClose paramtere) 10. A kpernyn jelenjen meg egy adatlap (bra). Ha az Edit1 beviteli mezbe berjuk a nevnket, akkor a Label3 cmkbe kerljn be a bevitt adat! (j tulajdonsgok: Edit1.Text, Font.Style halmaz)

11. Bvtsk az elz feladatot egy jabb krdssel (letkora:), ami csak akkor jelenjen meg, amikor a felhasznl vlaszolt az elz krdsre. (j tulajdonsg: Visible) 12. Jelenjen meg a kpernyn kt beviteli mez s egy Csere felirat gomb. A gombra kattintskor a kt beviteli mez tartalma cserldjn meg. 13. Zldsges standunkon hromfle termket rulunk: burgonyt, rpt s kposztt. Egysgrukat egy-egy cmke jelenti meg, a vsrolt mennyisget egy-egy beviteli mezbe rjuk. Egy gomb megnyomsa utn szmtsuk ki s jelentsk meg a fizetend sszeget! (j tulajdonsg: Font.Size, fggvnyek: StrToFloat, FloatToStr, Round) 14. A programablak bal fels sarkban jelenjen meg egy nyomgomb. Ha a felhasznl rkattint, menjen a gomb a jobb fels sarokba, majd a jobb als, bal als, vgl jra a bal fels sarokba, stb. (j tulajdonsgok: Form1.ClientWidth, Form1.ClientHeight) 15. Talljuk ki a gp ltal gondolt egsz szmot tippelssel, ha a gp minden tipp utn megmondja, hogy az kicsi vagy nagy! (j tulajdonsgok: Button1.Default,

Button1.Cancel, j metdus: Edit1.SelectAll) 16. Ksztsnk programot pizza elektronikus rendelshez! A krt sszetevket

jellngyzetekkel lehessen megadni. A program ezek alapjn automatikusan a jells kzben jelentse meg a pizza rt! (j tulajdonsgok: CheckBox1.Checked, sajt eljrs ltrehozsa, az sszes CheckBox OnClick esemnyre ugyannak az eljrsnak a megadsa, mint az CheckBox1-nek) 17. Ksztsnk szoftvert kv automathoz! Rdigombokkal lehessen megadni az italt (kv, tea, kaka), jellngyzetekkel a hozzvalkat (citrom, cukor, tej, tejszn). A szoftver szmolja ki s jelentse meg a fizetend sszeget! Tehoz ne lehessen tejsznt, kvhoz

citromot, kakahoz se citromot, se tejsznt krni! (bra) (j tulajdonsgok: Enabled, RadioButton1.Checked)

18. Sznkevers RGB sznmodell alapjn. A kpernyn jelenjen meg hrom grgetsv, amely az RGB sznmodell hrom alapsznt lltja be 0 s 255 kztt. A kikevert szn egy cmke htterben jelenjen meg! (bra) (j tulajdonsgok: ScrollBar1.Min,

ScrollBar1.Max, ScrollBar1.Position, Form1.DoubleBuffered, j esemny: OnChange, j Windows API fggvny: RGB)

19. Ksztsnk csszks szmolgpet! A krt szmot egy-egy vzszintes grgetsv tologatsval lehessen bevinni, majd a megfelel nyomgombra (feliratuk: sszeads, Kivons, Szorzs, Oszts) val kattintskor jelenjen meg egy cmkben az eredmny! 20. Ksztsnk programot, amely egy ListBox-ot tartalmaz. Ha rkattintunk a form-ra egrrel, dupln rkattintunk, vagy megnyomunk egy billentyt, rassuk ki a ListBox-ba az OnMouseDown, OnClick, OnMouseUp, OnDblClick, OnKeyDown, OnKeyPress, OnKeyUp esemnyek neveit olyan sorrendben, ahogy bekvetkeznek. (tulajdonsg:

Form1.KeyPreview, metdus: ListBox1.Items.Add)

21. Verem demonstrlsa: ksztsnk egy alkalmazst, amely tartalmaz egy listt s egy beviteli mezt. A beviteli mez adata a Push gomb hatsra kerljn a lista tetejre, mg a Pop gomb hatsra a lista fels eleme kerljn a beviteli mezbe, s trldjn a listrl (bra). A lista legfeljebb 10 elem lehet. Ha a lista tele van (Full) vagy res (Empty), akkor a megfelel gomb hatsra kapjunk hibajelzst (zenet ablak)! (j tulajdonsg: ListBox1.Items[0], j metdusok: ListBox1.Items.Insert, ListBox1.Count,

ListBox1.Items.Delete)

22. Sor bemutatsa: a kpernyn jelenjen meg egy lista s egy beviteli mez. A Push gomb hatsra a beviteli mez tartalma kerljn a lista tetejre, a Pop gomb hatsra a lista als eleme kerljn a beviteli mezbe. A lista legfeljebb 10 elem lehet. Ha a lista tele van vagy res, akkor a megfelel gomb generljon hibajelzst! 23. Olvassunk be az InputBox fggvny segtsgvel egy 3*4-es mtrixot, melyet egy StringGrid komponensbe jelentsnk meg. Szmoljuk ki az elemek tlagt s szorzatt.

24. rjuk ki a Sin fggvny rtkeit tblzatosan egy StringGrid komponensbe elre megadott intervallumban fokonknt. Ne engedjk, hogy az intervallum als rtke nagyobb legyen, mint a fels.

25. Olvassunk be egy 3*3-as mtrixot, majd ellenrizzk, hogy a mtrix bvs ngyzet-e, azaz sorainak, oszlopainak s tlinak sszege azonos-e (az eredmnyt egy MessageBox segtsgvel jelentsk meg). Az albbi pldban szerepl mtrix bvs ngyzet.

26. Programunk rja ki mely billentyt kell lenyomni, s rja ki a megtalls idejt. Folyamatosan rtkelje sebessgnket (tlagos sebessg egy billenty lenyomsra). 27. Ksztsnk programot, amely egy nyomgomb megnyomsakor kirajzol egy sakktblt egy image komponensre.

28. Ksztsnk egy alkalmazst, amely egy nyomgomb megnyomsakor kirajzolja egy image komponensbe a sin(x) fggvny grafikonjt.

29. Ksztsnk egy alkalmazst, amely tartalmaz egy nagyobb mret res Image komponenst s ngy kisebb Image komponenst, melyekben klnbz httrmintkat jelentnk meg. Ha valamelyik httrmintra rkattintunk egrrel, a program tltse ki a megadott mintval a nagyobb Image komponenst. A feladathoz a kpek itt tlthetk le: http://www.prog.ide.sk/delphi/29gyak-kepek.zip

30. Ksztsnk egy "pecstel programot". A program tartalmazzon nhny kp kicsinytett vltozatt. Ha valamelyik kpre rkattintunk egrrel, majd a rajzlapra kattintunk (nagyobb mret Image komponens), akkor minden egyes kattints helyre a program "pecstelje oda" a kivlasztott rajzot. A rajzot gy rakjuk ki a rajzlapra, hogy a kattints helye (koordinti) a kirajzoland kp kzepn legyen. Az alkalmazsunk tartalmazzon mg egy nyomgombot is, mellyel letrlhetjk a rajzlapot. A feladathoz a kpek itt tlthetk le: http://www.prog.ide.sk/delphi/30gyak-kepek.zip

31. Ksztsnk alkalmazst, amely szemllteti a vletlen szmok eloszlst. A szmtgp 0 s 19 kztti vletlen szmokat generljon ki s szmolja az egyes szmok elfordulst, melyet oszlopokkal szemlltessen. Mindegyik oszlop fl rja oda, hogy mennyiszer volt az adott szm kigenerlva. Amelyik szm(ok) az adott pillanatban a legtbbszr fordulnak el, azokat zld oszlop helyett mindig pirossal szemlltessk. A szmok generlst egy nyomgomb segtsgvel lehessen elindtani. Ha jra megnyomjuk a nyomgombot, a szmok generlsa ellrl kezddjn. A program teht a nyomgomb megnyomsa utn minden szm oszlopnak magassgt belltja nullra, majd: Kigenerl egy 0-19 kztti vletlen szmot. Az adott szm oszlopnak magassgt megnveli egy pixellel s fl kir eggyel nagyobb szmot. Figyeli, melyik szmok elfordulsa a legnagyobb, ezeket piros oszloppal szemllteti, a tbbit zlddel. Kigenerlja a kvetkez vletlen szmot

A program a nyomgomb megnyomsa utn automatikusan mkdjn s nvelje bizonyos idkznknt (pl. 0,01 sec-knt) a kigenerlt szm oszlopnak magassgt mindaddig, amg valamelyik nem ri el a 99-et. Ekkor a szmok generlsa lljon le.

32. Ksztsnk programot, amely tartalmazni fog egy Memo komponenst s hrom nyomgombot. Az els nyomgomb egy dialgusablak segtsgvel vlasszon ki egy TXT fjlt, majd olvassa be a program a Memo komponensnkbe a fjl tartalmt. A msodik nyomgomb mentse el a fjlt (dialgusablakkal lehessen megadni a fjl nevt s helyt), a harmadik nyomgomb segtsgvel lehessen megvltozatni a Memo komponens bettpust. Az alkalmazst bvtsk ki menvel (MainMenu), ahonnan szintn elrhet legyen ez a hrom funkci. 33. Ksztsnk telefonknyvet. Az alkalmazs tartalmazzon egy ListBox-ot, melyben nevek tallhatk ABC sorrendben. Ha valamelyik nvre rkattintunk (kijelljk), a jobb oldalon jelenjen meg a nv s a hozz tartoz telefonszm.

Az j szm nyomgombra kattintskor egy j (modlis) ablakban krjnk be egy nevet s egy telefonszmot, melyet helyezznk el a nvsorban a megfelel helyre (gy, hogy a nevek ABC sorrendben maradjanak). A Trls gombra kattintskor a kijellt nevet trljk a nvsorbl. Ilyenkor a jobb oldalon a trlt elem utn kvetkez (ha nincs akkor az eltte lev) nv jelenjen meg (ha nincs eltte lev sem, akkor a jobb oldalon ne jelenjen meg semmilyen nv s telefonszm). Az sszes nevet s telefonszmot a programbl val kilpskor mentsk el egy kls llomnyba. A program indtsakor olvassuk be ebbl a fjlbl a neveket.

34. Ksztsnk alkalmazst, amely megjelenti s folyamatosan mutatja (frissti) az aktulis idt.

35. Ksztsnk csigk versenye jtkot. A csigk valamelyik gomb megnyomsval induljanak el. Mindegyik csiga vletlenszer hellyel menjen jobbra mindaddig, amg valamelyik nem ri el az ablak jobb szlt. Ha az a csiga nyert, amelyre tippeltnk, akkor a pontszmunk nvekedjen 3-mal, klnben cskkenjen 1-gyel. A nyertes csiga sznt egy MessageBox segtsgvel rjuk ki, majd a csigk lljanak jra a rajtvonalra, s jbl lehessen tippelni valamelyik nyomgomb megnyomsval! A feladathoz a kpek itt tlthetk le: http://www.prog.ide.sk/delphi/35gyak-kepek.zip