Калмычков 2 лабараторная работа 1 семестр. Лаба 2 Отчёт. Изучение и практическое освоение приемов программирования элементарных операций и работа с математическими формулами
Скачать 223.06 Kb.
|
МИНОБРНАУКИ РОССИИ Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина) Кафедра систем автоматизированного проектирования отчет по лабораторной работе №2 по дисциплине «Программирование» Тема: Изучение и практическое освоение приемов программирования элементарных операций и работа с математическими формулами
Санкт-Петербург 2021 ОглавлениеФормулировка задания 2 Цель работы 2 Анализ задания и контрольный пример 2 Математическая постановка задачи 2 Изучение необходимого материала и подготовка к выполнению лабораторной работы: 3 Программа выводит на экран приветствие и условие задачи. Затем предлагает пользователю задать определенные параметры фигуры. При неверно введенных данных на экране появится «Ошибка построения», иначе пользователю будет предложено задать координаты произвольной точки. После чего на экране появится: «Точка принадлежит заштрихованной области», в случае, если точка находится в плоскости фигуры; «Точка не принадлежит заштрихованной области», в случае, если точка лежит за пределами фигуры. 3 Способ внутреннего хранения данных: 3 Блок-схема 4 Текст программы 4 Примеры работы программы 5 Вывод 7 Формулировка заданияСоставить программу, которая определяет, принадлежит ли точка с координатами (x, y) одной из заштрихованных областей Рис. 1 Цель работыИзучение операторов If и Else, а также их применение для решения задач разного типа. Изучение библиотеки “math.h” и ее использование при решении задач. Анализ задания и контрольный пример1)Ввести параметры b,r (r>0) и (r 2) Введите координаты точки x,y: 2 2 3)Точка принадлежит фигуре. Математическая постановка задачиДано: a – высота прямоугольника. b – длина прямоугольника, r – радиус окружностей. d – средняя линия. Фигура расположена по всей плоскости Найти: Принадлежит ли произвольно введенная с клавиатуры точка с координатами (x, y) внутренней области образовавшейся фигуры. Способ решения: По введённым пользователем некоторым начальным координатам фигуры, применяя математические действия, находятся остальные координаты, необходимые для сравнение координат произвольной точки со сторонами фигуры. Особенности решения задачи на компьютере: По заданным пользователем начальным значениям вычисляются остальные координаты фигуры при помощи несложных математический вычислений. Изучение необходимого материала и подготовка к выполнению лабораторной работы:Программа выводит на экран приветствие и условие задачи. Затем предлагает пользователю задать определенные параметры фигуры. При неверно введенных данных на экране появится «Ошибка построения», иначе пользователю будет предложено задать координаты произвольной точки. После чего на экране появится: «Точка принадлежит заштрихованной области», в случае, если точка находится в плоскости фигуры; «Точка не принадлежит заштрихованной области», в случае, если точка лежит за пределами фигуры.Способ внутреннего хранения данных:
Макет ввода-вывода: Для организации ввода-вывода используем операторы cin>> cout<< из библиотеки iostream. Ввод b,r Ввод x,y Вывод “ точка принадлежит фигуре” Вывод “ точка не принадлежит фигуре” если точка не принадлежит. Блок-схемаТекст программы#include #include #include using namespace std; int main() { setlocale(LC_ALL, "Rus"); cout << "Здравствуйте, данную лабораторную работ выполнил Гранин Владислав Анатольевич, группа 1309" << '\n' << "Начало: 2.10.2021" << '\n' << "Конец: -" << '\n' << "Версия: 1.0.0" << '\n' << "Рисунок 5.2(щ)" << '\n'; double a, b, r, d, x, y, x1, y1, k, e; /* a - высота прямоугол. b - длина прямоугол. r - радиус окружностей. d - средняя линия a = 2r. d = b+2r */ cout << "Введите параметры b,r (r>0)and(r cin >> b >> r; if ((r < 0) && !(r >= b)) { return 0; } else cout << "Введите координаты точки x,y: "; cin >> x >> y; //Формулы a = 2 * r; d = b + 2 * r; x = fabs(x); y = fabs(y); b = fabs(b); //Сдвигаем точку к фигуре if (x > d) { //По X k = trunc(x / d); x = x - d * k; } if (y > a) { //По Y e = trunc(y / a); y = y - a * e; } x1 = x - r; y1 = y - r; if ((((x1 * x1 + y1 * y1) <= r * r) && (x1 <= 0)) || ((((x1 - b) * (x1 - b) + y1 * y1) <= r * r) && (x1 >= b)) || ((y1 <= r) && (y1 >= r) && (x1 >= 0) && (x1 <= b)) || ((y1 <= 0 - r) && (y1 >= 0 - r)) && (x1 >= 0) && (x1 <= b)) { cout << "точка принадлежит фигуре \n"; } else cout << "точка Не принадлежит фигуре \n"; return 0; } Примеры работы программыНачала работы программы (рис.2) Рис. 2 Введём неправильные значения b = 5, r = -5. (рис.3) Рис. 3 Введём значение b = 5, r = 2 и x = 2, y = 2 (Рис.4) Рис. 4 Введём значение b = 5, r =2 и x = 3, y = 3 (Рис.5) Рис. 5 ВыводВ ходе выполнения задания была освоена библиотека “math.h”, изучены основные действия с операторами if и else на языке С++, а также получены практические навыки использования языка для решения зада |