Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / Laba_varik1_7.1

.docx
Скачиваний:
9
Добавлен:
10.06.2023
Размер:
608.98 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Информатика»

Лабораторная работа №7 - Проект 1

«Разработка проекта, решающего задачу

принадлежности или непринадлежности точки с

заданными координатами геометрической фигуре»

по теме

«Логические данные и выражения.

Операторы разветвления VС++. Программная реализация

базовых разветвляющихся структур и

типовых алгоритмов»

по дисциплине

«Информатика»

Выполнил:

Проверил:

Москва, 2021 г.

1) Индивидуальное задание

Вариант 1: Заданы две простых фигуры: квадрат с центром в начале координат со стороной 2 и вписанная окружность. Попадет ли заданная точка с координатами X, Y в следующую фигуру: квадрат без круга.

2) Формализация и уточнение задачи.

Построены «вручную» описанная в постановке задаче фигура, которая определяет область попадания точки в заданную геометрическую фигуру

(рисунок 1.1).

Рисунок 1.1 – Вписанный в квадрат круг, данный в задании.

Для того, чтобы выполнялось условие, при котором задаваемая точка принадлежит квадрату – необходимо, чтобы по обеим осям модули координат были не больше 1, следовательно:

Для того, чтобы выполнялось условие, при котором задаваемая точка не принадлежит кругу – можно использовать формулу:

.

Так как круг по условию вписан в квадрат, крайние точки которого равны 1 и -1, вписанный в него круг имеет радиус R = 1. Таким образом мы получаем новое условие:

3) Разработка схем алгоритмов

Схема алгоритма otvet решения задачи, использующая стандартное разветвление и сложное логическое выражение.

Рисунок 7.1.2 - Схема алгоритма функции, использующей

стандартное разветвление и сложное логическое выражение.

4) Разработка программного проекта

#include <cmath>

bool otvet(float X, float Y)

{

if ((abs(X)) < 1 && (abs(Y)) < 1)

{

if (pow(X, 2) + pow(Y, 2) > 1)

{

return 1;

}

}

else

{

return 0;

}

}

#include <iostream>

float X, Y;

void vvod(float& x, float& y)

{

setlocale(LC_ALL, "rus");

std::cout << "Введите координаты X и Y: " << std::endl;

std::cin >> x;

std::cin >> y;

X = x;

Y = y;

}

void vivod (bool otvet)

{

setlocale(LC_ALL, "rus");

std::cout << "Ваша точка с координатами - " << X << ", " << Y << " ";

if (!otvet) std::cout << "не ";

std::cout << "соответсвует условиям задачи";

}

#include <iostream>

#include <cmath>

void vvod(float& X, float& Y);

void vivod(bool otvet);

bool otvet(float X, float Y);

int main()

{

bool otv;

float X, Y;

vvod(X, Y);

vivod(otvet(X, Y));

return 0;

}

Рисунок 7.1.3 – Программный код проекта.

5) Выполнение разработанного проекта

Получены результаты выполнения проекта, приведенные на рисунках 7.1.4 и 7.1.5, для тестовых данных точек, попадающих и не попадающих в заданную область.

Рисунок 7.1.4 - Результаты выполнения проекта для тестовых данных

точки, попадающей в заданную область.

Рисунок 7.1.5 – Результаты выполнения проекта для тестовых данных

точки, не попадающей в заданную область.

6) Доказательство правильности результата

Тестовые данные для контрольного решения, проверяющие попадание и непопадание точки с различными координатами в заданную область, выполнил проверку работоспособности проекта во встроенном калькуляторе в Windows 10, в режиме построения графиков. Результаты проверки удовлетворяющих и не удовлетворяющих исходных данных, а также результата изображены на рисунках 7.1.6 и 7.1.7 соответственно:

Рисунок 7.1.6 – Результат проверки с исходными данными,

которые удовлетворяют условия задачи.

Рисунок 7.1.7 – Результат проверки с исходными данными,

которые не удовлетворяют условия задачи.

7) Источники:

Лекция 30.11.2021

Соседние файлы в папке лабы