Слайд 1О файлах и файловых структурах
Подготовил:
учитель информатики и ИКТ
Ризванов З.З.
Слайд 2Ключевые слова
Файл
Файловая система
Каталог
Иерархия
Слайд 3Дайте определение ФАЙЛ?
Файл – это информация, хранящаяся на внешнем носителе
и объединенная общим именем.
Файл – это поименованная область внешней памяти.
Слайд 4Что значит понятие ФАЙЛОВАЯ СИСТЕМА?
Файловая система - это функциональная часть
ОС, обеспечивающая выполнение операций над файлами.
Слайд 5Что должно быть известно пользователю, чтобы найти нужный файл?
Какое имя
у файла
Где хранится файл
Слайд 6Что такое КАТАЛОГ?
Какой каталог называется корневым?
Каталог – это поименованная
совокупность файлов и подкаталогов (вложенных каталогов).
Каталог самого верхнего уровня
называется корневым каталогом.
Слайд 7Как называется графическое изображение иерархической файловой структуры?
Графическое изображение иерархической структуры
называется деревом.
Слайд 8Графическое изображение иерархической файловой структуры
Слайд 9Определите, какое из указанных имен файлов удовлетворяет маске: ?hel*lo.c?*
hello.c
hello.cpp
hhelolo.cpp
hhelolo.c
Правильный ответ: 3
Задание 1.
Слайд 10Возможные ловушки и проблемы:
можно забыть, что звездочка «*» может соответствовать
и пустой последовательности; например, в рассмотренной задаче имя «hhelolo.cp» также
соответствует маске
можно забыть, что знак «?» НЕ может соответствовать пустой последовательности, а заменяет ровно 1 символ
Слайд 11Перемещаясь из одного каталога в другой, пользователь последовательно посетил каталоги
DOC, USER, SCHOOL, A:\, LETTER, INBOX. При каждом перемещении пользователь
либо спускался в каталог на уровень ниже, либо поднимался на уровень выше. Каково полное имя каталога, из которого начал перемещение пользователь?
1) A:\DOC
2) A:\LETTER\INBOX
3) А:\SCHOOL\USER\DOC
4) А:\DOC\USER\SCHOOL
Задание 2.
Слайд 12Решение:
1) сразу отметим, что здесь предполагается, что пользователь не переходил
на другой диск;
2) в задачах, где нужно определить полный адрес
файла или каталога, нужно начинать с поиска имени диска, в данном случае каталог находится на диске A:\
3) поскольку в списке посещенных каталогов перед A:\ стоит SCHOOL, пользователь мог попасть в корень диска A:\ только через каталог SCHOOL, поэтому адрес стартового каталога начинается с A:\SCHOOL
4) так как среди предложенных вариантов только один удовлетворяет этому условию, можно остановиться (правильный ответ – 3), однако, давайте все же доведем процедуру до конца, это позволит выяснить некоторые интересные моменты, которые не сработали здесь, но могут сработать в других задачах
5) как пользователь попал в каталог SCHOOL? по условию он мог как подниматься, так и спускаться по дереву каталогов
6) явно он не мог спуститься из USER в SCHOOL, потому что SCHOOL находится в корневом каталоге и каждый каталог имеет только одного «родителя»; значит, пользователь поднялся из USER в SCHOOL, и начальная часть полного адреса А:\SCHOOL\USER
7) аналогично можно доказать, что пользователь поднялся в каталог USER из каталога DOC
Слайд 13Возможные ловушки и проблемы
можно забыть, что названия каталогов в
полном имени перечисляются в порядке входа в них, начиная от
корневого; пользователь выходил из каталогов, поднимаясь к корню диска A:\, поэтому проходил каталоги в обратном порядке (на эту ошибку рассчитан неверный ответ А:\DOC\USER\SCHOOL)
можно перепутать каталог, из которого вышел пользователь, и каталог, где он в конечном счете оказался (на эту ошибку рассчитан неверный ответ А:\LETTER\INBOX)
в условии есть лишние данные, которые только запутывают дело; например, имена каталогов LETTER, INBOX никак не влияют на ответ, потому что пользователь попал в них уже после выхода в корневой каталог диска A:\, то есть, пройдя весь путь исходного каталога в обратном порядке
Слайд 14Каталог содержит файлы с именами
q.c
qq.cpp
qq.c
q1.c1
qaa.cmd
q12.cpp
Определите, в каком порядке будут показаны
файлы, если выбрана сортировка по типу (по возрастанию).
134526
134562
123456
135264
Задание 3.
Слайд 15Решение:
1) при сортировке по типу сравниваются расширения имен файлов
2) при
сравнении используют коды символов
3) отсутствие символа (когда расширение закончилось) считается
«меньше» любого символа, то есть, файл с расширением .с будет находиться в списке выше, чем файлы с расширениями .c1 и .cmd
4) коды цифр размещаются в таблице символов раньше, чем коды букв, то есть, файл с расширением .с1 будет находиться в списке выше, чем файл с расширением .сmd
5) теперь можно распределить имена файлов по расширениям
а) q.c
в) qq.c
г) q1.c1
д) qaa.cmd
б) qq.cpp
е) q12.cpp
Слайд 16Решение:
6) осталась еще одна проблема – решить, что делать, если
расширения совпадают; в этом случае в большинстве программ для определенности
используется дополнительная сортировка по имени, поэтому файл с именем q12.cpp будет стоять в списке выше, чем файл qq.cpp (код цифры ‘1' меньше, чем код буквы ‘q’) в итоге получаем:
а) q.c
в) qq.c
г) q1.c1
д) qaa.cmd
е) q12.cpp
б) qq.cpp
7) таким образом, мы доказали, что правильный ответ – 2.
Слайд 17Возможные ловушки и проблемы:
можно забыть правильно расставить имена файлов с
одинаковыми расширениями (неверный ответ 1)
нельзя сравнивать числовые значения: например, интуитивно
кажется, что файл с расширением .c10 «больше», чем файл с расширением .c2, однако это неверно, потому что код цифры '2' больше, чем код цифры '1’; поэтому файл с расширением .c10 будет стоять в списке выше файла с расширением .c2 (при сортировке по типу в порядке возрастания)
можно забыть, что отсутствие кода (имя или расширение закончилось) «меньше» любого кода
можно забыть, что коды цифр меньше, чем коды букв
Слайд 18Для групповых операций с файлами используются маски имен файлов. Маска
представляет собой последовательность букв, цифр и прочих допустимых в именах
файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, по какой из масок будет выбрана указанная группа файлов:
*23*.?x*
?23?.x??
?23?.x*
*23*.???
Задание 4.
Слайд 19Решение:
рассмотрим первую маску *23*.?x*: она требует, чтобы в имени файла
были стоящие подряд цифры 23 (это есть у всех заданных
файлов) и в расширении слева от буквы «x» был один обязательный символ (ни одно имя файла не подходит); поэтому вариант 1 неверный
рассмотрим вторую маску ?23?.x??: она требует, чтобы в имени файла слева и справа от цифр 23 стояло по одному символу (подходит только для первого имени файла, для остальных не подходит); поэтому вариант 2 неверный
рассмотрим третью маску ?23?.x*: она не подходит по тем же причинам, что и вариант 2
рассмотрим последнюю маску *23*.???: она требует, чтобы в имени файла были стоящие подряд цифры 23 (это есть у всех заданных файлов) и в расширении было ровно три обязательных символа (это тоже верно для всех имен файлов); поэтому вариант 4 верный
таким образом, мы доказали, что правильный ответ – 4.
Слайд 20Домашнее задание
§11. О файлах и файловых структурах. Прочитать, ответить на
вопросы.