Информатика: Новый полный справочник для подготовки к ЕГЭ - 2018 год
Файловая система ПК - Архитектура компьютеров и компьютерных сетей
Конспект
Пример типовой древовидной структуры файловой системы, принятой в ОС MS-DOS и Windows (используемой в задачах ЕГЭ):
Путь к файлу — запись, начинающаяся меткой диска и содержащая имена всех папок, которые нужно одну за другой раскрыть, чтобы кратчайшим способом прийти к файлу.
Полное имя файла — запись пути к файлу, завершаемая именем и расширением этого файла.
В ОС Windows записи пути и полного имени файла метка диска, имена каталогов и имя файла разделяются символом обратной косой черты — “\”. В ОС Linux записи пути и полного имени файла аналогичны, но в качестве символа-разделителя используется символ “/”.
Например, для файловой структуры в ОС Windows, изображённой на рисунке выше:
• путь к файлу Рефератl.doc — С:\Документы\Рефераты (показан пунктирной стрелкой);
• полное имя файла Реферат1.dос — С:\Документы\Рефераты\Реферат1.doc.
Маска (шаблон) имени файла — запись, обозначающая группу файлов, имена которых отвечают заданным в этой маске требованиям. Маска обычно используется в качестве фильтра, чтобы выделить (или отобрать для выборочного показа в списке содержимого папки) файлы с нужными именами (и/или расширениями имени) и отсеять ненужные.
Символы-шаблоны — специальные символы-“джокеры”, обозначающие один или несколько любых символов:
• символ “*” (звёздочка) — заменяет собой любое количество любых символов (в том числе нулевое количество — этих символов может не быть вовсе);
• символ “?” (знак вопроса) — заменяет один (и только один) обязательно стоящий в данном месте любой символ.
Маска может содержать как обычные символы (буквы, цифры и прочие знаки, допустимые в именах файлов), так и символы-шаблоны.
Примеры:
*.* — все файлы (т.е. файлы с любым именем и любым расширением);
*.doc — все файлы с любыми именами и расширением doc;
text??.txt — все файлы, имена которых начинаются с букв text и завершаются обязательно имеющимися двумя любыми символами, а расширение которых — txt (например, это могут быть файлы
Важное различие!
Символ “*” обозначает любое количество любых символов, в том числе нулевое (т.е. когда символов нет вообще).
Символ “?” обозначает один, и только один любой символ; несколько символов “?” подряд обозначают ровно такое же количество любых символов (например, ??? — ровно три любых символа, не больше и не меньше).
Чтобы задать количество любых символов, не меньшее заданного, нужно использовать оба указанных символа-шаблона, когда символы “?” задают минимально допустимое число символов, а последующий символ “*” указывает, что символов может быть и больше. Например, маска ???* означает запись, содержащую не менее трёх любых символов (три обязательных — ??? и любое количество, в том числе нулевое, необязательных — *).
Разбор типовых задач
Задача 1. Для групповых операций с файлами используются маски имён файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
символ “?” (вопросительный знак) означает ровно один произвольный символ;
символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.
Определите, какое из указанных имен файлов удовлетворяет маске:
Решение
Запись ?ba*r.?xt означает, что ищутся файлы, в имени которых:
• пара символов “bа” обязательно записаны на втором и третьем месте имени файла, а перед ними обязательно стоит один любой символ — в маске он закодирован знаком “?”;
• после символов “bа” может идти любое количество символов (знак “*”), но имя обязательно завершается буквой “r”;
• расширение имени всегда состоит из трёх символов, из которых два последние — “xt”.
Анализируя приведённые в качестве вариантов ответа имена файлов на соответствие этим требованиям получается:
1) bar.txt — здесь перед символами “bа” отсутствует символ (который закодирован знаком “?”) — данный вариант не подходит;
2) obar.txt — перед символами “bа” имеется символ “о”, имя завершается символом “r” (знак “*” может означать и отсутствие символов!), расширение имени состоит из трёх букв и завершается парой символов “xt” — данный вариант ответа годится;
3) obar.xt — хотя структура имени соответствует заданной маске (см. выше), расширение имени здесь двузначно, т.е. данное имя файла не соответствует маске;
4) barr.txt — перед символами “bа” отсутствует символ (который закодирован знаком “?”) — данный вариант не подходит.
Таким образом, указанной маске соответствует только имя файла obar.txt.
Ответ: obar.txt (вариант № 2).
Задача 2. Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
• символ “?” (вопросительный знак) означает ровно один произвольный символ;
• символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.
Определите, по какой из масок будет выбрана указанная группа файлов:
Решение
Принцип решения данной задачи состоит в поочередной проверке каждой из предложенных масок (в вариантах ответа) на соответствие указанным именам файлов.
1. Маска *23*.?х*. Предполагает, что имя файла обязательно содержит цифры 23, до и после которых может быть любое количество других символов (но их может и не быть!). В расширении же имени файла обязательно имеется символ “х”, перед которым обязательно есть какой-то символ, а после него может (но необязательно) быть любое число символов.
Этой маске не соответствует ни один из заданных файлов, так как в расширениях их имён символ “х” стоит первым, а не вторым. Следовательно, данная маска не является решением задачи.
2. Маска ?23?.х??. Предполагает, что в имени файла перед и после цифр 23 обязательно есть по одному какому-то символу (знаки “?” в маске), а в расширении имени символ “х” обязательно стоит самым первым и после него обязательно есть ещё два каких-то символа.
Этой маске не соответствуют имена файлов 23.xml и 234.xls, так как в них не обеспечено наличие по одному символу до и после цифр 23. Следовательно, данная маска также не является решением задачи.
3. Маска ?23?.х*. Предполагает, что в имени файла перед и после цифр 23 обязательно есть по одному какому-то символу (знаки “?” в маске), а в расширении имени символ “х” обязательно стоит самым первым и после него могут (но не обязательно) стоять какие-то другие символы.
Этой маске (как и предыдущей) не соответствуют имена файлов 23.xml и 234.xls, так как в них не обеспечено наличие по одному символу до и после цифр 23. Следовательно, данная маска тоже не является решением задачи.
4. Маска *23*.???. Предполагает, что имя файла обязательно содержит цифры 23, до и после которых может быть любое количество других символов (но их может и не быть!). В расширении имени обязательно должно быть три любых символа (не больше и не меньше).
Этой маске полностью соответствуют все заданные файлы. Следовательно, данная маска является решением задачи.
Ответ: маска *23*.??? (вариант № 4).
Задача 3. Для групповых операций с файлами используются маски имён файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
Символ “?” (вопросительный знак) означает ровно один произвольный символ.
Символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.
В каталоге находится 6 файлов:
maverick.map
maverick.mp3
tavema.mp4
revolver.mp4
vera.mp3
zveri.mp3
Ниже представлено восемь масок. Сколько из них таких, которым соответствуют ровно три файла из данного каталога?
*ver*.mp* |
*?ver?*.mp? |
?*ver*.mp?* |
*v*r*7.m?p* |
???*???.mp* |
???*???.m* |
*а*.*а* |
*а*.*р* |
Решение
Принцип решения задачи: “примерка” каждой маски к именам файлов и определение количества файлов, соответствующих маске. Маска, для которой будет отобрано ровно три файла (или маски), — и есть ответ.
1) Маска *ver*.mp* предполагает, что где-то в имени файла содержится набор символов ver, а расширение начинается с символов mр. Значит, такая маска отберёт файлы maverick.mp3, taverna.mp4, revolver.mp4, vera.mp3, zveri.mp3 — всего 5 файлов. Значит, эта маска нам не годится.
2) Маска *?ver?*.mp? отличается от предыдущей тем, что до и после символов ver обязательно должны стоять минимум по одному символу, а в расширении после символов mр может быть только один символ. Значит, такая маска отберет файлы maverick.mp3, tavema.mp4 и zveri.mp3 (а имена revolver.mp4 и vera.mp3 не удовлетворяют этой маске, так как в них группа символов ver располагается с краю имён). Всего 3 файла. Значит, эта маска подходит.
3) Маска ?*ver*.mp?* — минимум один символ должен быть перед ver, а в расширении после mр должно быть не менее одного символа. Такая маска отберёт файлы maverick.mp3, taverna.mp4, revolver.mp4 и zveri.mp3 — 4 файла. Данная маска не годится.
4) Маска *v*r*?.m?p* — не обращая внимания на маску имени, заметим: в расширении между m и р должен СТОЯТЬ хотя бы один какой-то символ. А у нас этому условию соответствует единственный файл maverick.map. Значит, эта маска тоже не годится.
5) Маска ???*???.mр* — ей удовлетворяют файлы с любыми именами не менее чем из 6 букв и с расширениями, начинающимися с mр. Значит, будут отобраны файлы maverick.mp3, taverna.mp4 и revolver.mp4 (у файлов vera.mp3 и zveri.mp3 имена слишком короткие, а расширение файла maverick.map не соответствует расширению в маске). Значит, данная маска тоже подходит.
6) Маска ???*???.m* — отличается от предыдущей тем, что здесь расширение может быть любым, лишь бы оно начиналось с т. Тогда в дополнение к файлам maverick.mp3, taverna.mp4 и revolver.mp4 в подборку попадёт и файл maverick.map. Всего 4 файла. Значит, эта маска не годится.
7) Маска *а*.*а* — соответствует любым файлам, у которых и в имени, и в расширении есть хотя бы одна буква а. Этому условию соответствует только один файл — maverick.map. Значит, эта маска тоже не годится.
8) Маска *а*.*р* — здесь в имени требуется хотя бы одна буква а, а в расширении — хотя бы одна буква р. Этому условию соответствуют файлы: maverick.map, maverick.mp3, taverna.mp4 и vera.mp3. В этой подборке 4 файла, значит, данная маска тоже не годится.
Итого нам подошло две маски — *?ver?*.mp? и ???*???.mр*.
Ответ: 2.