Využití umělé inteligence při řešení úloh
V tomto tutoriálu si ukážeme, jak pomocí umělé inteligence řešit praktické úlohy, pokud si už opravdu nevíme rady.
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.
Potřebuješ pomoci s řešením úlohy? ChatGPT ti pomůže
Skvělým parťákem se nám při řešení praktických úloh může stát ChatGPT. Dokáže nám vysvětlit jednotlivé kroky řešení, navést správným směrem a pomoci pochopit principy, aniž by nás připravil o možnost se opravdu něco naučit. Je ale důležité chatbota využívat jako průvodce a pomocníka, nikoli jako nástroj, který za nás odvede veškerou práci.
Pojďme si nyní ukázat, jak můžeme postupovat při řešení jednoduchého příkladu ze cvičení Řešené úlohy k 18.-20. lekci Pythonu.
Zadání jednoduchého příkladu
Vytvořte program, který do konzole vykreslí šachovnici. Pro tmavá pole
využijte plný obdélník "█"
(napíšete jej jako
Alt + 219 nebo si jej zkopírujte z
textu do vašeho kódu). Pro světlá pole využijte mezeru.
Ukázka obrazovky programu:
Konzolová aplikace
█ █ █ █
█ █ █ █
█ █ █ █
█ █ █ █
█ █ █ █
█ █ █ █
█ █ █ █
█ █ █ █
Tip: Pro vykreslení samozřejmě využijte znalosti cyklů. Pro zjištění, zda je pole světlé, nebo tmavé, vám pomůže modulo.
Dodržte barvy v šachovnici tak, jak jsou na ukázkovém výstupu. Zde v článku je tmavý text na světlém pozadí. Pokud nemáte vaši konzoli také světlou, šachovnice u vás bude vypadat obráceně.
Řešení úlohy s ChatGPT
Otevřeme si mobilní aplikaci nebo webovou stránku chatgpt.com a do rozhraní s textovým polem zadáme náš dotaz. Pojďme se zeptat, co v zadání znamená výraz modulo:

V dolní části obrazovky pak můžeme pokračovat v konverzaci, pokládat doplňující otázky nebo upravovat své původní dotazy pro přesnější odpovědi:

Kvalita odpovědi závisí především na správnosti našeho dotazu, takzvaného promptu. Jak správně strukturovat dotaz se můžeme dozvědět v naší lekci Vytváříme efektivní prompty pro excelentní výstupy.
Alternativně můžeme ChatGPT nasdílet celé zadání úlohy a doptat se na nejasnosti. AI nám pomůže třeba tím, že nás k řešení navede pokládáním správných otázek:
Učím se programovat v Pythonu a dostal jsem za úkol vytvořit jednoduchou šachovnici do konzole. Tmavá pole mají být znak "█", světlá mezera. Cvičím si práci s cykly, ale nejsem si jistý, jak správně postupovat, aby se střídala barva políček a aby vše sedělo i na dalším řádku. Můžeš mi prosím položit pár otázek nebo mi dát nějaké podněty, které by mi pomohly přijít na řešení?
Nebo se můžeme jen nechat ujistit, že se ubíráme správným směrem:
Zkoušel jsem zatím střídat "█" a mezeru podle toho, jestli je číslo sloupce sudé nebo liché. Na prvním řádku to funguje, ale na těch dalších už ne — barvy se mi začnou opakovat stejně jako v předchozím řádku. Přemýšlím, jestli musím do výpočtu zahrnout i číslo řádku. Jdu správným směrem, nebo mi něco důležitého uniká?
Může se ale stát, že opravdu nebudeme vědět kudy kam, a budeme si muset
stáhnout hotové řešení. Není to selhání - příště už v podobné
situaci budeme vědět, jak reagovat V tomto případě je ale důležité si řešení přečíst,
pokusit se ho analyzovat a správně pochopit. I v tomto případě
nám pomůže ChatGPT, který nám vysvětlí části kódu, kterým
nerozumíme:
V řešení šachovnice jsem narazil na podmínku
if (i + j) % 2 == 0
, ale nejsem si úplně jistý, proč se to takhle počítá. Můžeš mi prosím vysvětlit, co tahle podmínka znamená a proč se používá právě tady?
Je opravdu důležité si nechávat vysvětlit látku, ale nenechat za sebe vyřešit celou úlohu. Cílem není "mít to hotové", ale naučit se, jak na to příště přijít sám:
✗ Špatně
Napiš mi program v Pythonu, který vykreslí konzolovou šachovnici.
✓ Správně
Uvažuju, jestli bych při řešení šachovnice měl použít dva vnořené cykly
for
. Dává to v tomhle případě smysl, nebo je lepší jiný přístup?