Turbo Delphi használata az oktatásban

Hasonló dokumentumok
Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

3.2. Az alkalmazások ablaka

Scratch bevezető foglalkozás Scratch bevezető foglalkozás

Programozási nyelvek, környezetek kifejezőerejének vizsgálata

Delphi programozás IV.

Delphi programozás I.

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Delphi programozás III.

Az eszközpaletta. Felsı sor balról jobbra. Második sor balról jobbra 1/7

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

ADATSZOLGÁLTATÁS webes metaadat-szerkesztővel

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

VISUAL BASIC ALAPISMERETEK

Számítógépes grafika

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

Választó lekérdezés létrehozása

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Bontott órák beállítása Példánkban egy évfolyambontott kapcsolatot hozunk létre úgy, hogy abban vannak csak osztálybontott csoportok is.

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

Adatbázis és szoftverfejlesztés elmélet

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

Programtervezés. Dr. Iványi Péter

Imagine Logo Tanmenet évfolyam

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

ÉVI ADATSZOLGÁLTATÁSOK JAVÍTÁSA. Készítette: Tóth Péter szeptember 26.

Java programozási nyelv 6. rész Java a gyakorlatban

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Bevezetés a programozásba I.

Java programozási nyelv 9. rész Kivételkezelés

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

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Szélkövetés: Ehhez az üzemmódhoz a PR3-as paraméter értékét 0-ra kell állítani.

A digitális analóg és az analóg digitális átalakító áramkör

Vezetői információs rendszer kezelése a Raiffeisen Expressz programban

PHP-MySQL. Adatbázisok gyakorlat

évi adatszolgáltatások javítása

FELHASZNÁLÓI KÉZIKÖNYV

CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez

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

Tételek törlése, lomtár kezelése a GroupWise-ban

Clean-Soft Számítástechnikai és Számviteli Kft. Precíz Info. a Precíz Integrált Ügyviteli Információs rendszer pénztár moduljának kezelése

Számítógépes grafika

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

Windows mappaműveletek

Felhasználói kézikönyv

A szervezeti egységektől beérkezett felhasználói igények alapján ön részt fog venni a tantermi oktatáson.

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

Tartalomjegyzék. A Delphi 5 integrált fejlesztõkörnyezet 8. A Delphi 5 kiadásai 7

Megyei tervezést támogató alkalmazás

Programozás Delphiben

Java programozási nyelv

SZAKDOLGOZAT. Kiss Albert

Programzás I gyakorlat

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

Digitális aláíró program telepítése az ERA rendszeren

Oktatási segédanyag. Weboldalszerkesztési gyakorlatok

1. Egyszerű (primitív) típusok. 2. Referencia típusok

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

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

A dinamikus geometriai rendszerek használatának egy lehetséges területe

Lapműveletek. Indítsuk el az Excel programot és töröljük ki a Munka1 nevű munkalapot!

Logon megrendelő felület

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

Oktatási dokumentáció

Verzió Dátum Szerkesztő Módosítás leírása CLIPPER verzió

A KÓDOLÁS TECHNIKAI ELVEI

Szövegszerkesztés Verzió: 0.051

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Gépi tanulás a gyakorlatban. Bevezetés

KETTŐS KÖNYVELÉS PROGRAM

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Feladatok megoldásai

KKK2.0 Regisztráció. A regisztráció teljes folyamata: 1. Ügyfél kommunikációs jogosultságának regisztrálása a NAV vámszerveinél.

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

1. Nyissa meg a honlapot. 2. Kattintson a Rendelek. 3. Adja meg a felhasználónevét és jelszavát. 4. Kattintson a Belépés

1. Bekapcsolás-napnyitás-napzárás-kikapcsolás

Szövegszerkesztés alapok WORD Formázások

MUNKAANYAG. Angyal Krisztián. Szövegszerkesztés. A követelménymodul megnevezése: Korszerű munkaszervezés

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

A. Webes metaadat szerkesztő

Tanúsítvány feltöltése Gemalto.NET kártyára és Gemalto SIM termékre

OPTEN Online használati útmutató

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

ADATSZOLGÁLTATÁS központi honlap használata esetén

EU Login kézikönyv (rövidített változat)

Jelentkezési lap képző szervek részére

Az Online Számla rendszere Regisztráció

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

KÉPERNYŐKÉP KÉSZÍTÉSE

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

ÁNTSZ portál regisztráció, felhasználói adatok módosítása, jogosultságok felhasználói leírás [Alcím]

Programozási technológia

A Microsoft, a Windows, a Windows NT, a Windows NT Workstation a Microsoft Corporation bejegyzett védjegye vagy védjegyei az Egyesült Államokban

Elektronikus napló használati útmutatója szülőknek

EDInet Connector telepítési segédlet

QGIS tanfolyam (ver.2.0)

Tudnivalók az NYMESEK vezeték nélküli hálózatáról. Beállítási útmutató WIFI felhasználóink számára

Átírás:

