C# konzole Program emoce

Podobné dokumenty
C# konzole Podíl dvou čísel, podmínka IF

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Algoritmizace a programování

KTE / ZPE Informační technologie

Objektově orientované programování

1. Téma 12 - Textové soubory a výjimky

Úvod do programování - Java. Cvičení č.4

Java - výjimky. private void vstup() throws IOException {... }

Řídicí struktury. alg3 1

Výjimky. v C# a Javě

Podmínky na zápočet. Java, zimní semestr

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Spojové struktury. Spojová struktura (linked structure):

Rozklad problému na podproblémy

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Z. Kotala, P. Toman: Java ( Obsah )

Elektronická dokumentace - LATEX. Maticové operace

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Používejte jen ty konstrukty jazyka C/C++, které jsme doposud probírali (nepoužívejte STL apod.)

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

3 KTE / ZPE Informační technologie

1. Programování proti rozhraní

Algoritmizace a programování

Standardní algoritmy vyhledávací.

Spojové struktury. x, y, a, b. X1 y1 X2 y2 X3 y3. Grafické objekty bod. kružnice. obdélník. lomenáčára

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Datové struktury. alg12 1

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

NPRG031 Programování II --- 2/2 Z, Zk

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Konstrukce trojúhelníku III

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

URČITÝM ZPŮSOBEM PODOBNÉ

Generické programování

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Java - řazení objektů

Pavel Procházka. 3. prosince 2014

NPRG031 Programování II 1 / :47:55

C# bez předchozích znalostí

ARDUINO L09. Programování a robotika snadno a rychle? Tomáš Feltl. Připraveno pro kroužek robotiky JAOS. Kroužek JAOS Farní sbor ČCE v Poličce

R zné algoritmy mají r znou složitost

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Základy programování (IZP)

DUM 20 téma: Test dávky

Příkaz while. while (podmínka) { příkaz; } Příklad: int i=0; while (i < 10) { System.out.println(i); i++; } // vypíše čísla od 0 do 9

5 Rekurze a zásobník. Rekurzivní volání metody

IRAE 07/08 Přednáška č. 7. Začátek (head)

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

PREPROCESOR POKRAČOVÁNÍ

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

Algoritmizace a programování. Terminálový vstup a výstup

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Algoritmizace. Cíle předmětu

OOPR_05. Případové studie

KAPITOLA 2. Hádání slov ( šibenice ) Jakou hru budete tvořit

Principy objektově orientovaného programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pojmy internetu - test

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Projekty pro výuku programování v jazyce Java

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Celostátní kolo soutěže Mladý programátor 2016, kategorie C

RMI Remote Method Invocation

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Karty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

Digitální učební materiál

Dynamické programování. Optimální binární vyhledávací strom

Digitální učební materiál

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Soubor jako posloupnost bytů

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

PROGRAMOVÁNÍ V C++ CVIČENÍ

Náhodná a pseudonáhodná čísla

Úvod do mobilní robotiky AIL028

ARDUINO L13. Programování a robotika snadno a rychle? Tomáš Feltl. Připraveno pro kroužek robotiky JAOS. Kroužek JAOS Farní sbor ČCE v Poličce

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

9. přednáška - třídy, objekty

Násobení pomocí sčítání

17. Projekt Trojúhelníky

Metodický list k didaktickému materiálu

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Zápis programu v jazyce C#

Doxygen. Jakub Břečka

Transkript:

C# konzole Program emoce Tematická oblast Datum vytvoření 2013 Ročník 3 Stručný obsah Způsob využití Autor Kód Internetové technologie, programování Jednoduchá implementace emotivní umělé inteligence reagující na různý počet neúspěšných zadání vstupu od uživatele. Studenti navrhnou algoritmus s prvky umělé inteligence. Mgr. Michal Mikláš VY_32_INOVACE_35_IMIK18 Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín

Zadání Napište program, který bude po uživateli požadovat zadání nějakého čísla většího než 10. Uživatel bude mít celkem 3 pokusy. Pokud zadá číslo větší než 10, pak mu počítač poděkuje a ukončí program. V opačném případě uživateli oznámí, že nezadal předpokládanou hodnotu. Navíc budeme v tomto jednoduchém programu chtít, aby byl počítač emotivní. Pokusíme se tedy naprogramovat počítač tak, aby reagoval na zadání uživatele podle toho, jak se mu to daří. Počítač by tedy měl v komunikaci s uživatelem vykazovat emoce a reagovat jako inteligentní bytost měnícími se pokyny dle situace.

