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

Лаба 3

.docx
Скачиваний:
0
Добавлен:
27.05.2024
Размер:
77.94 Кб
Скачать

Лабораторная 3

Задание 1. Даны координаты вершин двух треугольников. Определить, какой из них имеет больший периметр. Обязательно использовать функции.

using System;

class Triangle

{

// Функция, которая вычисляет расстояние между точками вершин

public static double Perimeter(double x1, double y1, double x2, double y2, double x3, double y3)

{

double a = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));

double b = Math.Sqrt(Math.Pow(x3 - x2, 2) + Math.Pow(y3 - y2, 2));

double c = Math.Sqrt(Math.Pow(x1 - x3, 2) + Math.Pow(y1 - y3, 2));

return a + b + c; // Функция возврата

}

static void Main()

{

// Ввод координат первого треугольника

Console.Write("Введите координаты вершин первого треугольника (через пробел 5 чисел): ");

string[] input = Console.ReadLine().Split();

double x1 = double.Parse(input[0]);

double y1 = double.Parse(input[1]);

double x2 = double.Parse(input[2]);

double y2 = double.Parse(input[3]);

double x3 = double.Parse(input[4]);

double y3 = double.Parse(input[5]);

// Вычисление периметра первого треугольника

double p1 = Perimeter(x1, y1, x2, y2, x3, y3);

// Ввод координат второго треугольника

Console.Write("Введите координаты вершин второго треугольника (через пробел 5 чисел): ");

input = Console.ReadLine().Split(); // split - разбивает строку на подстроки на основе указанного символа-разделителя

x1 = double.Parse(input[0]);

y1 = double.Parse(input[1]);

x2 = double.Parse(input[2]);

y2 = double.Parse(input[3]);

x3 = double.Parse(input[4]);

y3 = double.Parse(input[5]);

// Вычисление периметра второго треугольника

double p2 = Perimeter(x1, y1, x2, y2, x3, y3);

// Сравнение периметров

if (p1 > p2)

Console.WriteLine("Первый треугольник больше по периметру, чем второй");

else if (p2 > p1)

Console.WriteLine("Второй треугольник больше по периметру, чем первый");

else

Console.WriteLine("Периметры треугольников равны.");

}

}

Задание 2. Найти наибольший общий делитель двух чисел. Обязательно использовать рекурсивный подход решения задачи.

using System;

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите значение x: ");

int x = int.Parse(Console.ReadLine());

Console.WriteLine("Введите значение y: ");

int y = int.Parse(Console.ReadLine());

int nod = NOD(x, y);

Console.WriteLine($"Наибольший общий делитель для {x} и {y} = {nod}");

}

static int NOD(int x, int y)

{

if (x == 0)

return y;

if (y == 0)

return x;

if (x == y)

return x;

if (x > y)

return NOD(x - y, y);

else

return NOD(y – x, x);

}

}

Соседние файлы в предмете Основы программирования