
- •Оглавление
- •1.Введение
- •Задание на курсовую работу
- •2.3.Задание для индивидуальной работы
- •2.4.Пример выполнения задания
- •3.Итерационные циклы. Вычисление суммы бесконечного ряда
- •3.1.Подготовка к работе
- •3.2.Контрольные вопросы
- •3.3.Задание для индивидуальной работы
- •3.4.Пример выполнения задания
- •4.Обработка одномерных массивов данных
- •4.1.Подготовка к работе
- •4.2.Контрольные вопросы
- •4.3.Задание для индивидуальной работы
- •4.4.Пример выполнения задания
- •5.Использование процедур для обработки массивов
- •5.1.Подготовка к работе
- •5.2.Контрольные вопросы
- •5.3.Задание для индивидуальной работы
- •5.4.Пример выполнения задания
- •6.Строки
- •6.1.Подготовка к работе
- •6.2.Контрольные вопросы
- •6.3.Задание для индивидуальной работы
- •6.4.Пример выполнения задания
- •7.Массивы записей
- •7.1.Подготовка к работе
- •7.2.Контрольные вопросы
- •7.3.Задание для индивидуальной работы
- •7.4.Пример выполнения задания
- •8.Текстовые файлы
- •8.1.Подготовка к работе
- •8.2.Контрольные вопросы
- •8.3.Задание для индивидуальной работы
- •8.4.Пример выполнения задания
- •Библиографический список
8.4.Пример выполнения задания
Рассмотрим пример программы, которая в интерактивном диалоговом режиме обеспечивает выполнение действий по созданию, расширению и выводу текстового файла. Алгоритм программы приведен на рис. 7.1.
Рис. 7.1. Схема работы алгоритма основной программы обработки текстовых файлов.
Для того чтобы иметь возможность многократно выполнять различные действия по обработке файлов, в программе организован бесконечный цикл, выход из которого обеспечивается специальной процедурой прерывания программы. В выводимом в начале каждого шага цикла небольшом меню предлагается выбрать режим работы с файлом и в зависимости от значения введенной переменной k осуществляется создание, вывод или расширения файла.
Текст программы будет иметь следующий вид:
{Цель: создание, расширение и вывод текстовых файлов }
{Подпрограммы: obrt- чтения и вывода файла}
{ rasht – расширение файла }
{ sozdt – создание файла }
program textfiles;
uses
crt;
type
dlina=string[60];
var
ft: text; {файловая переменная }
s: dlina; {промежуточная переменная }
rej: char; {селектор режима }
filename: string[14];{имя файла }
{процедура чтения и вывода файла}
procedure obrt (var stro:text);
begin
write ('имя выводимого файла');
readln(filename);
assign(stro, filename);
{$I-}
reset (stro);
if IOResult<>0 then
begin
writeln('файл ',filename,'не существует');
exit;
end;
{$I+}
while not seekeof(stro) do
begin
readln(stro, s);
writeln(S);
end;
end;
{процедура расширения файла}
procedure rasht (var stro:text);
begin
repeat
write ('имя расширяемого файла');
readln(filename);
assign(stro, filename);
{$I-}
Append(stro);
{$I+}
until IOResult=0;
while true do
begin
writeln('введите строку');
if s='zzz' then
begin
close(stro);
exit;
end;
writeln(stro, s);
end;
end;
{процедура создания файла}
procedure sozdt (var stro:text);
begin
write ('имя создаваемого файла');
readln(filename);
assign(stro, filename);
rewrite(stro);
while true do
begin
writeln('введите строку (zzz-окончание ввода)');
readln(s);
if s='zzz' then
begin
close(stro);
exit;
end;
writeln(stro, s);
end;
end;
begin
while true do
begin
clrscr;
writeln('укажите режим');
writeln('1: создание текстового файла');
writeln('2: вывод текстового файла');
writeln('3: расширение текстового файла');
writeln('4: выход из программы');
readln(rej);
case rej of
'1': sozdt(ft);
'2': obrt(ft);
'3': rasht(ft);
'4': halt;
else writeln('повторите ввод номера');
end;
writeln('для продолжения нажмите Enter');
readln;
end;
end.