Turbo Delphi használata az oktatásban Törley Gábor (pezsgo@elte.hu) Bevezetés A Turbo márkanév ismerősen cseng a tapasztalt programozó fülében. Annak idején, ezen a néven adta ki a Borland a fejlesztőkörnyezeteit, akkor még, természetesen, pénzért. Az idők változtak azóta, megjelentek a negyedik generációs nyelvek és létrejött az igény az üzleti életben és az oktatásban egyaránt ilyen jellegű, azaz vizuális, könnyen kezelhető ( windows -os) programfejlesztő eszközökre, így jött létre a pascalos vonal mentén a Delphi termékcsalád. 2005-ben újjáéledt a Turbo márkanév is, és több 4GL fejlesztőkörnyezet jelent meg, ezúttal ingyen; a Delphi égisze alatt az Explorer és a.net 1. Írásomban az Explorer kiadást fogom tárgyalni. A Turbo termékcsalád közös tulajdonsága, hogy lecsökkenti a fejlesztőkörnyezetek tudását a piacon árult környezetekhez képest és a számítógépen egyszerre csak egy Turbo termék lehet feltelepítve. Ingyenessége mindenképp előny és tudása, illetve szolgáltatásai elegendőek az alapvető programozási ismeretek megtanítására, megtanulására. Miért pont a Delphi? Ez a fejlesztői környezet a Pascal nyelvre épül, amelyet pontosan azzal a céllal hoztak létre, hogy programozást tanítsanak vele. Az oktatásban általában használt nyelvek/környezetek közül a leginkább alkalmas a kezdeti lépések elsajátítására. Oktatási szempontból előnyős, ha a választott nyelv könnyen megjegyezhető alapszavakból áll és egyszerű programszerkezetet használ, különösen, ha a kezdeti lépésekről van szó. Fontos megvizsgálni, hogy milyen könnyű megírni az első értelmes programot, tehát az első olyan programot, amelynek gyakorlati haszna is van. Egy olyan nyelvre van szükség, amely közel áll az algoritmikus nyelvünkhöz, a tanuló megtanulja és megérti, a programozás alapvető elemeinek helyét, szerepét és használatát. A Pascal erős (és szigorú) típusossága, átlátható és memorizálható programszerkezete rászoktatja a tanulót, hogy ne felejtsen el változót deklarálni, típust definiálni, hogy programírás közben mindig gondolja végig, miket és hogyan akar használni az éppen aktuális eljárás megvalósításakor. A Pascal jó alap a továbblépéshez az objektum orientált programozás és/vagy egy 4GL fejlesztőrendszer felé. Utóbbi, vizualitása miatt, segítheti az objektum orientált paradigma megértését. A Delphi jó folytatása lehet a Pascalnak, mert a környezet ezt a nyelvet használja fel, új lehetőségekkel kiegészítve. Gyakorlatilag a Delphi nyelvének struktúrája, szintaktikája logikája ugyanaz. Használható-e a Delphi környezet, mint első nyelv? Véleményem és tapasztalatom szerint, jobb, ha a tanuló már némi előképzettséggel a birtokában találkozik a Delphivel. Előnyös, ha már a tanulók előtt 1 http://www.turboexplorer.com 1

ismertek az alapvető vezérlési szerkezetek, az egyszerűbb programozási tételek. Ezek ismeretében egyszerűbb váltani vizuális környezetre. Ennek a cikknek nem célja ecsetelni a Turbo Delphi és a Turbo Pascal környezete közötti különbségeket, és elmerülni ezek oktatás-módszertani kérdéseiben. Inkább rátérek a gyakorlatra, hogyan lehet használni ezt a környezetet az oktatásban. Vizualitás és eseményvezérlés A környezet legnagyobb előnye a DOS-os testvérével szemben a vizualitás. 2 Tehát nem csak karaktereket és villogó kurzort látok, hanem komponenseket: gombokat, táblázatokat, szövegbeviteli mezőket, képeket A leginkább szembetűnő újdonság az eseményvezérlés: szabályozni tudom, hogy mi történjen egy gomb lenyomásakor, egy billentyű leütésekor, az egérkurzor mozgatásakor. A leggyakrabban használt egér-eseményekhez itt egy példaprogram: Pont-pont vesszőcske. (Lásd 1. ábra) 1. ábra Pont-pont vesszőcske A program úgy működik, hogy az egérrel mozgunk a programablak felületén, és amíg lenyomjuk a jobb egérgombot, addig egy piros csík kövesse a kurzor vonalát, ha pedig elengedem a gombot, a rajzolás is maradjon abba. Ez a program három egéresemény működését mutatja be: OnMouseMove (mi történjen, amikor mozog az egérkurzor), OnMouseDown (mi történjen, amikor lenyomom a jobb oldali gombot) és OnMouseUp (mi történjen, amikor felemelem az egér jobb oldali gombját). Ez a segédprogram nem csak az eseményekhez jó, hanem megtanítja a tanulót használni a Form felületét (Canvas). var Pont: TPont; Elsore, Rajzolhat: Boolean; implementation 2 A Delphinek is van DOS-os arca. Az {APPTYPE CONSOOLE} direktívával lehet ilyen programokat készíteni. 2

