@@ -2,17 +2,17 @@ Ebben a feladatban 3 függvényt és egy sablont kell elkészítenie a specifik
...
@@ -2,17 +2,17 @@ Ebben a feladatban 3 függvényt és egy sablont kell elkészítenie a specifik
Töltse le a feladathoz előkészített teljes könyvtárat a tantárgy Git tárolójából git kliens használatával, vagy akár
Töltse le a feladathoz előkészített teljes könyvtárat a tantárgy Git tárolójából git kliens használatával, vagy akár
más eszközzel a [https://git.ik.bme.hu/Prog2/ell_feladat/Nem_OO](https://git.ik.bme.hu/Prog2/ell_feladat/Nem_OO) címről!
más eszközzel a [https://git.ik.bme.hu/Prog2/ell_feladat/Nem_OO](https://git.ik.bme.hu/Prog2/ell_feladat/Nem_OO) címről!
*Feladatok:*
**Feladatok:**
1. Valósítsa meg a _nem\_oo.h_ állományban deklarált függvényeket (_atoi()_, _strcat()_, _unique()_), melyek hasonlóan működnek, mint az azonos nevű szabványos függvények, de nem pontosan ugyanúgy. A függvények paramétereit és elvárt működését a _nem\_oo.h_ fájlban adtuk meg.
1. Valósítsa meg a _nem\_oo.h_ állományban deklarált függvényeket (_atoi()_, _strcat()_, _unique()_), melyek hasonlóan működnek, mint az azonos nevű szabványos függvények, de nem pontosan ugyanúgy. A függvények paramétereit és elvárt működését a _nem\_oo.h_ fájlban adtuk meg.
2. A _max.hpp_ fájlban valósítson meg a _Sajat_ névtéren belül egy olyan sablont, ami alaptípusok esetén a paraméterként kapott érték közül a nagyobbat adja.
2. A _max.hpp_ fájlban valósítson meg a _sajat_ névtéren belül egy olyan sablont, ami alaptípusok esetén a paraméterként kapott érték közül a nagyobbat adja.
3. Specializálja a sablont a _nem\_oo.h_ állományban deklarált _Sajat::Komplex_ típusra úgy, hogy a nagyobb abszolút értékű Komplex számot adja vissza! Az abszolút érték kiszámításához használhatja a _Sajat_ névtérben definiált _absKomplex_ inline függvényt.
3. Specializálja a sablont a _nem\_oo.h_ állományban deklarált _sajat::Komplex_ típusra úgy, hogy a nagyobb abszolút értékű Komplex számot adja vissza! Az abszolút érték kiszámításához használhatja a _sajat_ névtérben definiált _absKomplex_ inline függvényt.
4. Ellenőrizze a megvalósított függvények és sablonok működését a _nem\_oo\_test.cpp_ tesztprogrammal!
4. Ellenőrizze a megvalósított függvények és sablonok működését a _nem\_oo\_test.cpp_ tesztprogrammal!
Csak az elkészített **nem\_oo.cpp** és **max.hpp** fájlokat kell feltöltenie a portálra.
Csak az elkészített **nem\_oo.cpp** és **max.hpp** fájlokat kell feltöltenie a portálra.
A _memtrace.h_ és _memtrace.cpp_ fájlok a memóriakezelés teszteléséhez szükségesek. Nem kell megértenie a működésüket!
A _memtrace.h_ és _memtrace.cpp_ fájlok a memóriakezelés teszteléséhez szükségesek. Nem kell megértenie a működésüket!
*Javaslat:*
**Javaslat:**
- Fontos, hogy a megvalósítandó függvényeket a megfelelő **névtérben** definiálja.
- Fontos, hogy a megvalósítandó függvényeket a megfelelő **névtérben** definiálja.
- Az _atoi()_ megvalósításakor ügyeljen arra, hogy csak helyes számot fogadjon el!
- Az _atoi()_ megvalósításakor ügyeljen arra, hogy csak helyes számot fogadjon el!
...
@@ -21,8 +21,12 @@ A _memtrace.h_ és _memtrace.cpp_ fájlok a memóriakezelés teszteléséhez sz
...
@@ -21,8 +21,12 @@ A _memtrace.h_ és _memtrace.cpp_ fájlok a memóriakezelés teszteléséhez sz
-**Hiba** esetén dobjon **const char\*** típusú kivételt, melynek értéke az Ön **Neptun azonosítója** legyen!
-**Hiba** esetén dobjon **const char\*** típusú kivételt, melynek értéke az Ön **Neptun azonosítója** legyen!
- Használja a [Horner-elrendezést](https://hu.wikipedia.org/wiki/Polinom) a szám (polinom helyettesítési)
- Használja a [Horner-elrendezést](https://hu.wikipedia.org/wiki/Polinom) a szám (polinom helyettesítési)
értékének kiszámításához. Így elkerülheti a pow() használatát és n db szorzással és összeadással kiszámíthatja az értéket!
értékének kiszámításához. Így elkerülheti a pow() használatát és n db szorzással és összeadással kiszámíthatja az értéket!
Például a decimális 346=((0\*10+3)\*10)+4)\*10+6, de a 3467=346\*10+7, azaz csak egy szorzással és egy összeadással több, és nem kellett tudni előre számjegek számát sem.
- Először mindenképpen oldja meg a feladatot a saját környezetében. A Jporta pontosan ugyanazt a tesztprogramot futtatja, amit letöltött a Git tárolóból. Egyedüli különbség, hogy a CPORTA makró definiált.
- ELképzelhető olyan durva memóriahiba, amit az operációs rendszer csíp meg. Ilyenkor a Jportán 11-es megállási státus jelenik meg, ami azt jelenti, hogy a program illegális memóriaműveletet próbált végezni, amit az OS azonnali megállítással jutalmazott.
- Ügyeljen arra, hogy a **using namespace valami;** azt teszi lehetővé, hogy scope operator használata nélkül is elérhetjük a valami névtér neveit, de ez nem jelenti azt, hogy mostantól minden definició a valami névtérben keletkezik!
*Szorgalmi feladat:*
**Szorgalmi feladat:**
Ha a SZORGALMI makró definiálva van, akkor meghívódik az _ekezetes\_io()_ függvény.
Ha a SZORGALMI makró definiálva van, akkor meghívódik az _ekezetes\_io()_ függvény.
Ez egy lehetőséget mutat az ékezetes karakterek C++ kódból való kiírására/kezelésére.
Ez egy lehetőséget mutat az ékezetes karakterek C++ kódból való kiírására/kezelésére.
...
@@ -41,5 +45,5 @@ megfelelő osztályok használatával.
...
@@ -41,5 +45,5 @@ megfelelő osztályok használatával.
1. Megnyitás notepad++ segítségével, mentés a kívánt kódolással.
1. Megnyitás notepad++ segítségével, mentés a kívánt kódolással.
2. CodeBlocks editorával: Edit->File encoding.
2. CodeBlocks editorával: Edit->File encoding.
3. Visual Studio: File -> Save as -> Save gombon megjelenő lefelé mutató nyíl megnyomásával a megfelelő kódolás kiválasztása.
3. Visual Studio: File -> Save as -> Save gombon megjelenő lefelé mutató nyíl megnyomásával a megfelelő kódolás kiválasztása.