Вопрос по Урок 9 Задача12
Primary tabs
Всем привет.
Урок 9 Задача 12 (на всякий случай ссылка на урок http://fkn.ktu10.com/?q=node/8539)
Вопрос по вот этой задаче. Сначала сама задача:
Изучите код:
var s, t:integer; f, b:boolean; begin f := true; b := false; if (f=true) then t:=1 else t:=2; if (b=false) then s:=3 else s:=4; end.-- блоки условий можно переписать более кратко, без использования сравнения = true или = false, с сохранением той же логики работы программы.
Подсказки:
оператор if итак неявно сравнивает значение логического выражения в скобках с true (и принимает решение, какую именно ветку then или else выполнить)
для второго if в коде выше потребуется использование оператора Not.
Вопрос: Понятно, что блоки по заданию надо переписать более кратко. Но какое именно условие и задание для этого?
а) Переписать, чтобы в самом начале не задавались переменные:
f := true; b := false;
без использования сравнения = true или = false
- то есть удалить их и написать без них?
б) Переменные f и b могут меняться? Если они заданы и они не меняются, то может надо переписать с учетом того, что значения f и b в самом начале уже заданы:
f := true; b := false;
и соответственно, можно уже не писать условие для if:
if (f=true) then t:=1 else t:=2;
, а сразу писать так, что
t:=1,
ведь нам с самого начала известно, что
f := true;
в) Или может имелось что-то вообще другое? Пока не понятно. Прошу уточнить, если кто-то в курсе, в чем именно суть задания.
- Log in to post comments
- 1386 reads
vedro-compota
Fri, 10/01/2021 - 10:23
Permalink
что переписываем
в данной задаче мы переписываем только проверки в условиях:
эти проверки можно записать короче
_____________
матфак вгу и остальная классика =)
Vitaliy123
Fri, 10/01/2021 - 12:06
Permalink
Уточнение по комментарию
Я правильно понял, по поводу сокращения записи проверки условий, что мы по сути можем проверять только одно из условий (true/false), считая другое условие базовым? Речь об этом? То есть вот так могу записать спокойно:
То есть мы можем один вариант иметь ввиду как базовый, например true, и менять значение, только в случае false. Как итог - более короткая запись и отсутствие необходимости обеих проверок.
Об этом речь в задании?
vedro-compota
Fri, 10/01/2021 - 14:16
Permalink
только условия if
нет, речь идет о том как переписать содержимое скобок:
(f=false) и (b=true) короче, используя в т.ч. оператор Not
_____________
матфак вгу и остальная классика =)