{$R *.dfm} procedure TPont.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin If Rajzolhat Then Begin Canvas.Pen.Color:=clRed; //Pirosra állítjuk a toll színét Canvas.Pixels[X,Y]:=clRed; //Ha csak ennyit tennénk ki, elég széteső képet kapnánk. (a "lassú" feldolgozás miatt) If Not Elsore Then //Ha először megy az egér a vászonra, nem kell vonalat húzni; Canvas.LineTo(X,Y); Canvas.MoveTo(X,Y); //Ez az egyik többlet. Elsore:=False; //Hiszen egyszer már lefutott az esemény End; end; procedure TPont.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Rajzolhat:=True; //Így, ha lenyomjuk az egér gombját, a OnMouseMove esemény eljárása "engedélyt kap" a rajzolásra end; procedure TPont.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Rajzolhat:=False; //Így, ha felengedjük az egér gombját, a OnMouseMove esemény eljárástól "megtagadjuk" a rajzolás "engedélyesését" Elsore:=True; //Ez is kell, hogy tényleg CSAK AKKOR razjoljunk, ha le van nyomva az egér gombja end; Begin Elsore:=True; //Ezek az inicializáló lépések. Rajzolhat:=False; end. Az eseményvezérlés megértését a pók és a pókháló hasonlatával lehet egyszerűen bevezetni: A pók várja a rovarokat, hogy beleszálljanak hálójába. Amint egy belerepül, megtörténik az esemény, a pók lemegy, és behálózza. Ha nem lenne háló, azaz nem lenne megírva az eseményvezérlő rutin, a pók sem tudná, hogy vacsorája érkezett. A fenti feladatot lépésről lépésre érdemes bevezetni az órán. Először beszélni magukról az eseményekről, mit is jelentenek pontosan, majd megtervezni a sorrendjüket (ez a kód szintjén nem fog látszani, mivel minden esemény külön eljárásban van), végül megírni az esemény kódját. A lényegi rész mindenképp az egérmozgás (OnMouseMove) eseménye lesz, ekkor meg kell magyarázni, miért nem elég csak egy pontot kirakni az esemény lefutásakor (a válasz a számítógép megszakításkezelésében rejlik). 3

Vizualitás és objektumorientáltság Az objektumorientáltság a másik újdonság a vizuális fejlesztőrendszereknél. Hogyan tud ennek megértésében segíteni a környezet? Az objektumorientáltság magyarázatát hétköznapi példákon keresztül érdemes bevezetni. 2. ábra A fő form tulajdonságai Az Object Inspectoron (lásd 2. ábra) keresztül tudom állítani az adott objektum (jelenleg a fő form) tulajdonságait, ráadásul, ennek segítségével be is tudom mutatni azokat, és hétköznapi példákkal tudok párhuzamot vonni. A programozást támogató fontosabb eszközök Programszerkesztés közben a többi 4GL környezethez hasonlóan a szerkesztő segít a programozónak kiválasztani, hogy az adott komponens melyik metódusát vagy propertyjét érheti el. Így nem kell pontosan fejből tudnia sem az azonosítót, sem a paraméter(ek) típusát (lásd 3. ábra). További online segítség: az összetartozó zárójeleket azonos színnel emeli ki, mikor a kurzorral valamelyiken megállunk vagy áthaladunk. Ez a funkció a zárójelezési hibák kiküszöbölésében és felderítésében jelent támaszt. 3. ábra Intellisense 4

A Delphi a lehetséges összes hibaüzenetet kiírja. Sőt hibajelzéseket már kódolási időben is ad: a háttérben dolgozó fordító folyamatosan figyelmeztet az éppen lekövetett szintaktikus hibákra (lásd 4. ábra, bal oszlop). Fordításkor kijelöli a hibás sort és lent kiírja az üzeneteket. Ez a megoldás jól megmutatja, hogy hol történt a hiba. 4. ábra A Delphi azonosítja a hibákat még fordítás előtt A kódolás idejében, de még a programozó által indított fordítás előtt detektált hiba sok időt takaríthat meg a fejlesztőnek. A konkrét példánk esetében kódolás közben két hibajelzés is megjelenik, amelyek segítenek a probléma érzékelésében, sőt a megoldás megtalálásában is: a pirossal aláhúzott ShhowMessage és else is felhívja a figyelmet az elírásra. A hibaüzenetek tömörek, helyesek, rávilágítanak a problémára. A súgó itt jó segítőtárs a megoldásban. Az 5. ábra egy igényes megoldást mutat a nyomkövető rendszer megvalósítására. A bal oldalon láthatóak a programozó által figyelt változók és az automatikusan megmutatottak is. A kép közepén látszik, ahogyan az egérkurzor felfedi az egyik komponens értékét. A nyomkövető rendszer magától értetődően működik, könnyű a kezelése. 5. ábra A Delphi nyomkövető rendszere A hibakeresésen kívül a vizuális fejlesztőkörnyezetek nyomkövető rendszere alkalmas arra, hogy a hibakeresésen túl segítsen bemutatni és megérteni az aktuális objektum szerkezetét és belső 5

működését. Az alábbi ábrát tekintve, a bal oldalon a Self -re kattintva lehet megtekinteni az összes osztályszintű változót és azok jellemzőit. 6