Zadání V našem algoritmu nám tedy jde v podstatě o jisté znaky umělé inteligence. Uživatel bude mít celkem 3 pokusy. Při prvním pokusu počítač vyzve uživatele k zadání čísla pokynem: Zadej prosím číslo větší než deset. Při druhém pokusu (po neúspěšném prvním zadání) počítač vyzve uživatel k zadání čísla již emotivnějším pokynem: Prosil jsem o číslo větší než deset. Zkus to prosím ještě jednou znovu. Při třetím pokusu (po neúspěšném druhém zadání) dá počítač uživateli poslední možnost: TO NENÍ ČÍSLO VĚTŠÍ NEŽ 10! MÁŠ POSLEDNÍ POKUS!

Zadání Pokud se zadání podaří, tak bude počítač reagovat také rozdílně vzhledem pořadí úspěšného pokusu. Při prvním úspěšném pokusu počítač napíše: Děkuji, skutečně umíš hned zadat číslo větší než 10. Při úspěšném zadání na 2. pokus počítač napíše: Děkuji. Zadal jsi dobře na 2. pokus. Při úspěšném zadání na 3. pokus počítač napíše: Děkuji. Tak nakonec se Ti to povedlo. Zadal jsi dobře na 3. pokus. Pokud uživatel nezadá požadované číslo ani na třetí pokus, tak mu počítač napíše jen toto: Ani na poslední pokus jsi nezadal číslo větší než deset. To je ale smutný příběh... :(

Řešení Celý algoritmus se skládá z podmínek IF. Dá se jednoduše popsat takto: Když uživatel zadal správné číslo, tak napiš: JINAK napiš a vyzvi jej k novému zadání. Když uživatel zadal správné číslo, tak napiš: Když uživatel opět nezadá správné číslo, tak napiš a vyzvi jej k novému zadání. Když uživatel zadal správné číslo, tak napiš: Když uživatel ani na třetí pokus nezadá správné číslo, tak napiš

Řešení první podmínka int cislo; Console.WriteLine("Zadej prosím číslo větší než deset."); if (cislo > 10) Console.WriteLine("Děkuji, skutečně umíš hned zadat číslo větší než 10."); else Console.WriteLine("Prosil jsem o číslo větší než deset. Zkus to prosím ještě jednou znovu.");

Řešení první dvě podmínky Druhá podmínka je vnořená v else sekci první podmínky. Proběhne tedy tehdy, pokud se nepodaří splnit zadání na druhý pokus. Podobně se vnoří i podmínka třetí. Console.WriteLine("Zadej prosím číslo větší než deset."); if (cislo > 10) Console.WriteLine("Děkuji, skutečně umíš hned zadat číslo větší než 10."); else Console.WriteLine("Prosil jsem o číslo větší než deset. Zkus to prosím ještě jednou znovu."); if (cislo > 10) Console.WriteLine("Děkuji. Zadal jsi dobře na 2. pokus."); else Console.WriteLine("TO NENÍ ČÍSLO VĚTŠÍ NEŽ 10! MÁŠ POSLEDNÍ POKUS!");

Výpis kompletního zdrojového kódu konzolové aplikace namespace ConsoleApplication10 class Program static void Main(string[] args) int cislo; if (cislo > 10) Console.WriteLine("Děkuji. Zadal jsi dobře na 2. pokus."); else Console.WriteLine("TO NENÍ ČÍSLO VĚTŠÍ NEŽ 10! MÁŠ POSLEDNÍ POKUS!"); Console.WriteLine("Zadej prosím číslo větší než deset."); if (cislo > 10) Console.WriteLine("Děkuji. Tak nakonec se Ti to povedlo. Zadal jsi dobře na 3. pokus."); if (cislo > 10) Console.WriteLine("Děkuji, skutečně umíš hned zadat číslo větší než 10."); else else Console.WriteLine("Ani na poslední pokus jsi nezadal číslo větší než deset. To je ale smutný příběh... :("); Console.WriteLine("Prosil jsem o číslo větší než deset. Zkus to prosím ještě jednou znovu."); Console.ReadKey();