NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Lekce 4 - Využití umělé inteligence při studiu programování Nové

V minulé lekci C# kurzu, Proměnné, typový systém a parsování v C# .NET, jsme si ukázali základní datové typy, byly to int, string a float.

V tomto tutoriálu se naučíme využívat AI při studiu programování. Ukážeme si, jak pomocí umělé inteligence lépe pochopit složité koncepty a zrychlit řešení úkolů, na kterých běžně trávíme spoustu času.

Pozor: AI je dobrý pomocník, ale zlý pán! Tato lekce ti ukáže, jak ti AI najde chybu ve tvém kódu nebo jednoduché úlohy vyřeší zcela za tebe. Prvně ale musíš nad úlohou přemýšlet a zkoušet ji sám, než požádáš o pomoc AI. Nebudeš jinak schopný v zaměstnání řešit komplexnější úlohy, se kterými ti AI nepomůže, protože ji nemůžeš poslat celý firemní projekt. Ve svém vlastním zájmu používej AI jen jako pomocníka, když nevíš, jak dál, a již jsi vyplýtval všechny možnosti.

Využití AI při studiu programování

Učení se programování může být občas náročné. Budeme se setkávat se spoustou nových konceptů a nezvyklých problémů. Dnešní doba nám však poskytuje AI nástroje, které nám práci i studium velmi ulehčí. Stačí se je naučit správně používat. Nerozumíme nějakému tématu? ChatGPT nám danou problematiku na základě našich otázek znovu vysvětlí a pomůže nám si dané téma osvojit. Narazili jsme na problém v nějaké úloze? Nástroj Canvas ji s námi rozebere a v případě potřeby doporučí další postup, opraví chyby a podobně. Strávili jsme hodinu luštěním našeho kódu a nakonec jsme zjistili, že celý problém zapříčinila chybějící závorka? Nejsme první ani poslední – toto je skutečně více než běžné. Když si osvojíme používání AI nástrojů, bude řešení podobných problémů otázkou několika sekund.

AI je nápomocná v mnoha dalších oblastech. Jak ji správně využívat, se učíme v kurzech Umělá inteligence.

Potřebuješ poradit? ChatGPT ti pomůže rychleji než lektor

Skvělým parťákem, a to nejen při studiu, pro nás bude zejména ChatGPT. Srozumitelně nám vysvětlí složitější látku, prodiskutuje s námi náročnější koncepty a dokáže navrhnout i řešení technických problémů v našem počítači. Pro studenty našich rekvalifikačních kurzů jsou samozřejmě k dispozici konzultace s lektory.

Ve většině případů však můžeme náš problém či dotaz vyřešit pomocí ChatGPT mnohem rychleji a stejně efektivně jako s lektorem.

ChatGPT je k dispozici prostřednictvím mobilní aplikace nebo online na adrese chatgpt.com. V řešení problémů umí být opravdu vynalézavý a zeptat se ho můžeme prakticky na cokoli:

Prompt pro ChatGPT - Základní konstrukce jazyka C# .NET

Při komunikaci s chatbotem se dozvíme spoustu zajímavých informací a pochopíme i složité koncepty, kterých je v programování mnoho:

Odpověď ChatGPT na zadaný prompt - Základní konstrukce jazyka C# .NET

Můžeme se například zeptat na látku, která nám není jasná a kterou bychom potřebovali dovysvětlit:

Vysvětli, k čemu slouží v C# konstruktor.

Odpověď od ChatGPT

V C# (a obecně v objektově orientovaném programování) konstruktor slouží k inicializaci nově vytvořeného objektu třídy. Jinými slovy, je to speciální metoda, která se automaticky zavolá, když je vytvořen nový objekt pomocí klíčového slova new.

🧱 Základní účel konstruktoru

  • Inicializace dat: Nastaví výchozí hodnoty pro proměnné (vlastnosti) objektu.
  • Příprava prostředí: Může například otevřít soubor, navázat spojení, ověřit vstupy apod.
  • Zajištění konzistence: Konstruktor může zabránit vytvoření neplatného objektu (např. vyžaduje určité parametry).

🛠️ Syntaxe konstruktoru

Konstruktor:

  • má stejný název jako třída,
  • nemá návratový typ ani void.

Příklad:

public class Osoba
{
    public string Jmeno;
    public int Vek;

    // Konstruktor
    public Osoba(string jmeno, int vek)
    {
        Jmeno = jmeno;
        Vek = vek;
    }
}

Vytvoření objektu:

Osoba osoba = new Osoba("Jan", 30);

🔄 Typy konstruktorů

1. Výchozí konstruktor (bez parametrů):

public Osoba()
{
    Jmeno = "Neznámý";
    Vek = 0;
}

2. Parametrizovaný konstruktor:

  • Použit k zadání hodnot při vytváření objektu (viz příklad výše).

3. Statický konstruktor:

  • Slouží k inicializaci statických členů třídy.
class Nastaveni
{
    public static string Verze;

    static Nastaveni()
    {
        Verze = "1.0.0";
    }
}

Volá se pouze jednou – při prvním použití třídy.

✅ Shrnutí

Konstruktor v C#:

  • je speciální metoda volaná při vytvoření objektu,
  • slouží k inicializaci proměnných a přípravě objektu,
  • může mít více variant (tzv. přetížení),
  • zvyšuje bezpečnost a přehlednost kódu.
Chceš i příklad s dědičností a voláním konstruktoru předka?

Dále se můžeme také zeptat na praktické využití určitého konceptu, například dědičnosti:

Vysvětli, co je dědičnost v C#, k čemu se používá v praxi, a uveď jednoduchý příklad s kódem.

