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



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

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

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

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

Welcome3 Bele pteto rendszer

Access 2010 Űrlapok és adatelérés

Felhasználói leírás v1.0

Objektumorientált programozás C# nyelven

.NET Microsoft.Net Framework

Webszolgáltatások kommunikációs overhead-jének becslése

Matematikai programozás gyakorlatok

Történeti áttekintés

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Programozás 2., I. kötet Az objektumorientált paradigma alapjai

Incotex Group. Használati útmutató PLU manager

Integrált ügyviteli rendszer: Kettős könyvelés modul

Lemezkezelés, állományrendszerek

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

4. Programozási nyelvek osztályozása. Amatőr és professzionális

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

Pénztárgép Projektfeladat specifikáció

Bosch Recording Station. Telepítési kézikönyv


A hierarchikus adatbázis struktúra jellemzői

Széchenyi István Szakképző Iskola

Dr. Pétery Kristóf: CorelPHOTO-PAINT 12 Kezdő lépések

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

Matematika. Specializáció évfolyam

Háromszögcsaládok Síkbeli és térbeli alakzatok 5. feladatcsomag

Számítógépes grafika

Számlakészítés a SPRINT programmal

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

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

Workflow és Petri hálók. Workflow fogalma

Dräger Test-it 6100 Vizsgálóberendezés

Útmutató. a szakdolgozat elkészítéséhez. Szegedi Tudományegyetem Egészségtudományi és Szociális Képzési Kar

Szakmai program 2015

Tájékoztató. Használható segédeszköz: -

RENDKÍVÜLI HARDVER ÉS SZOFTVER VÁSÁRLÁSI AKCIÓ

DELL Inspiron 5551 (DI5551I GH50D4BK-11)

Származtatási mechanizmus a C++ nyelvben

ALAPISMERETEK...6 A MICROSOFT ACCESS INDÍTÁSA...14 AZ ABLAK...14 MEGNYITÁS...16 TÁBLÁK...17 LEKÉRDEZÉSEK...18

Dr. Pétery Kristóf: AutoCAD LT 2002 Blokkok, Xrefek

Microsoft Office 2010

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

A gyakorlati programozás és játékfejlesztés tanításának alternatív módszere grafikai felületek támogatásával

1. Ábrázolja az f(x)= x-4 függvényt a [ 2;10 ] intervallumon! (2 pont) 2. Írja fel az alábbi lineáris függvény grafikonjának egyenletét!

Message Broadcasting. Rendszerkörnyezet. A Message Broadcasting telepítése. Üzenetek létrehozása

C# gyorstalpaló. Készítette: Major Péter

Készletnyilvántartó program. (KESZLET) verzió. Kezelési leírás

Kaspersky Internet Security Felhasználói útmutató

Operációs rendszerek. leírása. i-store.hu Szoftver webáruház

Mit csinálnak a PCB gyártók mielőtt gyártani kezdik az ÖN NYÁKját? Miért nem tudjuk használni az Ön gerber- és fúrófájljait ahogyan feltöltötte?

Bánsághi Anna

Számlázás-házipénztár. (SZAMLA) verzió. Kezelési leírás

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

ELLENŐRZÉSI JELENTÉS

A BESZÁMOLÁSI RENDSZER KIALAKÍTÁSA

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

Word 2010 magyar nyelvű változat

Lenovo ThinkPad E550-20DF0092HV

AutoCAD LT 2013 Változók, lekérdezések

Kulcsfogalmak. Hardver. CPU RAM ROM I/O egységek. Szoftver. operációs rendszer felhasználói szoftverek

Acer Aspire S G25EWS

A postafiókok a felhőbe költöznek

Az informatika alapjai. 10. elıadás. Operációs rendszer

2. Követelmény, projekt, funkcionalitás

Bánsághi Anna Bánsághi Anna 1 of 54

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

komplex védelem Letöltő szoftver ismertető V1.61 Azonosító: EP Budapest, február

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

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

Objektum Orientált Szoftverfejlesztés (jegyzet)

Elektronikus Szolgáltatások Hirdetménye. Érvényes: május 24-től

ELEKTRONIKUS VEZÉRL KÁRTYA BEÁLLÍTÁS FÜZET

