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