Ответы на задачи 24 (С1)
Скачать 1.99 Mb.
|
Программы выводит какой-то ответ только тогда когда истинны первые два условия; в этом случае ответ зависит от истинности третьего условия:
Видим, что верно обрабатываются только области А и С, для области D выводится неверный ответ (эта область закрашена, но программа выдает ответ «не принадлежит»), а для остальных никакого ответа не выводится.
Простейший способ исправить ошибку – построить условия для каждой из закрашенных областей, и затем объединить их с помощью операции ИЛИ. Записываем условия для обеих интересующих нас областей (С и D) C: (y <= 2-x) и (y >= x*x) D: (y <= 2-x) и (x >= 0) и (y >= 0) и (y <= x*x) Обратите внимание: легко забыть условие x>=0 для области D! В этой задаче обе области находятся под прямой y=2-x, поэтому это условие будет общим. Получаем: C или D: (y <= 2-x) и ((y >= x*x) или (x >= 0) и (y >= 0) и (y <= x*x)) Переводим на язык программирования: if (y<=2-x) and ((y>=x*x) or (x>=0) and (y>=0) and (y<=x*x)) then write('принадлежит') else write('не принадлежит'); Условие можно еще немного упростить: if (y<=2-x) and (y>=0) and ((x>=0) or (y>=x*x)) then write('принадлежит') else write('не принадлежит');
Программы выводит какой-то ответ только тогда когда истинны первые два условия; в этом случае ответ зависит от истинности третьего условия:
Видим, что верно обрабатываются только области B и E, для области F выводится неверный ответ (эта область не закрашена, но программа выдает ответ «принадлежит»), а для остальных никакого ответа не выводится.
|