Путь к файлу на диске указывает, где именно (в какой папке) находится файл. Путь состоит из имени (буквы) дисковода, двоеточия и последовательности имён папок, вложенных одна в другую, в самой внутренней из которых лежит файл. Имена папок отделяются символом "обратный слеш": \
Например на диске Е есть папка Знания, в этой папке есть папка IT, в ней папка Задания, в ней папка Tasks, и в ней папка ответы. А в папке ответы лежит файл 30620535.jpg
Путь к файлу такой:
Е:\Знания\IT\Задания\Tasks\ответы
Полное имя файла состjит из пути и собственного имени файла:
Е:\Знания\IT\Задания\Tasks\ответы\30620535.jpg
Допустим, у меня операционная система Windows 10.
1} Физических дисководов два:
- первый разбит на три логических диска C:\, D:\ и F:\
- второй разбит на два логических диска G:\ и H:\
То есть всего логических дисководов 5.
2}
- имя файла состоит из собственно имени и расширения, разделённых точкой
- разрешены длинные имена файлов
- в имени файла запрещены символы \ / ? : * " > < |
- нельзя использовать системные имена CON, NUL, AUX, PRN, COM1 - COM9, LPT1 - LPT9
- разрешены имена как на английском, так и на других языках
- разрешены пробелы в имени файла
3} Путь к файлу на диске указывает, где именно (в какой папке) находится файл. Путь состоит из имени (буквы) дисковода, двоеточия и последовательности имён папок, вложенных одна в другую, в самой внутренней из которых лежит файл. Имена папок отделяются символом "обратный слеш": \
Например на диске Е есть папка Знания, в этой папке есть папка IT, в ней папка Задания, в ней папка Tasks, и в ней папка ответы. А в папке ответы лежит файл 30678346.txt
Путь к файлу такой:
Е:\Знания\IT\Задания\Tasks\ответы
Полное имя файла состjит из пути и собственного имени файла:
Е:\Знания\IT\Задания\Tasks\ответы\30678346.txt
i,lf: integer; // lf - номер первого символа отдельного слова в строке
// i - переменная цикла, для просмотра строки
begin
write('строка: '); readln(s); // считывание слова
i:=1; lf:=1; // i:=1; - текущий символ слова - первый
// lf:=1; - lf указывает на первый символ слова
repeat // цикл по строке
if s[i]=' ' then // если очередной символ строки - пробел, то
begin // начало блока операторов
if UpperCase(s[i-1])=UpperCase(s[lf]) then // если последний символ
текущего
// слова равен первому символу слова без учета регистра,
то
begin // начало блока операторов
delete(s,lf,i-lf+1); // удаляем слово вместе с пробелом справа
i:=lf; // i:=lf; - переменная i указывает на следующее слово
end // конец блока операторов
else lf:=i+1; // иначе, если первый символ слова не равен
// последнему символу слова, устанавливаем lf на
// первый символ следующего слова
end; // конец блока по условию, что очередной символ - пробел
i:=i+1; // переходим к следующему символу в строке
until >length(s); // если номер очередного символа строки больше
длины // строки, то выход из цикла по строке
// если в последнем слове текста есть совпадения
// первого и последнего символа
if s[length(s)] in ['.','?','!'] then // если текст заканчивается одним из знаков
.?!
if s[lf]=s[length(s)-1] then delete(s,lf-1,length(s)-lf+1) // сравниваем с
предпоследним
// если равны, то удаляем последнее слово
else // иначе ничего не делаем
else if s[lf]=s[length(s)] then delete(s,lf-1,length(s)-lf+2); // если последний
// символ не .?!, то сравниваем первый символ
последнего
// слова с последним символом текста, если равны,
// то удаляем последнее слово
writeln('новая строка: ',s); // выводим новую строку на экран
end. // конец программы
строка: Это озеро около заповедника.
новая строка: Это заповедника.
строка: Около этого заповедника находится озеро.
новая строка: этого заповедника находится.
строка: озеро около заповедника
новая строка: заповедника