20
Решение задач Яков Лило HWdTech

2017-02-04 02 Яков Лило. Решение задач

  • Upload
    -

  • View
    27

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2017-02-04 02 Яков Лило. Решение задач

Решение задач

Яков Лило

HWdTech

Page 2: 2017-02-04 02 Яков Лило. Решение задач

2

Page 3: 2017-02-04 02 Яков Лило. Решение задач

CodeFuse

MoneyWiz

3

Page 4: 2017-02-04 02 Яков Лило. Решение задач

Другой формат?

Как это будет?

Хороший программист?

4

Page 5: 2017-02-04 02 Яков Лило. Решение задач

Задача 1. Что выведет код?

Console.WriteLine(0.1 + 0.2 == 0.3);

Console.WriteLine(0.1 + 0.2 + 0.7 == 1);

Console.WriteLine(0.1 + 0.3 == 0.4);

5

Page 6: 2017-02-04 02 Яков Лило. Решение задач

ОтветСтандарт IEEE 754

Console.WriteLine(0.1 + 0.2 == 0.3); //False

0.110 - 0.000110011001100110011001100110011001100110011001100110120.210 - 0.00110011001100110011001100110011001100110011001100110120.310 - 0.01001100110011001100110011001100110011001100110011001120.410 - 0.0110011001100110011001100110011001100110011001100110120.710 - 0.10110011001100110011001100110011001100110011001100112

6

Page 7: 2017-02-04 02 Яков Лило. Решение задач

Ответ

True:Console.WriteLine(0.1 + 0.2 + 0.7 == 1);Console.WriteLine(0.1 + 0.3 == 0.4);

7

Page 8: 2017-02-04 02 Яков Лило. Решение задач

Задача 2. У пользователя падает...

var time = DateTime.Now.ToString("HH:mm");ThirdParty.MagicMethod(time);

//Не проходит валидация в MagicMethod.

8

Page 9: 2017-02-04 02 Яков Лило. Решение задач

Ответ

: - символ форматирования.

Разделитель компонентов времени.

Например, в Италии будет 12.07

9

Page 10: 2017-02-04 02 Яков Лило. Решение задач

Задача 3. У пользователя падает...

var date = DateTime.Now.ToString("yyyy.MM");ThirdParty.MagicMethod(date);

//Не проходит валидация в MagicMethod.

10

Page 11: 2017-02-04 02 Яков Лило. Решение задач

Ответ

● В Тайланде по Буддийской вере сегодня 4е февраля 2560 года.

● По исламскому календарю сейчас 1438 год

11

Page 12: 2017-02-04 02 Яков Лило. Решение задач

Задача 4. Что выведет код?

var actions = new List<Action>();foreach (var num in new List<int>{ 1, 2, 3 }) actions.Add(() => Console.Write(num));

foreach (var action in actions) action();

12

Page 13: 2017-02-04 02 Яков Лило. Решение задач

Ответ

В старых версиях компилятора: 333В новых версиях компилятора: 123

13

Page 14: 2017-02-04 02 Яков Лило. Решение задач

Ответ

private sealed class DisplayClass{ public int num; public void Action() { Console.WriteLine(num); }}

14

Page 15: 2017-02-04 02 Яков Лило. Решение задач

Ответ

В старых версиях:DisplayClass c = new DisplayClass();foreach (int num in new List<int>{ 1, 2, 3 }){ с.num = num; actions.Add(c.Action);}

15

Page 16: 2017-02-04 02 Яков Лило. Решение задач

Ответ

В новых версиях:foreach (int num in new List<int>{ 1, 2, 3 }){ DisplayClass c = new DisplayClass(); с.num = num; actions.Add(c.Action);}

16

Page 17: 2017-02-04 02 Яков Лило. Решение задач

Задача 5. Что выведет код?

var i = 0;var sequence = new int[3].Select(n => i++);

foreach (var number in sequence) Console.Write(number);foreach (var number in sequence) Console.Write(number);

17

Page 18: 2017-02-04 02 Яков Лило. Решение задач

Ответ

012345

18

Page 19: 2017-02-04 02 Яков Лило. Решение задач

Задача 6. Что выведет код?

var x = new{ Items = new List<int>{1, 2}.GetEnumerator()};

while (x.Items.MoveNext()) Console.WriteLine(x.Items.Current);

19