Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Peter Almazov

Страницы: 1 2 [3] 4 5 ... 33
31
Общий раздел / Re: Задачка на сортировку
« : Ноябрь 27, 2013, 02:51:16 am »
Решаем на любом языке (оберон как всегда интереснее всего :)
Решение на чистом SQL (из него все пошло) тоже интересно :)
Это не сортировка, а обход дерева в ширину (горизонтальный обход).
На нормальном языке: построить дерево, обойти в ширину  :)
На SQL сводится к изучению рекурсивных извратов для конкретной реализации.

32
Общий раздел / Re: English
« : Ноябрь 14, 2013, 10:17:47 am »
Не только при чтении все понятно, но и слушать таких граждан - одно удовольствие  ;). Все понятно, до последнего слова.
В отличии от.  :)

33
Ну, то есть я могу обосновать почему в данном случае 3 лучше чем 4 и лучше чем 2.
Ну обоснуй, чем 2 пробела - плохо.
(Сам я всегда использую 2 пробела :) ).

34
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 10:25:58 am »
Как говорится, it depends.
Но лозунг "Смело смешивайте разные уровни абстракции!" я бы не поддержал  :)

35
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 09:46:14 am »
Например, есть сканер, в котором работа с потоком данных ведётся с явными блоками памяти вместо абстракции посимвольного чтения над буферизированными данными.

1. Во многих случаях ЦД - это смешение разных уровней абстракций.

36
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 10, 2013, 06:13:24 pm »
- Почему в популярны языках нет Цикла Дейкстры?
- Потому что он там нинужен

:)
Если бы Влад изначально не заморочил мозги циклом Дейкстры, то выяснилось бы, что он и в этом примере нахрен не нужен.
    static bool isReservedWorld2(string s, string words) {
      int i = 0, w = 0;
      bool prevEq = true;
      while ((w < words.Length) && (i < s.Length)) {
        if (prevEq && (words[w] == s[i])) {
          i++;
        } else if (words[w] == ' ') {
          if (prevEq) {
            i = 0;
          } else {
            prevEq = true;
          }
        } else if (prevEq) {
          prevEq = false;
          i = 0;
        }
        w++;
      }
      return i == s.Length && (w == words.Length || words[w] == ' ');
    }

37
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 03:51:13 pm »
Дык, ошибка-то есть?
Во всяком случае, я не в состоянии ее найти :)

Хотя, все зависит от того, что считать ошибкой...

38
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 12:45:36 pm »
Я считал, что отсортированы.
Иначе на каждый чих - полный проход по всем словам.
Алгоритм и без того дурацкий.

39
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 11:21:51 am »
Ага, прощёлкал. Сосредоточился на цикле, а возврат оставил как в оригинале.
Надо заменить:

return i == s.Length;
на
return i == s.Length && (w == words.Length || words[w] == ' ');

40
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 07:44:31 am »
Тесты проходят. Но он страшный. Поэтому уверенности нет. Хотелось одобрения экспертов.
Не знаю, как там эксперты, а я не одобряю.
И метод разработки (метод тыка) и результат - ужасны.
Как при таком методе получилось нечто работоспособное - для меня большая загадка.

Вот что дает осмысленное проектирование.
Кому надо, перепишет с C# на смесь JS и Оберона:
    static bool isReservedWorld(string s, string words) {
      int i = 0, w = 0;
      bool prevEq = true;
      while (true) {
        if (prevEq && (w < words.Length) && (i < s.Length) && (words[w] == s[i])) {
          w++;
          i++;
        } else if (prevEq && (w < words.Length) && (i < s.Length) && /*это избыточно*/ (words[w] != s[i])) {
          prevEq = false;
          i = 0;
        } else if (w < words.Length && !prevEq) {
          if (words[w] == ' ') {
            prevEq = true;
          }
          w++;
        } else {
          break;
        }
      }
      return i == s.Length;
    }

По поводу цикла Дейкстры - два наблюдения. Не помню, были ли они раньше.
1. Во многих случаях ЦД - это смешение разных уровней абстракций. И это плохо.
2. Во много благодаря п.1 ЦД весьма похож на реализацию конечного автомата. Только состояния здесь обычно не вводятся явно, а вычисляются из переменных на каждом шаге. Отсюда - неэффективность. Тоже плохо.

p.s. забыл отметить, что ключевые слова должны быть разделены ровно одним пробелом.

41
Пример (очень сокращённый за счёт выбрасывания чисто линых участков кода и не относящихся к исзменению состояния КА мест) примерно такой: ...
Я мало что понял из примера, не в силах продраться сквозь сишные прелести, но понял, что было бы интересно записать образцово-показательное решение этого примера. На идеальном языке, если угодно.

У меня есть конкретный вопрос.
Какой смысл в присваивании state_res = E_TW2700_FS_INIT_READ_HEADER, если за этим сразу идет state_res = -1?
_E_TW2700_FS_INIT_READ_HEADER_: 
    state_res = E_TW2700_FS_INIT_READ_HEADER;  goto _E_timedout_;
_E_timedout_:
    IDE_ready = FALSE;
    FS_ready = FALSE;
    state_res = -1;
Вообще, хорошо бы описать решаемую задачу простым текстом.

42
Общий раздел / Re: English
« : Август 28, 2013, 05:58:48 pm »
Метод Николая Замяткина Вам в помощь. Правда, этот метод на мой взгляд обладает одним недостатком, но зато в остальном он безупречен. (А курсы - это фигня).
Спасибо за наводку.
При первом взгляде упоминание "редких тибетских и других древних медитативных техник", а также длинная борода автора вызвали большие подозрения.
Но быстро выяснилось, что все нормально.

А какой недостаток? Надо ГРОМКО говорить?

43
Общий раздел / Re: Пробуем писать на O7
« : Август 27, 2013, 06:18:35 pm »
Легко:
    static int[] doCS(int[][] input, int separator) {
      int len = input.Select(m => m.Length).Sum() + input.Length - 1;
      int[] res = new int[len];
      int i = 0;
      bool first = true;
      foreach (var m in input) {
        if (first) {
          first = false;
        } else {
          res[i++] = separator;
        }
        foreach (var x in m) {
          res[i++] = x;
        }
      }
      return res;
    }

Шутка :)

44
Общий раздел / Re: Модель STA и User Interface
« : Июль 15, 2013, 05:57:51 pm »
Выход - неблокирующее IO и банальный корутины ...
А причем тут вообще корутины (сопрограммы?).
Они не работают параллельно.

45
Отношение в армии к студентам (рядовым бойцам, не офицерам) примерно такое:

"Ты кем был на гражданке? Студентом?
А теперь ты - Г О В Н О.
И будешь пить чай из алюминиевой кружки."

Если Шойгу удастся это изменить, то будет совсем не плохо.

Страницы: 1 2 [3] 4 5 ... 33