Zk 8.2.

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zk 8.2.

Re: Zk 8.2.

od mono » 12. 1. 2015 19:23

Takova drobna poznamka: V monu jde ten priklad 3 zkompilovat i spustit. Normalne vypise 1,2 a 2,3.

Re: Zk 8.2.

od DZuXO » 8. 2. 2010 19:17

Trochu upresnim:

uloha 3: nejde skompilovat, pretoze sa snazim inkrementovat nenainicializovanu premennu x v strukture s.
Tu len upozornim na mozne neprijemne chyby. Nech S je struct. Zapis "S s;" je okej, naalokujem si na zasobniku strukturu, ale premenne v nej ostanu nenainicializovane. Rozdiel vo formate "S s = new S();" je ten, ze hodnoty premennych vnutri struktury sa nainicializuju na defaultne hodnoty (0, null, apod). Takisto bacha na to, ze v strukture je zakazane pretazovat bezparametricky konstruktor.

uloha 4:
Skusim napisat zdrojovy kod. Dost solidne som si pospal ked som prisiel zo skusky, tak si to uz nejak horsie pamatam.
Som si isty, ze ten kod na skuske bol bohatejsi o nejake fajnotky, no hlavny problem tejto ulohy boli staticke konstruktory.. takze na tie pozor.

Kód: Vybrat vše

    class Divide
    {
        static Divide()  // som si 100% isty, ze hlavicka konstruktoru vyzerala presne takto, aj toho co je nizsie
        {
            Program.dic.Add("/", 1);
        }
    }

    class Plus
    {
        static Plus()
        {
            Program.dic.Add("+", 2);
        }
    }

    class Program
    {
        public static Dictionary<string, int> dic = new Dictionary<string, int>();
        static void Main(string[] args)
        {
            Console.WriteLine("{0}, {1}", dic["+"], dic["/"]);  // tu je ten problem, zavolali sa konstruktory ?
        }
    }
odpoved bola, ze to padne pri behu, resp budem mat prazdny dictionary

uloha 5:
zadanie az na detaily presne to iste co bolo v piatok [Zk. 5.2.2010] (je to na fore, kliknite si)
detaily: v deklaraci boli interfacy I1 {}, I2 {}, ale pri porovnavani sa pouzivalo typeof(I1<A<int>>), typeof (I2<B<int>>), co sposobi,ze sa to neskompiluje.

uloha 9:
Tato uloha bola dost "slaughter" :? ale ako nam skusajuci PJ vravel, naozaj v nej nebolo vela chyb a neboli to ziadne labuznicke zalezitosti. Chyby boli v:
hlavicka triedy PriorityQueue, bolo potrebne vynutit aby genericky typ Priorita bol potomok IComparable
deklaracia vhniezdenej triedy Node, ktora bola povodne napisana ako struct, co je samozrejme zle, pretoze by som nemohol urobit spojovy zoznam. (Stale by som si len kopiroval strukturu a ani by som sa nepohol, pri classe si pekne podavam referencie)
Porovnanie generickeho typu Priorita. bolo tam iba nieco ako priority1 <= priority2. My to ale chceme vo formate priority1.CompareTo(priority2) < 0.
Genericku premennu nemozem nastavovat na null (?). Tu som mal chybu, nie som si teda uplne isty spravnou odpovedou, pretoze si uz ani kod nepamatam. Ale aby som nastavoval generic premennu na null, tak si mozem napr vynutit, aby generic bol referencny typ (ako na to ? pozrite do slajdov, vsetko to tam je)

EDIT: zadanie 9. ulohy je odfotene na fore: http://forum.matfyz.info/viewtopic.php?f=421&t=6553

Zk 8.2.

od Kubees » 8. 2. 2010 12:08

1.

Velikost int64
[8B]

2.

(4096 | 24) & (~(8 >> 16))
[4120]

3.

Kód: Vybrat vše

    struct S {

        public int x;
        public int y;

        public S(int x, int y) {
            this.x = x;
            this.y = y;
        }

       public void Print() {
            Console.WriteLine("{0},{1} ",++x,++y);
       }
   
    }

    class Program
    {
        static void Main(string[] args)
        {

            S s;

            s.y = 1;

            s.Print();
            s.Print();
       

        }
    }
[nejde zkompilovat]

4. otazka na dictionary
Console.WriteLine("{0},{1}", ops["+"], ops["/"])

5.

is, as GetType, typeof

6.

Co vynucuje interface?

7.
je toto legalni?

Kód: Vybrat vše

interface I<T> {
    T m();
}

class x : I<double>, I<System.Double> {
....
}
[Ne, protoze System.Double === double]

8. Co plati o uzivatelem vytvorenych tridach?
Muzou mit 0 predku NE
Muzou mit libovolnou tridu jako predka NE
Muzou mit libovolnou strukturu jako predka NE
Mohou implementovat max 1 interface NE
Mohou se ukladat na zasobniku NE
Mohou se ukladat na halde ANO
implicitni viditelnost tridy je public NE
implicitni viditelnost jejich clenu je protected NE

9.

Najit chyby v tride implementujici prioritni frontu s hlavou. (fůůůj !!!!)

Nahoru