C#

Tmavé schéma prohlížeče kódu

↓ Konzolové aplikace

  • 1. Lekce - kód zde.
  • 2. Lekce - kód zde.
  • 3. Lekce - kód zde.
  • 4. Lekce - kód zde.
  • 5. Lekce - kód zde.
  • Šifrování - kód zde.
  • Prvočísla - kód zde.
  • Kalkulátor ceny spotřeby - kód zde.
  • Práce se soubory a funkce split - kód zde.
      //path označuje cestu k souboru například C:\Users\user\Desktop\sample.txt
      //pokud čteme ze souboru, který je ve stejné složce stačí nám jen jeho název sample.txt
      
      //přečti všechny řádky souboru
      string[] lines = File.ReadAllLines("sample.txt");
      
      //přečti pouze určitý řádek - s metodou ReadAllLines se pracuje jako s polem
      //tento příkaz tedy přečte pouze první řádek
      string firstLine = File.ReadAllLines("sample.txt")[0];
      
      
      //Funkce split - rozdělí rozdělí jeden string na pole stringů - do závorky píšeme oddělovací znak v jednoduchých uvozovkách ''
      string test = "12;65;8;9;7";
      string[] cisla = test.Split(';');
      
      //Vypíše každé číslo na nový řádek do souboru cisla.txt
      File.WriteAllLines("cisla.txt", cisla);
      
  • Práce s Listem
      //Vytvoření listu
      List<string> seznam = new List<string>();
      
      //Přidání položky do listu
      seznam.Add("Nová položka do seznamu");
      
      //Odebrání jedné položky z listu - v závorce je index, kde se má mazat
      seznam.RemoveAt(0);
      
      //Vymázání všeh hodnot z listu
      seznam.Clear();
      
      //Počet hodnot v listu
      int pocet = seznam.Count;
      
      //Seřaď hodnoty v listu vzestupně
      seznam.Sort();
      
  • Třídění čísel - kód zde.
    Napište program, do kterého budu zadávat kladná čísla od 1 do 100. Počet zadaných čísel není nijak omezen a zadávání se ukončí zadáním čísla záporného (záporné číslo se nezapočítává). Po ukončení zadávání program vypíše:
    1. nejmenší zadané číslo
    2. největší zadané číslo
    3. druhé největší zadané číslo
  • Práce se třídou DateTime
      //Vypíše aktuální (systémový datum a čas) např.: 31.03.2016 22:18:04
      Console.WriteLine("Je právě: " + DateTime.Now);
      
      //Vypíše dnešní dlouhé (systémové) datum např.: 31. března 2016
      Console.WriteLine("Dnes je: " + DateTime.Now.ToLongDateString());
      
      //Vypíše dnešní krátké (systémové) datum např.: 31.03.2016
      Console.WriteLine("Dnes je: " + DateTime.Now.ToShortDateString());
      
      //Vypíše dnešní (systémový) dlouhý čas 22:33:37
      Console.WriteLine("Dnes je: " + DateTime.Now.ToLongTimeString());
      
      //Vypíše dnešní (systémový) zkrácený čas 22:33
      Console.WriteLine("Dnes je: " + DateTime.Now.ToShortTimeString());
      
      string text = "12:54:31";
      //extrahuje časový údaj z textu a uloží si jej do proměnné
      DateTime cas = DateTime.Parse(text);
      
      //vypíše časový údaj ve tvaru, tkerý zvolím
      Console.WriteLine(cas.ToLongTimeString());
      
  • Vyšší funkce v cyklech
      static void Main(string[] args)
      {
          for (int i = 1; i <= 10; i++)
          {
              if (i == 5)
                  break;//ukončí celý cyklus
              Console.WriteLine(i);
          }
          Console.WriteLine("-----------------------------------");
          for (int i = 1; i <= 10; i++)
          {
              if (i == 5)
                  continue; //přeskočí momentální fázi --> nenapíše číslo pět, ale ostatní čísla ano
              Console.WriteLine(i);
          }
          Console.WriteLine("-----------------------------------");
          for (int i = 1; i <= 10; i++)
          {
              if (i == 5)
                  goto test;//skočí na řádek s labelem test:
              Console.WriteLine(i);
              test:;
          }
          Console.WriteLine("-----------------------------------");
          Test();
      }
      
      static void Test()
      {
          for (int i = 1; i <= 10; i++)
          {
              if (i == 5)
                  return; //ukončí celou metodu
              Console.WriteLine(i);
          }
          Console.WriteLine("Napiš zprávu z metody.");
      }
                    

    Tyto funkce fungují pro všechny cykly(for, foreach, while a do while).

  • Vícerozměrná pole
      //vytvořím pole - tabulka hodnot 10x10
      //indexuje se jako vždy od nuly
      int[,] pokoje = new int[10,10];
      
      //zapsání do více rozměrného pole
      pokoje[2, 2] = 12;
      int length = pokoje.Length; //určuje počet všech prvků --> 10x10 tedy 100
      
      //čtení z více rozměrného pole
      int cislo = pokoje[2, 2];
      
      //uložení hodnoty do všech prvků pole
      for (int x = 0; x < 10; x++)
      {
          for (int y = 0; y < 10; y++)
          {
              //zapsání čísla na sloupec x a řádek y
              pokoje[x, y] = 12345;
          }
      }
  • Program lodě Kód
    • Nakreslí hrací pole
    • Hráč zadává x a y souřadnice střely
    • Program vyhodnotí jesli se trefil nebo ne a překreslí hrací pole
  • Program Kvíz - Kód
    • Program, který procvičuje znalosti Anglické slovní zásoby
    • Lze jej jednoduše přetvořit do podoby univerzálního testovacího programu
    • Program využívá externí (.csv) databázi slovní zásoby
  • Program Kombinatorika1 - Kód
    Zadání: vytvořte program, který do konzole vypíše a spočítá všechny varianty čtyřciferných čísel, u kterých platí, že žádná číslice se neopakuje. Např. 1234 je OK, 1123 není OK.
  • Program Morseovka
    Zadání: vytvořte program, který si na vstupu přečte text (v latince), který následně převede do znaků Morseovy abecedy podle následujících pravidel:
    1. jednotlivá písmena budou oddělena na konci lomítkem /
    2. jednotlivá slova budou na konci oddělena dvěma lomítky //
    3. program bude umět kódovat všechny tyto znaky: a,b,c,d,e,f,g,h,ch,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9,?,čárka,!,.,;,/,=,-,tabulátor,(,),",:,_,@,Ä,Ë,Ö,Ü
    4. na konci výpisu Morseova kódu napíše toto " /KONEC/"
    5. Po výpisu kódu se program dotáže uživatele, jestli chce daný kód přehrát. Pokud uživatel odpoví kladně, program mu přehraje daný Morseův kód
    6. program bude opakovatelný
    7. pokud uživatel zadá nedefinovaný znak, bude nahrazen otazníkem a varovným zvukem
  • Program Automatofon
    Zadání najdete v příkladech pro konzoli. Jedná se o příklad číslo 11.
    Soubor s laděním a 3 skladby ke stažení (zip)

