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

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

Центр заочного обучения по программам бакалавриата

Кафедра «Математической кибернетики и информационных технологий»

Дисциплина: Технологии программирования

Лабораторная работа №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}");

}

}

}

Результат работы программы

Заключение

В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.

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