//~tripsanszky > 2024/25/2 IPA L07

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

14. LABOR - 2.ZH