Санкт-Петербургский Государственный электротехнический университет Кафедра МОЭВМ Отчет по Лабораторной работе № 1 «Вхождение точки в область» Выполнил: Чирухин А.А. Группа: 3304 Факультет: КТИ Санкт-Петербург 2013г. Цель работы: Получение практических навыков по изучении условных операторов и операторов цикла на языке программирования «С++». Постановка задачи: Программе задаются координаты точки на плоскости (X, Y). На данной плоскости задана замкнутая фигура. Определить, принадлежит ли заданная точка области фигуры на графике. рис.1 Формальная постановка задачи (математическое содержание): Требуется описать условия, которые будут ограничивать область данной фигуры (рис.1). 1. (y<=x) && (y>=-x) && (x>=0) && (x<=1) 2. (y>=x) && (y<=-x) && (x<=0) && (x>=-1) Если выполняются все вышеперечисленные условия вместе, наша точка лежит в заштрихованной области (рис.2). рис.2 Описание структуры данных: Имя переменной Тип переменной Назначение x Float y Float Хранение координаты X точки Хранение координаты Y точки Блок-схема решения задачи: Начало Ввод х,y ((y<=x) && (y>=-x) && (x>=0) && (x<=1)) || ((y>=x) && (y<=-x) && (x<=0) && (x>=-1)) True Попала False Не попала Да Нет Выйти? Конец Текст программы: #include <iostream> using namespace std; bool IsPointInRightTriangle(float x, float y) { return (((y<=x) && (y>=-x) && (x>=0) && (x<=1))); } bool IsPointInLeftTriangle(float x, float y) { return (((y>=x) && (y<=-x) && (x<=0) && (x>=-1))); } int main() { float x, y; float k; k = 1; while (k != 0) { cout << "Vvedi x: "; cin >> x; cout << "vvedi y: "; cin >> y; cout << "koordinati tochki: (" << x << ";" << y << ")" << endl; if ((IsPointInRightTriangle(x, y)) || (IsPointInLeftTriangle(x, y))) { cout << "tochka popadaet v zashtrihovannuiu oblast\'"; } else { cout << "tochka ne popadaet v zashtrihovannuiu oblast\'"; } cout << "\nvvedi 0 dlya vihoda: "; cin >> k; } cin.get(); cin.get(); } Результаты решения задачи Программа безошибочно определяет вхождение точки в область. Ошибки не обнаружены. Заключение При выполнении лабораторной работы были получены практические навыки по изучению условных операторов и операторов цикла на языке программирования «С». Данная лабораторная работа помогла овладеть практическими навыками программирования на языке «С».