Условное ветвление: оператор else (Разбор задачи 15 урока 9.1)
Primary tabs
Условие:
Есть программа:
var m,s:integer;
begin
writeln('Vvedite chislo M');
readln(m);
writeln('Vvedite chislo M');
readln(s);
if (s = 1) then
writeln('soobchenie 1');
if (s = m) then
writeln('soobchenie 2');
end;
-- при этом известно, что если s равно 1, то на экран должно вывестись только первое сообщение (а второе выводиться не должно), а если s не равно 1, но равно m, то второе (а первое выводиться не должно).
Но сейчас программа работает не так, исправьте это.
Возможное решение
Сейчас программа каждый раз проверяет два условия, и в случае, если и s=1, и m=1, выводит оба сообщения, так как оба условия выполняются.
В задаче же требуется, чтобы вывелось только одно сообщение. Для этого нужно, чтобы второе условие проверялось, только если не выполнено первое (то есть s не равно 1 и первое сообщение не вывелось).
Этого можно добиться, добавив ветку ложности - оператор else. Тогда второе условие проверится только если s не равно 1.
var m,s:integer;
begin
writeln('Vvedite chislo M');
readln(m);
writeln('Vvedite chislo S');
readln(s);
if (s = 1) then
writeln('soobchenie 1');
else if (s = m) then
writeln('soobchenie 2');
end;- Log in to post comments
- 216 reads