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 НТВ Фильм Кин-дза-дза!
1. Данный фрагмент сравнивает первый элемент с последующими, начиная с второго. Если какой-то из них меньше первого, то переменной "d" присваивается индекс массива. Значение: ищет наибольший элемент массива, сравнивая с первым.
ответ: 4.
2. Делает то же самое, что и первый фрагмент, только теперь ищет минимальный элемент массива по отношению первому.
ответ: 6.
3. На экране ничего не будет, так как отсутствует оператор вывода. Если предположить, что строка "Writeln(m);" пропущена и опустить синтаксические ошибки, то суть фрагмента - нахождение количества элементов, меньших 7. Таких элементов три.
ответ: 3.
4. Данный фрагмент суммирует элементы массива, у которых индекс больше 9. Это числа 21 и 27.
ответ: 48.
5. Находит минимальный элемент массива, по отношению к числу "30". Если элемент массива меньше 30, то переменной "m" присваивается элемент массива.
Внимание! Если программа не работает, обновите версию!
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 НТВ Фильм Кин-дза-дза!
ответ: 4.
2. Делает то же самое, что и первый фрагмент, только теперь ищет минимальный элемент массива по отношению первому.
ответ: 6.
3. На экране ничего не будет, так как отсутствует оператор вывода. Если предположить, что строка "Writeln(m);" пропущена и опустить синтаксические ошибки, то суть фрагмента - нахождение количества элементов, меньших 7. Таких элементов три.
ответ: 3.
4. Данный фрагмент суммирует элементы массива, у которых индекс больше 9. Это числа 21 и 27.
ответ: 48.
5. Находит минимальный элемент массива, по отношению к числу "30". Если элемент массива меньше 30, то переменной "m" присваивается элемент массива.
ответ: 19.