# [ZK] 9.2.2009

<{ForumPost(poster="Donarus", timestamp=2009-02-09 10:12:06)}>
zkouška v klasickém duchu, na 2 hodiny přípravy to nebylo dneska tak hrozný :)  
otazky nebudu psat v presnem poradi, bo to si nepamatuju :D  
  
otázky  
=============================================

 > **1.**  
 > otazka: jaký dá výsledek následující: (1024 | 6 ) & (~3)  
 > odpoved: 1028 (dale byly moznosti 1024,1029 a blablabla ... )

 > **2.**  
 > otazka: U\[ ] - jaka je velikost?  
 > odpoved: Zavisi na platforme... Proc?: Protoze U\[] je typu reference, konkretne reference na pole a velikost reference zavisi na OS a .NETu (typicky 32/64-bit)  
 > **THX Santhos...**

 > **3. (za 2 body)**  
 > otazka: cilem bylo napsat nejaky muttable a imuttable type a popsat 2 vyhody  
 > odpoved: SLIDY

 > **4.**  
 > otazka: mate zadanu tridu Tree a cilem je doimplementovat pridani prvku do stroma..... hebudu rozebirat, je to tu uz nekolikrat  
 > odpoved: viz. [http://forum.matfyz.info/viewtopic.php?f=421&t=5004](http://forum.matfyz.info/viewtopic.php?f=421&t=5004) - \[zk] 4.2

 > **5.**  
 > otazka: co vsechno muze interface naridit tride aby implementovala (private static metodu, protected static metodu, public static metodu, properties, \[])  
 > odpoved: properties, \[]

 > **6.**  
 > otazka: 
 > 
 > 
 > 
 >     struct S {...}
 >     ...
 >     List<S> list = new List<S>();
 >     list.Add(new S());
 >     list[0].x = 20;   // nejde prelozit, struct je hodnotovy typ -> list[0] je jen navratova hodnota na stacku
 >     ...
 >     
 > 
 > 
 > 
 > - neni to uplne to samy, ale princip u toho byl stejnej   
 > odpoved: viz. kod  
 > **EDIT: tak prej to bylo trochu jinak, tak snad to někdo doplní - byl tam jinej kód a jiná odpověď**

 > **7.**  
 > otazka:  
 > ukazka A
 > 
 > 
 > 
 > 
 >      var x = "Hello";
 >     Console.WriteLine(x.ToString());
 >     
 > 
 > 
 > 
 > ukazka B
 > 
 > 
 > 
 > 
 >      
 >     System.Object x = "Hello";
 >     Console.WriteLine(x.ToString());
 >     
 > 
 > 
 > 
 > otazkama bylo, zaskrtnout spravna tvrzeni z moznosti(opravte me pokud pisu blbosti)   
 >     a) A nejde prelozit   
 >     b) B nejde prelozit  
 >     c) A i B jde prelozit a A je jen zkratkou za B  
 >     d) A i B jde prelozit ale A dela neco jineho, nez B               
 > **EDIT: odpoved: zkousim to na dotnet2.0 a tam nic ale na 3.5 to prej jde a platí d) **

 > **8.**  
 > otazka: Urcit referencni typy
 >  
 > 
 > 
 > 
 >     System.String
 >     string
 >     S?
 >     List<S>
 >     System.Int64
 > 
 > 
 > 
 > odpoved: System.String, string, List<S>  
 > **EDIT: doplněna celá otázka**

  
dalsi si nevzpomenu :D  

 > **9.**  
 > otazka:
 > 
 > 
 > 
 > 
 >     class Plus {
 >         public static void AddPlus() {
 >             Prg.AddOp("+",1);
 >         }
 >     }
 >     
 >     class Divide {
 >         public static void AddDivide() {
 >             Prg.AddOp("/",2);
 >         }
 >     }
 >     
 >     class Prg {
 >         static Dictionary<string, int> d=new Dictionary<string, int>();
 >     
 >         public static void AddOp(string s, int i) {
 >             d.Add(s,i);
 >         }
 >     
 >         static void Main() {                       //uz nevim, zda byla metoda Main psana s parametrama nebo bez, pro ulohu neni podstatne
 >             Console.WriteLine(string.Format("{0},{1}",d["+"],d["-"]));
 >         }
 >     }
 >     
 > 
 > 
 > 
 > odpoved:  
 > a) nezkompiluje se  
 > b) 1,2  
 > c) , (tedy pouze znak carka)  
 > d) runtime error1,0  
 > odpovedi je asi runtime error...

  
  
