Отчет1 Нагорный Вариант2

advertisement
Санкт-Петербургский
Государственный электротехнический университет
Кафедра МОЭВМ
Отчет
по Лабораторной работе № 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);
}
Результаты решения задачи
Программа безошибочно определяет вхождение точки в область. Ошибки не
обнаружены.
Заключение
При выполнении лабораторной работы были получены практические
навыки по изучению условных операторов и операторов цикла на языке
программирования «С».
Данная лабораторная работа помогла овладеть практическими навыками
программирования на языке «С».
Download