Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Bodonyi Bence
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 1. A szeminárium tananyag (The seminar curriculum) 2. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 1. Struktúra (struvture) 2. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
3. Adatok és műveletek(Data&finctions) 4. Konstruktorok (Constructors) 5. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Servet tanár úr örömmel fogadott bennünket. Mindannyian bemutatkoztunk, majd ismertette velünk a gyakorlat menetét. Örömmel hallgattam, hogy a kitűzött tananyag egy részét már az iskolában is megtanultuk. Remélem ez majd segít a megértésben. A Secumart céget látogattuk ma meg. Mobil és vezetékes telefonok lehallgatásának biztonságát biztosító rendszer fejlesztésével foglalkozik immáron 7 éve. Olyan mértékű fejlődésen ment keresztül e röpke 7 év alatt, hogy 70-re duzzadt alkalmazottainak a száma, akik között minden nemzet képviselteti magát. A cég bemutatása után végigvezettek bennünket a fejlesztői szinten, ahol számos munkatárssal találkoztunk, az egyik a beérkező levelekkel foglalkozott, többen szoftverfejlesztésen dolgoztak. A cég kutyusát is megsimogathattuk. A körbevezetés után a nemzetközi kapcsolatokért felelős ügyvezető tartott ízelítőt munkájáról. A cég termékének eladása ügyében sokat kell utaznia, megfelelően kell előkészítenie előadását, s nem utolsó sorban az érintettek érdeklődését kell felkeltenie a termék iránt. Terméküket a szövetségi hivatal is megvásárolta. Írtunk egy rövid programot: #include
using namespace std; int main() { cout << "Hello Erasmus+" << endl; return 0; } A változók típusa lehet egyszerű és összetett, a C++ egyszerű típusai: int (long,short, insigned long,unsigned short),double,char,boolean,enum. A változó deklarálása a típusának és nevének megadásával történik Ma az IT – On.net Gmbh céget látogattuk meg. A cég képviselője egy inteligens házat mutatot be nekük, ők ugyanis ezek tervezésével foglalkoznak. Az intelligens épület olyan épület, amely automatikusan, azaz emberi beavatkozás nélkül, vagy csak minimálisan szükséges emberi beavatkozással képes ellátni feladatait. Például a fűtés, riasztüberendezés, média, Iphone... Az új építésű házak beszerelését ajánlják, meg tejlesen új kábelezést azlalmaz ez a technológia. A kábeleken 30 V feszültség hald át. Az operátorokat több szempont alapján lehet csoportosítani. A csoportosítást elvégezhetjük az operandusok száma
Dátum
Idő
Esemény szerint:egyoperandusú (unary) két operandusú (binary) operátorok. Egyoperandusú például n++;--n;-n; kétoperandusú például n1+n2; n2;
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
A C++ program vezérlő utasításokból épül fel. Ezekről esett szó a mai gyakorlaton. Megbeszéltük a szekvencia, az iteráció és a szelekció jelentőségét, kódolását. A mai gyakorlaton a kivételkezelésről esett szó. Megtudtuk, hogy kivételnek (exception) nevezzük azt a hibás állapotot vagy eseményt, melynek bekövetkezte esetén az alkalmazás további, szabályszerű futása már nem lehetséges. Ellátogattunk a düsseldorfi egyetemre, ahol a dékán fogadott bennünket. Először bemutatkozott, majd bemutatta az egyetemet. Ismertette velünk a szervezeti felépítést, majd 3 csoportra osztottak bennünket. Az én csoportom elsőként a biztonsági rendszert tekintette meg, majd a hálózati rendszer ill. a kommunikációs rendszer követkekezett. Érdekes volt látni az épületek kábelrendszerét, ill. szerverszoba biztonsági berendezését. Ma különböző típusú adatokat juttattunk a be a számítógépbe, s írattuk ki a képernyőre. Előfordultak mindazon típusok, melyeket az iskolában is használtunk. Kiírattuk a memória területüket is. Ebből egyértelműsödött számomra, miért is fontos a pontos típus megadás. Ma a tömb típusú változókról tanultunk.A tömb több azonos típusú elemből áll. A tömb elemekre egy sorszám (index) segítségével hivatkozhatunk. Léteznek statikus és dinamikus tömbök. Statikus tömb esetén a tömbben nem lehet a maximális elemszámtól több elemet tárolni. Dinamikus tömbből létezik változó méretű tömb, amelynél nem csak konstanssal adhatjuk meg a tömb elemszámát, hanem egy változó segítségével is, valamint létezik dinamikus tömb, amely képes szükség szerint növelni a helyfoglalását A szakmai partnerünket látogattuk ma meg. Nem düsseldorfi kirendeltségű a cég, ezért Essenbe utaztunk, hogy a cég vezetőjével találkozhassunk. Bemutatkozás után elmesélte nekünk a cég történetét, megtudhattuk azt, hogy egy internet kávézóból átalakult elektrotechnikai cég egyik boltjában tartózkodunk, amely hatalmas lehetőségeket aknáz ki a világháló segítségével, hisz elektrotechnikai cikkeit és szolgáltatásait elektronikus úton adja el, szerzi be. Forgalmaznak a világ minden területére. Megtudhattuk azt, hogy milyen szempontokat kell betartania egy ekereskedőnek ahhoz, hogy vállalkozását fenntarthassa.
Dátum
2015.06.25.
Idő
14:00 – 17:00
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
Esemény A mai szakmai gyakorlati napon ismét az összetett adatszerkezetekkel foglalkoztunk. A múlt órán megismert tömb típus is előkerült a rekord típus tárgyalása során. A rekord mezőkből épül fel, melyek mindegyike különböző típusú is lehet. A mezők típusa általában valamilyen egyszerű típus (int, double, stb.), de semmi akadálya annak, hogy a rekord valamely mezője pl. tömb típusú legyen. A mezőknek egyedi nevük van. Ez a típus a felhasználó által létrehozott típus, amit a későbbiek során adatok deklerálásánal alkalmazunk. A struct kulcsszóval vezettük be, s két kapcsos zárójelben adjuk meg a mezőket név és típus megadásával. A függvényekről tanultunk. A C++ program főfüggvénye a main függvény, de számos függvényt hozhatunk létre, melynek deklarációját bárhol megadhatjuk. típus név ( paraméter1, paraméter2, ...) { törzs } típus: a függvény visszatérési értékének a típusa név: ez a függvény elnevezése lesz, azaz így lehet meghívni. paraméter1, paraméret2, ... (amennyi csak szükséges): minden paraméter tartalmaz egy alapvető típust Nagy hatással volt rám a mai gyakorlati nap. Délelőtt ugyanis a Mercedes gyárban jártunk. A cég bemutatása után 2 egységükön kalauzoltak végig bennünket. Tilos volt az üzemekben a fényképezés. Megtudtuk, hogy 6546 dolgozója van a cégnek, csak Düsseldorfban, de Stutgardban és Ludwigsfelde-ben is van kirendeltségük országon belül. Ezen kívül Spnyolország Victoria - ban és USA Charlestonban is van gyára a cégnek. A legnagyobb az, ahol mi jártunk. " üzeységet nézhettünk meg, egyikben műszakonkét 300 dolgozó és 500 robot végzi munkáját. Minden számítógéppel vezérelt. Lenyűgözött az a pontosság, ahogy a robotok végzik a feladatukat. 600 Sprinter készül el naponta. Elmesélték nekünk, hogy csak mgrendelésre gyártanak. Minden, a futószalagról lekerült gépjárműnek már van gazdája. Számos ellenőrző ponton keresik a hibát, természetesen számítógépekkel, hogy véletlenül se kerüljön ki hibás jármű a gyárból. Ma megismerkedtk az objektum-orientált témakör alapelemeivel. Ezek közé tartozik az osztály, objektum, példány, metódus. E néhány fogalom elég közel áll hozzánk, hisz a körülöttünk lévő dolgok és kapcsolatok leírása a cél. Megfogalmaztuk és elmélyítettük az objektum-orientált programozás elveit, melyek a bezárás, öröklés, polimorfizmus és az absztrakció. Az osztály és objektum fogalmakat vettük át bővebben. A C++ kétéle leheőséget nyújt a számunkra. A struct és a class szóval vezethetjük be. Mindkettő adattagokból és tagfüggvényekből épül fel.
Dátum
Idő
Esemény Különbség köztük az, hogy a struct típusnál minden adattag nyilvános, míg a class típusnál lehet privát és publikus.A köv. osztályt alkottuk meg ma: class Alkalmazott { private: int torzsszam; string nev; int ber; public: void BertEmel(int szaz) { ber *= (1 + szaz/100); } void Bevitel(int tsz, string n, int b) { torzsszam = tsz; nev = n; ber = b; } int Ber() const { return ber; } };
2015.07.01.
2015.07.02.
9:30 – 17:00
9:30 – 12:00
A konstruktorokról és destrukturokról tanultunk ma. Érdekes téma, erről még az iskolában nem volt szó. Az osztályokat mi magunk hozzuk létre sztatikus és dinamikus helyfoglalással, de a programkörnyezet megengedi, hogy a fordító készítsen ideiglenes példányokat. Ezt a konstruktorok alkalmazásával tehetjük meg. Ez nem más, mint egy tagfüggvény, amit a deklarációban adhatunk meg. A destruktorok pedig megszüntetik ezt az ideiglene helyfoglalást. Ma egy 1965-ben alapított egyetem infomatika karát látogattuk meg.A teljes címe: Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf Az egyetem egyike a legfiatalabb egyetemeknek, s öt karral működik. Hatalmas könyvtára, botanikus kertje, amit mi már meglátogattunk és szerverszobája van. Ezt látogattuk ma meg a ZIM épületében található. Bent nem szabadott fényképezni, de kérdéseket tehettünk fel. Hatalmas adatforgalmat bonyolít le. Tartalmazza a világ 3. legnagyobb szerverét is.
Dátum
Idő
Esemény Számos részét bérlik és mások működtetik. 3 évente újátják fel, hogy a legújabb technológiávaltudják tudják működtetni.
2015.07.02.
14:00 – 17:00
2015.07.03.
9:30 – 17:00
Ma beszélgettünk a polimorfizmus és öröklés fajtáiról, majd a fájlkezelés következett. Fájlból már olvastunk be a gyakorlati órán az iskolában, így ezek az ismeretek most jól jöttek. Könnyen megértettem miről van szó, s könnyen alkalmazni is tudtam. A gyakorlat során hoztunk létre fájlokat egyszerű szövegszerkesztővel, majd a fájlból beolvastuk az adatokat. Ügyelni kellett a fájl elérési útjának helyes megadására, sőt ellenőriztük is a megnyitás helyességét, majd egy while-os ciklus segítségével beolvastuk az adatokat, melyekkel azután dolgoztunk, s a végén még fájlba ki is írtuk az eredményeket. Örültem annak, hogy sikerül a feladatot a mi csoportunknak megoldani. A projekt lezárásan napja. Megbeszéltük, hogy mit tanultunk, felelevenítettük, hogy hol jártunk, kicseréltük tapasztalatainkat. Befejeztem a naplót.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Szabó Dániel
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 3. A szeminárium tananyag (The seminar curriculum) 4. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 6. Struktúra (struvture) 7. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
8. Adatok és műveletek(Data&finctions) 9. Konstruktorok (Constructors) 10. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Az első gyakorlati napon megismerkedtünk a szeminárium vezetőjével, akinek valamennyien bemutatkoztunk. A mai nap folyamán megtudhattuk, hogy a 3 hét alatt foglalkozunk a C++ program felépítésével, alapműveleteivel, kifejezéseivel és vezérlő utasításaival. Látogatást tettünk Secusmart cégnél, ami a mobiltelefonok lehallgatását megakadályozó rendszert fejlesztett ki. 7 éve alakult, s dinamikusan fejlődött. A cég bemutatása után megtekinthettük a fejlesztői részleget. A munkatársaknak kérdéseket tehettünk fel. A falon számos post it-tel teletűzdelt diagram volt található, ami a közös munka terveit tartalmazta. Az osztály kutyusát is megsimogattuk. Az IT szakemberek számítógépeik előtt ülve végezték munkájukat. Sajnos fényképeket nem készthettünk. A következő momentuma fogadásunknak a nemzetközi kapcsolatok kialakításáról szólt. Milyen attitűddel kell rendelkeznie egy szakembernek ahhoz, hogy munkáját elvégezze, s számos ügyfelet szerezzen a cégnek. Nekik pld. a kormányhivatal is az ügyfelük. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Servet tanar ur" << endl; return 0; } Gyakoroltuk a változók deklarálását, megbeszéltük a konstans és változó közötti különbséget. Egy érintőképernyős kijelzővel rendelkező server intelligenssé varázsolhatja otthonunkat. Az árnyékolástól a zenén át a fűtésig minden funkciót vezérel. Ezt mutatta be nekünk a az IT – On.net Gmbh Düsseldorf cég képviselője. Egy ezzel a rendszerrel felszerelt szobát és a benne lévő berendezéseket próbálhattunk ki. Elmondták nekünk, hogy csak új építésű házakhoz ajánlják, mert az új technológia miatt egy régi ház teljes kábelezését ki kéne cserélni, amennyiben ilyen rendezrrel akarjuk ellátni. A kifejezések kiértékelése az elsőbbségi (precedencia) szabályok szerint történik, ezt matematikában is megtanultuk. Ha egy kifejezésben több művelet is előfordul, akkor a magasabb precedenciával rendelkező operátort tartlmazó részkifejezést értékelünk ki.
Dátum
Idő
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
Esemény Servet úrral ma a vezerlési szerkezeteket tanultuk. Használtunk programunkban elágazást és számlálós ciklust Mai napon megtudtam, hogy A C++ nyelv lehetővé teszi, is. hogy a kivételeket különböző típussal azonosítva, a hibakezelést akár egyetlen helyen is elvégezhető.. A kivételek kezelése a megszakításos (termination) modell alapján történik. Az egyetemi hálózati, biztonsági és kommunikációs rendszerének megismerése volt a cél a mai gyakorlati napnak. Ezért ellátogattunk a düsseldorfi egyetem legújabb épületébe. Forgószínpas szerűen mindhárom csoportunknak ugyanazon érdekes dolgot mutatták meg. Számomra a legérdekesebb dologa szerverszoba volt, amely hatalmas biztonsági rendszerrel fog működni. Megtudtam, hogy közvetlen kapcsolat van a városi biztonsági szervezetekkel, hold. hgy probléma esetén azonnal ki tudjon vonulni pld. a tűzoltóság. Az iostream direktíva alkalmazási lehetőségeit tekintettük át. Ha ezl beépítjük a programba, akkor a cout és cin parancsokat a main függvényn belül használhatjuk a be és kivitere. Egy rövidke programrészlet: Cout<<"Kérek egy számot"<<endl; cin>>szam; A tömb típusról tanultunk. Az iskolában már tanultunk a statikus tömbökről, ezeket az ismereteket felelevenítettük, majd azt is megtanultuk, hogy dinamikus tömb is létezik. Ennél már változó segítségvel is megadhatjuk a z elemszámot. A statikus tömb feltöltése számlálós ciklussal történik. for(i=0;i<=elemszám-1;í++) {i tömb[i]= 'A'; } ez a ciklus A betűkkel tölti fel a tömb elemeit. A szakmai pertnerünket látogattuk ma meg. A cég világhálón működteti rendszerét, vagyis tevékenységének nagy hányadát az e-kereskedelm teszi ki. A világhálón történő kereskedelem során számos szempontotra kell figyelmet fordítani. Melyek felölelik a technikai és szervezeti tényezőket. A cég vezetője ismertette velünk az ekereskedelm problémáit, jogi szabályait. A C++ újabb típusával találkoztunk a mai órán. Ez a rekord típus volt, ami az összetett adattípusok sorát gazdagítja. Míg a tömb azonos típusú elemeket tárol, addig ebben a típusban különböző adattípusú elemek is tárolódhatnak. Megadásának általános alakja: típus rekordtípus: rekord(
Dátum
Idő
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
Esemény mező1 : típus1 mező2 : típus2 … ) Ezek után már deklarálhatunk változó rekordnév: rekordtípus változót. A következő mintát készítettük el : #include using namespace std; int osszeadas (int a, int b) // ez lesz a függvény neve és ezek a paraméterek { int r; // belső változó deklarálása r=a+b; return (r); // visszatérési érték megadása } int main () // Itt kezdődik a fő-ág. { int z; // deklaráció z = osszeadas (5,3); //Függvény meghívása cout << "Eredmeny: " << z; // Végeredmény kiírása return 0; } Mercedes – Benz Werk Düsseldorfnál jártunk a mai délelőtt folyamán. A cég képviselője fogadott bennünket, majd kis bemutatóval illusztrálta a cég hatalmas méreteit. Védőszemüveggel felszerelkezve indultunk a gyártósorokat megtekinteni. Nagy élmény volt látni, hogy az emberi kéz által végzett munkát miként egészíti ki a robotok munkája. Számítógépes progamokkal van minden vezérrelve. Előre 2 órát programoznak be percről percre minden munkafázist. Az ellenőrzés is számítógépekkel történik. A szenzorokka mért adatokat szoftverekkel kiértékelik, s ennek alapján eldöntik, hogy a folyamat megfelelően játszódott le vagy sem. Megtudtuk, hogy amennyiben a karoszériában találnak rossz összeillesztést, akkor nem szedik szét, hanem hibás termékként a kukába kerül. A másik hangárban készre szerelt autókat láthattunk. Itt az emberi kéz által végzett munka nagyobb arányú volt, mint a robotika. Ma az objektum-orientált programozásról taultunk, ami a „dolgokat” és köztük fennálló kapcsolatokat használja alkalmazásokhoz. Servet úr remek példákon keresztül mutatta be nekünk az osztályokat, objektumokat, példányokat. Mi számos példát hoztunk objektumokraMegismerkedtünk z alapvető elvekkel, melyek a következők: -bezárás -öröklés -polimorfizmus
Dátum
2015.06.30.
Idő
9:30 – 17:00
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Esemény Az osztály egy új típus létrehozását jelenti a C++ nyelvben. Ezt a struct és a class kulcsszavakkal vezethetjük be. Az első esetben minden adat publikus, míg a második esetben megadható, hogy melyik legyen public avagy privat. Az objektum egy ilyen ttípussal rendelkező váltotó, mely magába foglalja az adatokat és a függvényeket egyaránt. A deklarálás során meg kell adni minden adat tíusát és nevét, ill. a tagfüggvények típusát és nevét. A tagfüggvények deklarálása történhet a class-on belül, de kívül is. Általános megadási mód: class OsztályNév { public: típus4 Függvény1(paraméterlista1) { } típus3 Függvény3(paraméterlista3) { } private: típus1 adat11, adat12; típus2 adat2; }; Ma megtanultuk, hogy nemcsak sztatikus és dinamikus helyfoglalással hozhatunk létre objektumokat, hanem a fordító futás közben is létrehozhat példányokat. Erre szolgálnak a konstruktorok. Ismerünk paraméteres, paraméter nélküli és másoló konstruktorokat. Ezek gyakorlatilag tagfüggvények. Kettővel alapból rendelkezik egy osztály: paraméter nélküli és másoló konstruktorral. Ma láttuk a világ 3. legnagyobb szerverét a Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf - n. A 1965 - ben alapított 5 karral rendelkező egyetemnek hatalmas könyvtára és általunk már meglátogatott botanikus kertje van. Mi a ZIM szerverszobáját látogattuk meg, ahol a tárlatvezetőnk számos érdekes adattal szo helyen lgát. PLd. ,5 millió euró az értéke annak a szervernek, amit a világon 3lkalmaznak. A legújabb technológiákkal dolgoznak, amit a 3 évenkénti felújítás eredményez. Sokmagos processzorokkal és terra nagyságrendű tárhelyekkel ellátott rack-ek tárultak elénk, de fényképezni nem szabadott. A kurzus elején már beszéltünk az OOP programozás elveiről, most bővebb információkat kaptunk az öröklés és polimorfizmusról, s azok fajtáiról. A fájlkezelés műveleteiről kaptunk ízelítőt, majd csoportmunkában ki is próbáltuk azokat. Jegyzettömbbel hoztunk létre állományokat, majd a fájlmegnyitás, bezárás, beolvasás és kiírás műveleteit gyakoroltuk.
Dátum
2015.07.03.
Idő
9:30 – 17:00
Esemény Használtuk az eof függvényt, s a beolvasott adatokkal műveleteket végeztünk. Számoltunk átlagot, kerestünk legnagyobb és legkisebb értéket. Végül az eredményeket kiírtuk állományba. Jó volt a mai gyakorlati óra, sok mindent tanultam és sok sikerélményem volt. A lezárás napja. Befejeztem a naplót. A többiekkel megbeszéltük éményeinket, összefoglaltuk a tanulságokat és átismételtük a tanult ismereteket.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Kiss Levente
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 5. A szeminárium tananyag (The seminar curriculum) 6. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 11. Struktúra (struvture) 12. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
13. Adatok és műveletek(Data&finctions) 14. Konstruktorok (Constructors) 15. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Eljött a gyakorlat első napja. Bemutatkozás után ismertették velünk a 3 hét menetét. Örömömre szolgált, hogy mindent megértettem, amiről szó volt. Megszerkesztettem a naplómat a Google drive-on, majd megosztottam tanárommal. Egy világhírű céget kerestünk fel a mai gyakorlati napon, a Secusmart Düsseldrof-t. A telefonok lehallgatásának megakadályozására fejlesztettek ki egy chip-et, ami a hangot kódolja. Jelenleg a legbiztonságosabb rendszer a világon. Ezt használják a kormányhivtalok és a kancellár is. Megtudtuk, hogy a Blacberry felvásárolta a céget. A nemzetközi kapcsolatokért felelős munkatárs munkájáról és az üzleti életben való viselkedésmódot, előkészületeket ismertette velünk. A cég szoftverrészlegét tekinthettük meg, ahol az IT szakemberek dolgoznak. A cég munkatársainak száma 70, amit 7 év alatt duzzasztott ennyire. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Dusseldorf" << endl; return 0; } Egy változó deklarálása: típus változónév [=kezdőérték]; pld.: int szam; char kar; Az IT – On.net Gmbh Düsseldorf cégél jártunk. Ez a vállalkozás új építésű házak inteligenssé varázslásának tervezésével foglalkozik. Teljesen emberi beavatkozás nélkül, vagy részben embei beavatkozást igénylő rendszerek ezek, mellyel a fűtéstől, szórakozáson át a riasztásig mindentautomatizálhatunk. Demonstrálták a sötétítést, a világítást és a megfigyelő rendszer automatizáló rendszerét. Ez a technológia új kábeleket alkalmaz, mely 30 V feszültséget juttat el a fogyasztókig. A kifejezések kiértékeléséről esett szó a mai gyakorlaton. Az (a+b)*(d-c)*e kifejezés feldolgozásának lépései: int a = 1, b = 2, c = 3, d = 4, e = 5; (a + b) ⇒ 3 (d - c) ⇒ 1 (a + b) * (d - c) ⇒ 3 * 1 ⇒ 3 3* e ⇒ 3 * 5 ⇒ 15
Dátum
Idő
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
Esemény A mai szakmai gyakorlaton felelevenítettük a vezérlési szerkezetkről tanultakat. Az elágazásnál alkalmaztuk a Akivételek kezelése: tegnapi ismereteinket. Örömömre szolgált, hogy a és feltételes A try-catch programstruktúra egyetlen try blokkot ciklus alkalmazását is megértettem. tetszőleges számú catch blokkot tartalmaz: try { // kivételfigyelés alatt álló utasítások utasítások } catch (kivétel1 deklaráció) { // a kivétel1 kezelője utasítások1 } Egy helyi hálózati rendszert ismehetünk meg a mai napon, amikor a düsseldorfi egyetemre látogattunk el. Megmutatták nekünk a kábelezés hibajavítását, ill. a biztonsági berendezéseket, majd a belső hálózat kommunikációs rendszerét. A dékán személyesen fogadott bennünket, akitől az egyetem szervezeti felépítését is megtudhattuk. Nem voltam még szerver szobában, így a mai nap rendkívüli élmény volt a számomra. A cout és cin utasításokat gyakoroltuk a mai órán. Megbeszéltük az igazítási lehetőségeket is, amelynek alkalmazása csak az iomanip direktíva hozzácsatolásával lehetséges. Cout<<"Kérek tőled egy karaktert"<<endl; A tömbök olyan összetett adatszerkezetek, amelyek statikus mérettel rendelkeznek. A tömbök lehetnek egydimenziósak, kétdimenziósak és többdimenziósak. A tömb típusú változók deklarálásakor meg kell adni a tömb alaptípusát, és dimenzióinak számát. Pl.: -int[] szam; egy int alaptípusú, egydimenziós szam nevű tömböt deklarál. -double[,] tomb; egy double alaptípusú, kétdimenziós tomb nevű mátrixot deklarál. A változókba értéket kell elhelyezni, melynek során a new kulcsszó segítségével memóriát foglalunk le egy tényleges tömbnek, megadva a tömb statikus méretét. Az e-kereskedelem volt a mai gyakorlat táméja. Felkerestük szakmai partnerünket Essenben. A cég egyik boltjában találkoztunk a cég vezetőjével, akitől sok mindnt tanultunk. Ismertette velünk az e-kereskedelel elemeit, melyek a következők : - webszerver,
Dátum
Idő
2015.06.25.
14:00 – 17:00
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
Esemény - alkalmazás szerver - adatbázis szerver. Érdekes volt megtudni az e-kereskedelm jogi szabályait, ill. azt is hogy előnyei mellett számos hátránnyal, nehézséggel rendelkezik. A rekord két vagy több egymástól eltérő típusú változót (mezőt) foglal egyetlen egységbe. A rekord mezői a memóriában szigorúan egymást követően foglalnak helyet a rekordban történő felsorolásuk sorrendjében. A rekord méretét a mezők és ezen kitöltő területek összege határozza meg. A struct kulcsszóval vezetjük be. pld. struct Crekord { string nev; int szulev; string anyja_neve; } A rekordra a nevével, mezőire pedig a rekordnév.mezőnévvelhivatkozunk. Néhány mintát adtunk a függvényekre. Leginkább az alapműveletekre, hogy mindenki megértse. Én most a szorzásra mutatok be egy példát #include using namespace std; float szorzas (float x, float y) { float eredmeny; eredmeny=x*y; return (eredmeny); } int main () { float z=1; for (int i=1; i<11;i++) { szorzat= szorzas (z,2); //Függvény meghívása } cout << "2^10 = " << z; // Végeredmény kiírása return 0; } A Mercedes – Benz Werk Düsseldorf gyárban jártunk ma délelőtt. A gyár képviselője bemutatta a düsseldorfi kirendeltséget, melyen kívül még 2 városban van kirendeltsége Németországban a cégnek. Kis számú munkatárssal működik az USA-beli cég, s valamivel több alkalmazottal rendelkezik a spanyol leányvállalat. Üzleti megfontolásból a tengeren túlra gyártott autókat a temgeri
Dátum
Idő
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
Esemény utaztatás előtt alkatrészeire szerelik szét, s az USA-ban újra összeszerelésre kerül. A gyárban 3 műszakban dolgoznak a munkások, s az ő munkájukat segítik a robotok. A karosszériát összeszerelő részlegben 500 robot és 300 emberi munkaerő végzi a szerelést. A gyártás egy percre sem áll le. Naponta 600 autót gyártanak megrendelésre. Minden számítógéppel vezérelt. Eljutottunk az objektum-orientált programozás tárgyalásához. Nagyon érdekesnek találtam, mert az életből vettünk példákat az oszály, objektum, példány fogalmak megértéséhez. Objektum lehet pld. Egy madár, annak alobjektumai a repülő és a nem repülő madarak. Minden objektum magába foglalja az adatokat és metódusokat, ez az objektum orientált programozás egyik elve. Szó volt még a többi elvről is, mint az öröklés (a repülő és nem repülő madarak is ugyanazokat az adatokat és metódusokat öröklik), s nem utolsó sorban a polimorfizmus, ami lehetővé teszi, hogyaz öröklés során bizonyos metódusokat más tartalommal töltsük meg. Az objektum orientált program új típusa az osztály, amit a struct és a class kulcsszavakkal vezethetünk be. Az iskolában is tanultunk már róla, de úgy érzem most értettem meg igazán. A class gyakorlatilag magában foglalja az adatokat és műveleteket, s a való világ egy objektumának absztrahálását jelenti. Megadásakor a privát és publik szavakkal láthatjuk el őket aszerint, hogy hozzáférhet -e bárki, vagy csak a megfelelő szlőobjektum, vagy függvény. Az class és a struct osztályok deklarációját a C++ programban bárhol elhelyezhetjük, ahol deklaráció szerepelhet, azonban a modul szintű megadás felel meg leginkább a modern programtervezésnek. A konstruktor olyan tagfüggvény, amelynek neve megegyezik az osztály nevével, és nincs visszatérési típusa. A konstruktor nem rendelkezik visszatérési értékkel, de különben ugyanúgy viselkedik, mint bármely más tagfüggvény. A konstruktorok mellett a destruktorok is szóba kerültek a mai gyakorlati órán. Miért is van szükség rájuk? A helyfogalalás dinamikusan történik, a fordító vlgzi, s úgy a helyes, ha a lefoglalt területet felszabadítjuk. A szerver vagy kiszolgáló az informatikában olyan számítógépet, vagy szoftvert jelent, ami más számítógépek számára a rajta tárolt vagy előállított adatok felhasználását teszi lehetővé. Sok ilyet láttunk ma az egyetem ZIM épületében. A biztonsági berendezések miatt csak rövid ideig lehet nyitva a szoba ajtaja, így két csoportra osztottak bennünket,
Dátum
Idő
2015.07.02.
14:00 – 17:00
2015.07.03.
9:30 – 17:00
Esemény s mindkét csoport egymás után jutott be a világ egyki legnagyobb és legbiztonságosabb szerverét is tartalmazó szerverszobába. A ZIM IT szakembereinek vezetője kalauzolt bennünket, akinek kérdéseket is tettünk fel. Nagyon érdekelt bennünket az ár és az adatmennyiség. Elépesztő adatmennyiség tárolódik egyilye helyen. A hűtőberendezés hatását testközelben is érezhettük. A fájlkezelés volt terítéken. Ez a téma már előkerült az iskolában is, így az alapokat már tudtam. Valószínűleg azért is sikerült minden gyakorlati feladatot megoldani. A megoldás során használtuk a C++ nyelv beépített fájlkezelő függvényeit: f.open() f.close() eof() A be- és kimeneti fájl fogalmát is megtárgyaltuk. A fájlmegnyitást mindig ellenőriztük, majd a beolvasást egy elöltesztelős ciklussal oldottuk meg. Miután a bemenő adelvégzetük a kijelölt feladatokat, kiírtuk az ereményt egy fájlba.atokkal Lezárás. Felelevenítettük a 3 hét alatt történt dolgokat. Befejeztem a naplót. Megbeszéltük a tapasztalatokat.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Pop Csenge
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 7. A szeminárium tananyag (The seminar curriculum) 8. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 16. Struktúra (struvture) 17. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
18. Adatok és műveletek(Data&finctions) 19. Konstruktorok (Constructors) 20. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
2015.06.19. 2015.06.22.
9:30 – 12:00 14:00 – 17:00
Esemény Megérkezés Düsseldorfba Az első gyakorlati napon megismerkedtünk Servet tanár úrral, aki a szemináriumot vezeti majd nekünk. Mindannyian bemutatkoztunk. Ismertette velünk a 3 hét programját. Az objektum orientált programozással foglalkozunk majd. Ma az üzleti élet,termékeladás,managmenelésről is szó esett a Secusmart Gmbh-t felkerestük a Heinrichstraße 155 - ben. Egy biztonsági rendszert forgalmazó cég képviselőivel találkoztunk, akiktől sok mindent tanulhattunk. A cég bemutatása német nyelven folyt, a Blacberry képviselője pedig angol nyelven mutatkozott be, s tett fel néhány kérdést nekünk. A nmzetközi kapcsolatokért felelős munkatárs az üzleti tárgyalásokról, megjelensről, előkészületekről beszélt nekünk. Számos kérdést tett fel nekünk céljainkkal kapcsolatosan, s számos ötlettel állt előezek megvalósításához. Megtudtuk tőle, hogy a viág minden tájára forgalmaznak, s biztonsági rendszerüket alkalmazza a szövetségi hivatal is. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Pop Csenge" << endl; return 0; } Számos változót és konstanst deklaráltunk, megbeszéltük a kezdőérték fogalmát. Egy központi vezérléssel ellátott redszert láttunk ma, amikor az IT – On.net Gmbh céget látogattuk meg. Egész otthonunkat automatikusan működő rendszerrel varázsolhatjuk okossá. A cég a rendszer megtervezésével foglalkozik, a kivitelezésben csupán partnerek megtalálását ígéri. Nem minden villanyszerelő ismeri a technológiát, ezért fontos a jó kapcsolatteremtés. Egy éritő képernyővel irnyított rendszert láthattunk, amely a világítást, médiát, riasztó rendszert is magába foglalta. A programozás során használt műveleteket két nagy csoportra osztjuk az operandusok száma alapján. Megkülönböztetünk egy és két operandusú műveleteket. A mai gyakorlaton számos kifejezést értékeltünk ki, s alakítottunk át. A csoportunk egy olyan programot írt, ami feltöltött egy tömböt így a vezérlési szerkezetek közül Ma szó egész esett aszámokkal, kivételek kiváltásáról. A kivételkezelést a a számlálós ciklust alkalmazta.
Dátum
Idő
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
Esemény programunk adott részén belül, lokálisan kell kialakítanunk a try, a throw és a catch kulcsszavak felhasználásával. Az iskolában már csoportosítottuk a hálózatokat kiterjesztés szerint,s ma az egyik csoporttal, a helyi hálózattal ismerkedtünk meg, amikor ellátogattunk az egyetemre. A dékántól megtudtuk, hogy milyen szakokat tanulhat itt a közel 6000 diák. 3 csoportra osztottak bennünket. Az én csoportom először a szerver szoba biztonsági berendezéseit nézhette meg, ill. próbálhatta ki, majd a helyi rendszer hibakeresési módszerét mutatták meg nekünk, s végül az egyetem kommunikációs rendszerének működését illusztrálták egy hatalmas kivetítőn. Megtduhatta azt is hogy az IP telefonra milyen rendszer van ráépítve, s hogy mennyi mindent el tud egy egyetemi dolgozó intézni a telefonjával. Ma szó volt a különböző direktívák alkalmazásáról és a konzolkezelésről tanultunk. Használtuk a cout és cin parancsokat. A tömbökről tanultunk ma. Létezik egy, két- és többdimenziós. A kétdimenziós tömbök esetén egy konkrét elemre két sorszámmal hivatkozhatunk (sor és oszlop index). Ezen sorszán egy nxm elemű tömb esetén [0,n-1] ill. [0,m-1] intervallumból kerül ki (a mátrix sorainak és oszlopainak sorszámozása is 0-val kezdődik). Kezelését leggyakrabban két, egymásba ágyazott for ciklussal valósítjuk meg: for(int i=0;i
Dátum
Idő
Esemény a mai gyakorlati napon. Rekordokat deklaráltunk, ügyelve arra, hogy minden mező nevét és típusát megadjuk. Létrehoztunk egy Challgató rekord típust, amely 3 mezőt tartalmazott, majd ilyen típusú változót deklaráltunk, s kiírattuk a képernyőre a tartalmát. Nagyon tetszett a mai óra.
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
A mai gyakorlati napona függvényekről beszélgettünk, elmagyarzták mit jelentenek a paraméterek, s miként adható meg egy függvény deklarációja, majd magunk is hoztunk létre néhány függvényt. Sikerült a kivonás műveletét megírni. Remélem a mai anyag az objektum orientált programozást is elősegíti, mert az az iskolában kevésbé értettem meg. Mercedes – Benz Werk Düsseldorf gyárban jártunk. A hatalmas Mercedes cég egyik legnagyobb gyára itt Németországban, közel 6500 dolgozóval, akik 3 műszakban dolgoznak napi 8 órában, s gyakran még szombatonként is. A szalag csak kivételes alkalmakkor, ill. a szabályok szerint járó szünetekben áll le. Lenyűgözött a tény, hogy némelyik részlegben több robot dolgozik, mint ember. Mindent számítógépekkel vezérelnek, s előre 2 órát tudnak beprogramozni. Az ellenőrzés során mért adatokat is számítógépes programokkal dolgozzák fel. Az USA-ba gyártott autókat tengerre szállás előtt darabjaira szerelik szét, aminek áfa vonzata kisebb, mint a kész terméké. A mai gyakorlaton felhívták a figyelmünket arra, hogy az OOP nyelvek általában csak eszközöket és támogatást nyújtanak az objektum-orientáltság elveinek megvhívtalósításáhozlent .Ezen elvekről sok szó esett a mai órán. Megtanultam, hogy mit jelent a bezárás, absztrakció, öröklés és a polimorfizmus. A class és a struct kulcsszavakkal deklarált új típusokról tanultunk ma a gyakorlaton. Mindkettő magában foglalja ugyan az adatokat és függvényeket, csak az egyiknél minden adat publikus. Deklaráltunk osztályt, majd hoztunk létre az új típussal változót. class Dolgozo { private: int azon; string nev; int ber; public: void Emel(int szlab) { ber *= (1 + szlab/100);
Dátum
Idő
Esemény } void Bevitel(int tsz, string n, int b) { azo = tsz;n nev = n; ber = b; } };
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
2015.07.03.
9:30 – 17:00
A mai gyakorlati nap egy részéban a konstruktorokról és destruktorokról tanultunk. Olyan témakör ez, amiről eddig én még nem hallottam. Érdeklődéssel figyelmet, hogy a következő évben információim legyenek róla. Megtanultam azt, hogy objektum létrehozásának egy módja ez, amikor is a fordító hoz létre új példányt, vagy esetleg szabadít fel helyet, így nem a programozónak kell helyet lefoglali a memóriában. Ez a tárhely használatot tudja lecsökkenteni, ami a mai programok esetén bizony fontos dolog. E két új fogalom gyakorlatilag nem is új, hisz tagfüggvényeket jelent, csak más a funkciójuk, és a deklarációjuk. Ma a Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf jártunk. A környék ismerős volt, mert a botanikus kertet keresve már jártunk itt. Az egyetem az egyik legfiatalabbik egyetem Düsseldorfban, 5 karral rendelkezik: orvosi, jogi, közgazdasági, természettudományi és bölcsészettudományi karral. A ZIM épületében található a szerverszoba, ami hatalmas mennyiségű adatforgalmat boyolít le. Nem csak az egyetem informatika rendszerét szolgálja ki, hanem más vállalkozásoknak is bérbe adják. 3 évente fel kell újítani, hogy a legmodernebb technolgiával tudjanak dolgozni. A C++ - ban lehetőségünk va fájlok kezelésére. Erről tanultunk a mai gyakorlaton. Megkülönböztetünk be- és kimeneti állományokat, melyeket a programban az ifstream és ofstream típusokkal hozunk létre. Deklarálásuk a köv. képp történik: ifstream(f,"a létező fájl neve"); Ügyelni kell arra, hogy amennyiben nem a megfelelő könyvtárba helyeztük el a z állományt, akkor az elérési útvonalat is meg kell adni. A megnyitást az f.fail() függvénnyel ellenőrizhetjük. A projekt lezárásának napja. Tapasztalatok megbeszélése történt a mai napon.
Dátum
Idő
Esemény Befejeztem a napló írását.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Klein Dániel
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 9. A szeminárium tananyag (The seminar curriculum) 10. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 21. Struktúra (struvture) 22. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
23. Adatok és műveletek(Data&finctions) 24. Konstruktorok (Constructors) 25. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
Esemény Megérkezés Düsseldorfba Megismerkedtem Servet tanár úrral, aki vezeti majd a szemináriumot. Bemutatkoztunk neki, majd elmondta a programot. A C++ fejlesztői környezet már ismert számomra, így remélem feladataimat megfelelően tudom majd elvégezni. Hogy milyen fontos adataink védelme, az már sokszor kiderült, felhívták rá figyelmünket az iskolában is, de a mai napon különösen, amikor is a Secusmart Gmbh, Heinrichstraße 155 Düsseldorf - nál jártunk. A kedves fogadtatás és bemutatkozás után megtudtuk, hogy 7 éve működik a vállalat, mely a mobil telefonok lehallgatásának megakadályozását célzó rendszerek kifejesztésével foglalkozik. 70 munkatárssal dolgoznak, akik között különböző nemzetiségű foglalkoztatott is előfordul. Körbevezettek bennünket a fejlesztési osztályon, ahol nem szabadott fényképezni. Nagyon tetszett az utolsó előadó közvetlen beszéde, aki a nemzetközi kapcsolatokért felelős. Mesélt arról miként kell előkészíteni egy üzleti utat, hogyan kell egy üzletembernek viszonyulnia a leendő ügyfelekhez, s nem utolsó sorban milyen nyelveket kell ismernie ahhoz, hogy a cég termékét el tudja adni. Hangsúlyozta, hogy céljaink elérése érdkében sokat kell tanulnunk és dolgoznunk, s ha elkötelezettek vagyunk valami iránt, akkor sikeres emberek lehetünk. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Dusseldorf" << endl; return 0; } Szó volt az egyszerű és összetett típusokról, definiáltunk különböző típusú és nevű változót, megbeszéltük a változók jellemzőt. Ma egy okos lakást nézhettünk meg, hisz felkerestük a az IT – On.net Gmbh Düsseldorf céget. Egy fiatalos lendületű vállalkozás, mely új építésű házak inteligens terveit készíti el, amennyiben ezt a tulajdonos igényli. Központi vezérléssel rendelkezik a rendszer, mely teljesen új kábelezési technikát alkalmaz, s a rendszerhez kapcsolja a riasztó berendezést, a ház vagy lakás világító, sötétítő, de akár a fűtő rendszerét is. Az árról sokat nem tudtuk meg, mert ez sok mindennek a függvénye. Így pld. függ attól, hogy mekkora a ház, mennyi
Dátum
Idő
2015.06.18.
14:00 – 17:00
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
Esemény szobát vagy helyiséget szeretnénk a rednszerbe beiktatni. A mai napon a kifejezések kiértékelését mélyítettük el. Számos példán keresztül magyarázta el nekünk Servet úr a műveleti sorend fontosságát. Szó volt a logikai műveletekről is. Az alábbi rövid programot írtuk: #include Ma megtanultam, hogy a A C++ nyelv lehetővé teszi, hogy using namespace std; a kivételkezelést akár egyetlen helyen is elvégezhetjük. A int main()kezelése a megszakításos (termination) modell kivételek {alapján történik, ami azt jelenti, hogy a kivételt kiváltó for(int i=1;i<=10;i++) programrész (függvény) futása megszakad a kivétel cout << "Hello Dusseldorf" << endl; bekövetkeztekor. system("pause"); 10 fős csoportokra osztottak bennünket, miután a dékán return néhány0;szóban bemutatta önmagát és az egyetemét, majd }megkezdődött a biztonsági rendszer, a hálózati és a kommunikációs rendszer bemutatása. A dékán 3 munkatársa ismertette velünk, hgy miként történik a kábelek átvizsgála, javításatatása, hogyan védik a szerverszobát a felmelegedéstől, ill. az esetleges tűztől, s megtudhattam azt is, hogy mennyi minden kapcsolódik az IP telefonra. Az egyetem hálózati rendszerének kiépítésénél fontos szempont volt a gyors elérés, a biztonságos használat. A ki és bemenet utasításait használtuk a mai gyakorlati órán. Örültem, hogy hasznosíthattam az iskolában tanultakat. Az összetett típusok közül a tömbről tanultunk. Atömb azonos típusú elemek halmaza, s minden elemre a sorszámmal hivatkozunk. A tömböket csoportosíthatjuk, léteznek egy-, két- s többdimenziós tömbök. A statikus tömb esetén az elemszámot előre meg kell adni, pld. töm1[10];btömb2[2,3];tömb[10,20,10} Első esetben egy tíz elemű egy dimenziós tömbről, másik esetben 2x3 - as két dimenziós, míg harmabik esetben 10x20x10 háromdimenziós tömbről beszélünk. Ma az e-kereskedelemről tanuitam, amikor is felkerestük Essenben a szakmai partnerünket. Az Elektropowe egy zömmel e-kereskedelemmel foglalkozó cég, megy egy internet kávézóból alakult át elektrotechnikai termékeket forgalmazó céggé. A cég vezetőjétől megtudhattuk, hogy milyen formái léteznek ennek a kereskedelemnek, hogy milyen biztonsági rendszernek kell kiépülve lennie jogi és kereskedelmi oldalról, ill. arról is hallhattunk, hogy milyen részei vannak az e-kereskedelemnek. A rekord vagy struktúra (programozó által definiálható)-ról tanultunk a mai napon: A rekord több, különböző típusú elemből áll, az elemekre névvel hivatkozunk. Minden elemének (mezőknek) saját neve van. Egységbe foglalja össze az összetartozó adatokat. Pl. egy könyv címe, ára. Egy rekord(struktúra)
Dátum
Idő
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
Esemény használatához előbb egy új típus létrehozását igényli, hiszen ahhoz, hogy a fordító típusként tudja használni (azaz tudjon helyet foglalni neki, valamint le tudja ellenőrizni az elemeivel végzett műveleteket) le kell írni a típust pontosabban. A típus definícióban minden egyes mezőnek meg kell adni a nevét és a típusát. A C++ függvényeiről tanultunk ma. Megkülönböztetünk olyan függvényeket melyeknek van visszatérési értéke, ezeknek a típus és név megadása a követelmény a deklarácó során, de léteznek visszatérési érték nélküli függvények is. Ezeket a void zóval kell bevezetni, s a deklarácó során nem írunk olyan sort , ami a return érték lenne. Néhány példát mutatott Servet úr, aztán mi magunk is deklarálunk és hívtunk meg függvényeket. A négy alapművelet függvényét írta meg egy-egy csoport. Rettentő érdekes szakmai napon vagyunk túl. Mercedes – Benz Werk Düsseldorf gyárban jártunk. Ez a kirendeltség a cég egyik legnagyobb gyára itt Németországban. A beszámolóból megtudhattuk, hogy Németorzágban még 2 gyára van a cégnek, s ezen kívül Spanyolországba, franciaorzágban, de még az USA-ban is van vállalatuk. A düsseldorfi gyár Sprintereket gyárt, napi szinten 600-t. Nem raktárra gyártanak, hanem megrendelésre, így sokféle termék kerül le a gyártószalagról. Előre 2 óra munkafolyamatot tudnak beprogramozni. Az ellenőrzés különböző szenzorokkal mért adatok kiértékelésével történik. A dolgozól 3 műszakban, naponta 8 órát dolgoznak, s ismerik az egész gyártóso munkafolyamatait, hogy 2 óránként cserélhessenek, nehogy monotonná váljon a munka számukra. Sok száz robot segíti munkájukat, s természetesen az ő meghibásodásukat is ki kell javítani. A hibajavításhoz szükséges eszközök a hangár fala mellett voltak elhelyeze. Hatalmas cég, hatalmas logisztikával. Nagyon köszönöm ezt a napot, sokat tanulhattam belőle. Az adatbázis és szoftverfejlesztés órán már hllottam az OOP prograozáról. Kicsit elvontnak tartottam akkor a tananyagot, de a mai gyakorlaton sikerült elmélyülnöm benne, s megértenem az alapokat. Remek példákat hoztunk az osztlyokra, objektumokra, példányosítottuk őket, majd megbeszéltük milyen elvei is vannak az OOP - nek. Megtudtam, hogy az öröklésnek több válfaja is létezik, és hogy a polimorfizmus lehetővé teszi az öröklés során átörökölt függvények új tartalommal való megtöltését. Még egy elvet ismertettek velünk, az absztrakció elvét, ami segíti a világ objektumainak leegyszerűsítését. Ma létrehoztunk új típusokat ás olyan változókat, melyek ezzel a típussal rendelkeznek. A class kulcsszóval vezettük be, s általános alakja a köv.: class OsztályNév {
Dátum
Idő
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Esemény public: típus1 Függvény1(paraméterlista1) { } típus2 Függvény2(paraméterlista2) { } private: típus1 adat1, adat2; típus3 adat3; }; Például egy háromdimenziós pont osztály: class Pont { public: int Ertekadas(int,int,int) { } int Tavolsag() { } int x,y,z; }; Szakmai gyakorlati napunk ma a konstruktorok destruktorok megértésével foglalkozott. Megtudhattam, hogy nemcsak memória helyfoglalással hozhatok létre objektumokat egy OOP-t támogató fejlesztői kötnyezetben. Másik módja az objektum példányosításának az, hogy a fordító program futás közben hoz létre egy vagy több példányt, amivel végezzük majd feladatainkat. Ha már nincs szükség a példányra, abban az esetben pedig felszabadítjuk a helyet. Így jönnek létre a konstruktorok és destruktorok, melyek nem mások mint tagfüggvények, s mint olyanokat a deklaráció során meg kell adnunk. A múlt héten már jártunk egy szerverszobában, de az még nemvolt teljesen beüzemelve. Ma az egytemet kiszolgáló rendszert tekinthettünk meg a ZIM épületében. A hűtőrendszerkk érezhetően védi a beredezéseket a felmelegedés ellen. Hatmas rack-keket láttunk, de fényképeket nem készíthettünk. Viszont sok kérdést tehettünk fel, melyre megkaptuk a válaszokat. A szerverszoba tartalmazza a világ 3. legnyagyobb és legbiztonságosabb szerverét. A ZIM szerverszobája nemcsak az egyetem kiszolgálója, hanem másokáltal bérelt szerverek által egyéb intézményeket, hivatalokat is kiszolgálnak. Alapvető fájl-műveletekről volt ma szó. Ezek a fájl megnyitás, fájl bezárás, fájlba írás, fájlból olvasás. Mindezekhez a fstream direktívát kell hozzácsatolni a programunkhoz. Ha ezt megtesszük, akkor használhatjuk az eof(), f.open(),f.close() függvényeket. Mindezek előtt össze kell társítani a fizikai fájlt a logikaival, ezt a deklarációban kell megtenni. Nem szabad elfeledkezni arrl, hogy ha a nem megfelelő könyvtárban helyezzük el a fájlt, akkor az elérési útvonalat is me kell adni. Szükséges a fájlmegnyitás ellenőrzése is, amit az f.fail() függvénnyel tehetünk meg.
Dátum
2015.07.03.
Idő
9:30 – 17:00
Esemény A gyakorlati órán hoztunk ltre állományt, megnyitottuk, adataival dolgoztunk, majd redményeinket kiírtuk állományba. Az utolsó gyakorlati napon lezártuk a projektet. Befejeztük a naplót. Kicseréltük a tapasztalatainkat.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Farkas Márió
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 11. A szeminárium tananyag (The seminar curriculum) 12. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 26. Struktúra (struvture) 27. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
28. Adatok és műveletek(Data&finctions) 29. Konstruktorok (Constructors) 30. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
Esemény Megérkezés Düsseldorfba Az első munkanapon találkoztunk a szeminárium vezetőjével, aki kedvesen fogadott bennünket, és elmondta nekünk, hogy mivel fogunk foglalkozni a következő 15 napban. Elkezdtem a naplómat, amit a Google - drive segítségével oldom majd meg. A mobiltelefonok elterjedésével egyre fontosabbá vált adataink, hangunk, beszélgetéseink védelme. Ezt az utat választotta a Sevusmart cég, mely immáron 7 éve működik Düsseldorfban s közel 70 munkatárssal fejleszti biztonsági rendszerét mind cégeknek, nagyvállalatoknak, hivataloknak, de magán személyeknek egyaránt. A rendszerük egy algoritmus, mely egy chipen helyezkedik el,s most már Blacberryre is kifejlesztették. Rendszerüket használja a német kormány, számos mammutvállalat Európában, USA-ban, Afrikában és Ausztráliában is. Az üzletember, aki a nemzetközi kapcsolatokért felelős elmesélte ekünk, hogy milyen magatartás várnak el egy jő managmenttől, milyen fontos a jó előkészület, s a partnerek meggyőzése. Ennek elengedhetetlen feltétele a nyelvek ismerete. A leginkább az angol, deDél-Amerikában a spanyol nyelv a leendő ügyfelekkel folytatott párbeszéd nyelve. Nagy élmény volt látni a fejlesztési osztályt, ahol számos IT szakember végezte munkáját. Sajnos fényképezni ezen az osztályon nem volt szabad. Ez biztonsági okokból van így. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Nemetorszag" << endl; return 0; } Ma egy számomra ismerős anyaggal foglalkoztunk. A változók jellemzőit már az iskolában megtanultuk. A memóriában lefoglalt méretet viszont most sikerült igazán elsajátítanom. Egy intelligens házban töltöttük ma a napot, ugyanis meglátogattuk a az IT – On.net Gmbh céget. Ez a kis vállalkozás az új építésú otthonok okos rendszerét tervezi meg kérésre. Ez a rendszer egy központi vezérléssel rendelkező technológia, mely a fűtéstől a riasztón át a szórakozásig automatikussá, vagy részben automatikussá varázsolja a lakás berendezéseit. Megtudtuk azt is, hogy akár okos
Dátum
Idő
2015.06.18.
14:00 – 17:00
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
Esemény telefonjainkat is beiktathatjuk a rendszer, s ha otthon sem vagyunk, akkor is információkat nyerhetünk lakásunkról, házunról. Ma olyan programot írtunk, ami a matematikai operátorokat hivatott szemléltetni. Servet úr felhívta a figyelmet arra, hogy a műveleti sorrend betartása vagy nem betartása milyen következményekkel jár. Az alábbi rövid programot írtuk: #include Akivételek kezelése: using namespace std; A try-catch programstruktúra egyetlen try blokkot és int main() számú catch blokkot tartalmaz: tetszőleges { try for(int { i=1;i<=10;i++) { // kivételfigyelés alatt álló utasítások for(int j=1;i<=10;j++) utasítások cout << } "Hello Dusseldorf"; cout<<endl; catch (kivétel1 deklaráció) { } // a kivétel1 kezelője system("pause"); utasítások1 return} 0; }A dékán fogadott bennünket, majd elmesélte az egyetem szervezeti működését. 3 munkatársa 3 különböző dolgot mutatott meg nekünk. Én abban a csoportban voltam, mely először a hálózati rendszer kábelezésének hibajavítási módszerével ismerkedett meg. Érdekes volt látni, hogy a csatlakozókat milyen módszerrel tisztítják. Később a hűtési és biztonsági rendszert láthattuk. A harmadik helyszínen a kommunikációs rendszer kialakításáról, felhasználó felületéről esett szó. # include és beszerkesztésének lehetőségeit beszéltük meg. Konzolos bevitel segítségével különböző típusú adatokat írattunk ki a képernyőre. Az egyszerű adattípusok esetén a tárolt adat tovább nem bontható részekre. Egyszerű adattípusnak számítanak a logikai, karakter, egész és valós típusok. Összetett adattípus esetén több adat tárolását feltételezzük. A mai órán ezekről tanultunk. Szó volt a tömbök deklerálásáról, feltöltéséről és elemeinek a kiíratásairól. Megtudtam azt, ha olyan sorszáaot adok, meg, amely nem létezik, akkor futási hibát kapok. Szakmai partnerünket látogattuk ma meg Essenben. Az Elektropower vezetője vezetett be bennünket az ekereskedelem rejtelmeibe. Megtudhattuk tőle, hogy az ekereskedelem részei: - az árucsere-tranzakció, - az áruk ellenértékének kiegyenlítése, - az eladó és a vevő közötti kommunikáció. Mindezek lebonyolításához elengedhetetlen egy wszerver és
Dátum
Idő
Esemény egy adatbázis szerver, ill. a szabályozások betartása.
2015.06.25.
14:00 – 17:00
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
A rekordokról tanultunk ma. Megad:ási módjára péda struct Challgato { string nev; int szulev int szulho; int szulnap; } Ez azt jelenti, hogy minden hallgatónak tároljuk a nevét, születési évét, hónapját és napját. Ezek a rekord mezői. Minden mezőnek van neve és típusa. A nevek egyediek, a típusok tetszőlegesek lehetnek. Néhány függványt írtunk ma a programjainkba. Egy ilyen pld.: #include using namespace std; void kiiras () { cout << "Eljaras vagyok!"; } int main () { kiiras(); return 0; } Ez egy visszatérési érték nélküli függvény, de léteznek olyanok, melyek a return érték sorral rendelkeznek. Mercedes – Benz Werk Düsseldorf gyárat kerestük fel ma, ami nagy élmény volt mindanniunk számára. A közel 6,5 ezer dolgozóval rendelkező gyáron kívül a cég még rendelkezik Stuttgardban és ban kirendeltséggel. Spanyolországban, Franciaországban és az USA-ban is van gyára a cégnek. Megrendelésre dolgoznak, s naponta 600 Sprintert készítenek el mercedes és wolsvagen motorokkal. Robotok segítik és egészítik ki az emberi munkát, melyek programozása természetesen a gyárban történik. Az ellenőrzés során szenzorok mérik az adatokat, s szoftverekkel értékelik azokat ki. Nagy jövője van az IT tudománynak. Úgy gondolom ma láttam csak milyen nagy jelentőséggel bír az informatika. Tartamas délutánon vagyok túl. Sokat tanultam az objektum-orientált programozásról. Fogalmaim voltak már róla, hisz az adatbázis- és szoftverfejlesztés gyakorlat órán már a tanár említette nekünk, sőt hoztunk is létre objektumokat. De a teljes megértése csak mostanra sikerült. Servet úr jó példákkal illusztrálta az OOP elemit, min az
Dátum
2015.06.30.
Idő
9:30 – 17:00
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
Esemény osztály, objektum és példány. Reek magyarázatot hallottam az öröklésről, polimorfizmusról. Ezek az OOP programozás elvei. Ma az osztályok és objektumok deklerációjának fortélyait tanították meg velünk. Kissé iserős volt a téme, mert az iskolában az adatbázis órán már tanárunkkal érintettük a témát. Örültem annak, hogy önállóan is sikerült osztályt létrehoznom. Arra kell figyelni, hogy a deklaráció során mind az adatokat mind a függvényeket is meg kell adni nevükkel és típusukkal együtt, hisz az objektom orientált programozás lényege abban rejlik, hogy az adatokat és műveleteket egységbe zárjuk. Az általam létrehozott objektum egy egyenlet objektum, amely 3 adattal és 2 metódussal rendelkezik. class Cegyenlet { int a; int b; int c; void ertedadas(int x,int y,int z) { a=x; b=y; c=z; } float diszkriminans() { return d=sqrt(b*b-4*a*c) } } objektum létrehozása helyfoglalással történhet. Ezt megtanultuk már az iskolában adatbázis órán. A gyakorlaton azt is megtudhattuk, hogy ezen kívül van még objektum létrehozási lehetőség. Ennek módja a konstruktor alkalmazása. Ez nem más, mint egy tagfüggvény. A taítás, kutatás és innováció a jelszava annak az egyetemnek, melyet ma felkerestünk. 1965-ben alapították, ezért egyike a legfiatalabb egyetemeknek. 5 karral működik (orvosi, természettudományi, jogi, bölcsészeti és közgazdasági). A ZIM az informatikai és média központ. Ma ennek a központnak a látogatói voltunk. Érdekes volt látni egy méreteiben is nagy szerverszobát. Megtudtuk, hogy a világ 3. legnagyobb szerverét is lthatjuk. Éreztük a hűtőberendezét hatását, vízzel fűtik a berendezéseket a túlhevülés ellen. Sok magos processzorok és nagy kapacitású tárhelyekből
Dátum
Idő
2015.07.02.
14:00 – 17:00
2015.07.03.
9:30 – 17:00
Esemény építették fel a hatalmas adatforgalmat lebonyolító állomást. Eddig adatokat a konzol segítségével juttattunk be programunkba. Ma egy másik módszert alkalmaztunk. Állományól olvastunk be adatokat, miután dekleráltuk a be és kiíró fájljainkat az ifstrem és ofstream segítségével. Megtanultuk, hogy a fájlmegnyitás műveletét ellenőrizni kell. Miután a féjlt menyitottuk az f.open() függvénnyel, beolvastuk az adatokat és elvégeztük velük a megfelelő műveleteket, akkor az állományt célszer bezárni, s esetleg az eredményt fájlba kiírni. Felhívták figyelmünket a deklaráccó során a fizikai és logikai fájl összekapcsolására. Olyan feladatokat végeztünk el, amikor adatokat beolvastuk, velük műveleteket végeztünk, s eredményeinket kiírtuk egy állományba. Lezárás. Tapasztalatcsere. Naplóírás. Élménybeszámoló.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Szalai Ádám
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 13. A szeminárium tananyag (The seminar curriculum) 14. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 31. Struktúra (struvture) 32. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
33. Adatok és műveletek(Data&finctions) 34. Konstruktorok (Constructors) 35. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14. 2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Servet tanár úr fogadott bennünket. Rövid bemutatkozás után elmesélte a gyakorlat programját. Én szeretek programozni, ezért érdeklődéssel várom, hogy milyen programokat fogunk majd írni. Az adatvédelmi rendszer fejlesztése a Secusmart cég feladata. A kifejlesztett algoritmust egy chip tartalmazza, amely megvédi mobilbeszélgetéseinket. A cég 7 éve működik, s biztonsági rendszerét a világ minden kontinensén forgalmazza. 70 munkatárs végzi a fejlesztést, eladást, és vezetést. Megtudtuk, hogy nemrég vásárolta fel a céget a Blacberry, melynek képviselőjével is találkoztunk. Az előadók bemutatták a céget, s a fejlesztési osztályon végig is vezettek bennünket. A nemzetközi kapcsolatokért felelős munkatárs arról mesélt nekünk, hogyan kezdeményezzünk üzleti kapcsolatokat, milyen nyelveket érdemes beszélni egy üzletembernek. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Dusseldorf" << endl; return 0; } Ezen a gyakorlati napon számos egyszerű típusú változó deklarásását gyakorolhattam. Pontosítottam tudásomat a különböző egész típusú változók memória igényéről. A jövő házát nézhettük meg ma. Eljutottunk a az IT – On.net Gmbh céghez. Ő ilyen házak megtervezését vállalja. Egy dinamikusan fejlődő ágat láthattunk. Megtudtuk, hogy új építésű házakhoz terveznek központi vezérlésű intelligens rendszert, amellyel irányíthatjuk otthonunk, vagy annak bizonyos részét. Akár a fűtését, riasztását, belső kialakítását is beköttethetjük ebbe a rendszerbe. A világítás lehet akár hangulati, akár időszakos. Egy érintőképernyős kijelzővel rendelkező rendszert mutatott be nekünk a cég képviselője. Ezen a napon a matematikai és logikai operátorok, s azok precedencia szabályairól tanultunk. A C++ nyelv utasításainak egy része valamilyen feltétel függvényében végzi a tevékenységét. Az utasításokban szereplő feltételek tetszőleges kifejezések lehetnek. Az alábbi rövid programot írtuk: #include Mai napon megtanultam, hogy A C++ nyelv lehetővé teszi, using anamespace hogy kivételeketstd; különböző típussal azonosítva, a int main() { for(int i=1;i<=20;i++) { for(int j=1;i<=10;j++) cout << "Erasmus+";
Dátum
Idő
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
2015.06.26.
9:30 – 12:00
Esemény hibakezelést akár egyetlen helyen is elvégezhető.. A kivételek kezelése a megszakításos (termination) modell alapján történik. Érdekes szakmai gyakorlati napon vagyok túl. A düsseldorfi egyetem szervezeti felépítését ismerhettem meg, láttam egy szerverszobát, melynek hatalmas hűtő berendezése és biztonsági berendezése elkápráztatott. Az általam használt kommunikációs felületek egy rendszerbe történő összekapcsolását láthattam, amikor a dékán harmadik munkatársa a kommunikációs rendszer kiépítését taglalta , s mutatta be. Az IP telefon segítségével számos rendszer került összeköttetésre. Sikerélményem volt ma, ugyanis igazítva írattam i a képernyőre különböző típusú adatokat. Az I/O utasításokat tartalmazó iostream és az igazító utasításokat tartalmazó iomanip direktíva alkalmazási területeit tekintettük át. Az óra anyaga az összetett adattípusok közül a tömb, aminos típusú elemek halmazas. Deklarálására példa: int szam[10] - egy egész típusokból álló szam nevű 10 elemű egydimenziós tömb. Feltöltée számlálós ciklussal történhet. Amennyiben több dimenziós tömbökkel van dolgunk, akkor azt ajánlatos egymásba ágyazott számlálós ciklussal feltölteni. Az e-kereskedelem rendszerek tipikus funkcióiról is szó esett a mai gyakorlati napon. Ezek a következők: - a vevő azonosítása, - a termék vagy szolgáltatás kiválasztása, - megrendelés. Megtanultam azt is hogy melyek az e-kereskedelem részei: - webszerver a webes felület kezelésére - alkalmazás szerver, amely a felhasználó által indított műveleteket végzi. - adatbázis szerver, ami az alkalmazás szervert adatokkal látja el. Több adatot egy helyen már tároltunk. Ez volt a tömb típus. Itt csupán azonos típusú adatokat tárolhattunk. Elfordul azonban olyan eset is, amikor különböző típusú adatok tárolására van szükség. Ezt az adatszerkezetet beszéltük meg a mai órán. Megtudtam azt, hogy ez egy felhasználói típus, nem a C++ beépített típusa, s ennek a típusnak a segítségével sokkal jobban modellezhetjük a körülöttünk lévő világot. Tulajdonképpen ez a típus már az objektum orientált programozás alapjait jelenti. A függvényhívás előtt meg kell adnunk a függvény deklarációját, ami jelzi a fordítónak, hogy egyáltalán létezik
Dátum
Idő
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
Esemény a függvény. A definíció nem feltétlenül esik egybe a deklarációval, a programon belül bárhol elhelyezkedhet. Erről tanultunk ma, s olyan programot írtunk, amely tartalmazott függvényeket. # include # include //deklaráció void func(string ) { cout<<szoveg; } int main() { //hívás func("Hello"); return 0; } Szakmaigyakorlatunk Mercedes – Benz Werk Düsseldorf gyárban folyt. A képviselő bemutatta a gyárat. Jól megszerkesztett prentációval hűen ábrázolta a cég nagyságát. Megtudtuk, hogy hol vannak még kirendeltségeik, s milyen típusokat gyártanak. De fény derült a cég történetére is. Nagyon nagy élmény volt számomra a robotok által végzett munkafolyamat megtekintése. Sajnáltam, hogy fényképeket nem lehetett készíteni, de ezért nagyon megfigyeltem mindent. A számítógéppel vezérelt munkafolyamatot megtervezik, s előre 2 óát tudnak beprogramozni. A gyártósorok mellett kijelzőkön figyelhettük meg mis is, de a munkások is a tervezett és a valós adatokat. Amennyiben elmaradása van egy brigádnak, azt pótolni kell, így kemény munka az övék, hisz gyakran szombatonként is be kell jönniük dolgozni. A fényezés utáni folyamatot is bemutatták nekünk. Itt a kézi munkaerő hányada jóval nagyobb volt a robotikáénál. Miért is jó, az objtum orientált programozás? Támogatja - e a C++ az OOP - t ? Ilyen, s hasoló kérdésekre kaptam választ a gyakorlat során. Az OOP elveit tüzetesen elmagyarázták nekünk. Most már tudom, hogy az objektum magába zárja az adatokat és metódusokat, ha egy alobjektumot hozok létre, akkor az örökli a szülő objektum metódusait, de ha szükséges, akkor azt új tartalommal tölthetem meg, s nem utolsó sorban az absztrakció során leegyszerűsítve modellezhetem a val világ objektumait. A C++ nyelv egy objektum orientált programozási nyelv, így objektumokat lehet benne létrehozni, amely magába zárja az adatok és függvények összességét. Az objektum típusa a class kulcsszóval bevezetett új típus, ami gyakorlatilag a felhasználó általt absztrahált adattípus.
Dátum
Idő
Esemény A mai órán ilyen objektumokat hoztunk létre gyakorolva azt, hogy is kell deklarálnunk class típusokat, ill. class típusú objektumokat. Megadásuk általános alakja: class ONév { public: típus4 Művelet1(paraméterlista1) { } típus5 Művelet22(paraméterlista2) { } private: típus1 ada1, adat2; típus5 adat5; };
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Objektum létrehozása helyfoglalással történhet. Ezt megtanultuk már az iskolában adatbázis órán. A gyakorlaton azt is megtudhattuk, hogy ezen kívül van még objektum létrehozási lehetőség. Ennek módja a konstruktor alkalmazása. Ez nem más, mint egy tagfüggvény, aminek nincs visszatérési értéke. Gyakran előfordul, hogy egy objektum létrehozása során erőforrásokat foglalunk le, amelyeket az objektum megszűnésekor fel kell szabadítanunk. Ellenkező esetben ezek az erőforrások elvesznek a programunk számára. gyik legszebb élményem volt a mai nap.Felkerestük a Zimet, megy a Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf informatikai és médiaközpontja. Az egyetem bemutatása után 2 csoportra osztottak bennünket, s minden csoportnak külön bemutatták a nagy adatforgalmat lebonyolító szerverszobát. Ez a szoba nemcsak az egyetem informatika rendszerét hálózza be, hanem számos más intézmény tárhelyekét is szolgál. Láthattunk egy szerverszkrényt, mely a flhő alapú technológiát elégíti ki. Lenyűgöző volt hallgatni a sok adatot forgalmazó központról. Az alapvető fájlműveletekről esett szó a mai gyakorlati napon. A köv. osztályok képesek fájl műveletre: ofstream: adatfolyam írása file-ba ifstream: adatfolyam olvasása file-ból fstream: az előző két lehetőség egyszerre. A köv. programot írtuk meg: #include #include using namespace std; int main () {
Dátum
2015.07.03.
Idő
9:30 – 17:00
Esemény ofstream f; // Hozzárendeli írásra a f-t f.open ("adat.txt"); // Ez nyitja meg a file-t írásra f << "Valamit irjunk bele."; // Kiírunk valamit. f.close(); // file lezárása return 0; } Befejeztem a naplóm. Elmeséltük egymásnak élményeinket. Felelevenítettük a 3 hét tröténéseit.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Gál Dávid
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 15. A szeminárium tananyag (The seminar curriculum) 16. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 36. Struktúra (struvture) 37. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
38. Adatok és műveletek(Data&finctions) 39. Konstruktorok (Constructors) 40. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14. 2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Bemutatkozással kezdődött az első gyakorlati nap. Servet tanár úr vezet majd bennünket be a C++ rejtelmeibe. Érdekes a téma, amit érinteni fogunk ebben a 3 hétben. Nagyon várom a munkát. Adataink védelme az élet minden területén nagyon fontos. A mobiltelefonok lehallgatásai elleni védelemmel foglalkozik az a cég, melyet ma meglátogattunk. A cég 7 év alatt elérte azt, hogy minden kontinensre forgalmaz. Redszerüket a Blacberry is alkalmazza, sőt már felis vásárolta a céget. Biztonsági algoritmusuk megfelel a szövetségi hivatalnak is. Egy chip formájában kerül be a telefonokba. Megtekinthettük a szoftverfejlesztők birodalmát, ahol sajnos nem lehetett fényképezni, de beszélgethettünk az IT munkatársakkal. A nemzetközi kapcsolatokról pedig az azokért felelős ügyvezetővel beszélgettünk, aki 2,5 éve dolgozik a cégnél, s szereti munkáját. Mesélt arról, hogy egy üzletember mikor lehet sikeres, s jó tanácsokkal látott el bennünket céljaink megvalósításának útvesztőihez. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Erasmus+" << endl; return 0; } A const kulcsszóval ellátott változó értéke a program futása során nem változhat meg. Ezért ezeket a változókat konstansaknak nevezzük. A kezdőérték jelentőségét is megértettem a mai munkanapon. az IT – On.net Gmbh Düsseldorf céget látogattunk meg. Ennek a kisvállalkozásnak a képviselője megmutatta számunkra, hogy mi mindent lehet egy központi vezérléssű rendszerrre kapcsolni. A fűtési rednszer, a riasztó berendezés, a tévé és rádió, a világítás mind-mind be van kapcsova ebbe a rendszerbe. A C++ nyelv utasításai gyakran feltétel alapján végzik a tevékenységüket. A feltételek olyan kifejezések, melyek értéke a logikai hamis, illetve a logikai igaz. Ezért fontos megtanulnunk a logikai operátorok igazságtábláját, amit ma felelevenítettünk. A mai órán a vezérlési szerkezetekről tanultunk. Írtunk egy olyan programot, ami két számlálós ciklust ágyaz egybe, és Servet úr a kivételkezelést tanította ma nekünk. Megtudtuk, 5hogy sorban kiírja 4x az Erasmus+ szóösszetételt. kivételnek (exception) nevezzük azt a hibás állapotot vagy eseményt, melynek bekövetkezte esetén az alkalmazás
Dátum
Idő
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
2015.06.25.
9:30 – 12:00
Esemény további, szabályszerű futása már nem lehetséges. Ma a düsseldorfi egyetemen láttam egy szerver szobát, melynek biztonsgi rendszere lenyűgözött. Fényképezni bent nem szabadott, de a hűtő berendezést működésbe hozták, s a kábelek ellenőrzésének folyamatát is megmutatták nekünk. Azz IP telefon sokoldalúságát is kitapasztaltuk, amikor a kommunikációs renszer került bemutatásra. A köv. programot írtuk meg: #include #include using namespace std; int main() { int bill; int sz1=7; int sz2=12; int sz3=100; cout<<"hogyan tabulaljak? Uss 1-es billentyut, ha balra, ill.2-es billentyut, ha jobbra "<<endl; cin>>bill; if (bill==1) { cout<<"balra fogok tabulalni"<<endl; cout<<sz1<<endl; cout<<sz2<<endl; cout<<sz3<<endl; } if (bill==2) { cout<<"jobbra fogok tabulalni"<<endl; cout<<setw(10)<<sz1<<endl; cout<<setw(10)<<sz2<<endl; cout<<setw(10)<<sz3<<endl; } system("pause"); return 0; } Megírtunk egy olyan programot, amely egy 10x10-es kétdimenziós tömb elemeit írja ki a képernyőre 10 sorban. A tömb elemeit véletlenszám generátorral töltöttük fel. Használtuk a korábban megismert iomanip direktíát, így tabulálva kerültek a képernyőre a tömb elemeket. Egymásba ágyazott számlálóst ciklust alkalmazva oldottuk meg a feladatot. Az e-kereskedelemről tanultam meg ma sok mindent. Nem is gondoltam volna, hogy ennyi mindenre oda kell figyelni, ha az ember egy internet boltot szeretne működtetni. Ügyelni kell pld. A jogi szabályozásra, a kereskedelmi szabályok és nem utolsó sorban az e-szabályokra.
Dátum
Idő
2015.06.25.
14:00 – 17:00
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
Esemény Az Elektropower cég képviselője elmesélte, hogy az ő hálózatuk egy internet kávézóból alakult át elektrotechnikai cikkeket forgalmazó e-kereskedelmi céggé. Mi Essenben lévő kirendeltségüket kerestük fel. Még Kínába is forgalmaznak. Napi több száz e-mail érkezik az alkalmazottak postaládájába, melyek az áruvásárlással, visszáruval és areklamációkkal foglalkoznak. Ma már közelebb kerültünk az objektum orientált világhoz, hisz a rekord típusról beszélgettünk, deklaráltunk, s változókat is hoztunk létre. Különböző típusú adatok tárolását teszi lehetővé ez a nem beépített típus. mint új típust alkalmazhatjuk. Deklarálás során meg ell adni a nevét és a benne szereplő összes mező típusát ill. nevét. Deklarálása a main függvény előtt történik, s amain függvényben A ma megírt programjaink függvényeket tartalmaztak. Használtunk visszatrési értékkel rendelkező és visszatérési értékkel nem rendelkező függvényeket is. Ez utóbbiak kulcsszava a void. A függvény neve és típusa kell szerepeljen a deklarációban, ill. fel kell sorolni a paramétereket. A paraméterátadás lehet érték szerinti és cím szerint, de olyan függvény is létezik, amelynek nincsenek paraméterei. A megírt programjaink a négy alapműveletet elvégző függvényeket tartalmazták. Szakmai gyakorlat ez a napja jól indult. Előzetesen már elmondták nekünk, hogy ma a Mercedes – Benz Werk Düsseldorf gyárat látogatjuk meg. A színvonalas bemutatkozás után végig vezettek bennünket 2 részleg munkaterületén, ahol nem lehetett fényképezni, viszont mindent megtekinthettünk. A kísérőnk sok érdekes dolgot mesélt. Az itt gyártott Sprinter ára pld.38 ezer euro, ill. hogy az USA-ba gyártott autókat darabjaira szedik a tenegerreszállás előtt, hogy alkatrészként és ne kész termékként kerüljön át, mert így ÁFÁ-ja jóval alacsonyabb, míg kész termékként 25%, addig alkatrészként 5 %. Minden folyamat számítógéppel vezérelt, s több száz robot végzi műszakonként a dolgozókkal együtt a munkát. A C++ alapjainak megismerése után, az OOP megismerése várt ránk a mai gyakorlaton. Számos életből vett "dologgal" illusztrálták nekünk az OOP elemeit így megértettem, hogy az osztály gyakorlatilag egy objektum típusa, s a példány a futás során létrejött objektum. Megtanultam, hogy mlyek az OOP programozás elvei, s azok mit is jelentenek. Az öröklés azt eredményezi, hogy nem kell új metódusokat gyártani az alobjektumoknak, hanem használhatja a szülő objektum metódusait. A polimorfizmus elősegíti azt, hogy esetleg ezt a metódust új tartalommal töltsük meg. Az absztrakció lehetővé teszi, hogy a bonyolult dolgokat leegyszerűsítve modellezzük.
Dátum
2015.06.30.
Idő
9:30 – 17:00
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Esemény Az class és a struct osztályok deklarációját a C++ programban bárhol elhelyezhetjük. A bezárá elvénem megfelelőan az adatokat és a rajtuk elvégzendő műveleteket egyetlen programegysége foglaljuk, azonban ezt a programegységet már a class szóval vezetjük be. Többek között erről tanultunk ma, majd létrehoztunk egy tanul nevű objektumot 4 mezővel és 2 metódussal. Ennek deklarációja a köv.: struct Tanulo { int okt_azon; string nev; string varos; int ir_szam; void Bekeres(int, string,int) ; string Monogram(string); }; A konstruktor olyan tagfüggvény, amely során a fordító példányosít. A konstruktor nem rendelkezik visszatérési értékkel. A C++ nyelv biztosít egy speciális tagfüggvényt - a destruktort - amelyben gondoskodhatunk a lefoglalt erőforrások felszabadításáról. A destruktor nevét hullám karakterrel (~) egybeépített osztálynévként kell megadni. A destruktor, a konstruktorhoz hasonlóan nem rendelkezik visszatérési típussal. Tömegközlekedéssel közelítettük meg a mai gyakorlati napon látogató helyünket az Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf - t. 1965-ben alapították, s 5 karral rendelkezik. Könyvtára és botanikus kertje is van az egyetemnek. A botanikus kertet megnéztük még a gyakorlatunk kezdetén. Ma a ZIM-t látogattuk meg, mely az egyetem informatika rendszerét kiszolgáló szerverszobát is magában rejti. 16 terrabytos adattárolókból épül fel, több magos processzorok végzik a munkát, s mindezt nagy hűtőrendszerrel látták el. Az egyetem digitális rendszerét látja el. Fájlkezelést tanultunk a mai órán. Az iskolában már ennek alapjait elmagyarázták, most ismereteimet bővíthettem, s emélyíthettem. Használtam az ifstream és ofstream - t a kiírásra és beolvasásra. Ezek segítették összekapcsolni a logikai és fizikai fájlt. A fájlmegnyitást az f.open() függvénnyel, a fájl zárását a f.cose() függvénnyel kell megtenni. A fájlmegnyitást az f.fail() függvénnyel ellenőrizhetjük, az f.eof()-al pedig a fájl végét kérdezhetjük le.
Dátum 2015.07.03.
Idő 9:30 – 17:00
Esemény A projekt lezárásának a napja, gyakorlatunk utolsó napja. Tapasztalatot cseréltünk. Megbeszéltük, hogy milyen ismeretekkel lettük gazdagabbak. Befejeztük a naplót.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Turi Tamás
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 17. A szeminárium tananyag (The seminar curriculum) 18. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 41. Struktúra (struvture) 42. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
43. Adatok és műveletek(Data&finctions) 44. Konstruktorok (Constructors) 45. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14. 2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
2015.06.18.
14:00 – 17:00
Esemény Megérkezés Düsseldorfba Angolul mutatkoztunk be az első szakmai gyakorlati napon. A nap során megtudhattuk azt is, hogy miként telik majd az elkövetkezendő 3 hét. Egy biztonsági rendszerreket fejlesztő vállalatnál jártunk ma. A cég 7 éve alakult Düsseldorfban, s csaknem 70 munkatárssal rendelkezik, akik a világ minden tájáról érkeztek. Az IT szakemeberek részlegét nézhettük meg, ahol a fejlesztés folyik. Jó benyomást tett rám a megfelelő munkakörülmények megléte. Kérdéseket tehettünk fel nemzetközi kapcsolatokért felelős munkatársnak, aki szimpatikus volt a számomra. Megtudtam tőle, hogy egy üzleti út legfontosabb momentuma a jó előkészület, minden más csak ezután jön. Fontos, hogy az ember célkitűzésekkel rendelkezzen, s ahhoz ragaszkodjon pályafutása során, mert csakúgy lehet eredményeket elérni. Nagyon tetszett a mai nap, hisz egy olyan szoftverfejlesztő cégnél járhattam, melynek termékét kormányok alkalmazzá világszerte. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Nemetorszag" << endl; return 0; } A mai szakmai gyakorlati napon Servet úrral elmélyedtünk a változók és konstansok világában. Sok minden ismerős volt már. A változók jellemzőit jó volt feleleveníteni. Az IT – On.net Gmbh kisvállalkozáshoz mentünk el. A képviselő megmutatott nekünk egy intelligens lakást. Egy központi vezérlőrendszer által irányított rendszer volt kiépítve, amely irányította a világítást, sötétítést, viágítást és a médiát is. Ezen kívül a fűtés és a riasztó berendezés is rácsatlakoztatható. A kialakítást az új építésű házakhoz tervezik. Teljesen új módszerrel dolgoznak, még a jábelezés is új technológián alapul. Gyakran kell kifejezéseket alkalmazni egy programban. Ezek megtervezésénél figyelni kell a kiértékelés szabályaira. Erről, ill. a logikai műveletekről tanultunk a mai gyakorlaton. int x = 1, y = 2, z = 3, v = 4, w = 5; y*z ⇒3 v * w ⇒ 20 x+y*z⇒x+3 ⇒4
Dátum
Idő
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
2015.06.24.
9:30 – 17:00
Esemény x+ y * z - v * w ⇒1+3 - 20 ⇒ -16 Az alábbi rövid programot írtuk: #include Akivételek kezelése: using namespace std; A try-catch programstruktúra egyetlen try blokkot és int main() számú catch blokkot tartalmaz: tetszőleges { try for(int { i=1;i<=10;i++) if(i%2==0) // kivételfigyelés alatt álló utasítások cout << "Hello Dusseldorf" << endl; utasítások system("pause"); } returncatch 0; (kivétel1 deklaráció) { } // a kivétel1 kezelője utasítások1 } Érdekes dolgokról tanultam ma. Megismertem egy kb 6000 diákot befogadó egyetem szervezeti működését, informatikai biztonsági berendezésének kiépítését, működését, megtudtam miént ellenőrzik a kiépített hálózatot, s gond esetén milyen teendőket kell ellátni, s a kommunikációs rendszer kiépítésével is megismertettek bennünket. Az egyik egyetemi munkatárs kitisztított egy csatlakozót, mely során egy kamerával hatolt be a kábel csatlakozójába, s az eszköz kiviteli felületén szemmel is jól látható szennyzősések eltűntek a csatlakozóból. #include #include using namespace std; int main() { cout<<setw(8)<
Dátum
Idő
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
2015.06.26.
9:30 – 12:00
2015.06.29.
9:30 – 12:00
Esemény kellett szerkeszteni. Az e-kereskedelem részeiről, modelljéről, jogi szabályairól tanultam a mai gyakorlato, amikor is felkerestük az Elektropower képviselőjét Essenben. Megtudhattuk, hogy milyen kapcsolatokat kell kialakítani egy ilyen kereskedelmet lebonyolító cégnek. Nemcsak az eladással kapcsolatos funkciókat, hanem a visszáru kezelés és a reklamációkezelés is feladata egy ilyen cégnek. Mindehhez számos eszközre és szoftverre, ill. szakemberekre van szükség. Fontos, hogy a tervezéskor kerülni kell a hozzá nem értő emberek alkalmazást. Érdekes dolgokról beszéltünk a mai gyakorlaton. A téma már ismerős volt a tanórákról, de ott nem volt módomban elmélyülni benne. Most ismereteim bővöltek. Pontos definíciót adtunk a rekordra, majd annak deklarálása történt meg, s számos változót definiáltunk, melynek az új típus volt a típusa. Közel járunk már az objektum orientált programozáshoz, higy gyakorlatilag egységbe zártuk már az adatainkat.Ha ehhez majd a köv. órán megismert függvények is társulnak, akkor meg is ismertük az objektum orientáltságot. A következő programot írtuk meg, ami a 20 faktoriálisát írta ki. #include using namespace std; int szorzas (int a, intb) { in r; r=a*b; return r; } int main () { int z=1; for (int i=1; i<21;i++) { z = szorzas (z,i); } cout << z<<endl; return 0; } Ma a Mercedes – Benz Werk Düsseldorf gyárban voltunk. Számomra nagy élmény volt látni, hogy az emberi erő mellett miként végzik munkájukat a robotok. Az iskolában a lego robottal találkoztunk tavaly a gyakorlaton, de ilyen hatalmas robotokat még nem láttam. A pontos munkavégzés nagyon fontos az autógyártásban is, s ezt a robotok jobban tudják teljesíteni. Perzse olyan munkafolyamat is van, amit viszont emberi munkával nem lehet megoldani. Az alváz
Dátum
Idő
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
Esemény szerelésénél azt is láthattam miként forgatják meg a robotok az alvázat, hogy a munkások el tudják végezni a megfelelő feladatot. A cég képviselője számos érdekes momentumot mutatott meg nekünk, amit folyamatosan magyarázott. Így tudhattam meg, hogy a Sprintert, amit az USA-ba kerül darabjaira szerelik szét, s a tengeren túlon lévő kirendeltségükben összeszerelik. Itt Düsseldorfban 3 műszakban dolgoznak a munkások 8 órában. A terv és a teljesítmény minden részlegben kivetítésre kerül, hogy ezzel motiválják a munkát. Egy gyártási soron 2 órára tudják beprogramozni a elpre a folyamatokat. Az itt gyártott Sprinter ára pld.38 ezer euro Sok mindent tanultam a mai gyakorlaton. A C++ nyelv támogatja az OOP - t. Ez azt jelenti, hogy osztályokat, objektumokat deklarálhatunk, melyek közti kapcsolatokat le is tudjuk írni,s mindezt az alkalmazások során fel tudjuk használni. Az objektum orientált programozásnak számos elve van, melyek segítik egy programozó munkáját. Az első az öröklés, mely lehetővé teszi, hogy bizonyos metódusokat ne kelljen állandóan megírni, csak használni. Az absztrakció a világ objektumainak leegyszerűsítését segíti. A polimorfizmus új tartalommal engedi megtölteni az öröklött metódusokat. Most utoljára említem, de talán a legfontosabb az, hogy egységbe zárjuk az adatokat és a függvényeket (metódusokat), ez a bezárás elve. A C++ két lehetőséget nyújt új típus létrehozására a class és a struct kulcsszóval bevezetett típus deklarálását. Különbség a kettő között az, hogy míg a struct adatai nyilvánosak, addig a class adatainak láthatóságát mi szabhatjuk meg. Lehetnek privat és public jellegűek. A privat jellegű adatok és függvények csak az őt létrehozó programegységekben használhatók. Az új típus deklarcióját bárhol elhelyezhetjük a programunkban, de leginkább a using kulcsszóval bevezetett sor után szokás ezt elhelyezni, az átláthatóság és felhasználóbarát elvek betartása miatt. Ha a deklaráció mr megvan, akkor a main függvényen belül, már bármikor tudunk létrehozni olyan változót (objektumot), ami ezzel az új típussal rendelkezik. Az objektum egy teljes egységet alkot, benne vnnak az adatok és művelete egyaránt. Ezeknek a nevét és típusát minden esetben meg kell adnunk, természetesen a deklarációban. Ez hasonlóan történik, mint a változóknál megtanult módszer. A tagadatokra (mezőkre) és tagfüggvényekre az objektum nevével és a mező, ill. függvény nevével hivatkozhatunk,
Dátum
Idő
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Esemény melyek egy ponttal vannak egymástól elválasztva. A program felajánlja a tagok választási lehetőségét. Ezt célszerű kihasználni, kevesebb gépeléssel jár. Kosónstruktor és destruktor tulajdonképptagfüggvény, amit bezárunk az adatokkal egy programegységbe. Olyan tagfüggvények, melyeknek nincs visszatérési értéke. Alkalmazásuk azért jó, mert fordítás közben jön létre az objektum, vagy éppen szűnik meg az objektum. Ennek futási idő csökkenés, ill. tárhelycsökkenés az eredménye. Megadásuk teljesen hasonlóan történik, mint az eddig függvények deklarálása. A destruktor neve eé egy hullámkaraktert teszünk. Az egyik legfiatalabb egyetemet kerestük fel ma. 1965-ben alapították, s 5 kara van. Nagy könyvtárral és botanikus kerttel rendelkezik. Foglalkoznak itt a tanítással, kutatással is innovációval egyarnt. A ZIM, melyet mi meglátogattunk az informatika és média központ. A képviselője bemutatta az egyetemet, majd megmutatta a szerverszobát, s számos kérdésünkre válaszolt. A rack-ek nagy mennyiségű adat tárolására alkalmas tárhelyekből, s sokmagos, nagy teljesítményű processzorok szekrényeit képviselik. Több technológia képviseltette ott magát. Még a felhő tárhelyét is megmutatták nekünk. Oly nagy a szoba, hogy anem az egyetemhez tartozó szervereket is itt tárolják. Lenyűgöző volt a látvány szakmai szemmel. A következő programot írtuk meg: #include #include using namespace std; int main () { fstream f; f.open ("proba.txt"); if (!f.fail()) { f << "Sikeresen megnyitva."; // Ezt a file-ba írja cout << "Sikeresen megnyitva."; // Ezt pedig a képernyőre f.close(); // Ez lesz a lezárás. } else { cout << "File megnyitasa sikertelen."; } return 0; }
Dátum 2015.07.03.
Idő 9:30 – 17:00
Esemény Naplóírás. Történtek átgondolása. Pozitívumok összegyűjtése. Lezárás.
Németország – Düsseldorf 2015.06.14-07.04.
MUNKANAPLÓ Mobilitási projekt 2014 - 1 - HU01 - KA102 - 000338
Készítette: Tallósi Zsolt
A szeminárium tananyaga (The seminar curriculum) 1. Bevezetés (Introduction) - jún.15 19. A szeminárium tananyag (The seminar curriculum) 20. A nyelv rövid története (A brief history of the language) 2. C++ programok készítése (Beginning with C++) - jún.16 1. Alapvető szabályok (Basic Rules) 2. Fordítás, futtatás (Translation, run) 3. C++ program felépítése (Structure C ++ program) 3. Alaptípusok, változók és konstansok (Basic types , variables and constants) - jún.17 1. C++ adatok csoportosítása C ++ Data Grouping 2. Változók definiálása (Define Variables) 3. Adattípusok áttekintése (Overview of Data Types) 4. Konstansok (Constants) 4. Alapműveletek és kifejezések (Basic Operations and Expressions - jún.18 1. Operátorok csoportosítása (Operators Grouping 2. Műveleti sorrend (precedence) 3. Matematikai kifejezések (Mathematical expressions) 4. Értékadás (Assignment) 5. Logikai műveletek (Logical Operations) 5. Vezérlő utasítások (iteration, sequence, selection - jún.19 6. Kivételkezelés (Exception Handling) - jún.22 1. Kivételek kiváltása (Exceptions replacement) 2. Kivételek szűrése (Exceptions Filters) 7. Konzol kezelése (Managing Console I/O Operations) - jún.23 8. Tömbök és stringek (arrays and strings) - jún.24 1. Egy dimenziós tömb (1 -dimensional array) 2. n-dimenziós tömb(1 -dimensional array) 3. Sztringek (strings) 9. Felhasználói típusok (User Types) - jún.25 46. Struktúra (struvture) 47. A class osztálytípus (class) 10. Függvények (Functions) - jún.26 1. Függvény definíciója, hívása, deklarációja (Function definition , Call , Declaration 2. Függvény visszatérési értéke (Function returns) 11. Függvényekről magasabb szinten (function at a higher level - jún.25 1. Beágyazott függvények (Embedded Functions) 2. Függvények átdefiniálása (Functions remapping) 12. Bevezetés az objektum orientált világba (OOSD Object Oriented Software Development) - jún.29-30. 1. Alapelemek (Basic Elements) 2. Alapvető elvek (Basic Principles) 13. Osztályok és objektumok (Classes and Objects) – júl.01.
48. Adatok és műveletek(Data&finctions) 49. Konstruktorok (Constructors) 50. Destruktor (Destructors) 14. Öröklés és polimorfizmus (Succession & Polymorphism - júl.02. 1. Osztályok származtatása (Deriving Classes) 2. Osztályok elérése (Accessing Classes) 3. Virtuális alaposztályok (Virtual Functions) 15. Fájlkezelés (Working with Files) - júl.03.
Látogatásaink 2015.07.02. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf 2015.07.01. IT – living Gmbh, Flurstraße 57. Düsseldorf 2015.06.29. Mercedes – Benz Werk Düsseldorf 2015.06.25. lektropower Gmbh Elektronikgeschäft Korthover Essen 2015.06.23. Fachhochschule Düsseldorf, Campus Derendorf Ratherstr. 24a, Düsseldorf meglátogatása.
2015.06.18. IT – On.net Gmbh Wiesenstraße 21 Düsseldorf 2015.06.16. Secusmart Gmbh, Heinrichstraße 155 Düsseldorf
Dátum
Idő
2015.06.14.
2015.06.15.
9:30 – 17:00
2015.06.16.
9:30 – 12:00
2015.06.16.
14:00 – 17:00
2015.06.17.
9:30 – 17:00
2015.06.18.
9:30 – 12:00
Esemény Megérkezés Düsseldorfba Az objektum orientált programozást a C++ fejlesztői környezetben ismerteti majd velünk meg Servet tanár úr, tudtuk meg az első munkanapon. Örültem, hogy az angol nyelven tartott programismertetőt megértettem. Sokszor hallani, hogy mennyire fontos adataink védelme. Erről volt szó többek között a Secursmart vállalat bemutatásánál is. Ez a cég biztonsági algoritmusokat fejleszt, s forgalmaz a világon sokfelé. Rendszerüket használja a szövetségi kormány is. A céget nemrég felvásárolta a Blackberry. IT szakembereikkel is megismerkedtünk a bejárás során. Megtudhattuk, hogy egy üzleti út sikeressége leginkább a jó előkészületnek köszönhető, s csak ezután következik a megjelenés, meggyőzés. Kíváncsiak voltunk, hogy magyarországi kapcsolataik vannak-e, de biztonsági okokból erre nem kaphattunk választ. Írtunk egy rövid programot: #include using namespace std; int main() { cout << "Hello Servet tanar ur" << endl; return 0; } A köv. programrészletet írta meg csoportom a mai napon: #include using namespace std; int main() { int szam1=10; double szam2=2,3; boolean log=True; cout<<szam1<<" "<<szam2<<" "<
Dátum
Idő
2015.06.18.
14:00 – 17:00
2015.06.19.
9:30 – 12:00
2015.06.22.
14:00 – 17:00
2015.06.23.
9:30 – 12:00
2015.06.23.
14:00 – 17:00
Esemény látogatókról, s a mobilunkról is irányíthatjuk a vezérlést még akkor ia, ha távol vagyunk a lakásunktól. A kifejezések kiértékeléséről esett szó a mai gyakorlaton. Az (a+b)*(d-c)*e kifejezés feldolgozásának lépései: int a = 1, b = 2, c = 3, d = 4, e = 5; (a + b) ⇒ 3 (d - c) ⇒ 1 (a + b) * (d - c) ⇒ 3 * 1 ⇒ 3 3* e ⇒ 3 * 5 ⇒ 15 int main() { Akivételek kezelése: int n; A try-catch programstruktúra egyetlen try blokkot és cout<<"Kerek egycatch egesz szamot: "; cin>>n; tetszőleges számú blokkot tartalmaz: if (ntry % 2 == 0) cout<<"A szam paros!"<<endl; { else // kivételfigyelés alatt álló utasítások cout<<"A szam paratlan!"<<endl; utasítások } } catch (kivétel1 deklaráció) { // a kivétel1 kezelője utasítások1 } Miután a dékán bemutatta az egyetemet 3 10 fős csoportot alakítottunk ki, hogy a szerver szoba biztonsági rendszerét, s kábelezési hibajavítását megmutassák nekünk. A szerverszoba belsejében nem szabadott fényképezni, ez a biztonsági rendszer egyik szabálya. Beindították a hatalmas hűtőberendezést, mely a megfelelő hőmérékletre hűti le a szobában lévő szervereket. Ez egy új rendszer, mert egy vadonatúj épületet tekinthettünk meg. Egy másik munkatárs pedig a kommunikációs rendszert ismertette velünk. A helyi hálózatról tanultam már az iskolában, de testközelből most láttam csak először. A különböző típusok méretét írattuk ki: using namespace std; typedef unsigned short int USHORT; int main () { USHORT b=5; cout<<"Az int tipus memoriaterulete: "<<sizeof(int)<<endl; cout<<"Az float tipus memoriaterulete: "<<sizeof(float)<<endl; cout<<"Az int short tipus memoriaterulete: "<<sizeof(short)<<endl; cout<<"Az int long tipus memoriaterulete: "<<sizeof(long)<<endl;
Dátum
2015.06.24.
Idő
9:30 – 17:00
2015.06.25.
9:30 – 12:00
2015.06.25.
14:00 – 17:00
Esemény cout<<"Az bool tipus memoriaterulete: "<<sizeof(bool)<<endl; cout<<"Az char tipus memoriaterulete: "<<sizeof(char)<<endl; cout<<"Az double tipus memoriaterulete: "<<sizeof(double)<<endl; cout<<"Az USHORT tipus memoriaterulete: "<<sizeof(USHORT)<<endl; cout<<"A b egy uj tipusu valtoz, melynek erteke: "< #include #include #include using namespace std; int main() int szam [10,10]; { for(int i=0;i<10;i++) for(int j=0;j<10;j++) { szam[i,j]=rand()%10; cout<<setw(4)<<szam[i,j]; } cout<<endl; } system("pause"); return o; } Az Elektropower cég képviselőjével találkoztunk, amikor Essenben a cég boltját felkerestük. A cég bemutatása után sok mindenről beszélt nekünk. Többek között az ekereskedelem előnyei, hátrnyai, valamint a részei kerültek előérbe. Mesélt nekünk arról, hogy számos tényező befolyásolja a cég működését, melyekre nagyon oda kell figyelni. Ilyen pld. a jogi rendszer. Megtudhattam, hogy mi kell ahhoz, hogy egy ilyen vállalkozásba kezdjek. Be kell szerezni egy webszervert, ami a vebes felületet kezeli, egy alkalmazás szerver, ami a felhasználó által indtott műveleteket végzi, ill. egy adatbázis szerver, ami adatokat fogad, s adatokkal látja el a felhasználót. #include using namespace std;
Dátum
Idő
Esemény int maiho,mainap,db; struct datum { int ev; int honap; int nap; }; struct bejegyzes { string nev; datum szuldatum; }; int main() { int i; bejegyzes adatok[2]; for (i=0;i<=1;i++) { cout<<"Kerekm az"<>adatok[i].nev; cout<<"Kerekm az"<>adatok[i].szuldatum.ev; cout<<"Kerekm az"<>adatok[i].szuldatum.honap; cout<<"Kerekm az"<>adatok[i].szuldatum.nap;
2015.06.26.
9:30 – 12:00
} Ehhez hasonló rekordokat hoztunk létre a mai napon. Mi olyan programot írtunk, ami összeadja az első 10 természetes számot: #include using namespace std; int osszead (int a, int b) { int osszeg osszeg=a+b; return osszeg; } int main () { int z=0; for (int i=1; i<10;i++) { z = osszeg(z,i); } cout << z<<endl<<endl;
Dátum
Idő
2015.06.29.
9:30 – 12:00
2015.06.29.
14:00 – 17:00
2015.06.30.
9:30 – 17:00
Esemény return 0; } Sokat tanultam a mai napon. Mercedes – Benz Werk Düsseldorf gyárban jártunk, ahol bemutatták ezt a mamut vállalatot, melynek 3 kirendeltsége van Németországban, de Spanyolország, Franciaország és az USA is rendelkezik Mercedes gyárral. A düsseldorfi több mint 6000 alkalmazottal működik, városnyi területen, közel 680 ezer nm-en. Óvodával is rendelkezik. Naponta 600 autó kerül le a szalagról, melynek összeszerelési folyamatát számítógépekkel vezérlik, de az ellenőrzési folyamat is számítógépekkel történik. A szenzorok által mért adatok kiértékelése után kiderül, hogy megfelelő-e a termék. Láttuk a karosszéria összeszerelési gyártósorát, majd a motor és a karosszéria hazasítását, ill. a kerekek beszerelési folyamatát. Minden folyamat során robotok segítik, vagy helyettesítik az emberi munkaerőt. A hegesztést pld. számítógép kivetítőjén figyelhettük meg. A robotok mehibásodását is a gyárban javítják. Nem is gondoltam volna, hogy az informatika ennyire behálózza ezt az iparágat. Ebből arra is következtetek, hogy életünk minden területét befolyásolja, segíti. Az objektumok, osztályokés példányok kerültek ma elő a gyakorlaton. Mindezek az objektum orientált programozás elemei. Számos példán keresztül magyarázták meg nekünk a fogalmakat. Számomra érthető volt minden. Megértettem, hogy az adatok és kapcsolataik egységbe zárása megkönnyíti a programozó munkáját. Többek között azért, mert az egységből származtatott újabb alegység használhatja a már megírt metódusokat, esetleg új tartalommal jelenítheti meg. Ezen elvek a bezárá, öröklés és a polimorfizmus. Szó volt még az absztrakcióról is. Ez nem más, mint a világ leírása adatokkal, függvényekkel, vagyis leegyszerűsített módon. Várom, hogy minél többet megtudhassak erről a témakörről, s hogy én si tudjak ilyenobjektumokat létrehozni. A class és astruct kulcsszavak azok, melyeket alkalmazhatunk a C++-ban új típus létrehozására. Mindkettő a felhasználó (programozó) által létrehozott, nem beépített típus. A típus fogalmát már korábban a gyakorlat során megbeszéltük, most csupán alkalmaztuk az objektum deklarációjánál, amit a C++ programban bárhol elhelyezhetünk. Servet úr hangsúlyozta, hogy célszerű a programozási elveket betartani. Egy új típust magam is létrehoztam a gyakorlat során: class Alkalmazott {
Dátum
Idő
Esemény int azonosito; string nev; int ber; void BertEmel(int szazaleklab) { ber *= (1 + szazaleklab/100); }
2015.07.01.
9:30 – 17:00
2015.07.02.
9:30 – 12:00
2015.07.02.
14:00 – 17:00
Érdekes dolgokról volt szó a mai órán. Megtanultam azt, hogy nem csupán sztatikus ill. dinamikus helyfoglalással jöhet létre egy objektum. Az OOP-t támogató C++ fejlesztői környezet lehetőséget nyújt arra, hogy konstruktorokat és destruktorokat alkalmazzunk. Ezek lehetnek paraméterrel rendelkezők, paraméter nélküli tagfüggvények is. Mindkettő visszatéési érték nélküli metódus. A destruktor alkalmazásával megszűnik az objektum, amivel erőforrásokat szabadítunk fel. A konstruktor nem foglal tárterületet a létrejövő objektum számára, feladata a már lefoglalt adatterület inicializálása. Uni Düsseldorf, Zentrum für informations- und Medientechnologie, Universitetätstraße 1, Düsseldorf - ban jártunk. Ez nem más, mint az egyik legfiatalabb egyetem informatika és médiaközpontja. Az egyetem 5 karral működik, s nemcsak tanítással, hanem kutatással és innovációval is foglalkozik. A ZIM képviselője bemutatta nekünk munkájukat, s két csoportra osztottuk magunkat, hogy ténylegesen is bevezessenek bennünket a szerverszobába. A biztonsági berendezés és a hely nem engedte, hogy mindannyian egyszerre legyünk részesei a látványnak. Később megtudtuk, hogy a hatalmas adatmennyiséget áramoltatni képes rendszer 3 évente megújításra kerül. Ennek oka az, hogy a legújabb technológia képviseltesse magát az egyetem informatikai központjában. A mai szakmai gyakorlati napon a fájl-műveletekkel foglalkoztunk. Megtaultuk, hogy hogyan kell fájl típusú változót létrehozni, ehhez az ifstream és ofstream-t kell használnunk. Felhívták a figyelmet arr, hogy a fájlmegnyitást mindig ellenőrizzik ehhez az f.fail() avagy az f.is_open() függvényeket hasznáhatjuk. A fájl vége az eof() függvénnyel olvasható ki. A fájlból olvasás után végezhetjük műveleteinket az adatokkal, pld. összeadás, szorzás, négyzetreemelés, ha számadatokról van szó, vagy keresés, szövegrészlet visszaadás, ha szövegekről stb. A műveletek elvégzése után vagy a képernyőre, vagy a fájlba írjuk ki az eredményeket. Ezt a cout, ill. a logigai
Dátum 2015.07.03.
Idő 9:30 – 17:00
Esemény fügvénynévvel tehetjük meg. Lezártuk a projektet. Összefoglaltuk a tanultakat. Befejeztük a naplót.