**EDIT: 9.2.2009 12:32**  
**EDIT: 9.2.2009 18:25**
<{/ForumPost}>

<{ForumPost(poster="Magog", timestamp=2009-02-09 10:24:28)}>
ad 2: Neslo o typ U? ale o typ U\[]. A zaskrtl jsem moznost "zalezi na velikosti U", ale taky si nejsem jisty.  
  
A pak tam byla jeste otazka s kusem kodu, kde se vyskytoval Dictionary. Ted zrovna ten kod asi z hlavy nedam. Ale jdu na obed, treba si po ceste vzpomenu.  
  
Uz jsem si vzpomel, kod vypadal asi takhle:

    class Plus {
        public static void AddPlus() {
            Prg.AddOp("+",1);
        }
    }
    
    class Divide {
        public static void AddDivide() {
            Prg.AddOp("/",2);
        }
    }
    
    class Prg {
        static Dictionary<string, int> d=new Dictionary<string, int>();
    
        public static void AddOp(string s, int i) {
            d.Add(s,i);
        }
    
        static void Main() {                       //uz nevim, zda byla metoda Main psana s parametrama nebo bez, pro ulohu neni podstatne
            Console.WriteLine(string.Format("{0},{1}",d["+"],d["-"]));
        }
    }
    

Moznosti byly nejak takhle:  
a) nezkompiluje se  
b) 1,2  
c) , (tedy pouze znak carka)  
d) runtime error  
a byla jeste myslim i moznost e), ale tu si nepamatuju  
  
*Edit1: pridany uvozovky*  
*Edit2: Posledni otazka*
<{/ForumPost}>

<{ForumPost(poster="Santhos", timestamp=2009-02-09 15:31:55)}>
ta osmicka byla nejak takhle:  
  
System.String  
string  
S?  
List<S>  
System.Int64
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2009-02-09 18:24:01)}>

 > Magog wrote:
 > ...  
 > Moznosti byly nejak takhle:  
 > a) nezkompiluje se  
 > b) 1,2  
 > c) , (tedy pouze znak carka)  
 > d) runtime error  
 > a byla jeste myslim i moznost e), ale tu si nepamatuju  
 > ...

nebyla ta moznost 1,0 ??
<{/ForumPost}>

<{ForumPost(poster="Magog", timestamp=2009-02-09 18:29:51)}>
Moznost "1,0" dost dobre nedava smysl, kdyz cislo operace + je 1 a cislo operace / je 2. Ta moznost byla u jine otazky.
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2009-02-09 18:31:35)}>
asi mas pravdu
<{/ForumPost}>

<{ForumPost(poster="Santhos", timestamp=2009-02-10 15:13:38)}>
Prave jsem zjistil od PJe spravnou odpoved na ulohu 2. Je to trosku chytak a odpoved zni:  
  
**Zavisi na platforme**  
  
Proc?:  
Protoze U\[] je typu reference, konkretne reference na pole a velikost reference zavisi na OS a .NETu (typicky 32/64-bit)
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2009-02-10 15:32:14)}>

 > Santhos wrote:Prave jsem zjistil od PJe spravnou odpoved na ulohu 2. Je to trosku chytak a odpoved zni:  
 >   
 > **Zavisi na platforme**  
 >   
 > Proc?:  
 > Protoze U\[] je typu reference, konkretne reference na pole a velikost reference zavisi na OS a .NETu (typicky 32/64-bit)

  
dik... odpoved jsem tam dopsal..
<{/ForumPost}>

<{ForumPost(poster="Santhos", timestamp=2009-02-11 17:39:28)}>
neni zac.  
  
Jinak u 9 to vyhodi exception neco na styl "Key not found", ted jsem to zkousel, ale uz v pisemce jsem to mel dobre...ale docela by me zajimala ta 6. uloha jak presne byla
<{/ForumPost}>

