1. Текстовый файл преобразовать в файл целого типа следующим образом: гласные буквы заменить на число 0, согласные буквы на число 1, а все остальные символы – на число 2. Подсчитать количество согласных букв. Если в текстовом файле согласных не обнаружено, выдайте на экран соответствующее сообщение. В программе используйте способы обработки нетипизированного файла и подпрограммы.
2. Текстовый файл преобразовать в файл символьного типа, игнорируя символы, не являющиеся буквой. Если в текстовом файле букв не обнаружено, выдайте на экран соответствующее сообщение. В программе используйте способы обработки нетипизированного файла и подпрограммы.
3 Текстовый файл преобразовать в файл строкового типа, игнорируя пустые строки. В каждой строке файла, являющимся результатом выполнения программы, должно быть одно предложение. Если в текстовом файле предложений не обнаружено, выдайте на экран соответствующее сообщение. В программе используйте способы обработки нетипизированного файла и подпрограммы.
4. Текстовый файл, содержащий числовую информацию преобразовать в файл целого типа. Каждый элемент типизированного файла должен содержать цифру. В программе используйте способы обработки нетипизированного файла и подпрограммы.
5. Текстовый файл, содержащий числовую и текстовую информацию преобразовать в файл целого и символьного типа. Каждый элемент типизированного файла должен содержать цифру или символ. Если в текстовом файле числовой или текстовой информации не обнаружено, выдайте на экран соответствующее сообщение. В программе используйте способы обработки нетипизированного файла и подпрограммы.
6. Из текстового файла выделить числовую информацию и поместить ее в файл целого типа. Каждый элемент типизированного файла должен содержать цифру. Если в текстовом файле числовой информации не обнаружено, выдайте на экран соответствующее сообщение. В программе используйте способы обработки нетипизированного файла и подпрограммы.
7. Создайте текстовый файл, содержащий фамилии, имена и отчества сотрудников некоторого предприятия. Преобразуйте этот текстовый файл в файл комбинированного типа. Каждый элемент типизированного файла должен содержать фамилию, имя и отчество одного сотрудника. В программе используйте способы обработки нетипизированного файла и подпрограммы.
8. Создайте текстовый файл, каждая строка которого содержала бы фамилию, имя, отчество сотрудника некоторого предприятия и его оклад. Преобразуйте этот текстовый файл в файл комбинированного типа. Найдите в полученном файле сотрудника с самым высоким окладом. В программе используйте способы обработки нетипизированного файла и подпрограммы.
9. Создайте текстовый файл, каждая строка которого содержала бы наименование товара некоторого предприятия и его цену. Преобразуйте этот текстовый файл в файл комбинированного типа. Найдите в полученном файле самый дорогой и самый дешевый товар. В программе используйте способы обработки нетипизированного файла и подпрограммы.
10. Познакомившись с содержанием предыдущих задач придумайте свою интересную задачу и решите ее.
Занятие 5. Примеры решения творческих задач
Рассмотрите решение творческих заданий учащихся. Наберите программы на компьютере и просмотрите их действие. Подумайте, как ребятам удалось придумать и выполнить такие работы. Эти программы помогут Вам определиться с выбором своей творческой работы.
Задача № 1. С помощью нетипизированного файла проанализировать файлы с расширением .mp3 в заданном пользователем каталоге и создать текстовый файл, содержащий следующую информацию: название песни, исполнитель, имя файла.
Program SedihGetTag;
{$I-}
Uses
Crt;
Var
f : file;
c : char;
S : string;
i : LongInt;
DirInfo : seachrec;
Txt : text;
Procedure Extract;
Begin
assign(f, DirInfo.name);
reset(f, 1); {размер буфера записи равен 1 байту}
l := FileSize(f); {переменной l присваиваем размер файла в байтах}
Seek(f, l-125); {ставим указатель, на 125 символов отступив от конца файла}
{вычислил сам, проанализировав файл данного типа}
while not Eof(f) do
Begin
blockread(f, c, 1); {читаем посимвольно}
S := S + c; {формируем строковую переменную, содержащую нужный тэг}
PicSize := AllSize-Kol; {размер всего файла без описания}
HalfSize := PicSize div 2; {половина файла}
blockread(F1, Buf, Kol);
blockwrite(F2, Buf, Kol);
seek(F1, Kol+HalfSize-1);
for i := 1 to HalfSize div n do
begin
blockread(F1, Buf, n); {считываем и записываем из середины файла}
blockwrite(F2, Buf, n);
End;
blockread(F1, Buf, HalfSize mod n); {переписываем оставшиеся байты из не полностью заполненного буфера}
blockwrite(F2, Buf, HalfSize mod n);
Seek(F1, Kol-1);
blockread(F1, Buf, HalfSize mod n);
blockwrite(F2, Buf, HalfSize mod n);
close(F1);
close(F2);
end;
End.
Задание. Выбрав какую-либо категорию файлов, проанализировать их в своей программе, пользуясь возможностями обработки нетипизированного файла, и решить некоторую поставленную Вами задачу. Протестированную программу и листинг покажите учителю для оценки.
Приготовьте рабочие программы и оцененные листинги для проверки учителем.
Проверьте свои знания по теме, ответив на следующие вопросы:
1. Дайте определение нетипизированному файлу.
2. В чем Вы видите преимущества и недостатки работы с нетипизированными файлами по сравнению с типизированными и текстовыви файлами?
3. Объясните назначение параметров специфических для нетипизированных файлов процедур чтения и записи.
4. Какой вид файлов из рассмотренных выше Вам понравился больше и почему?
5. Объясните назначение процедур Аssign, Сlosе, Eof и их параметров.
6. В чем особенность применения процедуры rewrite и какой дополнительный параметр при работе с нетипизированными файлами она имеет?
7. В чем особенность применения процедуры reset и какой дополнительный параметр при работе с нетипизированными файлами она имеет?
8. Объясните назначение процедур Seek, FileSize, FilePos и их параметров.
9. Объясните назначение процедур rename, Truncate, Еrase и их параметров.
10. Расскажите как Вы работали над творческим заданием.