Félév számonkérései, követelmények
- 1.ZH – 7. hét (03.26.) - 20 pont - 1-5. labor anyagokból (6. labor gyakorlás az 1.ZH-ra)
- 2.ZH – 14. hét (05.21.) - 30 pont - 1-5. és 8-11. labor anyagokból (12-13. labor gyakorlás a 2.ZH-ra)
- 1.pótZH – Póthét szerda (05.28. 10:15-12:00)
- 2.pótZH – Póthét szerda (05.28. 12:15-14:00)
- Vizsga (50 pont)
A gyakorló feladatok megoldása erősen ajánlott a zárthelyikre való felkészülés során.
Laborok követelményei
- A laborgyakorlatok 70%-ának látogatása kötelező.
- //Hamarosan: A laborokon leadott anyag vázlata előre feltöltésre kerül azok számára, akik szeretnének előre haladni, ez a laborok után frissülhet!
Laborgyakorlatok tematikája, menetrend
1. LABOR
- VS felület alapjai, alapvető shortcutok a gyorsabb programozáshoz.
- #define, #include, typedef, adattípusok és méreteik
- <stdio.h> alapfüggvényei: sizeof(), printf(), scanf_s() – kiíratás és annak formázása, formázott bemenet, angol törtábrázolás
- Típuskonverziók: auto, „castolás”, bitminták értelmezése
- Debug: értékadás vizsgálata - Breakpopint, Autos, Locals, léptetés, bemeneti pufferben maradt '\n' karakter kiürítése
- Alapműveletek – rövidítés, függvényen belül (inline), hosszabban leprogramozható matematikai kifejezések olvashatóságának javítása whitespace karakterekkel és sortörésekkel.
2. LABOR
- Függvényszerű definíció, könyvtári matematikai konstansok, globális változók, blokkok – „hatókör”
- <math.h> alap függvényei: sqrt(),pow(),abs(),fabs()
- <locale.h> setlocale() - rendszer nyelvi beállítás, manuális, magyar törtábrázolás
- Változócsere
- //Bitműveletek
- Elágazások: if{...}, if {...} else{...}, if{...}else if{...} – feltételek és azok logikai összekapcsolásai - ||, && logikai operátorok
- switch(...) {...} case (...): {...} break;
3. LABOR
- idő típus, unix/epoch idő
- random számok: srand(...), rand() – generált számtartomány manipulálása, gyakorlati problémák
- Egyszerű algoritmus példák - elöl és hátul tesztelt ciklus – do {...} while(...), while{...}, ! logikai operátor
- Gyökkeresés intervallumfelezéssel
- Egyszerű karaktervezérelt menü _getch()-el
4. LABOR
- for ciklus – egy egyszerű alkalmazási példa, ciklusban részvevő változók módosulása, külső/belső/lokális/globális változó használata //for(...) { if(...) continue; if(...) break; }
- Hibalehetőségek for ciklushoz
- Statikus tömb: deklarálás, #define-os debug praktika, inicializálása, elemek elérése, feltöltése
- Hibalehetőségek - kicímzés
- Többdimenziós (2D) statikus tömbök feltöltése, egymásba ágyazott ciklusok
- Buborékrendezési algoritmus
- //Véges pontosságú számábrázolás példa
5. LABOR
- pointer típus, dereferálás, memóriacím, precedencia szabályok – Gyakori hibák
- Dinamikus tömbkezelés – malloc(), free() helyes használata 1 és többdimenziós tömbökre
6. LABOR
- 1.ZH gyakorló óra - Gyakorló feladatok a Teams csoportban
7. LABOR - 1.ZH
- Eredmények a Teams csoportban
- Javítás: Póthét szerda 10:15-12:00
8. LABOR
- Függvények – érték, cím szerinti paraméterátadás, rekurzív függvények, saját „header-ök”
- Struktúrák – statikus, dinamikus példány
9. LABOR
- Karaktertömbök/C stringek – statikus, dinamikus
- karaktertömb beolvasás - gets_s(), fgets()
- Néhány alap stringfüggvény:
- Hossz: strlen()
- Másolás/hozzáfűzés: strcpy_s(), strncpy_s(), strcat_s(), strncat_s()
- Keresés/Összehasonlítás: strchr(), strstr(), strpbrk(), strcmp()
- Tokenizálás: strtok_s()
- Formázott be/kimenet: sprintf_s(), snprintf(), sscanf_s()
- Konverziós függvények: atoi(), atol(), atof(), //gcvt(), ecvt(), strtod()
10. LABOR
- Filekezelés: .csv, .txt fileok beolvasása, kiíratása
- Egyszerű példák a stringfüggvények használatára
11. LABOR
- //Bináris fileok, teljesítménymérés bevezető
- Programtervezés, kódszervezés
- CPU architektúra, kódoptimalizálás alapok
12. LABOR
- 2.ZH gyakorlás - alap algoritmusok
- Szekvenciális utasítások, elágazások feltételeken keresztül
- Összegzés, számlálás, középértékszámítás*
- Szélsőértékkeresés*
- Rendezés*
- Rekurzió
A *-al jeölt elveket érdemes egymással kombináltan elsajátítani
13. LABOR
- 2.ZH gyakorlás - file írási/olvasási példák
14. LABOR - 2.ZH