Tento kurz navazuje na Seriál C#. Řekneme si, které infromace ze seriálu byste si měli zopakovat a něco navíc samozřejmě doplním. Nakonec si zadáme první tzv. opakovací úkol.
Od doby, kdy byl seriál vydáván, se hodně změnilo, takže v tomto kurzu budeme využívat novinek z .NET Frameworku verze 2.0. Obnáší to tedy instalaci .NET Framework 2.0. Předpokládám využití Visual Studia C# 2005 Express.
Co je to .NET Framework?
.NET Framework je platforma z dílny společnosti Microsoft. Její začátky spadají do roku 2000 a má nahradit současný komponentový model programování – COM. Dalo by se říci, že tato platforma je vrstvou mezi aplikací a operačním systémem.
Software napsaný pro tuto platformu se nejprve zkompiluje do tzv. mezikódu &ndash MSIL (Microsoft Intermediate Language). Ten je uložen do exe či dll souborů. Když takový exe soubor spustíme na klientském počítači, .NET Framework MSIL kód zkompiluje do nativního kódu a spustí. Bližší informace o tom, jak to celé funguje, naleznete v článcích o architektuře Microsoft .NET Frameworku.
Pro platformu můžeme psát v mnoha jazycích (např. C++, VB.NET, J# atd.). Korunním jazykem se stal C#, což je, podle slov vývojářů z Microsoftu, další člen do rodiny C jazyků. Já bych se spíše přiklonil k tvrzení, že C++ je jeho bratr a Java sestra. Ve skutečnosti nezáleží na tom, v jakém jazyce budete aplikaci psát, kompilátory ji vždy přeloží do stejného – MSIL jazyka.
Jak asi všichni (většina) víte, pro běh aplikací je třeba nainstalovaný .NET Framework příslušné verze. Uznávám, že není zrovna ideální nutit uživatele kvůli malému prográmku stahovat 20 MB balík platformy, útěchou nám může být, že v budoucích Windows bude .NET Framework její součástí (např. Windows Vista beta 2 toto splňuje).
Základní struktura programu
Nebudu zde rozepisovat něco, co zde bylo dobře popsáno. Pro pochopení základní struktury doporučuji Seriál C# lekce 1, 2 a 4.
Vstup, výstup
Zatím pracujeme pouze s konzolovými aplikacemi. Zopakujeme si, jak předávat informace uživateli, a řekneme si, jak informace přijímat. K tomuto účelu slouží třída Console, se kterou jste se seznámili v příkladu Hello World.
Vypíšeme text:
Console.Write("Nějaký text");
Vypíšeme text a odřádkujeme:
Console.WriteLine("Další text");
Přečteme text z konzole a uložíme jej do proměnné vstup:
string vstup = Console.ReadLine();
Můžeme také celou plochu konzole vyčistit:
Console.Clear();
Pole a kolekce
Opět vás nejprve odkážu na Seriál C#, lekci číslo 5. Zmíním se zde o některých třídách, které vám mohou ulehčit práci s poli a seznamy.
Třída Array (jmenný prostor System)
Zde si ve zdrojovém kódu ukážeme některé užitečné metody: Inicializujeme si pole čísel typu Int32 (int):
int[] pole = { 2, 5, 1, 0, 7, 6, 11, 256, 111 };
Metoda BinarySearch nám vyhledá prvek v poli a vrátí jeho index. Když ho nenajde, vrátí −1:
int kdeJeNula = Array.BinarySearch<int>(pole, 0);
Metoda Reverse nám obrátí pořádí prvků v poli:
Array.Reverse(pole);
Metoda Sort nám seřadí prvky pole:
Array.Sort<int>(pole);
Chtěl bych jenom upozornit na metody BinarySearch a Sort. Jedná se o tzv. generické metody. Co to přesně znamená, si vysvětlíme v budoucnu. Pro teď nám bude stačit vědět, že mezi špičaté závorky <T> (kde T značí typ objektu) napíšeme, s jakými typy bude metoda pracovat.
Třída List (jmenný prostor System.Collections.Generic)
Vytvoříme si instanci třídy List, do které budeme ukládat objekty typu long:
List<long> seznam = new List<long>();
Přidáme do seznamu několik prvků:
seznam.Add(1111);
seznam.Add(5151);
.................
.................
Pomocí cyklu foreach projdeme a vypíšeme všechny prvky:
foreach(long prvek in seznam)
Console.WriteLine(prvek.ToString());
Velice užitečná je metoda ToArray(), která vrací obyčejné pole:
long[] pole = seznam.ToArray();
Pokud již nebudeme seznam dále potřebovat, vyčístíme ho:
seznam.Clear();
Třídu List je možné použít všude tam, kde neznáte dopředu počet prvků. I tato třída je generická, takže je nutno definovat typ, se kterým bude pracovat.
Prací se seznamy se budu věnovat v některé z dalších lekcí.
Operátory
Viz. Seriál C# lekce 7.
Shrnutí
V tomto bodě byste měli mít znalosti na vytvoření jednoduchých programů. Měli byste ovládat cykly, pole, být obeznámeni se seznamy a dokázat komunikovat s uživatelem prostřednictvím konzole.
Úkol číslo 1
Zadání
Vytvořte konzolovou aplikaci, do které uživatel zadá seznam čísel. Velikost seznamu uživatel zadá jako první. Program pak vypíše seznam čísel, jak jej přijal; potom seřazený seznam a obrácený seznam.
Příklad
Zadám, že počet čísel bude 3. Napíšu čísla 5, 6, 1. Program vypíše 5, 6, 1, pak 1, 5, 6 a 6, 5, 1.
Nápověda
Pro konverzi řetězce na číslo použijte metodu Int32.Parse(string).