středa 15. dubna 2015

C# online a s hádankou

Dnes není nutné si instalovat Visual Studio či .NET knihovny na počítač, aby bylo možné si programování vyzkoušet. Existují i on-line editory, které samozřejmě nenabízejí tolik možností, jako plnohodnotné IDE, ale pro jednoduché příklady naprosto stačí.


Jedním z on-line editorů je i online code snippet complier dostupný na adrese http://www.volatileread.com/utilitylibrary/snippetcompiler. Umožňuje vyzkoušet si i nové vlastnosti C# 6.0.

Nejlépe si jej vyzkoušet s nějakou hádankou, co je například potřeba doplnit do tohoto kódu, aby došlo k překopírování hodnot pole a do pole b a naopak, přitom se nesmí použít žádná proměnná, dočasná paměť a podobně - na konci kódu tedy bude pole a obsahovat původní hodnoty pole b a pole b zase hodnoty pole a - šablona pro řešení je připravena na  C# Online Array Content Copying a stačí jen doplnit kód místo poznámky //put some code here, pak jen stisknout tlačítko RUN a vidět, zda došlo k překopírování obsahu polí:


Pole mají vždy stejnou délku a jsou stejného typu, to že jedno obsahuje sudá a druhé lichá čísla je jen náhoda - ve skutečnosti mohou být hodnoty zcela náhodné a řešení by tedy nemělo jakkoli spoléhat na vlastnosti hodnot prvků pole.

4 komentáře:

  1. Asi trochu kanon na vrabce, ale proc ne. :)
    b[i] = Interlocked.Exchange(ref a[i], b[i]);

    OdpovědětVymazat
  2. a[i] = a[i]+b[i];
    b[i] = a[i]-b[i];
    a[i] = a[i]-b[i];

    OdpovědětVymazat
  3. a[i] += b[i];
    b[i] = a[i] - b[i];
    a[i] -= b[i];

    OdpovědětVymazat
  4. //xor
    a[i] ^= b[i];
    b[i] ^= a[i];
    a[i] ^= b[i];

    OdpovědětVymazat