Создайте класс RightTriangle и Создайте производный класс Rectangle - C#
Формулировка задачи:
Создайте класс RightTriangle (Прямоугольный треугольник), задаваемый катетами и опишите механизм вычисления его периметра. Создайте производный класс Rectangle (Прямоугольник), задаваемый длинами сторон и умеющий вычислять свой периметр. Реализуйте метод с одинаковым именем в обоих классах для вывода параметров объекта
Вопрос1: правильно ли я реализовал метод с одинаковым именем в обоих классах для вывода параметров объекта?
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace RightTriangle
- {
- class RightTriangle
- {
- private int cathetusA; //катет А
- private int cathetusB; //катет Б
- private int hypothenuse; //гипотенуза
- public RightTriangle(int sideA, int sideB)
- {
- cathetusA = sideA;
- cathetusB = sideB;
- }
- public int sideA
- {
- get { return cathetusA; }
- set { cathetusA = value; }
- }
- public int sideB
- {
- get { return cathetusB; }
- set { cathetusB = value; }
- }
- //Вот тут я реализовал метод для треугольника
- //который выводит параметры объекта
- public void getObjectInfo()
- {
- Console.WriteLine("Triangle info:\nSideA=" + sideA + "\nSideB=" + sideB + "\nPerimetr=" + TrianglePerimetr() + "\n------------");
- }
- //метод, который находит периметр треугольника
- public int TrianglePerimetr()
- {
- //Формула:
- //P = a + b + c
- //c - hypothenuse, a - sideA, b - sideB
- //[SUP]c2[/SUP] = [SUP]a2[/SUP] + [SUP]b2[/SUP]
- Math.Pow(sideA, 2);
- Math.Pow(sideB, 2);
- hypothenuse = sideA + sideB;
- Math.Sqrt(hypothenuse);
- Math.Sqrt(sideA);
- Math.Sqrt(sideB);
- return sideA + sideB + hypothenuse;
- }
- }
- class Rectangle : RightTriangle
- {
- public Rectangle(int sideA, int sideB) : base(sideA, sideB) { }
- //Вот тут я реализовал метод для прямоугольника
- //который выводит параметры объекта
- public void getObjectInfo() //тут getObjectInfo() подчёркивает зелёным цветом, но программа работает
- { //RightTriangle.Rectangle.getObjectInfo() hides inherited member RightTriangle.RightTriangle.getObjectInfo().
- //Use the new keyword if hiding was intended
- Console.WriteLine("Rectangle info:\nSideA=" + sideA + "\nSideB=" + sideB + "\nPerimetr=" + RectanglePerimetr() + "\n------------");
- }
- //метод, который находит периметр прямоугольника
- public int RectanglePerimetr()
- {
- //Формула:
- //P = (a + b) * 2
- return (sideA + sideB) * 2;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- RightTriangle triangle = new RightTriangle(5, 10);
- Rectangle rectangle = new Rectangle(20, 10);
- triangle.getObjectInfo();
- rectangle.getObjectInfo();
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Создайте класс RightTriangle и Создайте производный класс Rectangle»
textual
Листинг программы
- Math.Pow(sideA, 2);
- Math.Pow(sideB, 2);
- hypothenuse = sideA + sideB; //это единственная строка которая хоть что-то дает в итоге, но поставленную задачу не решает
- Math.Sqrt(hypothenuse);
- Math.Sqrt(sideA);
- Math.Sqrt(sideB);
- return sideA + sideB + hypothenuse;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д