Stránka 1 z 1

NPRG038 2015-06-03 .NET I - Zkouska - Pavel Jezek

Napsal: 3. 6. 2015 22:19
od biosek
Dnes jsme psali novy typ zkouskove pisemky, kde uz neni ve forme ABC testu, ale jako na principech stylem nejakych uloh, ktere je potreba rozebrat slovne.
Dale nebyla pozadovana exaktni znalost .NETu, stacilo vedet CCA koncept ale aspon tak, ze s IntelliSense byste vas kod dokazali napsat bez chyb.
Na pisemku bylo 2,5hod casu.
Znamkovani bylo jako je na webu, tj:
1 - 10 - 8,5b
2 - 8 - 6,5b
3 - 6 - 5b
4 - 4,5 - 0b

Zadani najdete v priloze.

cca moje reseni:
1. 2 druhy serializace [Serializable] vs ISerializable, na stromy je lepsi pouzit ISerializable a vytvorit si vlastni serializer, kterej celej strom zeserializuje do pole. Deserializace je znovupostaveni stromu pres Add.
2. thread-safe ta trida neni, protoze zapis double neni atomicky a dalsi race-condition byl mezi kontrolou PropertyChanged != null a jejim zavolanim, kdy muze dojit k preplanovani, odregistrovani a volani prazdneho eventu.
3. za pouziti tridy CompareInfo s vyplnenyma CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase napr:
CompareInfo ci = CultureInfo.InvariantCulture.CompareInfo;
Console.WriteLine(ci.IsPrefix("Čeněk", "cen", CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase ));
4a. a je int, vysledek vzdy stejny a to 6, protoze ten dotaz vezme error radky, vezme znich slova oddelena carkou a vezme delku nejdelsiho z nich
4b. viz 4a a vysvetleni kodu si vymyslete :)
4c. lepsi paralelismus lze dosahnout pres from l in lines.AsParallel(), zbytek stejny
5. do pisemky jsem napsal neco jako:
...
TcpListener listener = new TcpListener(port);
while(true){
var client = await listener.AcceptClientAsync();
Task.Run(ProcessClient(client));
}
...
async void ProcessClient(TcpClient client);
//await nacteni ze souboru
//await zpracovani dat
//await client.NetworkStream.Write(data);
6. jsem nemel a nevim jak na to, bohuzel jsem se ani nezeptal.