Diplomamunka. Koczka László

DELL Inspiron 5749 (DLL Q1_42_L_178128) (DLL Q1_42_L_178128)

KOVÁCS BÉLA, MATEMATIKA I.

Intel Celeron G550 Intel HD Graphics kártyával (2,6 GHz, 2 MB gyorsítótár, 2 mag)

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

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

Számítógépes hálózatok

A 2. levél feladatainak megoldása

Digitális kártyák vizsgálata TESTOMAT-C" mérőautomatán

12. tétel. Lemezkezelés

Logitech G602 Laser Gaming Mouse

TÁJÉKOZTATÓ OUTDOOR FULL POWER. OH Monitoring Kft. TNS Hoffmann Kft február

INFORMATIKA EMELT SZINT%

Objektumorientált programozás C# nyelven

Adatstruktúrák, algoritmusok, objektumok

HOLDPEAK 856A SZÉLSEBESSÉG MÉRŐ

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

Komponens modellek. 3. Előadás (első fele)

KELE3. Felhasználói kézikönyv

Az MS Access adatbázis-kezelő program

ETR Pénzügyi közönségszolgálat

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk?

ER-320F Az Euró előírásoknak megfelelő, környezet barát (ROHS), újrahasznosítható pénztárgép. Felhasználói kézikönyv

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

INFORMATIKA HELYI TANTERV

Átírás:

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:... 5 2.2 A program működésének megtervezése:... 5 3 Programterv... 5 3.1 Egyedi osztályok leírása... 6 3.1.1... 6 3.1.2 Abszolut... 8 3.1.3 Cos... 8 3.1.4 Exp... 8 3.1.5 Gyok... 8 3.1.6 Linearis... 8 3.1.7 Log... 9 3.1.8 Masodfoku... 9 3.1.9 Sin... 9 3.1.10 Szignum... 9 3.1.11 Koordinata_rendszer... 9

Bevezető 1.1 Szakdolgozat témája Szakdolgozatom témájának egy függvényrajzoló és elemző szoftver készítése mellett döntöttem. Bár a szoftverpiacon a felhasználó találhat magának ilyen jellegű szoftvert (Office, Mathlab), mégis úgy éreztem, hogy a függvény kirajzolása nem minden esetben elegendő. Sok esetben szükségünk lehet egy függvény valamely tulajdonságára, értékére illetve képére, melyeket az előbb említett programok nem szolgáltatnak. Ezért választottam ezt a témát, illetve mindig érdekelt a matematika és nem utolsó sorban kihívásnak éreztem a program megírását, mivel ezelőtt sosem írtam ehhez hasonló programot. 1.2 A Program célja A program célja különböző függvények elemzése és ábrázolása. A program megírásakor nagy hangsúlyt fektettem a következő dolgokra: könnyű kezelhetőség felhasználóbarát kezelőfelület részletes testreszabhatóság felesleges dolgok kiszűrése diákok tanulásának segítése, könnyítése 1.3 Fejlesztői környezet hardver: o Processzor: AMD Phenom II X2 550-3,1ghz o Memória: 2GB DDRII 800mhz o Videokártya: Gigabyte HD4670 512MB o Merevlemez: -Samsung 1TB,WD 500MB, Samsung 250MB szoftver: o OS: Windows 7 Professional 32bit o Fejlesztői környezet: Microsoft Visual Studio 2008 C# o UML készítő: Altova UModell2010 1.4 A használt technológiák ismertetése

