[ZK] 9.2.2009

Donarus at 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 - [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

Magog at 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

Santhos at 2009-02-09 15:31:55

ta osmicka byla nejak takhle:

System.String
string
S?
List<S>
System.Int64

Donarus at 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 ??

Magog at 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.

Donarus at 2009-02-09 18:31:35

asi mas pravdu

Santhos at 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)

Donarus at 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..

Santhos at 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