Паскаль. дан файл tv содержащий сведения о программах телепередач на неделю: день недели, время, канал, вид и название телепередачи. определить: есть ли передача, транслирующаяся больше одного раза в одно и тоже время, и если есть то какая?

сом38 сом38    1   23.09.2019 06:10    1

Ответы
УмныйАутист УмныйАутист  08.10.2020 11:39
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  // структура строки
  // день время канал вид название(возможно, многословное)
  // цель: удалив "канал" (третье слово), найти совпадающие строки
  var ms:=ReadAllLines('TV.txt');
  ms.PrintLines; // чтобы было понятно содержимое файла
  Writeln;
  var d:=ms.GroupBy(s->(s.ToWords[:2]+s.ToWords[3:]).JoinIntoString(' '))
      .Select(t->(t.Key,t.Count)).Where(t->t[1]>1).Select(t->t[0]);
  if d.Count=0 then Writeln('Искомые передачи отсутствуют')
  else
    foreach var s in d do begin
      var key:=s.ToWords.Take(2).JoinIntoString;
      ms.Where(t->t.ToWords.Take(2).JoinIntoString=key).Printlines;
      Writeln
      end
end.

Пример
Понедельник 09:00 Первый Новости Новости на Первом
Суббота 19:40 Первый Фильм Кин-дза-дза!
Среда Первый 07:15 НТВ Мультфильм Трое из Простоквашино
Четверг 19:40 Первый Фильм Кин-дза-дза!
Вторник 09:00 Первый Новости Новости на Первом
Понедельник 12:00 Первый Новости Новости на Первом
Пятница 16:40 Россия-1 Мультфильм Трое из Простоквашино
Суббота 19:40 Россия-1 Фильм Кин-дза-дза!
Среда 09:00 Первый Новости Новости на Первом
Четверг 09:00 Первый Новости Новости на Первом
Суббота 19:40 НТВ Фильм Кин-дза-дза!

Суббота 19:40 Первый Фильм Кин-дза-дза!
Суббота 19:40 Россия-1 Фильм Кин-дза-дза!
Суббота 19:40 НТВ Фильм Кин-дза-дза!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика