Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
В этой задаче обе области находятся под прямой y=2-x, поэтому это условие будет общим. Получаем: C или D:
(y >= 2-x) и (y >= x*x) и (x <= 0) или (y <= 2-x) и (x >= 0) и (y >= 0) и (y <= x*x)
Переводим на язык программирования:
if (y >= 2-x) and (y >= x*x) and (x <= 0) or (y <= 2-x) and (x >= 0) and (y >= 0) and (y <= x*x) then
write('принадлежит')
else write('не принадлежит');
Задача 4. 32Это та же самая задача, что и 26, только переформулированная в соответствии с демо-вариантом ЕГЭ-2012. Сразу замечаем, что в программе else относится к последнему оператору if, то есть в самом деле структура кода такова:
if x <= 1 then
if y >= 1-x then
if y >= x*x then
write('принадлежит')
else write('не принадлежит');
Обратите внимание, что второе условие проверяется в приведенной программе только тогда, когда истинно первое, а третье – только тогда, когда истинны первые два. В остальных ячейках (если условие не проверяется) нужно ставить прочерк:
второе условие проверяется в приведенной программе только тогда, когда истинно первое, а третье – только тогда, когда истинны первые два. В остальных ячейках (если условие не проверяется) нужно ставить прочерк:
Программы выводит какой-то ответ только тогда когда истинны первые два условия; в этом случае ответ зависит от истинности третьего условия:
Видим, что верно обрабатываются только областей А и В, для области D выводится неверный ответ (эта область закрашена, но программа выдает ответ «не принадлежит»), а для остальных никакого ответа не выводится.
Обл. | x <= 1 | y >= 1-x | y >= x*x | вывод | верно? |
A | да | да | нет | не принадлежит | да |
B | да | да | да | принадлежит | да |
C | да | нет | – | – | нет |
D | да | да | нет | не принадлежит | нет |
E | нет | – | – | – | нет |
F | да | нет | – | – | нет |
G | нет | – | – | – | нет |
H | нет | – | – | – | нет |
Для исправления программы лучше всего составить новое сложное условие. Выделенная область может быть получена как объединение двух областей: области B выше параболы y >= x*x и линии y = 1-x и (одновременно) слева от прямой x = 1, и верхней части полосы 0<=x<=1, которая снизу ограничена линией y = 1-x:
if ((y >= x*x) and (y >= 1-x) and (x <= 1)) or ((x >= 0) and (x <= 1) and (y >= 1-x)) then
write('принадлежит')
else write('не принадлежит');
Задача 5. Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно.

var x, y: real;
begin
readln(x, y);
if y <= 1 then
if x >= 0 then
if y >= sin(x) then
write('принадлежит')
else write('не принадлежит')
end.
Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы.
Область | y <= 1 | x >= 0 | y >= sin(x) | вывод | верно? |
A | да | нет | - | - | нет |
B | Да | Да | нет | - | нет |
C | Да | Да | да | принадлежит | да |
D | да | Да | да | принадлежит | нет |
E | Нет | - | - | - | нет |
F | Нет | - | - | - | нет |
H | да | да | нет | - | нет |
1 сначала лучше отложить в сторону программу и попытаться написать условие, которым должны отвечать точки, попавшие в выделенную область
2 заштрихованная область ограничена по координате
, она находится
справа от оси
, что равносильно первому условию x>=0; слева от первого максимума функции y=sinx; из математики мы знаем, что эта функция достигает максимума при
, поэтому получаем второе условие ![]()
3 заштрихованная область ограничена с двух сторон по координате
: она находится
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


