DARVEX STUDIO

Zártkörű Fejlesztői & Tananyag Workspace

D
DARVEX.STUDIO
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?
integész szám±2,1 milliárddarabszám, index, életkor
longnagy egész szám±9,2 trillióazonosító, ezredmásodperc
doublelebegőpontos szám15-16 értékes jegymérés, átlag, tudományos számítás
decimaltizedes tört28-29 értékes jegyPÉNZEGYENLEG (mindig pontos!)
bool / stringlogikai / szövegtrue/false / korlátlanfelté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)";
}