Курсы переподготовки преподавателей по программированию 2017

Последовательности PascalABCNET 2016.pdf (304,7 КБ)

1 лайк

Я немного ошибся в примере на лекции - s.Matches возвращает последовательность Match, а не string, поэтому нужен еще один Select чтобы преобразовать его к последовательности строк:

begin
  var q := ReadLines('a1.pas').Select(s->s.Matches('\w+')).SelectMany(x->x)
           .Select(x->x.Value);
  var d := new Dictionary<string,integer>;
  foreach var x in q do
    if d.ContainsKey(x) then
      d[x] := d[x] + 1
    else d[x] := 1;  
  d.OrderByDescending(x->x.Value).Take(10).Print(NewLine);  
end.

Используя d.Get, которая возвращает либо значение, соответствующее ключу, либо 0 если ключа нет, можно записать короче:

begin
  var q := ReadLines('FreqFile.pas').Select(s->s.Matches('\w+')).SelectMany(x->x)
             .Select(x->x.Value);
  var d := new Dictionary<string,integer>;
  foreach var x in q do
    d[x] := d.Get(x) + 1;
  d.OrderByDescending(x->x.Value).Take(10).Print(NewLine);  
end.

Результат применения к тексту программы таков :

(x,9)
(d,4)
(var,3)
(q,2)
(Select,2)
(s,2)
(Value,2)
(begin,1)
(ReadLines,1)
(FreqFile,1)

Я говорил, что можно поменять источник строк - взять файл в Интернете. Вот, в сети лежит текст Войны и мира, пропустим его через нашу программу:

begin
  var w := new System.Net.WebClient();
  var ss := w.DownloadString('http://vojnaimir.ru/files/book1.txt');

  var q := ss.MatchValues('\w+');
  var d := new Dictionary<string,integer>;
  foreach var x in q do
    d[x] := d.Get(x) + 1;
  d.OrderByDescending(x->x.Value).Take(20).Print(NewLine);  
end.

Результат:

(и,10137)
(в,4863)
(не,4221)
(что,3652)
(на,3200)
(с,3025)
(он,3017)
(как,1913)
(его,1876)
(к,1778)
(то,1606)
(я,1354)
(она,1195)
(сказал,1145)
(было,1137)
(это,1030)
(за,961)
(так,952)
(но,949)
(ее,897)

Если захотим взять только собственные имена, то поставим фильтр: слово с большой буквы и длины не менее 4:

  var q := ss.MatchValues('\w+').Where(s->s[1].IsUpper and (s.Length>3));

Результат:

(Пьер,620)
(Андрей,593)
(Наташа,501)
(Ростов,432)
(Князь,316)
(Николай,241)
(Марья,237)
(Соня,200)
(Пьера,187)
(Анна,184)
(Долохов,156)
(Денисов,154)
(Борис,152)
(Андрея,151)
(Василий,139)
(Анатоль,137)
(Ростова,121)
(Когда,112)
(Элен,110)
(Пьеру,107)
4 лайка

5 сообщений перенесены в новую тему: GetHashCode для слияния имен

Опубликована Лекция 8. https://youtu.be/lE05l_RYqsc

2 лайка

Опубликована Лекция 9. https://youtu.be/AjtBMQ26YPc Объектно-ориентированное программирование - всё, сразу, быстро, сжато, нечётко, с ошибками.

В числе прочих вопросов освещены:

  • Как неправильно пишется Барбара Лискоу на английском
  • Какие принципы SOLID нарушает нагрузка преподавателя ЮФУ
  • Что общего у студента и математической точки
  • Почему нас окружают интерфейсы и почему мы их не замечаем в реальной жизни
  • Что есть на самом деле sequence of T
3 лайка

Это последняя была?

Да

Все хорошее когда-то заканчивается…

1 лайк

Начинается новый цикл лекций по второй части курса 6.04 и 7.04 с 10.00 до 13.00 в ауд. 206

Видео тоже будет или как выше было написано, “все хорошее” действительно закончилось? ))

Вряд ли “всё хорошее” заключается в наличии видео )

Попробовали писать, пока на планшет. Что получилось, ещё не смотрела. Если запись приемлема, выложу. Обещали камеру ). Хорошо бы ещё штатив

Как ни странно, но для тех, кто не может по той или иной причине присутствовать на Ваших лекциях, “все хорошее” - это именно их видеозапись.

Часть 2. Лекция1 https://youtu.be/-pzmLssBcVE Лекция1. Продолжение https://youtu.be/-pzmLssBcVE

2 лайка

A у меня видео не открывается :frowning:

Попробую посмотреть, в чем дело. Но позже

Ссылки “не туда”. Сравните их вид со ссылками, которые давал @Admin Ваши ведут к менеджеру для создания канала.

1 лайк

Ссылки исправлю вечером. В связи с тем, что прошла только одна практика, решили лекцию с сегодня перенести на следующий понедельник

Исправила

А это обещанная Шпаргалка по синтаксису.pdf (59,0 КБ)

2 лайка

Опубликованы лекции 2 и 3 Лекция2. Часть1 https://youtu.be/rMq_ZJ6zH4k Лекция2. Часть2 https://youtu.be/4ft-ta2qN3g Лекция2. Часть3 https://youtu.be/7sIoEoxgDBw Лекция2. Часть4 https://youtu.be/fn1P2a9Dla4 Лекция3. Часть1 https://youtu.be/ewMdpgUGxKk Лекция3. Часть2 https://youtu.be/aGB3OfL8Khg Лекция3. Часть3 https://youtu.be/HeQuStsYgIU Лекция3. Часть4 https://youtu.be/zSn53mkRttc

2 лайка