Создать абстрактный класс Figure с методами Perimetr и Square
Автор: Абитуриент БарГУ • Март 13, 2024 • Контрольная работа • 1,563 Слов (7 Страниц) • 89 Просмотры
Задание 1 Создать абстрактный класс Figure с методами Perimetr и Square. Создать производные классы для двух фигур:
- первая правильный многоугольник,
- вторая произвольная программа
Программа должна запрашивать необходимые параметры и выводить периметр и площадь для выбранных двух фигур.
Фигуры выбираются из таблицы по номеру в журнале
Формулы для нахождения площади и периметра найти в интернете
№ | Правильный многоугольник, n – количество сторон | Произвольная фигура |
1. | n = 10 | Равнобедренный треугольник (площадь считается по основанию и высоте) |
Код программы:
using System;
namespace _1zadanie
{
// Создаем абстрактный класс Figure
abstract class Figure
{
// Абстрактные методы для расчета периметра и площади
public abstract double Perimeter();
public abstract double Square();
}
// Производный класс для правильного многоугольника
class RegularPolygon : Figure
{
private int sides; // количество сторон многоугольника
private double sideLength; // длина стороны многоугольника
// Конструктор класса
public RegularPolygon(int sides, double sideLength)
{
this.sides = sides;
this.sideLength = sideLength;
}
// Реализация метода для расчета периметра
public override double Perimeter()
{
return sides * sideLength;
}
// Реализация метода для расчета площади
public override double Square()
{
// Расчет площади правильного многоугольника
// в зависимости от количества сторон и длины стороны
double apothem = sideLength / (2 * Math.Tan(Math.PI / sides));
return Math.Round(0.5 * apothem * Perimeter(), 2);
}
}
// Производный класс для равнобедренного треугольника
class IsoscelesTriangle : Figure
{
private double baseLength; // длина основания треугольника
private double height; // высота треугольника
// Конструктор класса
public IsoscelesTriangle(double baseLength, double height)
{
this.baseLength = baseLength;
this.height = height;
}
// Реализация метода для расчета периметра
public override double Perimeter()
{
return Math.Round(2 * baseLength + Math.Sqrt(4 * height * height + baseLength * baseLength), 2);
}
// Реализация метода для расчета площади
public override double Square()
{
return Math.Round(0.5 * baseLength * height, 2);
}
}
internal class Program
{
static void Main(string[] args)
{
Console.Write("Студент Иванов, вариант №1");
Console.Write("\nВведите длину стороны десятиугольника a = ");
...