A C# (kiejtése: szí-sárp) a Microsoft által a.net keretrendszer részeként kifejlesztett objektumorientált programozási nyelv. A nyelv alapjául a C++ és a Java szolgált. A C#- ot úgy tervezték, hogy meglegyen az egyensúly a fejlesztő nyelvi szabadsága és a gyors alkalmazásfejlesztés lehetősége között. A nyelv fejlesztését Anders Hejlsberg vezette, aki a Turbo Pascal tervezője volt. Bár a Mono Project szinte tökéletes C# fordítót állított elő (amely a nyelv legújabb 3.0 verzióját is támogatja), a C# Windows operációs rendszereken kívüli használata kevéssé elterjedt, mivel az osztálykönyvtárakat szolgáltató.net Framework portolása más rendszerek alá még kezdetleges stádiumban van A C# az a programozási nyelv, ami a legközvetlenebb módon tükrözi az alatta működő, minden.net programot futtató.net keretrendszert, valamint erősen függ is attól: nincsen nem menedzselt, natív módban futó C# program. A primitív adattípusai objektumok, a.net típusok megfelelői. Szemétgyűjtést használ, valamint az absztrakcióinak többsége (osztályok, interfészek, delegáltak, kivételek ) a.net futtatórendszert használja közvetlen módon. A C vagy C++ nyelvhez hasonlítva a C# több korlátozást és továbbfejlesztést is tartalmaz. A lehetőségei közül néhány: 1. A mutatók és a nem ellenőrzött aritmetika csak egy speciális, nem biztonságos módban (unsafe mode) használható. A legtöbb objektum-hozzáférés csak biztonságos hivatkozásokon keresztül tehető meg, és az aritmetikai műveletek debug módban túlcsordulás szempontjából ellenőrzöttek. 2. Az objektumok nem szabadíthatók fel közvetlen módon, ehelyett a szemétgyűjtő szabadítja fel őket, mikor már nincs rájuk hivatkozás. Ez a módszer kizárja a nem létező objektumokra való hivatkozás lehetőségét. 3. A destruktorok nem elérhetőek. A legközelebbi megfelelőjük az IDisposable interfész, ami a using blokkal együtt kikényszerítheti az azonnali felszabadítást. A finalizerek szintén rendelkezésre állnak, de nem váltanak ki azonnali felszabadítást. 4. A nyelv csak egyszeres öröklődést támogat, de egy osztály több interfészt is megvalósíthat. 5. A C# sokkal típusbiztosabb, mint a C++. Az egyetlen implicit konverzió a biztonságos konverzió, úgy mint az egészek tágabb intervallumba konvertálása

vagy a leszármazott osztályok alaposztályba konvertálása. Nincs implicit konverzió az egészek és a logikai típus (boolean) között, a felsorolás tagok és az egészek között. Nincsenek void mutatók (bár az Object osztályra mutató mutatók hasonlóak), valamint bármely, a felhasználó által definiált implicit konverziót explicit módon meg kell jelölni. 6. A felsorolás adattagjai a saját névterükben helyezkednek el. 7. A C# 1.x nem rendelkezik template-ekkel, de a C# 2.0 már rendelkezik genericsekkel. 8. Tulajdonságok (Properties) használhatók, amelyek úgy tesznek lehetővé kódfuttatást mezők beállításakor és olvasásakor, hogy közben az adattagok szintaxisát használja. 9. Teljes reflexió elérhető. A Visual Studio a Microsoft több programozási nyelvet tartalmazó programozási termékcsomagja, amely az évek során egyre több új programnyelvvel bővült. Jelenleg a J# (ejtsd: Dzséj sharp), C++, C# (ejtsd: Szí sharp) és Visual Basic programozási nyelveket, valamint az XML-t támogatja. A csomag része még (jól elrejtve) a MASM (Microsoft Macro Assembler) is, ami részleges assembly támogatást biztosít. A piacon ez az egyik legjobb (és legdrágább) fejlesztői csomag Windows-ra. 2007 végén jelent meg Visual Studio legutolsó, 2008-as verzióra (a kódneve Orcas). A kiadás egyik nagy újdonsága a multi-targeting, azaz szakítva az eddigi hagyományokkal - egy adott Visual Studio verzióval egy adott Framework verzióra lehetett szoftvert fejleszteni - a 2008-cal a.net Framework 2.0-s, 3.0-s, illetve a fejlesztőkörnyzettel egy időben bétából véglegessé váló 3.5-ös verziójára is készíthetünk programokat. Verziószám: 9.0 2 A program megtervezése

