Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Лабораторная работа №2
- Выполнила Пена Анастасия, группа БПМ 191
- */
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- int func(float x, float y) { //Функция проверки принадлежности точки закрашенной области,возвращает 1 или 0
- return ((y>=((x/3)-(float)1/(float)3)) && ((x>=0 && x<=1 && y<=0) || (y<=(-x) && y<=((2*x)+3))));
- }
- int main() {
- float x,y;
- printf("Введите последовательно 2 числа, разделяя их переходом на новую строку: \nОба числа - вещественные (в качестве разделителя используйте точку)\nВ случае некорректного ввода программа будет автоматически закрыта.\nВведите координаты: \n");
- if (scanf("%f",&x)==0 || scanf("%f",&y)==0){ //проверка вводимых данных через функцию scanf()
- printf("Ошибка ввода! Закрытие программы. ");
- exit(0);
- }
- // Способ №1: проверка через множество простых условий
- if (x>=0) {
- if (x<=1 && y<=0 && y>=((x/3)-(float)1/(float)3)) {
- printf("\nПроверка №1:\nТочка принадлежит области");
- }
- else {
- printf("\nПроверка №1:\nТочка не принадлежит области");
- }
- }
- else {
- if (y<=(-x) && y<=(2*x+3) && y>=((x/3)-(float)1/(float)3)) {
- printf("\nПроверка №1:\nТочка принадлежит области");
- }
- else {
- printf("\nПроверка №1:\nТочка не принадлежит области");
- }
- }
- //Способ №2: проверка через единственное сложное условие
- if ((y>=((x/3)-(float)1/(float)3)) && ((x>=0 && x<=1 && y<=0) || (y<=(-x) && y<=((2*x)+3)))) {
- printf("\nПроверка №2:\nТочка принадлежит области");
- }
- else {
- printf("\nПроверка №2:\nТочка не принадлежит области");
- }
- //Способ №3: проверка через функцию, внуттри которой отсутствует условный оператор
- if (func(x,y)==1) {
- printf("\nПроверка №3:\nТочка принадлежит области");
- }
- else {
- printf("\nПроверка №3:\nТочка не принадлежит области");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement