Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


Ѕесконечное выполнение




 

ќператор WHILE может войти в бесконечное выполнение если он написан неправильно. Ќапример, если будет пропущен оператор READ в программе Copy.

 

WHILE Ch <> С#Т

DO

BEGIN

WRITE(Ch)

END

 

“аким образом, условие в предложении WHILE должно контролировать выполнение и гарантировать завершение цикла.

 

1.5.3. ѕрограммы MaxOfAll и CopyOdds

 

ѕрограмма MaxOfAll определ€ет максимальный символ в INPUT предшествующий #. ѕредложение IF выводит в OUTPUT различные сообщени€ в зависимости от того, обнаружены ли там какие-либо данные. «начение переменной Max Ц найденный на текущий момент максимум.  онцепци€ сохранени€ результата проверок в той переменной, которой выполн€етс€ сравнение, часто используетс€ в программах.  огда выполнение оператора WHILE завершитс€, в переменной Max будет находитьс€ максимальное из прочитанных значений.

 

PROGRAM MaxOfAll (INPUT, OUTPUT);

{—читывает символы, предшествующие #

из INPUT, наибольший выводитс€ в OUTPUT}

VAR

Ch, Max: CHAR;

BEGIN

READ(Ch);

IF Ch = С#Т

THEN

WRITELN(СNO DATAТ);

ELSE

BEGIN

WRITE(СINPUT DATA IS Т);

Max:= Ch;

WHILE Ch <> С#Т

DO

BEGIN

WRITE(Ch);

IF Ch > Max

THEN

Max:= Ch;

READ(Ch)

END;

WRITELN;

WRITELN(СMAX OF ALL IS Т, Max);

END

END.

 

INPUT: AZURE#

OUTPUT: INPUT DATA IZ AZURE

: MAX OF ALL IS Z

 

INPUT: A#

OUTPUT: INPUT DATA IZ A

: MAX OF ALL IS A

 

INPUT: #AZURE

OUTPUT: NO DATA

 

 

ѕрограмма CopyOdds копирует символы из INPUT в OUTPUT через один. ѕрограмма использует переменную Next дл€ того, чтобы отслеживать четность/нечетность очередного прочитанного символа.

ѕоскольку эта программа сложнее предыдущих, комментарии в ней встречаютс€ чаще.

 

PROGRAM CopyOdds (INPUT, OUTPUT);

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

из INPUT в OUTPUT}

VAR

Ch, Next: CHAR;

{Next Ц преключатель между нечетными (Odd-СOТ)

и четными (Even-СEТ)}

BEGIN

Next:= СOТ

READ(Ch);

WHILE Ch <> С#Т

DO

BEGIN

IF Next = СOТ

THEN { опирование нечетных символов}

WRITE(Ch);

READ(Ch);

{ѕереключение Next}

IF Next = СOТ

THEN

Next:= СEТ {Even}

ELSE

Next:= СOТ

END;

WRITELN

END.

 

INPUT: AZURE#

OUTPUT: AUE

 

INPUT: A#BC

OUTPUT: A

 

INPUT: 123456789#

OUTPUT: 13579

 

INPUT: SEE CAR EAT#

OUTPUT: SECRET

 

–ассмотрим второй оператор IF внутри оператора WHILE

 

IF Next = СOТ

THEN

Next:= СEТ {Even}

ELSE

Next:= СOТ

 

Next может принимать только значени€ СOТ или СEТ. ≈сли текущее значение СOТ значением становитс€ СEТ, если текущее значение СEТ значением становитс€ СOТ. “аким образом, данный оператор IF заставл€ет работать переменную Next как переключатель СOТ/ТEТ (Уflip-flopФ).





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-01-25; ћы поможем в написании ваших работ!; просмотров: 1580 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћучша€ месть Ц огромный успех. © ‘рэнк —инатра
==> читать все изречени€...

321 - | 297 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.008 с.