Mivel ez volt az első nem parancssoros programom, így a téma kiválasztása után azonnal elkezdtem ismerkedni a Windows Formokkal. Nagyon sokat kipróbáltam, majd összegyűjtöttem a számomra hasznosakat. 2.1 Az ablak kinézetének megtervezése: Az felhasználói felület megtervezésénél fontos szempont volt az egyszerűség, az átláthatóság és a könnyű kezelhetőség. Mindemellett nagyon sok információt szolgáltató mezőnek kellett szerepelnie az ablakban, illetve egy nagy, szintén mezőnek, amiben a függvényt fogja a program ábrázolni. Első körben egy több ablakból álló programot kezdtem el írni, majd később egy tabcontrol segítségével az ablakokat összevontam egy ablakká, így végül a program megkapta a végső kinézetét. Színek terén próbáltam kellemes, a szemet nem bántó színeket összeállítani. 2.2 A program működésének megtervezése: A program működéséből és bonyolultságából kifolyólag nagyon sok hiba jött számításba, ezért a program megírásakor próbáltam minden hibát elhárítani, illetve ha a felhasználó valamilyen hibát generál egy változó beírásakor, akkor a program azt azonnal jelzi. Paraméterek módosításakor a függvény ábrája azonnal újra lesz rajzolva, a programba ezen felül belekerült pár extra funkció is, mint például a függvény képének mentése különböző képtípusba, illetve lehetőség van a függvény minden tulajdonságának és értékének kimentésére txt fájlba. A tervezés során törekedtem a szimmetriára, minden paraméternek ugyanaz lett a maximális és a minimális beírható értéke, előjeltől és tizedesvesszőtől függetlenül. 3 Programterv

3.1 Egyedi osztályok leírása A programban számos osztályt hoztam létre, megkönnyítve a programozást, illetve a függvények egyszerű tárolását. 3.1.1 A függvényeket megtestesítő absztrakt ősosztály. object dinamikus Változók tomb a b c ert_tart ert_kesz ert_tart_kezd ert_tart_veg ert_kesz_min ert_kesz_max lepeskoz integralt int_kezdo int_veg alt_alak par_alak der_alak int_alak szig_mon_no szig_mon_csok min Változók max Típus Típus ArrayList ArrayList ArrayList string string string string string string ArrayList ArrayList Leírás a függvény X és Y értékét tárolja a függvény a paraméterét tárolja a függvény b paraméterét tárolja a függvény c paraméterét tárolja maximális értelmezési tartomány maximális értékkészlet a fgv generálásának kezdőértéke a fgv generálásának végértéke a generált fgv legkisebb értéke a generált fgv legnagyobb értéke két fgv érték közti különbség határozott integrál értékét tárolja határozott integrál kezdőértéke határozott integrál végértéke fgv általános alakja fgv paramtéerezett alakja fgv deriváltjának alakja fgv integráltjának alakja növekvő monotonitást tárolja csökkenő monotonitást tárolja a függvény minimumát tárolja Leírás a függvény maximumát tárolja

zerushely ArrayList a függvény zérushelyeit tárolja Metódusok Visszatérési érték Leírás () Konstruktor, kezdőértékkel látja el a paramétereket Ertekparok() Void Kiszámítja az X és Y értékeket Feltoltes() Void Legenerálja a függvényt Par_Alak_Beallit() void Beállítja a paraméterezett alakot Der_Alak_Beallit() Void Beállítja a derivált alakot Zerushely_Beallit() Void Kiszámítja a függvény zérus helyeit Szelsoertek() Void Kiszámítja a függvény minimumát és maximumát Ert_Tartomany() Void Beállítja a függvény maximális értelmezési tartományát Ert_Keszlet() Void Beállítja a függvény minimális értelmezési tartományát Monotonitas() Void Beállítja a függvény monotonitását Integral_Beallit() Void Beállítja a függvény integrált alakját,kiszámítja a határozott integráltját Torte Egy tört számot a legegyszerűbb Decimal[] ( szam,int oszto) alakra hozza Int_Seged ( szam, int oszto) Void Integrálást segíti Ertek_Mentes (string utvonal) Void Lementi a függvény adatait fileba

3.1.2 Abszolut Az abszolút-érték függvényt leíró osztály. 3.1.3 Cos A koszinusz függvényt leíró osztály. 3.1.4 Exp Az exponenciális függvényt leíró osztály. 3.1.5 Gyok A négyzetgyök függvényt leíró osztály. 3.1.6 Linearis A lineáris függvényt leíró osztály.