Odpověď od ChatGPT

Dědičnost v jazyce C# je klíčový princip objektově orientovaného programování (OOP), který umožňuje vytvářet nové třídy na základě již existujících tříd. Dědičnost podporuje znovupoužitelnost kódu, rozšíření funkcionality a lepší organizaci softwaru.

🔍 Co je dědičnost?

V C# může jedna třída (potomková nebo odvozená třída) dědit vlastnosti a metody jiné třídy (tzv. základní nebo nadřazená třída). Dědičnost je jednostranná – potomková třída přebírá členy základní třídy, nikoli naopak.

Používá se klíčové slovo :, kterým se určuje, že jedna třída dědí od jiné.

🎯 K čemu se dědičnost používá?

  • Znovupoužití kódu: Sdílení společných vlastností a metod bez nutnosti jejich opakovaného psaní.
  • Rozšíření funkcionality: Potomková třída může přidávat nové vlastnosti nebo přepisovat stávající (pomocí override).
  • Polymorfismus: Umožňuje pracovat s různými typy objektů prostřednictvím jednotného rozhraní.

🧪 Jednoduchý příklad v C#

// Nadřazená třída
public class Zviratko
{
    public string Jmeno { get; set; }

    public void Zvuk()
    {
        Console.WriteLine("Dělám obecný zvířecí zvuk.");
    }
}

// Potomková třída
public class Pes : Zviratko
{
    public void Stekej()
    {
        Console.WriteLine("Haf haf!");
    }
}

// Použití ve třídě Program
class Program
{
    static void Main(string[] args)
    {
        Pes mujPes = new Pes();
        mujPes.Jmeno = "Rex";
        mujPes.Zvuk();     // Metoda zděděná ze Zviratko
        mujPes.Stekej();   // Specifická metoda třídy Pes
    }
}

✅ Výstup programu:

Dělám obecný zvířecí zvuk.
Haf haf!

🧩 Shrnutí

Dědičnost umožňuje vytvářet hierarchie tříd, kde nižší úrovně (potomci) přebírají chování vyšších (rodiče). Tento princip dělá kód modulární, přehlednější a snáze rozšiřitelný. V reálných projektech se často používá pro modelování vztahů typu "je typem" – například Auto je Vozidlo.

Chceš i příklad s přepisem metody (override) nebo třeba se třídou abstract?

Kvalita odpovědi závisí především na našem dotazu, tzv. promptu. Jak správně strukturovat prompt, se učíme v lekci Vytváříme efektivní prompty pro excelentní výstupy.

Nefunguje ti kód? Vyzkoušej nástroj ChatGPT Canvas

Při práci s ChatGPT lze využít rozšíření Canvas, které nabízí mimo jiné i rozhraní pro interaktivní práci s kódem. Na rozdíl od běžného chatovacího okna umožňuje organizovat odpovědi a návrhy kódu do bloků, což je ideální pro složitější úlohy, jako je návrh architektury aplikace nebo ladění rozsáhlejších projektů. Díky vizuálnímu uspořádání je možné lépe sledovat jednotlivé kroky návrhu, experimentovat s různými přístupy a snadno se vracet k předchozím verzím řešení. Nástroj spustíme tlačítkem Canvas v menu ChatGPT, které se nám otevře po kliknutí na tři tečky v chatovacím okně:

Zapnutí Canvasu v ChatGPT - Základní konstrukce jazyka C# .NET

Nyní chatbotu předáme náš kód a začneme na něm pracovat:

Console.Write("Zadej své jméno: ");
string jmeno = Console.ReadLine();

if (jmeno.Length <= 3 && jmeno.Length >= 10) {
    Console.WriteLine("Normální jméno");
}
else {
    Console.WriteLine("Máš moc krátké nebo moc dlouhé jméno!");
}
Console.ReadLine();

Nástroj nám v kódu vyhledá a opraví chyby:

Editace kódu v Canvasu - Základní konstrukce jazyka C# .NET

Při správně zadaném promptu můžeme v našem kódu jednoduše doplnit chybějící funkcionalitu:

Přidej do kódu validaci vstupu. Chci, aby nešlo zadat prázdné jméno.

Editace kódu v Canvasu – doplnění funkcionality - Základní konstrukce jazyka C# .NET

GitHub Copilot – Pomocník přímo ve tvém IDE

GitHub Copilot je AI asistent vyvinutý společnostmi GitHub a OpenAI. Ve Visual Studiu je k dispozici jako rozšíření, které je schopné navrhovat doplnění v našem kódu, generovat kód dle zadání či hledat a opravovat chyby.

Pozor: Nepoužívej nástroj Copilot ve svém IDE, protože bez důkladného zvládnutí základů programování se nenaučíš samostatně vytvářet funkční kód a v zaměstnání budeš snadno nahraditelný.

AI nástroje dokážou výrazně pomoci při studiu programování – usnadňují pochopení obtížné látky a řešení náročných úloh. Po dohodě se zaměstnavatelem je lze uplatnit i v praxi, kde mohou šetřit čas a zvyšovat produktivitu. Proto je důležité se s nimi naučit efektivně pracovat a využívat jejich potenciál naplno.

V následujícím kvízu, Kvíz - C# .NET, konzole a proměnné, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.


 

Předchozí článek
Proměnné, typový systém a parsování v C# .NET
Všechny články v sekci
Základní konstrukce jazyka C# .NET
Přeskočit článek
(nedoporučujeme)
Kvíz - C# .NET, konzole a proměnné
Článek pro vás napsal Adam Straňovský
Avatar
Uživatelské hodnocení:
64 hlasů
.
Aktivity