↓ Windows Forms

↓ Analýza výkonu

Nejjednodušší a vcelku přesná metoda zjištění výkonu programu (resp. jeho účinnosti) spočívá v použití stopek (System.Diagnostics.Stopwatch).
Na začátku programu se spustí stopky, proběhne program (nebo jeho analyzovaná část) a na konci se stopky zastaví a zaznamená se tak čas, po který program běžel.
Čím kratší je výsledný čas, tím je program lépe optimalizovaný.
Program je však nutné testovat na stejné HW konfiguraci (nejlépe na stejném PC) a v totožném stavu systému (stejné běžící programy). Nejlepší je odpojit se od internetu, aby nezačala nekontrolovaně aktualizace některého z programů a tím se nesnížil výkon.
Kód

↓ Příklady

↓ Odkazy

↓ Literatura

  • Základní pojmy v programování (PDF)
  • Informatika
    Autor: J. Glenn Brookshear
    Jazyk: ČJ
    ISBN: 978-80-251-3805-2
    Rok vydání: 2013
    Vydavatelství: Computer Press, Albatros Media
  • C# 3.0 programování na platformě .NET 3.5
    Autor: Ján Hanák
    Jazyk: ČJ
    ISBN: 978-80-7413-046-5
    Rok vydání: 2009
    Vydavatelství: Zoner Press
  • Řešené příklady v C# aneb C# skutečně prakticky
    Autor: Josef Pirkl
    Odkaz ke stažení
  • Databáze v C# 2008 - Průvodce programátora
    Autor: Vidya Vrat Agarwal, James Huddleston
    Jazyk: ČJ
    ISBN: 978-80-251-2309-6
    Rok vydání: 2009
    Vydavatelství: Computer Press
    Odkaz ke stažení
  • Programování Microsoft Windows Forms v jazyce C#
    Autor: Charles Petzold
    Jazyk: ČJ
    ISBN: 978-80-251-1058-3
    Rok vydání: 2006
    Vydavatelství: Computer Press
    Odkaz ke stažení