Санкт-Петербургский Государственный электротехнический университет Кафедра МОЭВМ Отчет по Лабораторной работе № 1 «Вхождение точки в область» Выполнил: Нагорный Ю.С. Группа: 3304 Факультет: КТИ Санкт-Петербург 2013г. Цель работы: Получение практических навыков по изучении условных операторов и операторов цикла на языке программирования «С++». Постановка задачи: Программе задаются координаты точки на плоскости (X, Y). На данной плоскости задана замкнутая фигура. Определить, принадлежит ли заданная точка области фигуры на графике. рис.1 Формальная постановка задачи (математическое содержание): Требуется описать условия, которые будут ограничивать область данной фигуры (рис.1). 1. ((x>0) && (y>0)) || ((x<0) && (y<0)) &&( z==1) , где z – это радиусвектор точки. Если выполняются все вышеперечисленные условия вместе, наша точка лежит в заштрихованной области (рис.2). рис.2 Описание структуры данных: Имя переменной Тип переменной Назначение x Float y Float Хранение координаты X точки Хранение координаты Y точки Z Float Радиус-вектор точки Блок-схема решения задачи: Начало Ввод х,y r=sqrt(x*x+y*y) True False !(((x>0) && (y>0)) || ((x<0) && (y<0))) &&( z==1) Попала Не попала Да Нет Выйти? Конец Текст программы: #include #include #include #include <iostream> <math.h> <stdio.h> <windows.h> using namespace std; int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); // для вывода кириллицы // для вывода кириллицы // объявление переменных. x - координата точки по Оси х, y - координата точки по оси y, z - радиус четверти круга, r - радиус-вектор точки. float x; float y; float z = 1; float r; bool o; // Введение данных do { cout << "Введите координаты точки: Х: "; scanf("%f",&x); cout << "Введите координаты точки: Y: "; cin >> y; // Расчет радиус-вектора точки r=sqrt(x*x+y*y); // Условие попадания точки в 1-ю или в 3-ю четверть if { (((x>0) && (y>0)) || ((x<0) && (y<0))) cout << "Точка не попала на рисунок"; } // Если точка попала во 2-ю или в 4-ю четверть, то можно проверить равенство радиуса круга и радиуса-вектора точки. else if (r<=z) { cout << "Точка попала на рисунок"; } else cout << "Точка не попала на рисунок"; cout << "Хотите повторить? 1(Y)/0(N)"; cin >> o; } while (o==1); } Результаты решения задачи Программа безошибочно определяет вхождение точки в область. Ошибки не обнаружены. Заключение При выполнении лабораторной работы были получены практические навыки по изучению условных операторов и операторов цикла на языке программирования «С». Данная лабораторная работа помогла овладеть практическими навыками программирования на языке «С».