ВУЗ:
Составители:
Рубрика:
37
(
statement2). Компилятор Turbo Pascal всегда выбирает каждому else
ближайший предшествующий
if, (то есть else всегда относится к
последнему
if). В общем случае, чтобы четко определить, что чему
подчинено, используйте
begin…end аналогично круглым скобкам в
арифметических выражениях
if expression1 then begin
if expression2 then
statement2 end else
statement2 end else
statement1;
Рисунок 27 Принцип действия условного оператора без else
Рисунок 28 Принцип действия условного оператора с else
Оператор 1
Условие
выполняется?
Передача
управления
Передача
управления?
Оператор 3
нет
нет
да
да
Оператор 1
Условие
выполняется?
Передача
управления
Передача
управления?
Оператор 2
нет
нет
да
да
Оператор 3
38
Пример 7 Условный оператор
Составить программу для определения подходящего возраста
кандидатуры для вступления в брак, используя ограничения. Возраст
девушки равен половине возраста мужчины плюс 7. Возраст мужчины
определяется, соответственно, как удвоенный возраст девушки минус14.
В начале выполнения программы будем
задавать вопрос: “Кто Вы, мужчина или
женщина? Ответьте M или D.” Пол запоминаем в
символьной п
еременной P, а в переменной V –
возраст человека. Если возраст меньше 17лет, то
будем рекомендовать подождать с браком. Если
пол женский, то будем вычислять возраст
кандидата по формуле К = 2*V – 14, если пол
мужской, то К = V/2 + 7. Если значение P не
совпадает ни с M, ни с D, то выдается
сообщение, что произошла ошибка при вводе
пола, и передаем уп
равление на начало
программы.
Программа 1
Var P:char; {Пол кандидата}
V,K:real; {Возраст человека. Возраст кандидата}
Repeat
Begin write(‘Кто Вы мужчина или
женщина? Ответьте M или D’);
Readln(P);
Until (P=D) or (P=d) or (P=M) or (P=m);
{Выход из цикла при правильном ответе}
write(‘Ваш возраст’); readln(V);
if V<17 then begin
writeln(‘Вы еще молоды’);
exit {Процедура завершения программы}
end;
if (P=D) or (P=d) then K
:
= 2*V-14
else K
:
= V/2+7;
writeln(‘Подходящий возраст кандидата ’,K,’ лет’);
End.
нет
да
P='d' or P=D''?
нет
да
НАЧАЛО
Печать
пол? M/ D
P='M ' or
P=‘D’?
Печать
возраст? V
V<17?
Печать
Вы еще
молоды
нет
да
K=2*V–14
K=V/2+7
Печать
Возраст
кандидата K
КОНЕЦ
Р
исунок 29. Блок-
схема программы
№
1.
(statement2). Компилятор Turbo Pascal всегда выбирает каждому else Пример 7 Условный оператор ближайший предшествующий if, (то есть else всегда относится к Составить программу для определения подходящего возраста последнему if). В общем случае, чтобы четко определить, что чему кандидатуры для вступления в брак, используя ограничения. Возраст подчинено, используйте begin end аналогично круглым скобкам в девушки равен половине возраста мужчины плюс 7. Возраст мужчины арифметических выражениях определяется, соответственно, как удвоенный возраст девушки минус14. if expression1 then begin В начале выполнения программы будем НАЧАЛО if expression2 then задавать вопрос: Кто Вы, мужчина или statement2 end else женщина? Ответьте M или D. Пол запоминаем в statement2 end else Печать символьной переменной P, а в переменной V statement1; пол? M/ D возраст человека. Если возраст меньше 17лет, то будем рекомендовать подождать с браком. Если P='M' or нет Условие нет пол женский, то будем вычислять возраст выполняется? P=D? кандидата по формуле К = 2*V 14, если пол да мужской, то К = V/2 + 7. Если значение P не да совпадает ни с M, ни с D, то выдается Печать Оператор 1 Оператор 3 возраст? V сообщение, что произошла ошибка при вводе пола, и передаем управление на начало нет программы. Передача нет V<17? управления? Программа 1 да да Печать Var P:char; {Пол кандидата} Передача Вы е ще управления V,K:real; {Возраст человека. Возраст кандидата} молоды Repeat Рисунок 27 Принцип действия условного оператора без else Begin write(Кто Вы мужчина или нет женщина? Ответьте M или D); P='d' or P=D''? Readln(P); Условие нет да выполняется? Until (P=D) or (P=d) or (P=M) or (P=m); K=2*V14 {Выход из цикла при правильном ответе} да write(Ваш возраст); readln(V); Оператор 1 Оператор 2 K=V/2+7 if V<17 then begin writeln(Вы еще молоды); Печать exit {Процедура завершения программы} Передача нет Возраст end; управления? кандидата K if (P=D) or (P=d) then K := 2*V-14 да КОНЕЦ else K := V/2+7; Передача Оператор 3 управления writeln(Подходящий возраст кандидата ,K, лет); Рисунок 29. Блок- End. схема программы Рисунок 28 Принцип действия условного оператора с else №1. 37 38
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »