„A programozás alapjai II.” változatai közötti eltérés

Nincs szerkesztési összefoglaló
Nagy Marcell (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
18. sor: 18. sor:
== Követelmények ==
== Követelmények ==
===Előtanulmányi rend===
===Előtanulmányi rend===
Az új tanterv [[A programozás alapjai I.|A programozás alapjai 1.]] tárgyáből kredit megszerzése, vagy a régi tanterv [[A programozás alapjai I. (régi)|A programozás alapjai 1.]] tárgyából kredit megszerzése szükséges a tárgy felvételéhez.
Az új tanterv [[A programozás alapjai I.|A programozás alapjai 1.]] tárgyából kredit megszerzése, vagy a régi tanterv [[A programozás alapjai I. (régi)|A programozás alapjai 1.]] tárgyából kredit megszerzése szükséges a tárgy felvételéhez.


===A szorgalmi időszakban===
===A szorgalmi időszakban===
24. sor: 24. sor:
**A '''gyakorlatok''' legalább 70%-án való részvétel.
**A '''gyakorlatok''' legalább 70%-án való részvétel.
**A '''laborok''' legalább 70%-án való részvétel. Laboron lehet beugró, amit ha nem teljesítesz nem lesz érvényes a jelenléted.
**A '''laborok''' legalább 70%-án való részvétel. Laboron lehet beugró, amit ha nem teljesítesz nem lesz érvényes a jelenléted.
**A '''kisZH-k''' sikeres megírása. Ehhez az 5 db kisZH-ból a legjobb 3-nak külön-külön el kell hogy érje a 40%-ot, 10 pontos kisZH esetén ez 4 pont.  
**A '''kisZH-k''' sikeres megírása. Ehhez az 5 db kisZH-ból a legjobb 3-nak külön-külön el kell hogy érje a 40%-ot.  
**A 2 '''nagyZH''' sikeres megírása. Ehhez a két ZH összpontszámának kell elérnie az összesen elérhető pontok 50%-át.
**A 2 '''nagyZH''' sikeres megírása. Ehhez a két ZH összpontszámának kell elérnie az összesen elérhető pontok 50%-át.
**A '''házi feladat''' sikeres megoldása.
**A '''házi feladat''' sikeres megoldása.
*'''Pótlási lehetőségek''':
*'''Pótlási lehetőségek''':
**A kis zárthelyik pótlólagos megírására nincs lehetőség. (2015-ben adtak lehetőséget rá, azoknak, akiknek legkésőbb a pótZH után mindkettő zárthelyi sikerült)
**A kis zárthelyik pótlólagos megírására nincs lehetőség, viszont 5 kisZH-ból csak 3 számít, így a másik kettőt felhasználhatod javításra.
**A nagy zárthelyik a pótlási héten pótolhatók, különeljárási díj megfizetése mellett. A pótlási héten írt nagy zárthelyi a félév közben rosszabbul sikerült nagy zárthelyi eredményét helyettesíti.
**A nagy zárthelyik közül az egyik, mégpedig amelyik rosszabbul sikerült elsőre, a pótlási héten pótolható, különeljárási díj megfizetése mellett. A pótZH felülírja a korábbi ZH eredményét.
**A nagy házi feladat pótlólagos beadására csak a szorgalmi időszak végéig (utolsó tanítási napon, 12.00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A megoldások apróbb hibáinak javítására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem javítható. A pótlási héten már csak olyan feladatok és/vagy dokumentációk javíthatók, amelyek hiányosság, vagy működési hiba miatt kerültek elutasításra.
**A nagy házi feladat pótlólagos beadására csak a szorgalmi időszak végéig (utolsó tanítási napon, 12.00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem pótolható. A megoldások apróbb hibáinak javítására – a laborvezető oktatóval egyeztetett időpontban – a pótlási hét végéig (utolsó napon 12:00 óráig), különeljárási díj megfizetésével van mód, azon túl a nagy házi feladat nem javítható. A pótlási héten már csak olyan feladatok és/vagy dokumentációk javíthatók, amelyek hiányosság, vagy működési hiba miatt kerültek elutasításra.


36. sor: 36. sor:


===Félévvégi jegy===
===Félévvégi jegy===
A félévközi jegy a nagy zárthelyik átlaga, a három legjobb kis zárthelyi, és a nagy házi feladat pontszáma alapján számítódik ki, ahol a nagy zárthelyik átlaga 50% súllyal, a kis zárthelyik és a nagy házi feladat 25-25%-os súllyal szerepelnek.
<code>Pontszám = NZH1 (40 pont) + NZH2 (40 pont) + legjobb 3 kisZH (30 pont) + pluszpontok (14 pont)</code>
A felkészülést egyéni szorgalmi feladatok is segítik, melyek megoldása nem kötelező. A határidőre és sikeresen megoldott szorgalmi feladatokkal extra pontok szerezhetők, amelyeket a félévközi jegy kialakításánál vesznek figyelembe.
Pluszpont kétféleképpen szerezhető:
* Házi feladat: a részfeladatokra kapható 1-1-2-2 pont, de csak ha nem kellett pótolni a házit (NHF5).
* Szorgalmi feladatok: cporta - ural-on kiadott feladatok, 1-1 pont kapható rájuk. Csak akkor számítanak, ha a két ZH pontszáma legalább 52 (a 80-ból, 65%).
Ha ponthatáron vagy, és az összes pluszpontot összeszedted, esélyes hogy a jobb jegyet kapod.
 
Ponthatárok:
{| class="wikitable"
|-
| 1 || 0-51
|-
| 2 || 52-66
|-
| 3 || 67-81
|-
| 4 || 82-96
|-
| 5 || 97-
|}


== Segédanyagok ==
== Segédanyagok ==
=== Általános segédletek ===
* [http://www.eet.bme.hu/~czirkos/cpp.php Czirkos Zoltán honlapja]
* [http://www.eet.bme.hu/~czirkos/cpp.php Czirkos Zoltán honlapja]
* [[ProgUnixon]]
* [[ProgUnixon]]
49. sor: 68. sor:
* [http://duramecho.com/ComputerInformation/WhyHowCppConst.html Mire jó a konstans referencia?] Ha végigolvasod megvilágosodsz.
* [http://duramecho.com/ComputerInformation/WhyHowCppConst.html Mire jó a konstans referencia?] Ha végigolvasod megvilágosodsz.
* [https://sites.google.com/site/czirjakzoltan91/programozas/c-programozas-1 Czirják Zoltán 2012 tavaszi félévben tartott konzultációinak megoldásai és feladatsorai.] Jól jön a zh-hoz, beugrókhoz.
* [https://sites.google.com/site/czirjakzoltan91/programozas/c-programozas-1 Czirják Zoltán 2012 tavaszi félévben tartott konzultációinak megoldásai és feladatsorai.] Jól jön a zh-hoz, beugrókhoz.
* [http://www.aut.bme.hu/CppPeldatar/Tags/El%C5%91sz%C3%B3 c++] Villanyos c++ példatár
* [http://www.aut.bme.hu/CppPeldatar/Tags/El%C5%91sz%C3%B3 c++] Villanyos c++ példatár.
==Jegyzet==
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty] ural2 eléréshez.
* [https://tortoisesvn.net/ TortoiseSVN] laborok anyagainak letöltéséhez.


*<span style="color: red">Kiemelt</span> segédanyag: [[Media:Prog2_jegyzet.pdf|pdf jegyzet]] - online formában is, letölthető példafeladatokkal itt: [http://psiroki.github.io/ccjegyzet/ jegyzet]
=== Jegyzet ===
Siroki Péter HaT-os öregtag által készített C++ jegyzet. A villanyos tematikát követi, de itt is jól használható. Az esetleges hibákat a wiki@sch.bme.hu címre várjuk.
* Siroki Péter HaT-os öregtag által készített C++ jegyzet: [[Media:Prog2_jegyzet.pdf|pdf]] - [http://psiroki.github.io/ccjegyzet/ online]. A villanyos tematikát követi, de itt is jól használható. Az esetleges hibákat a wiki@sch.bme.hu címre várjuk.
* Dobra Gábor, Fintha Dénes és Horváth János [http://users.hszk.bme.hu/~dg1308/ porg2-höz készített jegyzete]


===Szabadon elérhető C++ fejlesztőeszközök és fordítók===
=== Előadások diái ===
* 2016:
** [[:File:Prog2_dia_2015-16-2_1.pdf|C++ kialakulása, nem OO újdonságok]]
** [[:File:Prog2_dia_2015-16-2_2.pdf|OO paradigmák, osztály, operátorok átdefiniálása]]
** [[:File:Prog2_dia_2015-16-2_3.pdf|konstruktor és értékadás, dinamikus szerkezetek]]
** [[:File:Prog2_dia_2015-16-2_4.pdf|analitikus és korlátozó öröklés]]
** [[:File:Prog2_dia_2015-16-2_6.pdf|mutatókonverziók, heterogén kollekció]]
** [[:File:Prog2_dia_2015-16-2_7.pdf|generikus szerkezetek, template]]
** [[:File:Prog2_dia_2015-16-2_8.pdf|bejárók és egy tervezési példa]]
** [[:File:Prog2_dia_2015-16-2_9.pdf|többszörös öröklés, cast, perzisztencia]]
** [[:File:Prog2_dia_2015-16-2_10.pdf|hibakezelés és STL bevezető]]
** [[:File:Prog2_dia_2015-16-2_11.pdf|STL algoritmusok]]
** [[:File:Prog2_dia_2015-16-2_13.pdf|Grafikus felületek és a C++]]


* [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Visual C++ Express 2010] &mdash; Windowsra
=== Online hozzáférhető könyvek ===
* [https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx Visual Studio Community 2013] &mdash; Windowsra
* [http://www.tankonyvtar.hu/hu/tartalom/tkt/objektum-orientalt/adatok.html Objektum-orientált szoftverfejlesztés]
* [http://www.ms.sapientia.ro/~manyi/teaching/c++/cpp.pdf C++ leírás magyarul]
** A könyvből remekül át lehet ismételni a tanultakat.
** A programnyelv önálló megtanulására nem alkalmas, mivel előbb használ olyan fogalmakat, melyeket csak később vezet be.
* [http://www.icce.rug.nl/documents/cplusplus/ C++ Annotations]
* [http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++]
 
=== Szabadon elérhető C++ fejlesztőeszközök és fordítók ===
* [https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx Visual Studio Community 2015] &mdash; Windowsra
* [http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx eMbedded Visual C++] &mdash; Windows CE-re
* [http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx eMbedded Visual C++] &mdash; Windows CE-re
* [http://gcc.gnu.org/ GCC] &mdash; sok platformra
* [http://gcc.gnu.org/ GCC] &mdash; sok platformra
64. sor: 105. sor:
* [http://www.eclipse.org/cdt/ Eclipse CDT plugin] &mdash; sok platformra
* [http://www.eclipse.org/cdt/ Eclipse CDT plugin] &mdash; sok platformra
* [http://www.codeblocks.org/ Code::Blocks] &mdash; sok platformra
* [http://www.codeblocks.org/ Code::Blocks] &mdash; sok platformra
===Online hozzáférhető könyvek===
* [http://www.ms.sapientia.ro/~manyi/teaching/c++/cpp.pdf C++ leírás magyarul]
** A könyvből remekül át lehet ismételni a tanultakat.
** A programnyelv önálló megtanulására nem alkalmas, mivel előbb használ olyan fogalmakat, melyeket csak később vezet be.
* [http://www.icce.rug.nl/documents/cplusplus/ C++ Annotations]
* [http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++]


== KisZH-k, beugrók ==
== KisZH-k, beugrók ==
 
A [https://infocpp.iit.bme.hu/taxonomy/term/8 tárgyhonlapon] megtalálható az összes kisZH évre és csoportokra bontva, megoldásokkal.


==  Házi ==
==  Házi ==
A házi véletlenszerűen generált. Van néhány témakör (pl. Neumann-elvű számítógép szimulátor, kupackezelő, recept-nyilvántartás, állapotgép szimulátor, fájlkezelő rendszer, stb.), ezeket ellátják névre szóló paraméterekkel, majd kiadják a hallgatóknak. A házi az objektumkezelésre, memóriakezelésre, operátorokra koncentrál leginkább, így a tananyag legfontosabb részeiből jó tapasztalatot szerezhetsz.
A házi másik része kötött. Egyfelől előírják a dokumentáció felépítését, mit kell beadni, milyen formában. Másrészt a memtrace-t használni kell a házinál, illetve ajánlott a gtest_lite használata is (ezeket a fájlokat nem kell külön feltölteni, a Cporta tudja kezelni őket).
A házi 4-5 részfeladatra tagolódik:
# Specifikáció: Néhány bekezdés terjedelemben írd le, a kiadott feladat szövege alapján hogyan képzeled el a megvalósítandó programot, hogy a laborvezető lássa, mit fogsz csinálni.
# Terv: Bővebben írd le, hogyan lesz megvalósítva a feladatod. Hogyan dolgozod fel a bemenetet, melyik függvénynek/objektumnak mi a szerepe, hogyan lesz kiszámítva pl. a bolygók tömege. Tervezd meg, milyen osztályokra lesz szükséged, azok hogyan kapcsolódnak egymáshoz, erről készíts is valami diagramot. Ez lehet kézi rajz, vagy a Google első találata. Tipp: ha Visual Studio-t használsz, és megcsinálod a 3. részfeladatot is, generálhatsz egy osztálydiagramot (jobb klikk a projekt nevén > View > View class diagram)
# Interfész: Itt már kódot is kell írnod. A korábban megtervezett osztályokat/függvényeket készítsd el, de a függvények belsejei lehetnek félkészek, vagy üresek. Kezd el megírni a main() függvényt, és a program többi részét. Amikor feltöltöd a fájlokat Cporta-ra, a header fájlokat ne jelöld be fordítandónak, de a main() függvényt tartalmazó fájlt mindenképpen!
# Végleges: Ekkora kellene befejezned a házidat. Dokumentációt, forrásfájlokat, teszt bemeneteket kell feltöltened. Feltöltésnél minden (.h és .cpp) fájlt jelölj be fordításra! A Cporta mutatni fogja, ha hibás a programod. Ezeket ki kell javítanod. A hibátlan programot az oldal lefordítja, és lefuttatja, majd kijelzi, hogy a forrásfájlok mely utasításai nem lettek felhasználva. Törekedj arra, hogy lehetőleg a program minden része le legyen fedve. Ezt további, vagy kibővített teszt bemenetekkel érheted el. Nem muszáj az összes sornak érintettnek lennie, de lényegesebb részek ne maradjanak ki (pl. egy kupacokat tároló programnál sose fut le a jobboldalt kezelő függvény, csak a bal).
# Pótlás: Ha nem készültél el a 4. részfeladattal, de azért már a nagyja megvan, csak apróbb javítások/pontosítások szükségesek, akkor később is beadhatod a házit. Ezért fizetni kell, és nem fogsz 6 pluszpontot kapni a házira. Ha a 4. részfeladatnál kész voltál, nem kell feltöltened semmit.


Egy egyszerű [https://svn.iit.bme.hu/proga2/cporta_peldak/NHF/ minta házi feladatban] látható, a részfeladatoknál hogyan alakul a program.


== ZH ==
== ZH ==
* 2013
* 2016: [[:File:prog2_zh1_2016.pdf|1. ZH]] - [[:File:prog2_pzh1_2016.pdf|1. ZH pót]] - [[:File:prog2_zh2_2016.pdf|2. ZH]] - [[:File:prog2_pzh2_2016.pdf|2. ZH pót]]  
** [[Media:Zh130523a_meg.pdf| prog2_zh_20130523a_mo.pdf]]
* 2015: [[:File:prog2_zh1_2015.pdf|1. ZH]] - [[:File:prog2_zh2_2015.pdf|2. ZH]]
** [[Media:Zh130513a_meg.pdf| prog2_zh_20130513a_mo.pdf]]
* 2012
** [[Media:prog2_zh_20120517a_mo.pdf| prog2_zh_20120517a_mo.pdf]]
** [[Media:prog2_zh_20120510a_mo.pdf| prog2_zh_20120510a_mo.pdf]]
* 2011
** [[Media:prog2_zh_20110512a_mo.pdf| prog2_zh_20110512a_mo.pdf]]
** [[Media:prog2_zh_20110519a_mo.pdf| prog2_zh_20110519a_mo.pdf]]
* 2010
** [[Media:prog2_zh_20100513a_mo.pdf| prog2_zh_20100513a_mo.pdf]]
** [[Media:prog2_zh_20100515a_mo.pdf| prog2_zh_20100515a_mo.pdf]]
** [[Media:prog2_zh_20100520a_mo.pdf| prog2_zh_20100520a_mo.pdf]]
** [[Media:prog2_zh_20100525a_mo.pdf| prog2_zh_20100525a_mo.pdf]]
* 2009
** [[Media:prog2_zh_20090515a_mo.pdf| prog2_zh_20090515a_mo.pdf]]
** [[Media:prog2_zh_20090521a_p_mo.pdf| prog2_zh_20090521a_p_mo.pdf]]
* 2008
** [[Media:prog2_zh_20080514a_mo.pdf| prog2_zh_20080514a_mo.pdf]]
** [[Media:prog2_zh_20080522a_mo.pdf| prog2_zh_20080522a_mo.pdf]]
* 2007
** [[Media:prog2_zh_20070517b_mo.pdf| prog2_zh_20070517b_mo.pdf]]
* 2006
** [[Media:prog2_zh_20060518a_mo.pdf| prog2_zh_20060518a_mo.pdf]]
** [[Media:prog2_zh_20060525a_mo.pdf| prog2_zh_20060525a_mo.pdf]]


===Tipikus ZH kérdések===
'''Régi típusú ZH-k''' (csak 1 ZH volt félév közben):
* 2014: [[:File:prog2_zh_2014_1.pdf|A]] - [[:File:prog2_zh_2014_2.pdf|B]]
* 2013: [[Media:Zh130523a_meg.pdf|A]] - [[Media:Zh130513a_meg.pdf|B]]
* 2012: [[Media:prog2_zh_20120517a_mo.pdf|A]] - [[Media:prog2_zh_20120510a_mo.pdf|B]]
* 2011: [[Media:prog2_zh_20110512a_mo.pdf|A]] - [[Media:prog2_zh_20110519a_mo.pdf|B]]
* 2010: [[Media:prog2_zh_20100513a_mo.pdf|A]] - [[Media:prog2_zh_20100515a_mo.pdf|B]] - [[Media:prog2_zh_20100520a_mo.pdf|C]] - [[Media:prog2_zh_20100525a_mo.pdf|D]]
* 2009: [[Media:prog2_zh_20090515a_mo.pdf|A]] - [[Media:prog2_zh_20090521a_p_mo.pdf|B]]
* 2008: [[Media:prog2_zh_20080514a_mo.pdf|A]] - [[Media:prog2_zh_20080522a_mo.pdf|B]]
* 2007: [[Media:prog2_zh_20070517b_mo.pdf|A]]
* 2006: [[Media:prog2_zh_20060518a_mo.pdf|A]] - [[Media:prog2_zh_20060525a_mo.pdf|B]]


'''Tipikus ZH kérdések'''
* Írj egy generikus tároló osztályt mely tudja az alábbiakat:
* Írj egy generikus tároló osztályt mely tudja az alábbiakat:
** konstrukor, destruktor
** konstrukor, destruktor
133. sor: 162. sor:
== Verseny ==
== Verseny ==
A félév közben szokott lenni verseny, melynek eredménye nem számít bele az félév végi eredménybe. Részletesebben: [http://infocpp.iit.bme.hu/bmx]
A félév közben szokott lenni verseny, melynek eredménye nem számít bele az félév végi eredménybe. Részletesebben: [http://infocpp.iit.bme.hu/bmx]


{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}
{{Lábléc_-_Mérnök_informatikus_alapszak_2014}}