Visual Studio 2012/Konzolová aplikace

Z Wikiverzity


Ikona konzo-
lové aplikace
Okno konzole

Konzolová aplikace[editovat]

Výsledný program je graficky nepřívětivý, proto není vhodný pro běžného uživatele. Avšak tvorba konzolových aplikací má své opodstatnění. Bez grafického prostředí se může programátor více soustředit na samotnou funkčnost programu, proto je vhodný pro začínající programátory a studenty programování ke studiu základních algoritmů. Konzolové aplikace jsou vhodné k vývoji algoritmů nebo funkčních řešení bez grafického požadavku nebo ke studiu matematiky. Mnohé státní či mezinárodní soutěže, vypisující soutěž na algoritmus řešící konkrétní problém mají kromě podmínky v jakém programovacím jazyce nebo jazycích mají účastníci své výtvory udělat, ale také je často podmínkou, že vyhotovený program bude vyhotoven bez grafického prostředí (tedy pouze jako konzolová aplikace).



Nově vytvořený projekt konzolové aplikace pro jazyk C# má již na začátku vygenerovaný základní kód:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //Tělo programu 
        }
    }
}

Už z tohoto základního výpisu je zkušenějším jasné, že programovací jazyk C# je strukturovaný a objektově orientovaný. Pro ty z vás, kteří prozatím nemají ani tušení o čem je řeč tak nezoufejte. Vše postupně vysvětlím, avšak až v momentě, kdy to bude zapotřebí. Z vlastní zkušenosti studia programovacích jazyků a ze zkušenosti tyto jazyky učit, jsem pochopil, že nemá smysl začátečníkovy sáhodlouze vysvětlovat podrobně co je to objektově orientovaný jazyk, co jsou to třídy, funkce, procedury, metody, objekty, definiční typy všech druhů proměněných atd. jenž většina renomovaných učebnic hází hned na začátek samotné výuky. Tím však nechci říci, že nemá smysl si o nich něco říci, jsou to přeci jen důležité věci. Jsem však toho názoru, že látka by se měla vysvětlovat po částech a nezahlcovat studenta složitými a objemnými informacemi, které využije až později. Vše složité je složeno z menších a jednodušších částí a tyto části z ještě menších a jednodušších částí. Složitost věcí potom tkví v množství těchto částí a v množství relací mezi nimi. Podobně jako Ruské Matrošky, kterou když otevřete, najdete v ní další menší Matrošku a tak dále. Matematika o tomto jevu, jenž si ponechává svou strukturu (informace o sobě samém), a můžeme tuto strukturu nekonečně zvětšovat nebo zmenšovat, zná pod pojmem fraktály.

Jste-li úplný začátečník, tak vám pro začátek stačí vědět, že své příkazy programu budete psát do těla programu jak je naznačeno ve výpisu výše. Řádek kódu // tělo programu je pouhý zakomentovaný text (komentář). Nemá na funkčnost programu vliv, slouží pouze jako poznámka pro programátora. Ve výpisu jsem ji využil jako pomůcku, abych vám ukázal, kam budete své příkazy zapisovat.


Sem budu psát výstup spuštěného programu v konzoli:




Lze sice nastavit, aby pozadí bylo černé (tedy stejné jako barva pozadí konzole), avšak ve Wikiversitě nelze nastavit bílou barvu písma. Proto budu výstup zobrazovat takto (neboť černé písmo na černém pozadí není vidět).


