Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Копирование файлов





 

Типичная операция над файлами копирует один файл в другой. Программа CopyTwice копирует INPUT в OUTPUT через промежуточный рабочий файл Chars. Первый шаг – копирование INPUT в Chars, второй шаг – копирование Chars в OUTPUT.

 

 

DP 1

PROGRAM CopyTwice (INPUT, OUTPUT);

{Копирует символы, предшествующие # из INPUT в OUTPUT

Программа выдаст ошибку, если в INPUT отсутствует #}

VAR

Ch: CHAR;

Chars: TEXT; {Рабочийфайл}

BEGIN {CopyTwice}

{Копировать INPUT в Chars}

{Копировать Chars в OUTPUT}

END. {CopyTwice}

 

DP 1.1

BEGIN {Копировать INPUT в Chars}

REWRITE(Chars); {Готовим Chars длязаписи}

READ(INPUT, Ch);

WHILE Ch <> ‘#’

DO

BEGIN

WRITE(Chars, Ch);

READ(INPUT, Ch)

END;

WRITELN(Chars, ‘#’) {Закрыть Chars маркеромконцастроки}

END

 

DP 1.2

BEGIN {Копировать Chars в OUTPUT}

RESET(Chars); {Готовим Chars длячтения}

READ(Chars, Ch);

WHILE Ch <> ‘#’

DO

BEGIN

WRITE(OUTPUT, Ch);

READ(Chars, Ch)

END;

WRITELN(OUTPUT)

END

 

Без маркера конца входной последовательности, который DP 1.1 помещает в конец промежуточного файла, DP 1.2 не сможет остановить свое выполнение.

 

Собираем разделы проекта.

 

DP 1A

PROGRAM CopyTwice (INPUT, OUTPUT);

{Копирует символы, предшествующие # из INPUT в OUTPUT}

VAR

Ch: CHAR;

Chars: TEXT; {Рабочийфайл}

BEGIN {CopyTwice}

BEGIN {Копировать INPUT в Chars}

REWRITE(Chars); {Готовим Chars длязаписи}

READ(INPUT, Ch);

WHILE Ch <> '#'

DO

BEGIN

WRITE(Chars, Ch);

READ(INPUT, Ch)

END;

WRITELN(Chars, '#') {Закрыть Chars маркеромконцастроки}

END

BEGIN {Копировать Chars в OUTPUT}

RESET(Chars); {Готовим Chars длячтения}

READ(Chars, Ch);

WHILE Ch <> '#'

DO

BEGIN

WRITE(OUTPUT, Ch);

READ(Chars, Ch)

END;

WRITELN(OUTPUT)

END

END. {CopyTwice}

 

Выполнение:

INPUT: ABCD#

OUTPUT: ABCD

 

INPUT: 1#ABCD

OUTPUT: 1

 

INPUT: Four score and seven years ago#

OUTPUT: Four score and seven years ago

 

[восемьдесят семь лет назад]

 

Комментарий, описывающий поведение программы CopyTwice

{Копирует символы, предшествующие # из INPUT в OUTPUT

Программа выдаст ошибку, если в INPUT отсутствует #}

ничего не говорит о файлах типа CHAR. Комментарий для всей программы должен описывать ее поведение доступное извне и не вдаваться в детали реализации, поскольку он предназначен для того, кто планирует использовать программу а не разбираться как она работает. Далее комментарии освещают детали реализации. Этот обобщается в принципе написания комментариев:

 

Используйт е имена переменных в комментариях только после того как они были объявлены.

 

Соблюдающий это правило автоматически размещает информацию о том как работает программа за комментариями, предназначенными для того чтобы рассказать что она делает.

 

Частичная таблица выполнения показывает содержимое файлов во время выполнения.

 

 

После выполнения Условие INPUT OUTPUT Chars Ch
REWRITE(Chars) READ(INPUT, Ch) WHILE Ch <> ‘#’ BEGIN WRITE(Chars, Ch) READ(INPUT, Ch) END WHILE Ch <> ‘#’ BEGIN WRITE(Chars, Ch) READ(INPUT, Ch) END WHILE Ch <> ‘#’ WRITELN(Chars, '#') RESET(Chars) READ(Chars, Ch); WHILE Ch <> ‘#’ DO BEGIN WRITE(OUTPUT, Ch) READ(Chars, Ch) END WHILE Ch <> ‘#’ DO BEGIN WRITE(OUTPUT, Ch) READ(Chars, Ch) END WHILE Ch <> ‘#’ WRITELN(OUTPUT) END.     TRUE     TRUE     FALSE   TRUE   TRUE   FALSE A B# A B # A B # A B # A B # AB # AB # AB # AB # AB # AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB#_ AB# _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ A_ A_ A_ A_ A_ A_ AB_ AB_ AB_ AB_ AB/_ AB _ _ _ _ A_ A_ A_ A_ A_ AB_ AB_ AB_ AB_ AB#/_ A B#/ A B #/ A B #/ A B #/ A B #/ A B #/ AB # / AB # / AB # / AB # / AB # / AB # / AB# / AB# / AB# / AB# /   ? A A A A B B B B B # # # # # A A A A A B B B B B B # # # #  

 

Date: 2015-07-22; view: 320; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию