VLNL: V Litvínovské "Na lovu"

SSŠVT


3. ročník

Základy programování

Jazyk C#
  1. Který z následujících datových typů není celočíselný?
    int
    long
    decimal
    byte
  2. Které klíčové slovo použijete pro definici třídy (referenčního datového typu)?
    public ... BookService
    {
        public List<Book> GetBooks()
        {
            List<Book> books = new List<Book>
            {
                new Book("Markéta Lazarová"),
                new Book("Stařec a moře"),
                new Book("Na západní frontě klid"),
                new Book("Pýcha a předsudek")
            };
            return books;
        }
    }
                    
  3. Jaký je vhodný typ cyklu na procházení kolekce, u níž nemáme indexy nebo nemůžeme k jejím prvkům přes indexy přistupovat?
  4. Příkaz if nabízí větvení programu na dvě větve. Jaký znáte příkaz pro větvení programu na více větví než dvě?
  5. Jaký datový typ se hodí na reprezentaci tabulárních dat, kde všechny prvky v řádcích i sloupcích jsou stejného typu, jako je tomu např. u matice?
  6. Proč v cyklu, který prochází pole o 5 prvcích, není index posledního prvku 5?
  7. Co se stane, když se v poli o 2 prvcích, zeptáme na prvek s indexem 10?
    Console.WriteLine(arr[10]);
  8. Které klíčové slovo použijete pro definici výčtového datového typu?
    public ... Grades
    {
        NoGrade,
        A,
        B,
        C,
        D,
        E,
        F
    }
                    
  9. Kolik celkem prvků má pole deklarované takto?
    double[,] numbers = new double[3, 10];
  10. Jaký je rozdíl mezi parametrem (aka formálním parametrem) a argumentem (aka skutečným parametrem)?
  11. Jak se jmenuje příkaz, kterým se předčasně ukončí provádění cyklu?
    Random r = new Random()
    for (int i = 0; i < 10; i++)
    {
        if (r.Next(100) < 50)
        {
            ...;
        }
        Console.WriteLine(i);
    }
                    
  12. Jaký řetězec bude výsledkem následujícího výrazu?
    "Ahoj mami!".Replace("m", "t").Substring(5, 4)
  13. Proč následující část kódu nelze zkompilovat?
    class Program
    {
        static void Main(string[] args)
        {
            {
                int a = 5;
            }
            Console.WriteLine(a);
        }
    }
                    
  14. Jaká konstrukce se používá pro zachytávání výjimek?
  15. Jakým příkazem vyhodíme výjimku?

Jmenný prostor System.IO
  1. Jak se jmenuje třída, kterou použijete pro načtení textového souboru?
  2. Která metoda ve statické třídě File se hodí pro zjištění, zda na disku existuje soubor s daným jménem a cestou?
  3. Jakou konstrukci/příkaz použijeme, abychom po zápisu do diskového souboru pomocí objektu StreamWriter nemuseli ten objekt zavírat (metodou Close, případně Dispose)?
  4. Jak se říká formátu dat (v souboru), který vypadá takto?
    {
        "ConnectionStrings": {
            "MssqlDatabase": "Server=L03; Database=SongsAndVotesDB; Trusted_Connection=True;",
            "MySqlDatabase": "Server=mysqlstudenti.litv.sssvt.cz; Port=3306; Database=firstDB; Uid=username; Pwd=password;"
        }
    }
                    
  5. Jak se jmenuje textový formát pro ukládání dat, který je strukturou podobný HTML?
  6. Jak se u objektu, pomocí kterého čteme textový soubor sekvenčně řádek po řádku, doptáme na to, zda je ještě co číst, anebo jsme již dorazili na konec souboru?
  7. Jak z textového formátu CSV získáme netextová data (např. číslo)?
    string csvLine = "Lev Nikolajevič Tolstoj;Speciální vojenská operace a mír;1869";
    string[] values = csvLine.Split(';');
    string author = values[0];
    string title = values[1];
    int releasedIn = ...(values[2]);
                    
  8. Kolik polí (hodnot) má následující řádek textového souboru ve formátu CSV, kde oddělovačem je čárka?
    Jana,výška: 1,75m,svobodná,,10,
  9. Které z následujících tvrzení je nesmysl?
    Adresář může obsahovat adresáře.
    Soubor může obsahovat soubory.
    Adresář může obsahovat soubory.
  10. Který z následujících řádků kódu by se měl v konstrukci pro zachytávání výjimek dávat do části finally a proč?
    StreamWriter sw = new StreamWriter("abc.txt");
    sw.WriteLine("A B C D");
    sw.WriteLine("Kočka přede");
    sw.Close();
                    

Objektově orientované programování (OOP)
  1. Jaký je vztah mezi pojmy třída, instance a objekt?
    a) Třída je množina instancí a instance je množinou objektů.
    b) Jeden objekt má několik tříd s podobným chováním a jedna třída má několik instancí s podobnou strukturou.
    c) Třída definuje množinu objektů podobné struktury a chování. Instance a.k.a objekt je jeden prvek takové množiny.
    d) Instance, objekt i třída jsou synonyma, je to jedno a totéž.
  2. Objekt má dva aspekty: Chování a data. Co je to vlastnost objektu?
  3. K čemu v OOP slouží metody?
  4. Co je to konstruktor třídy a kdy se použije za běhu programu?
  5. Když chci, aby určitý člen třídy (např. její vlastnost) byl viditelný i mimo kód definující třídy, které modifikátory přístupu mohu použít?
  6. Který modifikátor přístupu omezuje přístup k členu třídy na kód, který je přímo definovaný pouze v této třídě?