Задачи проверки вхождения точки с заданными координатами в ограниченную область.
Проверка расположения точки с координатами (x,y) относительно прямой.
Пусть уравнение прямой задано в каноническом виде y = ax+b. Тогда, все точки, лежащие на линии прямой подчиняются условию . Все точки, лежащие левее линии прямой подчиняются условию , это условие выполняется для точки с координатами . Все точки, лежащие правее линии прямой подчиняются условию
. Тогда:
· .
· .
· .
Для представленного рисунка составим уравнение прямой по двум заданным точкам: прямая проходит через точки с координатами (0,-1) и (2,0). Найдем коэффициенты уравнения a и b.
|
Рассмотрим решение следующей задачи:
Проверить, принадлежит ли точка с заданными координатами (x,y) заштрихованной области. Значения координат вводятся с клавиатуры. Проверка корректности ввода данных обязательна.
Порядок выполнения работы.
Построим условие, по которому будем определять положение точки относительно фигуры. Очевидно, что точка может попасть либо в левую часть фигуры, для которой строится следующее условие – (x>=-2) и (x<=0) и (y>=-2) и (y<=2). Либо, точка может попасть в правую часть фигуры, которая ограничивается следующими условиями – (x>=0) и (x<=2) и (y>=-1) и (y<=1).
1.Подключим основные библиотеки // библиотека стандартного ввода-вывода //библиотека функций управления текстовым экраном // библиотека стандартных функций 2.Опишем функцию main 3.очистим экран 4.Опишем используемые переменные x,y – по условию задачи определим их как вещественные переменные. В языке Си это тип float 5.сообщение об авторе программы 6.Выведем на экран приглашение 7.Чтение данных с клавиатуры выполняет функция scanf(управляющая строка, адрес переменной). Результат работы функции сохраним в переменной s. Это целочисленная переменная (тип int) 8.Проверим результат выполнения функции (считывается две переменных) – если введены не числовые данные, то на экран выводится сообщение и программа заканчивает свою работу. 9.Построим условия вхождения - не вхождения точки в заданную область и выведем соответствующие сообщения. | #include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { clrscr(); float x,y; printf (“Программу выполнил … \n”); printf(“Введите значения переменных: ”); int s; s = scanf(“%f%f”,&x,&y); if (s!=2){ printf(“Введены данные, не являющиеся числами.”); getch(); exit(0); } else { if (x>=-2 &&x<=0&&y>=-2&& y<=2 || x>=0 && x<=2 && y>=-1 && y<=1) printf(“Точка с координатами (%9.2f, %9.2f) принадлежит закрашенной области”,x,y); else printf(“Точка с координатами (%9.2f, %9.2f) не принадлежит закрашенной области”,x,y); } getch(); } |