План лекций по курсу ОП 2008/09 — весенний семестр — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Ошибки ввода-вывода при работе с файлами) |
Admin (обсуждение | вклад) (→Лекция 2 ( 18.02.09 )) |
||
Строка 41: | Строка 41: | ||
==Лекция 2 ( 18.02.09 ) == | ==Лекция 2 ( 18.02.09 ) == | ||
+ | |||
+ | ===Подпрограммы для работы с типизированными файлами | ||
+ | Truncate | ||
+ | FileSize | ||
+ | FilePos | ||
+ | Seek | ||
+ | |||
+ | Варианты использования: | ||
+ | Seek(FileSize(f)) - переместить файловый указатель за конец файла (Eof(f)=True) | ||
+ | Seek(FilePos(f)-1) - вернуться на 1 позицию назад | ||
+ | |||
+ | Пример 1. Добавление 0 в конец файла | ||
+ | |||
+ | Пример 2. Возведение всех элементов файла в квадрат. | ||
+ | |||
+ | Пример 3. Использование в базах данных - перевод Иванова в 10 группу в виде наказания | ||
+ | |||
+ | Пример 4. Сортировка файла | ||
+ | |||
+ | <source lang="Pascal"> | ||
+ | for var i:=FileSize(f)-1 downto 1 do | ||
+ | for var j:=0 to i-1 do | ||
+ | begin | ||
+ | Seek(f,j); | ||
+ | read(f,x,y); | ||
+ | if x>y then | ||
+ | begin | ||
+ | Seek(f,j); | ||
+ | write(f,y,x); | ||
+ | end; | ||
+ | end; | ||
+ | </source> | ||
==Лекция 3 ( 24.02.09 ) == | ==Лекция 3 ( 24.02.09 ) == |
Версия 22:21, 17 февраля 2009
Содержание
- 1 Лекция 1 ( 17.02.09 )
- 2 Файлы
- 3 Лекция 2 ( 18.02.09 )
- 4 Лекция 3 ( 24.02.09 )
- 5 Лекция 4 ( .09 )
- 6 Лекция 5 ( .09 )
- 7 Лекция 6 ( .09 )
- 8 Лекция 7 ( .09 )
- 9 Лекция 8 ( .09 )
- 10 Лекция 9 ( .09 )
- 11 Лекция 10 ( .09 )
- 12 Лекция 11 ( .09 )
- 13 Лекция 12 ( .09 )
- 14 Лекция 13 ( .09 )
- 15 Лекция 14 ( .09 )
- 16 Лекция 15 ( .09 )
Лекция 1 ( 17.02.09 )
Файлы
Введение
Определение. Преимущества файлов.
Классификация файлов
- по типу компонент (текстовые, двоичные (типизированные,бестиповые))
- по способу доступа (последовательный, произвольный)
Понятие файловой переменной, файлового указателя Буферизация в файлах
Подпрограммы для работы с закрытыми файлами
procedure Rename(f, name); procedure Erase(f); function FileExists(name): boolean; function DeleteFile(name): boolean; function RemoveDir(name): boolean; function GetCurrentDir: string; function SetCurrentDir(name): boolean; function CreateDir(name): boolean; function ExtractFileName(name): string; function ExtractFileExt(name): string; function ExtractFilePath(name): string;
Ошибки ввода-вывода при работе с файлами
- файл открыли, но забыли выполнить Assign
- открыли, но файла нет на диске (или нет прав доступа на чтение)
- попытка считывания за концом файла
Пример. Попытка считывания за концом файла.
Assign(f,'a.dat');
try
Reset(f);
try
read(f,x);
finally
Close(f);
end;
except
writeln('Произошла ошибка ввода-вывода');
end;
Лекция 2 ( 18.02.09 )
===Подпрограммы для работы с типизированными файлами
Truncate FileSize FilePos Seek
Варианты использования:
Seek(FileSize(f)) - переместить файловый указатель за конец файла (Eof(f)=True) Seek(FilePos(f)-1) - вернуться на 1 позицию назад
Пример 1. Добавление 0 в конец файла
Пример 2. Возведение всех элементов файла в квадрат.
Пример 3. Использование в базах данных - перевод Иванова в 10 группу в виде наказания
Пример 4. Сортировка файла
for var i:=FileSize(f)-1 downto 1 do
for var j:=0 to i-1 do
begin
Seek(f,j);
read(f,x,y);
if x>y then
begin
Seek(f,j);
write(f,y,x);
end;
end;