# test 26.1.2009 (zkuska)

<{ForumPost(poster="peva", timestamp=2009-01-26 19:29:54)}>
Dnesny test vyzeral asi takto (ked tak ma opravte):  
cca 8 otazok na skrtanie, jeden dopisovaci (tam sa dalo stratit az -7 bodov). Otazky:

    string a = "hello";
           a. Replace("ll", "lp y");
           a+= "u";
    co je po prevedeni v a?

moznosti (cca) : -"hellou", "help you", nezkompiluje sa, neda sa povedat.. (a)

     interface A
        {
            int Value { get; set;}
        }
        class T : A
        {
            public int a;
            public int Value { get { return a; } set { a = value; } }
        }
        class Program
        {
            static void Set(A a, int v)
            {
                a.Value = v;
            }
            static void Main(string[] args)
            {
                T t = new T();
                Set(t, 9);
                Console.Write(t.a);
            }
        }

Co bude po vykonani v t.a? 0, 9, nezkompiluje sa...(b)  

    aku ma velkost datova polozka int[]?

4B, 8B, 16B, zalezi na platforme, zalezi na velkosti pola (d)

    Co patri medzi hodnotove typy?

decimal, string, S?, object..(a,c)

    class A
        {
            static public int a = 5;
            public A()
            {
                a*=3;
                m();
            }
            void m()
            {
                a++;
            }
        }
        class B : A
        {
            public B()
            {
                a *= 2;
            }
            new void  m()
            {
                a--;
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                B b = new B();
                Console.Write(A.a);
            }
        }

Co vypise? (26,32, nezkompiluje sa..) (b)

    zakrtnite pravdive vyroky, co znamena
             int [,] x,y[];
    

   
neprejde kompilatorom, dvojrozmerne pole x a jednorozm pole, 2D a 3D pole, 2d a 2d jednorozm. pole + rozne variacie (a)

    Co bude v premennych a, b?
     class Program
        {
            static void Main(string[] args)
            {
                System.Random r = new System.Random();
                int a, b = r.Next(2);
                if (b == 1) a = 1;
                a = b;
            }
        }
    

\[1,1],\[0,1], nezkompije sa, neda sa povedat..(d)  
  
dedicnost + virtualne fcie, co sa zavola pri a.m1(), a.m2() atd -> nepamatam cele  
  
Velky priklad - mali sme naimplementovat funkciu add v triede, co chcela byt binarnym vyhladavacim stromom, thread_safe + vyhadzovanie vynimiek pri neprijatelnom vstupe, tamplate premenne <K, V> kluc, hodnota, uzivatel nesmel zadat rovnake cislo 2x, zo zadanie nevyplyvalo, ze kluc sa da porovnavat  
  
Tot vsio, co pamatam, snad pomoze :wink:
<{/ForumPost}>

<{ForumPost(poster="Donarus", timestamp=2009-01-26 19:43:33)}>
jejda, tak to vypada, ze jsem prosral docela jednoduchej testik :( .... skoda, ze jsem si nezasel :)
<{/ForumPost}>

<{ForumPost(poster="Zemi", timestamp=2009-02-04 09:54:46)}>
Nemal by niekto chut naimplementovat tu ten Add tak ako by mal byt? Hodilo by sa vediet na com baziruje a za co strhava body:)
<{/ForumPost}>

<{ForumPost(poster="peva", timestamp=2009-02-16 11:45:20)}>
No, neviem ako je to teraz, ci nahodou nepritrvdli, ale moz nestrhavam -> hlavne to malo do putiku splnovat zadanie. Cca zhruba to malo vyzera`takto:(ak si to spravne pamatam)

    class binary_tree_item: IComparable<binary_tree_item>
    { int CompareTo(binary_tree_item item) return item.value.CompareTo(this.value); } //toto bolo ptrebne, pokial si pamatam, myslim, si value bolo private alebo  tak nejak
    class binary_tree
    ...
    object o =  new object();
    lock(o);
    public void Add(binary_tree-item item)
    { bool added = false;
      binary_tree_item actual_node = this.root; //toho roota sme si mam pocit tiez mali dopisovat
      while(!added)
      {
          if(root == null) { root = item; break;}
          if(item.CompareTo(actual_node) < 0)
             if( actual_node.left == null) { added = true; actual_node.left = item}
              else actual_node = actual_node.left;
    if(item.CompareTo(actual_node) > 0)
             if( actual_node.right == null) { added = true; actual_node.right=item}
              else actual_node = actual_node.right;
    if(item.CompareTo(actual_node) == 0) throw new Exception("prvok tam uz je)";
       }
    }
    

cca  :P
<{/ForumPost}>

