Анализ и разработка метода решения Первым шагом алгоритма должен быть ввод координат точки: x и y. Для большего удобства при анализе результатов можно вывести введенные значения на экран. Из рисунка видно, что целевая область образуется пересечением: прямой с коэффициентом -1 и смещением +1 и окружности с центром в начале координат и радиусом 1, как показано на рисунке справа | | Уравнение этой прямой: y=-x+1. Уравнение окружности: x2+y2=1. Для проверки попадания точки в заданную область нужно проверить условия того, что: 1) Точка лежит выше прямой или на ней, т.е.: y>=-x+1 2) Точка лежит внутри окружности или на ней, т.е.: x2+y2<=1 Точка лежит в области, если выполняются оба условия: y>=-x+1 И x2+y2<=1 (1). Формальная постановка задачи Входные данные: X, y – координаты точки. Выходные данные: Сообщение «Точка попадает в область» или «Точка не попадает в область» Схема алгоритма приведена на рисунке ниже. Алгоритм  Разработка текста программы Для реализации алгоритма нам будут нужны только переменные для хранения значений координат x и y. В условиях задания не приведены требования к точности вычислений, рисунок представлен с довольно невысокой точностью, поэтому для этих переменных было бы достаточно типа float. Но в соответствии с общим стилем программирования на C выберем для них тип double. Текст программы начинается с включения фала: #include <stdio.h> т.к. нам обязательно понадобятся функции стандартного ввода-вывода, которые описаны в этом файле. Далее идет заголовок и открытие главной функции: int main(void) { и объявление переменных, определенных в пункте 5.2. double x, y; Для каждой координаты выводится приглашение на ее ввод и вводится ее значение: printf("Введите координату x >"); \\ или – cout scanf("%lf",&x); \\ или – cin printf("Введите координату y >"); scanf("%lf",&y); Введенные значения координат выводятся на экран: printf("x=%6.3lf; y=%6.3lf\n",x,y); Далее идет проверка условий попадания точки в область. Оба условия проверяются одним выражением. Поскольку точка попадает в область, если выполняются оба условия вместе, условия в выражении соединены операцией "логическое И": if ( (y>=1-x)&& (x*x+y*y<=1) ) Если значение логического выражения в условном операторе истинно, то выводится сообщение про попадание: printf("Точка попадает в область\n"); В противном случае выводится сообщение про попадание: еlse printf("Точка не попадает в область\n"); Полный текст программы приведен ниже. /****************************************************//* Лабораторная работа 2 *//* Условный оператор *//* Пример выполнение. Вариант 30. *//****************************************************/#include <stdio.h>int main(void) { double x, y; /* координаты точки */ /* ввод координат */ printf("Введите координату x >"); scanf("%lf",&x); printf("Введите координату y >"); scanf("%lf",&y); /* вывод только что введенных значений */ printf("x=%6.3lf; y=%6.3lf\n",x,y); /* проверка условий */ if ( (y>=1-x) && (x*x+y*y<=1) ) printf("Точка попадает в область\n"); else printf("Точка не попадает в область\n"); return 0;} Отладка программы Самое важное в отладке этой программы - убедиться в том, что программа выдает правильные результаты при разных комбинациях входных данных. Следовательно, необходимо подобрать такие комбинации, которые были бы показательными для разных случаев размещения точки. Мы предлагаем такие комбинации: 1) точка лежит ниже области - (0.4, 0.4); 2) точка лежит на нижней границе области - (0.5, 0.5); 3) точка лежит внутри области - (0.7, 0.6); 4) точка лежит на верхней границе области - (0.707, 0.707); 5) точка лежит выше области - (0.8, 0.8); 6) точка лежит на правом краю области - (1.0, 0.0); 7) точка лежит на левом краю области - (0.0, 1.0); Тестирование Ниже приведены результаты работы программы для входных данных по п.5.4: x=0.400; y=0.400Точка не попадает в область x= 0.500; y= 0.500Точка попадает в область x= 0.700; y= 0.600Точка попадает в область x= 0.707; y= 0.707Точка попадает в область x= 0.800; y= 0.800Точка не попадает в область x= 0.100; y= 0.000Точка попадает в область x= 0.000; y= 1.000Точка попадает в область |