
4 курс (заочка) / Лабораторные работы / ЛР2 (B) - ТП
.docxОрдена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Центр заочного обучения по программам бакалавриата
Кафедра «Математической кибернетики и информационных технологий»
Дисциплина: Технологии программирования
Лабораторная работа №2
Проверка попадания точки в область на плоскости
Выполнил: Иванов И.И., студент группы БСТ17XX Вариант №7
Проверил: Клешнин Н.Г.
Москва, 2021
Введение
В данной лабораторной работе мы изучаем создание программы, позволяющей произвести проверку попадания точки в область на плоскости. Необходимо написать программу, которая будет удовлетворять заданным условиям, указанным в варианте задания.
Задание
Для
функции
составить программу построения таблицы
значений функции, состоящую из n строк
при изменении аргумента от A до B.
В каждой строке таблицы выводить значение аргумента x и соответствующее ему значение функции y в форматированном виде с 4 знаками после запятой. В конце таблицы вывести отдельной строкой среднее арифметическое всех значений функции.
Кроме того, программа должна определить, сколько точек с координатами (x,y) из полученной таблицы попадает внутрь области, ограниченной фигурой, соответствующей индивидуальному заданию.
Вариант задания
Уровень B
Код программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab2
{
class Program
{
static void Main(string[] args)
{
int n;
Console.Write("Введите количество строк: ");
n = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите значение A: ");
double A = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите значение B: ");
double B = Convert.ToDouble(Console.ReadLine());
Func(A, B, n);
Console.ReadKey();
}
static void Func(double A, double B, int n)
{
int count = 0;
double summ = 0;
double h = Math.Abs((B - A) / n);
for (double x = A; x <= B; x += h)
{
double y = x * Math.Exp(x) + 2 * Math.Sin(x) - Math.Sqrt(Math.Abs(Math.Pow(x, 3) - Math.Pow(x, 2)));
summ += y;
Console.WriteLine($"x = {Math.Round(x,4)} \t y = {Math.Round(y,4)}");
if (x <= 0)
{
if ((x >= -1 && x <= 0) && (y >= -1 && y <= 1))
count++;
}
else
{
double d = Math.Sqrt(Math.Pow(0 - x, 2) + Math.Pow(0 - y, 2));
if (d <= 1)
count++;
}
}
Console.WriteLine($"Среднее арифметическое значений функции = {Math.Round(summ / n, 4)}");
Console.WriteLine($"Количество точек, попадающих в область = {count}");
}
}
}
Результат работы программы
Заключение
В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.