Rady do začátku[editovat]

  • Lidé se mě často ptají: jak se začít učit programovat? Na to by si jistě dala napsat odpověď o velikosti knihy, proto to zjednoduším a shrnu. Osvědčilo se mi, začínat od začátku a po malých kouscích. Je nezbytné hodně laborovat a experimentovat z již naučených témat. Nejen, že si tím procvičujete paměť (jak vypadá syntaxe kódu), ale co je důležitější, časté experimentování vede k hlubšímu pochopení tématu. Napodobovat některé předlohy (ukázkové programy, programy druhých) je sice důležité a to hlavně na začátku procesu učení se danému tématu. Neboť napodobování patří mezi nejrychlejší formy učení a to zejména pro předávání informací. Neboli je způsob vhodný tam, kde je třeba se naučit co nejrychleji již existující a dobře dostupné informace (obvykle základní informace). To však je jen jedno z řešení. Předpokládám, že je vám jasné (a proto jistě nemusím sáhodlouze vysvětlovat), že pouhé hltání informací (učení se něčeho nazpaměť) nevede k příliš velkému pochopení. Učení se něco nazpaměť je tak vhodné spíše k naučení se základům a tato metoda má jistě své místo a uplatnění. Ovšem nelze dosáhnout hlubšího porozumění bez vlastních zkušeností. Právě proto je důležité experimentovat a získávat tak nové zkušenosti s novými variantami uplatnění daného tématu. Naučenou vědomost, kterou neumíte použít, lze považovat za nepochopenou. K hlubšímu porozumění tedy vede cesta přes užívání těchto získaných vědomostí a hledání nových možností využití. (poznámka:tento text v budoucnu zjednoduším, aby byl méně obsáhlý a více srozumitelný)
  • Lidé se mě často ptají: je nutné, aby ten kdo se učí programovat uměl dobře matematiku? Na to není jednoznačná odpověď, protože někteří programátoři potřebují matematiku více jiní méně a někteří vůbec. Velmi záleží jaký programovací jazyk se učíte anebo co je důležitější, k jaké tvorbě aplikací je používáte. Takový programátor CSS stylů nepotřebuje být odborníkem na matematiku protože se zabývá hlavně vzhledem webových stránek. Potřebuje především umělecké cítění podobně jako grafik. Často tedy stačí jen základní matematické dovednosti, nevyžadují-li to podmínky jinak. Mnohem více je důležitější pro programátory logické myšlení. Ani toho se neobávejte. Základní logické myšlení má každý, neboť jej využíváte každý den, i když si to možná neuvědomujete.
  • Programátorské logické myšlení je v mnohém podobné, stavění z stavebnice Lego nebo podobných stavebnic. Také musíte vědět jaké příkazy můžete použít (jaké kostky v Legu můžete použít), jakým způsobem tyto kostky skládat (logická posloupnost operací), jak postavit určité části z kostek jako je střecha, stěny budovy, zeď domu, most, podvozek auta (funkční části kódu, neboli bloky příkazů, procedur a funkcí řešící nijaký problém atd.), neboli jak z nejmenších částeček udělat větší části (složené s dílů), a z nich větší části atd. až po celkový produkt. Jistě také v běžném životě používáte podmínky, cykly a cykly s podmínkou tak jako programátoři ve svých programech. Pokud jde o podmínky, jistě si obléknete věci do deště pokud prší. Jistě si obléknete teplé oblečení pokud je venku zima. Jistě si jste vědomi aspoň o některých svých podmíněných reakcích. Pokud máte hlad, půjdete se najíst. Pokud máte žízeň půjdete se napít atd. Jak vidíte, rozhodně používáte podmínky (podobně jako programátoři). Stejně tak někdy používáte ve svém životě cykly. Jistě se vám stalo, že jste museli nějakou činnost opakovat konkrétně x-krát; například trest ze základní školy, jistě jste párkrát museli, třeba 100-krát napsat, že už něco nikdy neuděláte. Určitě také občas užíváte cykli s podmínkou (příkazy WHELE, LOOP atd.). Například krájíte mrkev, dokud není celá nakrájená. Jdete dokud jste nedošli do cíle. Běžíte dokud nejste unavení. Učíte se, dokud se danou věc nenaučíte. Kupodivu i v běžném životě používáte časovače podobně jako programátor ( příkaz TIMER). Vaříte dvě minuty. Cvičíte 30 minut. Nebo je dokonce používáte jako podmínku do cyklů s podmínkou. Vařte vodu na čaj, dokud se voda nezačne vařit (bublat). I v běžném životě tedy požíváte podobné nástroje logiky a algoritmizace jako programátoři, proto se nebojte, že by stě jejich princip nedokázali pochopit.

Lekce[editovat]

Level 1 - začátečník[editovat]

základní práce s textem a textové proměnné

  • Lekce 1 - Program "Ahoj světe" - zobrazení textu a čísel
  • Lekce 2 - Program "Papoušek" - práce s textovou proměnou
  • Lekce 3 - Program "Spojování jmen" - spojování textových řetězců

základní práce s čísly a číselné proměnné

  • Lekce 4 - Program "Sčítač" - sčítání čísel
  • Lekce 5 - Program "Zdvojnásobovač" - práce s číselnou proměnou s výpočtem násobku
  • Lekce 6 - Program "Jednoduchá kalkulačka" - práce s číselnou proměnou a základní výpočty (+;-;*;/)
  • Lekce 7 - Program "Mocniny a odmocniny" - výpočty mocnin a odmocnin

teorie

  • Lekce 8 - System.Math - práce s matematickými funkcemi
  • Lekce 9 - Matematické operátory, matematické vzorce, modulus, dělení se zbytkem a zbytek po dělení.
  • Lekce 10 - Typy proměnných v jazyce C# (kompletní přehled)

nastavení

  • Lekce 11 - Nastavení konzole - příkazy spojené s nastavením konzole (barva pozadí, barva textu, šířka okna, smazání obrazovky (obsahu v konzoli))
  • Lekce 12 - Formátování textu

Level 2 - středně pokročilý začátečník[editovat]

podmínky if

cyklus for

cyklus s podmínkou

Level 3 - pokročilý začátečník[editovat]

  • Seznam lekcí

Level 4 - profesionál[editovat]

  • Seznam lekcí

Level 5 - středně pokročilý profesionál[editovat]

  • Seznam lekcí

Level 6 - pokročilý profesionál[editovat]

  • Seznam lekcí

Level 7 - expert[editovat]

  • Seznam lekcí

Level 8 - středně pokročilý expert[editovat]

  • Seznam lekcí

Level 9 - pokročilý expert[editovat]

  • Seznam lekcí