Programozás alapjai

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Commnet / Komment

Olyan része a kódnak, amit nem hajt végre a számítógép. Általuk extra információkat tudunk a kódhoz rendelni a kódot olvasó programozó számára.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Variable / Változó

Változókat arra használunk, hogy valamilyen adatot (objektumot) tároljunk bennük. Egy változó és a benne tárolt adat mindig egy konkrét információt reprezentál.

Minden változónak van egy neve, ami segít beazonosítani, mit reprezentál az adott változó. A változót mindig a programozó nevezi el és később ezen a néven keresztül tudunk hivatkozni a változóra.

A statikusan típusos nyelveknél (mint a C#) a változóknak van egy típusa is, ami meghatározza, hogy milyen értékeket tarthatunk benne.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Type / Típus

Az erősen típusos nyelvekben, így a C#-ban is a típusok vagy más néven adattípusok határozzák meg, hogy egy adat mit reprezentál és milyen értékeket vehet fel.

Változóknak, függvények visszatérési értének és paramétereinek mindig meg kell határozni a típusát.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Logikai típus: bool

Egy eldöntendő, kérdésre adható választ tartalmazó adat. Két lehetséges értéke a true (igaz) és a false (hamis).

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Floating Point Number / Lebegőpontos szám

Egy számábrázolási mód a számítástechnikában, ahol tizedes tört számokat tudunk eltárolni fix bitszámon úgy, hogy a tizedes pont pozíciója nem kötött.

C#-ban a float, double és a decimal lebegőpontos típusok. A float 32 biten, míg a double 64 biten ábrázol számokat binárisan, a decimal pedig 128 biten decimálisan.

A lebegőpontos számok nagy pontossággal tudnak számokat ábrázolni a 0 közelében és ahogy egyre nő a bennük tárolt érték úgy csökken a pontosság.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Statement / Utasítás

Egy művelet, amit a számítógép végre tud hajtani. Egy programot egy vagy több utasítás sorozata alkotja.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Top level statements / Legfelső szintű utasítások

Top level statement-ek olyan utasítások, amik nem saját definiálású típusokon belül (osztályok, struktúrák, statikus osztályok…) helyezkednek el, hanem egy fájl gyökerében.

A .NET 6-tól felfelé a C# támogat Top level statement-eket. Az egész projektben csak egy file lehet, amiben utasítások vagy függvények állnak magukban.

Ez a program belépési pontja.

Ugyanez metódusokra is igaz. Azok is csak típusdefiníciókon belül létezhetnek, és szintén kivétel ez alól a Top level statement-eket tartalmazó fájl.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Expression / Kifejezés

Bármi, aminek az eredménye egy meghatározott típusú adat. Például:

int típusú kifejezések: 2, 45, 12 + 33, 22 * (23 - 5), Mathf.Abs(-6) * 45

bool típusú kifejezések: true, false, 4 > 66, !(a % 10 < 2) $$ (a >= 0)

Kifejezés lehet például egy konstans érték, egy változó, egy műveletsorozat, vagy egy metódus végrehajtás és a fentiek minden kombinációja.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Control Structures / Vezérlési szerkezetek

Egy vezérlési szerkezet felelős azért, hogy megmondja, hogy összetevőit milyen sorrendben hajtsa végre a számítógép és, hogy bizonyos összetevőket végrehajtson-e egyáltalán.

A vezérlési szerkezetek összetevői lehetnek utasítások és egyéb vezérlési szerkezetek is.

3 vezérlési szerkezet létezik:

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Sequence / Szekvencia

Egy vezérlési szerkezet, amiben az összetevők (utasítások vagy egyéb vezérlési szerkezetek) egymás után sorrendben hajtódnak végre.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Selection / Elágazás

Egy vezérlési szerkezet, amiben egy vagy több feltétel határozza meg azt, hogy milyen összetevőket (utasításokat vagy egyéb vezérlési szerkezeteket) hajtson végre a számítógép.

Egy elágazás esetén a program végrehajtása több ágra szakad, amelyek közül csak egyet hajtunk végre.

Az elágazásoknak egy feltétel esetén lehet 1 vagy 2 ága, viszont több ágra is felbonthatunk egy elágazást újabb feltételekkel.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Loop / Ciklus

Egy vezérlési szerkezet, aminek összetevőit (utasításokat vagy egyéb vezérlési szerkezeteket) egymás után többször is le tudnak futni.

A ciklus akkor ér véget, amikor annak feltétele hamissá válik.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Block / Code Block / Blokk / Kódblokk

Egy nyitó és egy záró kapcsos zárójel közti részt C#-ben kódblokknak vagy egyszerűen blokknak nevezzük.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Method /Metódus

Egy önnállóan végrehajtható kódrészlet. Egy metódust egyszer kell megírni és utána a kód bármely pontjából meghívható amikor is a metódusban lévő kód végrehajtódik.

Egy metódusnak lehetnek bemenő paraméterei és visszatérése.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Function / Függvény

Olyan metódus ami rendelkezik visszatéréssel, azaz a típusa nem void.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Routine / Eljárás

Visszatérés nélküli azaz void típusú metódus.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Complex type / Összetett típus

Egy olyan típust, ami egyéb belső elemeket tartalmazhat.

Egy összetett típus magába foglalja, hogy milyen belső adatokból épül fel (változók formájában), valamint a rajta végezhető műveleteket (metódusok formájában).

Pl.: Egy (2D vektor-t) leíró Vector2D típus tartalmazza

(A programozási koncepciót, ami szerint szorosan összefüggő adatokat és a rajtuk végezhető műveleteket egy helyen tartjuk enkapszulációnak vagy egységbe zárásnak nevezik és az Objektum Orientált programozás egyik alappillére.)

Egy összetett típus definiálásánál egy általános leírást, egy vázlatot adunk meg. Ezen definíció után, példányokat azaz konkrét objektumokat tudunk belőle létrehozni.

C#-ban 2 kategóriája létezik az összetett típusoknak:

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Class / Osztály

Egy referencia-típusként működő összetett típus.

</aside>

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/00ce943a-579f-47bb-891b-fcf67b96cba6/dictionary_(2).png" width="40px" /> Struct / Struktúra

Egy érték-típusként működő összetett típus.

</aside>