test 26.1.2009 (zkuska)

peva at 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:

Donarus at 2009-01-26 19:43:33

jejda, tak to vypada, ze jsem prosral docela jednoduchej testik :( .... skoda, ze jsem si nezasel :)

Zemi at 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:)

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