Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Основы программирования и алгоритмические языки [23].DOC
Скачиваний:
36
Добавлен:
02.05.2014
Размер:
612.86 Кб
Скачать

Описание главной программы

  1. В цикле REPEAT ... UNTILочищается экран (ClrScr), выводится на экран вид исходного задания, через процедуруInputText вводится последовательность Str, далее из последовательности Strвыделяются слова Word, вычисляется их количество fи логический признак успешного решения задачи Flag (процедураText_Words (Str, Word, f, Flag)).

  1. Еслизначение признакаFlag равноTRUE, то выводится результат: выделенные из последовательности слова Wordи те из них, которые удовлетворяют условию задачи (процедураReport (f, Word)).

  2. Еслизначение функции Flag равноFalse, то управление передается на пункт 2 для повторного решения задачи.

  1. На экране появляется ‘Опять? (Y/N)’.

  2. Переменной присваивается ch:=ReadKeyи в зависимости от ответа управление передается на начало цикла (ch:=Y’) или программа заканчивает выполнение(ch:= ‘N’).

Приложение 3 пример выполнения контрольной работы № 7

Прежде, чем анализировать листинг программы Work7.pas, нужно ознакомиться с основными понятиями ввода-вывода (см. П4.2. - модуль SYSTEM) и текстовыми файлами (см. П.4.2.2), а также с процедурами обработки файлов (см. П5.2.4. - модульDOS).

До этого контрольного задания мы работали со стандартными текстовыми файлами INPUTи OUTPUT(клавиатура и дисплей) - см. П.4.2.1. Обработка дисковых текстовых файлов практически ничем не отличается (те же операторы Read, Readln, Write, Writeln), но при этом может возрасти объем перерабатываемой информации и, кроме того, необходимо указывать внешние (файловые) имена при открытии файлов (стандартные процедурыAssign, Reset, Rewrite). Чтобы информация не исчезла, внешние файлы нужно всегда закрывать (стандартная процедураClose).

Логическая структура программы изменена и имеет следующий вид:

Главная программа

WORK7.pas

Очистка экрана ClrScr

Ввод последовательности из файла F1и вывод результата в файлF2 -Evaluate(F1,F2)

Чтение символа ReadKey

Инициализация файлов F1,F2

AssignFile(F1,F2,InName)

Выделение из последовательности StrсловWordи анализ их длины

Text_Words(Str,Word,f,Flag,F2)

Отбор нужных слов

Report(f,Word,F2)

Выдача всех файлов

в текущей

директории

Control

Анализ количества

полученных слов

Control

Алгоритм решения задачи контрольной работы № 7 практически ничемНЕ отличаетсяот алгоритма предыдущей работы. Но теперьпоследовательность может состоять из нескольких предложений, в которые входятлюбые буквы и символы- см. тестовые примеры. Мы читаем эти предложения из текстового файла, логическое имя которого F1, а физическое (внешнее) - вводится с клавиатуры и запоминается в переменной InName(этот файл должен существовать на диске). Предложения анализируются на предмет соответствия с условием задачи:

  1. предложение должно оканчиваться точкой (если таких предложений несколько, то к рассмотрению принимаетсяпервоеиз них);

  2. предложение должно содержать слова, состоящие из строчных букв латинского алфавита;

  3. между словами допускаются символы пробела.

Весь анализ и результат записываются в выходной файл, логическое имя которого F2, а физическое имя тоже вводится с клавиатуры и запоминается в переменной OutName(причем, физические имена входного и выходного файлов не должны совпадать).

Как видно из структурной схемы и из листинга программа Work7.pasсодержит дверазные локальныеподпрограммы с одним и тем же именемControl: одна входит в описание процедурыText_Words, другая -Evaluate.

Анализируя тестовый пример №2 (выдержки из HELPпо строковым подпрограммам на английском языке), мы видим, что предложения могут быть обычными, но они преобразуются в такие, какие нужны по условию задачи. Это и естьобеспечение корректного вводаинформациидля дальнейшей обработки.