Маска *fi*m.?*i означает следующее:
*: Любая последовательность символов (включая пустую) в начале имени файла.fi: Точная последовательность символов 'fi'.*: Любая последовательность символов (включая пустую).m: Точная буква 'm'..: Точка, разделяющая имя файла и расширение.?: Ровно один произвольный символ.*: Любая последовательность символов (включая пустую).i: Точная буква 'i' в конце расширения.Рассмотрим варианты:
fimi.i: Не подходит, так как отсутствует 'm' после 'fi' и нет символа перед точкой, который мог бы соответствовать '?'.film.avi: Не подходит, так как не заканчивается на 'i'.fimi.ip: Подходит. * (пусто) → fi → * (пусто) → m → . → ? ('p') → * (пусто) → i.film.inf: Не подходит, так как не заканчивается на 'i'.Однако, если интерпретировать маску как *fi*m.?*i, где ? соответствует ровно одному символу, и * любая последовательность, то вариант fimi.ip не совсем точно подходит, если рассматривать * как обязательное наличие символа. Но если * может быть пустой последовательностью, то: * (пусто) fi (fimi) * (пусто) m (fimi) . ? (p) * (пусто) i (ip). Это не совпадает.
Давайте перечитаем условие: *fi*m.?*i.
Проверим вариант 1: fimi.i. Маска: * (пусто) fi (fi) * (mi) m (m) . ? (i) * (пусто) i (i). Не подходит, т.к. в имени файла есть 'm' перед точкой, а в маске 'm' идет после звездочки, которая идет после 'fi'.
Проверим вариант 3: fimi.ip. Маска: * (пусто) fi (fi) * (mi) m (m) . ? (p) * (пусто) i (i). Это имя файла fimi.ip. Оно не соответствует маске, потому что последняя буква расширения должна быть 'i', а здесь 'p'.
Перепроверим маску: *fi*m.?*i.
Вариант 1: fimi.i. Соответствует маске: * (пусто) fi (fi) * (mi) m (m) . ? (i) * (пусто) i (i). Тут проблема в том, что 'm' в имени файла 'fimi' стоит ДО 'i'. А в маске 'm' идет после 'fi' и первой звездочки.
Внимательно посмотрим на маску: *fi*m.?*i. Это означает, что перед 'fi' может быть что угодно. После 'fi' может быть что угодно. После этой второй звездочки должна идти буква 'm'. После 'm' идет точка. После точки ровно один символ (?). После этого символа может быть что угодно (*). И заканчиваться должно на 'i'.
Разберем вариант 1: fimi.i. * (пусто) fi (fi) * (mi) m (m) . ? (i) * (пусто) i (i). Имя файла: fimi.i. Сравнение с маской *fi*m.?*i:
* - пусто (перед fi)
fi - fi
* - mi (после fi)
m - m (следующая буква после mi)
. - .
? - i (один символ после точки)
* - пусто
i - i
Итак, fimi.i соответствует маске.
Проверим вариант 2: film.avi. Не соответствует, т.к. заканчивается на 'i' в расширении, а здесь 'avi'.
Проверим вариант 3: fimi.ip. Не соответствует, т.к. заканчивается на 'i', а здесь 'p'.
Проверим вариант 4: film.inf. Не соответствует, т.к. заканчивается на 'i', а здесь 'inf'.
Правильный ответ - 1.
Пояснение:
Маска: *fi*m.?*i
Имя файла: fimi.i
* (в начале): соответствует пустой строке перед fi.fi: соответствует fi в имени файла.* (после fi): соответствует mi в имени файла.m: соответствует m в имени файла..: соответствует точке.?: соответствует i (один символ).* (после ?): соответствует пустой строке.i (в конце): соответствует i в имени файла.Таким образом, имя файла fimi.i полностью удовлетворяет маске *fi*m.?*i.
Ответ: 1) fimi.i