Для групповых операций с файлами используются маски имен файлов
Формулировка задания: Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: символ «?» (вопросительный знак) означает ровно один произвольный символ; символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. В каталоге находится 6 файлов. Определите, по какой из масок из них будет отобрана указанная группа файлов.
Задание входит в ЕГЭ по информатике для 11 класса под номером 4 (Базы данных. Файловая система).
Рассмотрим, как решаются подобные задания на примере.
Пример задания:
Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
- Символ «?» (вопросительный знак) означает ровно один произвольный символ.
- Символ «*» (звёздочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.
В каталоге находится 6 файлов:
door.doc
fedor.docx
msdos.doc
msdos.dat
radost.doc
rodos.docx
Определите, по какой из масок из них будет отобрана указанная группа файлов:
fedor.docx
msdos.doc
radost.doc
rodos.docx
- *?do?*.d*
- ?do*.doc
- *?do?*.do*
- *do?.doc*
Решение:
Для решения задания необходимо найти такую маску, чтобы по ней отбирались файлы
fedor.docx
msdos.doc
radost.doc
rodos.docx
И не отбирались файлы
door.doc
msdos.dat
Подходящая маска должна содержать в себе последовательность do до точки и последовательность doc после точки. Перед первой последовательностью должно быть 2 символа, после нее – 1 или несколько символов (?*). После второй последовательности могут быть символы, а могут и не быть.
Чтобы исключить имя файла «door.doc», нужно чтобы перед последовательностью do был хотя бы 1 символ, то есть нужна последовательность *? в начале. Чтобы исключить имя файла «msdos.dat», нужно чтобы после точки шла последовательность do или doc. Таким образом маска может выглядеть так:
*?do?*.doc*
Разберем каждую маску из списка и проверим, какие файлы будут отобраны:
Вариант 1
*?do?*.d* – маска похожа на ту, что мы составили самостоятельно. Все 4 файла «fedor.docx», «msdos.doc», «radost.doc», «rodos.docx» будут отобраны по ней. Однако по этой маске будет отобран и файл «msdos.dat», поэтому маска не подойдет.
Вариант 2
?do*.doc – маска не подходит, так как до последовательности do она содержит только 1 символ. Поэтому файлы «fedor.docx», «msdos.doc», «radost.doc», «rodos.docx» не будут отобраны по ней.
Вариант 3
*?do?*.do* – маска похожа на ту, что мы составили самостоятельно. Все 4 файла «fedor.docx», «msdos.doc», «radost.doc», «rodos.docx» будут отобраны по ней. При этом файлы «door.doc» и «msdos.dat» отобраны не будут. Так как перед первой последовательностью do должен быть хотя бы 1 символ, что исключает имя файла «door.doc». А вторая последовательность do исключит имя файла «msdos.dat». Значит, эта маска подойдет в качестве ответа.
Вариант 4
*do?.doc* – маска не подходит, так как после последовательности do может быть только 1 символ. Поэтому файл «radost.doc» не будет отобран по ней.
Таким образом, в качестве ответа подходит только маска номер 3.
Ответ: 3
Нашли ошибку? Выделите текст и нажмите Ctrl + Enter.
- Для групповых операций с файлами используются маски имен файлов
- Для 5 букв латинского алфавита заданы их двоичные коды
- Для передачи чисел по каналу с помехами используется код проверки четности
- Для кодирования некоторой последовательности, состоящей из букв
- Дано А и B, найдите сумму A + B
- Найти сумму двух чисел и записать результат в двоичной системе счисления
Есть другой способ решения?