Стадия разработки программы «Письмо Sarah Revere»

Разработочная программа 1А

PROGRAM SarahRevere(INPUT,OUPUT)

{выводит сообщение о том, как наступают британцы, в зависимости от того, найдено ‘land’ или ‘sea’}

VAR

W1, W2, W3, W4, Looking: CHAR;

BEGIN {SarahRevere}

BEGIN {инициализируем переменные W1, W2, W3, W4, Looking}

W1:= ‘ ‘;

W2:= ‘ ‘;

W3:= ‘ ‘;

W4:= ‘ ‘;

Looking:= ‘Y‘;

END;

WHILE Looking = ‘Y’

DO

BEGIN

BEGIN {сдвигаем окно, проверяем на конец данных}

W1:= W2;

W2:= W3;

W3:= W4;

READ(W4);

IF W4 = ‘#’

THEN {конец данных}

Looking:= ‘N’

END;

WRITE(W1,W2,W3,W4,‘,’); {тестовый оператор}

{проверка на ‘land’}

{проверка на 'sea'}

END

{Создаем письмо Сары}

END. {SarahRevere}

Результаты выполнения программы:

INPUT:#

OUTPUT: #,

INPUT:D#

OUTPUT: D, D#,

INPUT:De#

OUTPUT: D, De, De#,

INPUT:Dea#

OUTPUT: D, De, Dea,Dea#

INPUT:Dear Pau#

OUTPUT: D, De, Dea,Dear, ear,ar P,r Pa, Pau,Pau#,

Разработочная программа 1B

PROGRAM SarahRevere(INPUT,OUPUT)

{выводит сообщение о том, как наступают британцы, в зависимости от того, найдено ‘land’ или ‘sea’}

VAR

W1, W2, W3, W4, Looking: CHAR;

BEGIN {SarahRevere}

BEGIN {инициализируем переменные W1, W2, W3, W4, Looking}

W1:= ‘ ‘;

W2:= ‘ ‘;

W3:= ‘ ‘;

W4:= ‘ ‘;

Looking:= ‘Y‘;

END;

WHILE Looking = ‘Y’

DO

BEGIN

BEGIN {сдвигаем окно, проверяем на конец данных}

W1:= W2;

W2:= W3;

W3:= W4;

READ(W4);

IF W4 = ‘#’

THEN {конец данных}

Looking:= ‘N’

END;

BEGIN {Проверка на ‘land’}

IF W1 = ‘l’

THEN

IF W2 = ‘a’

THEN

IF W3 = ‘n’

THEN

IF W4 = ‘d’

THEN {‘land’ было найдено}

Looking:= ‘L’

END;

BEGIN {Проверка на ‘sea}

IF W2 = ‘s’

THEN

IF W3 = ‘e’

THEN

IF W4 = ‘a’

THEN {‘sea’ было найдено}

Looking:= ‘S’

END

END;

WRITELN(‘Looking is ’, Looking); {тестовый оператор}

{Создаем письмо Сары}

END. {SarahRevere}

Результаты:

INPUT:Dear Paul: I have been #

OUTPUT:Looking is N

INPUT:Dear Paul: I have been to Chelsea #

OUTPUT:Looking is S

INPUT:Dear Paul: My land lies along the sea #

OUTPUT:Looking is L

Разработочная программа 1C

PROGRAM SarahRevere(INPUT,OUPUT)

{выводит сообщение о том, как наступают британцы, в зависимости от того, найдено ‘land’ или ‘sea’}

VAR

W1, W2, W3, W4, Looking: CHAR;

BEGIN {SarahRevere}

BEGIN {инициализируем переменные W1, W2, W3, W4, Looking}

W1:= ‘ ‘;

W2:= ‘ ‘;

W3:= ‘ ‘;

W4:= ‘ ‘;

Looking:= ‘Y‘;

END;

WHILE Looking = ‘Y’

DO

BEGIN

BEGIN {сдвигаем окно, проверяем на конец данных}

W1:= W2;

W2:= W3;

W3:= W4;

READ(W4);

IF W4 = ‘#’

THEN {конец данных}

Looking:= ‘N’

END;

BEGIN {Проверка на ‘land’}

IF W1 = ‘l’

THEN

IF W2 = ‘a’

THEN

IF W3 = ‘n’

THEN

IF W4 = ‘d’

THEN {‘land’ было найдено}

Looking:= ‘L’

END;

BEGIN {Проверка на ‘sea}

IF W2 = ‘s’

THEN

IF W3 = ‘e’

THEN

IF W4 = ‘a’

THEN {‘sea’ было найдено}

Looking:= ‘S’

END

END;

BEGIN {Создаем письмо Сары}

IF Looking = ‘L’

THEN

WRITELN(‘The British are coming by land.’)

ELSE

IF Looking = ‘S’

THEN

WRITELN(‘The British are coming by sea.’)

ELSE

WRITELN(‘Sarah didn’’t say’)

END

END. {SarahRevere}


Принципы проектирования и разработки программ

Фаза проектирования.

Решение задачи (выполняется совместно с проектированием программы)

1. Поймите дачу. В случае необходимости, напишите краткое изложение задачи и корректируйте его по мере обнаруживать путей решения проблемы.

2. Разработайте стратегию решения. Наметьте в общих чертах решение на русском языке с одним или несколькими уровнями детализации. Корректируйте стратегию решения по мере создания окончательного проекта программы.

3. Анализируйте и осуждайте свою стратегию решения. На каждом уровне детализации ищите простейшие пути решения задачи. Не является ли оно более сложным, нежели требуется?

4. Организуйте свое решение путем написания улучшенного проекта. Не требуется ли реорганизация отдельных разделов проекта для лучшей понятности? Могут ли быть обнаружены подобные операции и организованы в общих разделах проекта?

Проектирование программы (выполняется совместно с решением задачи)

1. Разработайте план написания путем преобразования вашей стратегии решения в иерархию разделов придуманного текста программы и комментариев. Эти описания задачи должны, в свою очередь, служить в качестве имен разделов проекта на следующем уровне детализации.

2. Как правило, разделы проекта не должны быть не более 15 строк, и должны иметь вразумительные и легко понимаемые комментарии. Удержание разделов проекта в таких маленьких размерах и тщательное комментирование требует дисциплинированности, но это впоследствии будет вознаграждено легкостью чтения исходных текстов.

3. Храните разделы вашего проекта физически отдельно для того, чтобы обеспечить гибкость их написания и переписывания, однако думайте об их иерархической структуре во время анализа и упрощения своей программы.

4. Пишите и переписывайте разделы вашего проекта и вашу стратегию решения. Решите задачу, отложите ее решение, и попытайтесь его улучшить.


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



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