Tantárgy Keret
266 óra/év
Kedd 4 óra + Szerda 4 óra
Környezet
Visual Studio 2026
.NET 10 SDK (net10.0)
Jelenlegi Blokksor
1–6. Óra
Bevezetés & Szintfelmérés
Repository
vezeteknev-asztali-mobil
GitHub Privát Portfólió
💡 Gyors Kódolási Tippek & Visual Studio Billentyűparancsok
F5 - Program futtatása debuggerrel (megáll a breakpointoknál).
Ctrl + F5 - Futtatás debugger nélkül (nem záródik be az ablak).
F9 - Breakpoint ki/be kapcsolása az aktuális sorban.
F10 / F11 - Step Over (Lépés sorról sorra) / Step Into (Belépés metódusba).
cw + Tab + Tab - Gyors
Console.WriteLine() generálás.
Ctrl + K, Ctrl + C - Kijelölt sorok kikommentelése (Ctrl+U visszacsinálja).
❓ Súgó & Gyakori Kérdések
Miért ne használjunk double-t pénzre?
A kettes számrendszerbeli lebegőpontos kerekítési hibák felhalmozódnak. Pénzhez mindig decimal használandó!
Mi az az out kulcsszó?
A metódus a visszatérési értékén kívül a megadott kimeneti változóba is beleír (pl. int.TryParse(s, out int x)).
Miért i * i <= n a prímtesztnél?
Mert elkerüljük a lebegőpontos Math.Sqrt() hívást, megőrizve az egész-aritmetikás pontosságot és sebességet.
Teljes Tananyag és Tanórai Diák (1–6. Óra Hiánytalan Kidolgozása)
1–2. ÓRA Követelmények, Környezet & Git Verziókezelés
Éves Útiterv (266 Óra)
- Haladó OOP (56ó): Öröklődés, polimorfizmus, interface, generikusok, kivételek.
- Nevezetes Algoritmusok (56ó): Nagy O, láncolt lista, verem, fa, keresés/rendezés, regex.
- Tiszta Kód (40ó): Clean Code, SOLID, refactoring, játékprojekt.
- Unit Tesztelés (40ó): NUnit, AAA minta, code coverage, TDD.
- Mobil Fejlesztés (40ó): PWA, React Native, Android telepítés.
- Projektmunka (24ó): Csapatmunka, Git, dokumentálás.
SDK, Runtime & IDE
- .NET SDK: Compiler, build eszközök, projektsablonok, dotnet CLI (szükséges a fejlesztéshez).
- .NET Runtime: A kész program futtatásához kell (az SDK tartalmazza).
- Visual Studio 2026: Szerkesztő, debugger, Solution Explorer. Target Framework:
net10.0.
Az első projekt & Top-Level Statements Syntax
// Program.cs Console App, .NET 10
Console.Write("Add meg a neved: ");
string nev = Console.ReadLine() ?? "ismeretlen";
Console.WriteLine($"Udvozollek a tantargyban, {nev}!");
Console.WriteLine($"Ez a program a .NET {Environment.Version} valtozatan fut.");
?? (Null-coalescing): Ha a bal oldali érték null, a jobb oldali tartalék értéket adja vissza.
Top-level statements: Nincs Main metódus körítés, a program az első sorától hajtódik végre.
3. ÓRA Adattípusok, Konstansok & Biztonságos Konverzió (TryParse)
| Típus | Mit tárol | Tartomány / Pontosság | Mikor használjuk? |
|---|---|---|---|
| int | egész szám | ±2,1 milliárd | darabszám, index, életkor |
| long | nagy egész szám | ±9,2 trillió | azonosító, ezredmásodperc |
| double | lebegőpontos szám | 15-16 értékes jegy | mérés, átlag, tudományos számítás |
| decimal | tizedes tört | 28-29 értékes jegy | PÉNZEGYENLEG (mindig pontos!) |
| bool / string | logikai / szöveg | true/false / korlátlan | feltétel / nevek, beolvasás |
1. Feladat - Hőmérséklet-átváltó
Console.Write("Homerseklet (Celsius): ");
if (!double.TryParse(Console.ReadLine(), out double celsius)) {
Console.WriteLine("Hibas ertek!");
return;
}
double fahrenheit = celsius * 9 / 5 + 32;
double kelvin = celsius + 273.15;
Console.WriteLine($"{celsius:F1} C = {fahrenheit:F1} F = {kelvin:F1} K");
2. Feladat - Adatlap Bekérés
Console.Write("Nev: ");
string nev = Console.ReadLine() ?? "";
Console.Write("Szuletesi ev: ");
int.TryParse(Console.ReadLine(), out int szuletesiEv);
Console.Write("Magassag (m): ");
double.TryParse(Console.ReadLine(), out double magassag);
int eletkor = DateTime.Now.Year - szuletesiEv;
int cm = (int)Math.Round(magassag * 100);
Console.WriteLine($"{nev.ToUpper()} | {eletkor} eves | {cm} cm");
4. ÓRA Vezérlési Szerkezetek, Switch Expression & Ciklusok
Modern Switch Expression vs Klasszikus Switch
// Switch Expression (Kifejezésként értéket ad vissza, nincs break hiba!)
string minosites = jegy switch {
5 => "jeles",
4 => "jo",
3 => "kozepes",
2 => "elegseges",
1 => "elegtelen",
_ => "ervenytelen" // default ag
};
3. Feladat - Prímteszt (i*i <= n)
bool prim = n >= 2;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) { prim = false; break; }
}
4. Feladat - Menü (do-while)
do {
// Menu kirasa es gomb bekerese
} while (valasztas != 0);
5. Feladat - Szorzótábla Igazítással
for (int s = 1; s <= 10; s++) {
for (int o = 1; o <= 10; o++)
Console.Write($"{s * o,5}");
Console.WriteLine();
}
5. ÓRA Tömbök, Listák & a 6 Nevezetes Programozási Tétel
1. Összegzés: Elemek értékének összeadása ciklussal.
2. Megszámlálás: Feltételnek megfelelő elemek db száma.
3. Eldöntés: Van-e legalább 1 megfelelő elem? (bool).
4. Keresés: Első megfelelő elem indexének megkeresése.
5. Maxkiválasztás: Legnagyobb/legkisebb elem kiválasztása.
6. Kiválogatás: Megfelelő elemek gyűjtése új listába.
7. Feladat - Lottószám Sorsoló (List<int> & Contains)
Random rnd = new Random();
List<int> szamok = new List<int>();
while (szamok.Count < 5) {
int uj = rnd.Next(1, 91);
if (!szamok.Contains(uj)) szamok.Add(uj);
}
szamok.Sort();
Console.WriteLine(string.Join("-", szamok));
6. ÓRA Osztályok, Objektumok & Terméknyilvántartási Mintapélda
8. Feladat - Termék Osztály & Objektumlista Feldolgozása
// Termek.cs
class Termek {
public string Nev { get; set; }
public decimal EgysegAr { get; set; }
public int Darab { get; set; }
public Termek(string nev, decimal ar, int darab) {
Nev = nev; EgysegAr = ar; Darab = darab;
}
public decimal Ertek() => EgysegAr * Darab;
public override string ToString() => $"{Nev} - {EgysegAr} Ft ({Darab} db)";
}