3.1.7 Log A logaritmus függvényt leíró osztály. 3.1.8 Masodfoku A másodfokú függvényt leíró osztály. 3.1.9 Sin A szinusz függvényt leíró osztály. 3.1.10 Szignum A szignum függvényt leíró osztály. 3.1.11 Koordinata_rendszer A koordináta-rendszer generálásáért és kirajzolásáért felelős osztály. Object Statikus

Változók Típus Leírás szelesseg short Kirajzolandó kép szélességét tárolja magassag short Kirajzolandó kép magasságát tárolja x_tengely short Az x tengely y koordinátáját tárolja y_tengely short Az y tengely x koordinátáját tárolja dx Két pont x tengelyen vett távolsága dy Két pont y tengelyen vett távolsága x_nagyleptek_kezd decimal X tengely léptékének kezdőértéke x_nagyleptek_veg decimal X tengely léptékének végértéke x_nagyleptek mertek decimal X tengely léptékeinek különbsége x_nagyleptek_db int X tengely léptékeinek darabszáma x_nagyleptek Leptek[] X tengely léptékeinek koordinátái y_nagyleptek_kezd decimal Y tengely léptékének kezdőértéke y_nagyleptek_veg decimal Y tengely léptékének végértéke y_nagyleptek mertek decimal Y tengely léptékeinek különbsége y_nagyleptek_db int Y tengely léptékeinek darabszáma y_nagyleptek Leptek[] Y tengely léptékeinek koordinátái pontok PointF[] A függvény koordinátarendszerbeli pontjait tárolja fgv_kezdo Függvény kezdőértéke fgv_veg Függvény végértéke fgv_db int Függvény pontjainak darabszáma

Változók Típus Leírás lepeskoz Függvény pontjainak különbség kep Bitmap A felület, ahova a program rajzol g Graphics A rajzolásáért felelős változó hatter1 Color A kép külső háttérszínét tárolja hatter2 Color A kép belső háttérszínét tárolja tengely Color A tengelyek színét tárolja fuggveny Color A függvény színét tárolja integralt Color A határozott integrált jelölő színét tárolja picbox PictureBox A kép megjelenítését végzi ket_pont bool Olyan logikai érték, mely azt tárolja, hogy két pontot kell e megjeleníteni szignum bool Tárolja, hogy a függvény típusa Szignum függvény-e

Metódusok Vissz. érték Leírás Kepmeret(PictureBox picbox) void Beállítja a kirajzolandó felület méretét a bemeneti PictureBoxhoz igazítva Keptorol() void Törli a kirajzolt képet General( fgv, void A bemeneti paraméterektől bool x_tengely_auto, függően legenerálja a bool y_tengely_auto, koordináta-rendszert. A logikai decimal x_tengely_lep, értékekkel állítható,hogy az decimal y_tengely_lep) aktuális tengely léptékeit a program vagy a program állítsa be,a két decimal paraméterrel manuálisan adható meg a lépték. NagyLeptek( szam1, void Beállítja a nagylépték kezdő szam2, és végértékét,a nagylépték ref int tengely_leptek_db, ref decimal darabszámát,a léptékek közti különbséget. Beállítható, hogy tengely_leptek_kezd, a léptéket automatikusan ref decimal tengely_leptek_veg, számolja-e a program. byte leptek_v1, byte leptek_v2, bool auto, ref decimal leptek) Kirajzol( void Kirajzolja a legenerált bool x_nagy_leptek, értékekből a függvény ábráját. bool y_nagy_leptek, Paraméterben megadható, bool integral, int_start, int_end) hogy ábrázolja-e az x vagy y tengelyen a léptéket, határozott integrált, igaz érték esetén a további két paraméterekkel megadható az integrál kezdőés végértéke

Az osztályban található egy általam létrehozott struktúra, mely a következőképpen néz ki: 3.1.11.1 Leptek A tengelyek léptékeinek kezdő- és végkoordinátáit tárolja. Változó Típus Leírás kezdo PointF A lépték kezdőkoordinátát tárolja veg PointF A lépték végkoordinátáit tárolja