Пример выполнения задания

Рассмотрим пример программы, которая в интерактивном диалоговом режиме обеспечивает выполнение действий по созданию, расширению и выводу текстового файла. Алгоритм программы приведен на рис. 7.1.

да
нет
Начало
Вывод меню
true
k
Конец
Ввод k
создание
выход
расширение
вывод

Рис. 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.

 



БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

1. Т. Кормен, Ч. Лейзерсон, Р. Ривест Алгоритмы: построение и анализ. М.: МЦНМО, 1999. – 960 с.

2. Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман Структуры данных и алгоритмы. М.: Вильямс, 2000 г. – 386 с.

3. Д. Кнут. Искусство программирования для ЭВМ. Т.3. Сортировка и поиск. М.: Мир, 1978 г., переиздание - М.: Вильямс, 2000 г. – 800 с.

4. Д. Кнут. Искусство программирования для ЭВМ. Т.1. Основные алгоритмы. М.: Мир, 1976 г., переиздание - М.: Вильямс, 2000 г. – 682 с.пер

5. Никлаус Вирт Алгоритмы и структуры данных. СПб.: Невский диалект, 2007.–352 с.

6. Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Построение и анализ вычислительных алгоритмов. М., Мир, 1979. – 536 с.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: