Не спрашивайте почему я пишу уже на шарпе :)
Программы с подробнейшими комментариями.
//Создать класс Circle, разработав следующие элементы класса:
//d. Поля:
//• double x, y; // координаты центра круга
//• double r; // радиус круга
//e. Конструктор, позволяющий создать экземпляр класса:
//• с одним параметром, задающим радиус круга с центром в начале координат;
//• с тремя параметрами.
//f. Методы, позволяющие:
//• вывести радиус и координаты центра круга на экран;
//• получить площадь круга;
//• переместить круг на плоскости в заданную точку .
//В класс Circle добавить:
//c. Свойства:
//• позволяющие получить-установить координаты центра круга (доступные для чтения и записи);
//• позволяющее получить-установить значение радиуса круга (доступное для чтения и записи).
//d. Индексатор, позволяющий по индексу 0 получить значение площади круга, по индексу 1 – получить значение периметра круга, по индексу 2 получить значение диаметра круга.
using System;
namespace Работа_шарп_1_2
{
class Circle
{
protected double x;
protected double y; // координаты центра круга
protected double r; // радиус круга
public Circle(double X, double Y, double R) //конструктор с тремя параметрами
{
x = X;
y = Y;
r = R;
}
public Circle(double R) //конструктор с одним параметром, задающим радиус круга с центром в начале координат;
{
x = 0;
y = 0;
r = R;
}
public void display()//метод вывода на экран
{
Console.WriteLine("X = " + x + "\nY = " + y + "\nR = " + r);
}
public void Square()//метод нахождения площади
{
Console.WriteLine("Площадь круга = " + Math.PI*r*r);
}
public void movement(double X, double Y)//метод перемешения
{
this.x = X;
this.y = Y;
}
//геттеры для чтения
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public double getR()
{
return r;
}
//сеттеры для чтения
public void setX(double n)
{
x = n;
}
public void setY(double n)
{
y = n;
}
public void setR(double n)
{
r = n;
}
public double this[int i]//индексатор
{
get//получаем значение индекса
{
switch (i)//перебор по значениям
{
case 0: return Math.PI * r * r;
case 1: return 2*Math.PI*r;
case 2: return 2*r;
default: throw new IndexOutOfRangeException("Отсуствует эл." + i);// вызываем исключение если введен индекс не входящий в cases
}
}
}
static void Main(string[] args)
{
Circle circle1 = new Circle(1, 2, 3);//использование конструктора с 3 параметрами
Circle circle2 = new Circle(8);//использование конструктора с 1 параметром
Console.WriteLine("вывод на экран первого объекта");
circle1.display();//вывод на экран первого объекта
Console.WriteLine("вывод на экран второго объекта");
circle2.display();//вывод на экран второго объекта
Console.WriteLine("площадь второго объекта");
circle2.Square();//вывод на экран площади
circle1.movement(6, 7);//демонстрация метода перемещения
Console.WriteLine("Перемещение первого объекта");
circle1.display();
Console.WriteLine("Получение всех свойств объекта два");
Console.WriteLine("Х = " + circle2.getX() + "\nY = " + circle2.getY() + "\nR = " + circle2.getR());
//Устанавливаем свойства:
circle2.setX(6);
circle2.setY(5);
circle2.setR(4);
Console.WriteLine("просмотр переустановленных свойств");
circle2.display();//просмотр переустановленных свойств объекта 2
Console.WriteLine("Индексатор, позволяющий по индексу 0 получить значение площади круга, по индексу 1 – получить значение периметра круга, по индексу 2 получить значение диаметра круга:");
for (int i = 0; i < 3; i++)
{
Console.WriteLine(circle2[i]);
}
}
}
}
//Точка, треугольник, треугольная пирамида
//а) Наследование. Определите иерархию классов (см. варианты), связанных отношением наследования. Определите в этих классах методы, которые перемещает фигуру по плоскости, возвращают ее площадь, периметр (для объемных фигур – периметр основания), и строку символов, отражающую имя класса и состояние объекта. Продемонстрируйте работу с классами.
using System;
namespace Inheritance
{
class Point //класс точки
{
protected double X;
protected double Y;
public Point(double x, double y) //конструктор с параметрами
{
X = x;
Y = y;
}
public Point() //конструктор без параметров задает по умолчанию все ноли
{
X = 0;
Y = 0;
}
public virtual void move()//виртуальный метод сдвига
{
Console.WriteLine("Введите на какое число переместить координату Х ");
X += Convert.ToInt64(Console.ReadLine()); //считываемая строка в формате string по умолчанию не может преобразовываться в число, потому нужна конвертация
Console.WriteLine("Введите на какое число переместить координату Y ");
Y += Convert.ToInt64(Console.ReadLine());
}
public virtual string type() //вывод состояния объекта
{
return(GetType().Name + "\nX = " + X + "\nY = " + Y);
}
//геттеры
public double getX()
{
return X;
}
public double getY()
{
return Y;
}
}
class Triangle : Point //класс треугольник состоящий из точек
{
protected Point A;
protected Point B;
protected Point C;
public Triangle()//конструктор без параметров задает по умолчанию все ноли
{
A = new Point(0, 0);
B = new Point(0, 0);
C = new Point(0, 0);
}
public Triangle(Point a, Point b, Point c) //конструктор с параметрами
{
A = a;
B = b;
C = c;
}
public override void move()//переопределенный метод сдвига
{
Console.WriteLine("Точка A");
A.move();
Console.WriteLine("Точка B");
B.move();
Console.WriteLine("Точка C");
C.move();
}
public virtual double square()//метод нахождения площади
{
return Math.Abs((B.getX() - A.getX()) * (C.getY() - A.getY()) - (C.getX() - A.getX()) * (B.getY()-A.getY())) / 2;
}
public virtual double perimeter()//находим периметр
{
return Math.Sqrt(Math.Pow(B.getX() - A.getX(), 2) + Math.Pow(B.getY() - A.getY(), 2)) +
Math.Sqrt(Math.Pow(C.getX() - A.getX(), 2) + Math.Pow(C.getY() - A.getY(), 2)) +
Math.Sqrt(Math.Pow(C.getX() - B.getX(), 2) + Math.Pow(C.getY() - B.getY(),2 ));
}
public override string type()//вывод состояния объекта
{
return this.GetType().Name + "\nA = " + A.type() + "\nB = " + B.type() + "\nC = " + C.type();
}
public double lenth_base()//функция возвращающая длину основания треугольника, нужна для дальнейшей работы с пирамидой
{
return Math.Sqrt(Math.Pow(C.getX() - A.getX(), 2) + Math.Pow(C.getY() - A.getY(), 2));
}
}
class Triangular_puramid : Triangle //класс пирамида, состоящий из треугольников
{
private Triangle AA;
private Triangle BB;
private Triangle CC;
public Triangular_puramid(Triangle aa, Triangle bb, Triangle cc) //конструктор с параметрами
{
AA = aa;
BB = bb;
CC = cc;
}
public override void move()//переопределенный метод сдвига
{
Console.WriteLine("Сторона треугольника AA");
AA.move();
Console.WriteLine("Сторона треугольника BB");
BB.move();
Console.WriteLine("Сторона треугольника CC");
CC.move();
}
public override double square()//переопределенный метод нахождения площади
{
return AA.square() + BB.square() + CC.square() + Math.Pow(AA.lenth_base(), 2);
}
public override double perimeter()//находим периметр, возвращает значение
{
return AA.lenth_base() + BB.lenth_base() + CC.lenth_base();
}
public override string type()//переопределнный вывод состояния объекта
{
return this.GetType().Name + "\nAA = " + AA.type() + "\nBB = " + BB.type() + "\nCC = " + CC.type();
}
}
class Program
{
static void Main(string[] args)
{
Point point1 = new Point(1, 2);//создаем обьект точка, используя конструктор с параметрами
Point point2 = new Point(13, 22);
Point point3 = new Point(17, 23);
point1.move();//передвигаем точку
Console.WriteLine("*********************");
Console.WriteLine(point1.type());//выводим информацию об объекте
Console.WriteLine("*********************");
Triangle triangle1 = new Triangle(point1, point2, point3);//создаем треугольник из 3 точек используя конструктор с параметрами
Triangle triangle2 = new Triangle(point2, point1, point3);
Triangle triangle3 = new Triangle(point3, point2, point1);
triangle1.move();//сдвигаем треугольник
Console.WriteLine("*********************");
Console.WriteLine(triangle1.type());//выводим информацию об объекте
Console.WriteLine("*Площадь треугольника*");
Console.WriteLine(triangle1.square());
Console.WriteLine("*Периметр Треугольника*");
Console.WriteLine(triangle1.perimeter());
Triangular_puramid puramid = new Triangular_puramid(triangle1, triangle2, triangle3);//создаем пирамиду из 3 треугольников
Console.WriteLine("*********************");
puramid.move();//сдвигаем пирамиду
Console.WriteLine("*********************");
Console.WriteLine(puramid.type());//выводим информацию об объекте
Console.WriteLine("***Площадь пирамиды**");
Console.WriteLine(puramid.square());
Console.WriteLine("**Периметр пирамиды**");
Console.WriteLine(puramid.perimeter());
}
}
}
Программы с подробнейшими комментариями.
//Создать класс Circle, разработав следующие элементы класса:
//d. Поля:
//• double x, y; // координаты центра круга
//• double r; // радиус круга
//e. Конструктор, позволяющий создать экземпляр класса:
//• с одним параметром, задающим радиус круга с центром в начале координат;
//• с тремя параметрами.
//f. Методы, позволяющие:
//• вывести радиус и координаты центра круга на экран;
//• получить площадь круга;
//• переместить круг на плоскости в заданную точку .
//В класс Circle добавить:
//c. Свойства:
//• позволяющие получить-установить координаты центра круга (доступные для чтения и записи);
//• позволяющее получить-установить значение радиуса круга (доступное для чтения и записи).
//d. Индексатор, позволяющий по индексу 0 получить значение площади круга, по индексу 1 – получить значение периметра круга, по индексу 2 получить значение диаметра круга.
using System;
namespace Работа_шарп_1_2
{
class Circle
{
protected double x;
protected double y; // координаты центра круга
protected double r; // радиус круга
public Circle(double X, double Y, double R) //конструктор с тремя параметрами
{
x = X;
y = Y;
r = R;
}
public Circle(double R) //конструктор с одним параметром, задающим радиус круга с центром в начале координат;
{
x = 0;
y = 0;
r = R;
}
public void display()//метод вывода на экран
{
Console.WriteLine("X = " + x + "\nY = " + y + "\nR = " + r);
}
public void Square()//метод нахождения площади
{
Console.WriteLine("Площадь круга = " + Math.PI*r*r);
}
public void movement(double X, double Y)//метод перемешения
{
this.x = X;
this.y = Y;
}
//геттеры для чтения
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public double getR()
{
return r;
}
//сеттеры для чтения
public void setX(double n)
{
x = n;
}
public void setY(double n)
{
y = n;
}
public void setR(double n)
{
r = n;
}
public double this[int i]//индексатор
{
get//получаем значение индекса
{
switch (i)//перебор по значениям
{
case 0: return Math.PI * r * r;
case 1: return 2*Math.PI*r;
case 2: return 2*r;
default: throw new IndexOutOfRangeException("Отсуствует эл." + i);// вызываем исключение если введен индекс не входящий в cases
}
}
}
static void Main(string[] args)
{
Circle circle1 = new Circle(1, 2, 3);//использование конструктора с 3 параметрами
Circle circle2 = new Circle(8);//использование конструктора с 1 параметром
Console.WriteLine("вывод на экран первого объекта");
circle1.display();//вывод на экран первого объекта
Console.WriteLine("вывод на экран второго объекта");
circle2.display();//вывод на экран второго объекта
Console.WriteLine("площадь второго объекта");
circle2.Square();//вывод на экран площади
circle1.movement(6, 7);//демонстрация метода перемещения
Console.WriteLine("Перемещение первого объекта");
circle1.display();
Console.WriteLine("Получение всех свойств объекта два");
Console.WriteLine("Х = " + circle2.getX() + "\nY = " + circle2.getY() + "\nR = " + circle2.getR());
//Устанавливаем свойства:
circle2.setX(6);
circle2.setY(5);
circle2.setR(4);
Console.WriteLine("просмотр переустановленных свойств");
circle2.display();//просмотр переустановленных свойств объекта 2
Console.WriteLine("Индексатор, позволяющий по индексу 0 получить значение площади круга, по индексу 1 – получить значение периметра круга, по индексу 2 получить значение диаметра круга:");
for (int i = 0; i < 3; i++)
{
Console.WriteLine(circle2[i]);
}
}
}
}
//Точка, треугольник, треугольная пирамида
//а) Наследование. Определите иерархию классов (см. варианты), связанных отношением наследования. Определите в этих классах методы, которые перемещает фигуру по плоскости, возвращают ее площадь, периметр (для объемных фигур – периметр основания), и строку символов, отражающую имя класса и состояние объекта. Продемонстрируйте работу с классами.
using System;
namespace Inheritance
{
class Point //класс точки
{
protected double X;
protected double Y;
public Point(double x, double y) //конструктор с параметрами
{
X = x;
Y = y;
}
public Point() //конструктор без параметров задает по умолчанию все ноли
{
X = 0;
Y = 0;
}
public virtual void move()//виртуальный метод сдвига
{
Console.WriteLine("Введите на какое число переместить координату Х ");
X += Convert.ToInt64(Console.ReadLine()); //считываемая строка в формате string по умолчанию не может преобразовываться в число, потому нужна конвертация
Console.WriteLine("Введите на какое число переместить координату Y ");
Y += Convert.ToInt64(Console.ReadLine());
}
public virtual string type() //вывод состояния объекта
{
return(GetType().Name + "\nX = " + X + "\nY = " + Y);
}
//геттеры
public double getX()
{
return X;
}
public double getY()
{
return Y;
}
}
class Triangle : Point //класс треугольник состоящий из точек
{
protected Point A;
protected Point B;
protected Point C;
public Triangle()//конструктор без параметров задает по умолчанию все ноли
{
A = new Point(0, 0);
B = new Point(0, 0);
C = new Point(0, 0);
}
public Triangle(Point a, Point b, Point c) //конструктор с параметрами
{
A = a;
B = b;
C = c;
}
public override void move()//переопределенный метод сдвига
{
Console.WriteLine("Точка A");
A.move();
Console.WriteLine("Точка B");
B.move();
Console.WriteLine("Точка C");
C.move();
}
public virtual double square()//метод нахождения площади
{
return Math.Abs((B.getX() - A.getX()) * (C.getY() - A.getY()) - (C.getX() - A.getX()) * (B.getY()-A.getY())) / 2;
}
public virtual double perimeter()//находим периметр
{
return Math.Sqrt(Math.Pow(B.getX() - A.getX(), 2) + Math.Pow(B.getY() - A.getY(), 2)) +
Math.Sqrt(Math.Pow(C.getX() - A.getX(), 2) + Math.Pow(C.getY() - A.getY(), 2)) +
Math.Sqrt(Math.Pow(C.getX() - B.getX(), 2) + Math.Pow(C.getY() - B.getY(),2 ));
}
public override string type()//вывод состояния объекта
{
return this.GetType().Name + "\nA = " + A.type() + "\nB = " + B.type() + "\nC = " + C.type();
}
public double lenth_base()//функция возвращающая длину основания треугольника, нужна для дальнейшей работы с пирамидой
{
return Math.Sqrt(Math.Pow(C.getX() - A.getX(), 2) + Math.Pow(C.getY() - A.getY(), 2));
}
}
class Triangular_puramid : Triangle //класс пирамида, состоящий из треугольников
{
private Triangle AA;
private Triangle BB;
private Triangle CC;
public Triangular_puramid(Triangle aa, Triangle bb, Triangle cc) //конструктор с параметрами
{
AA = aa;
BB = bb;
CC = cc;
}
public override void move()//переопределенный метод сдвига
{
Console.WriteLine("Сторона треугольника AA");
AA.move();
Console.WriteLine("Сторона треугольника BB");
BB.move();
Console.WriteLine("Сторона треугольника CC");
CC.move();
}
public override double square()//переопределенный метод нахождения площади
{
return AA.square() + BB.square() + CC.square() + Math.Pow(AA.lenth_base(), 2);
}
public override double perimeter()//находим периметр, возвращает значение
{
return AA.lenth_base() + BB.lenth_base() + CC.lenth_base();
}
public override string type()//переопределнный вывод состояния объекта
{
return this.GetType().Name + "\nAA = " + AA.type() + "\nBB = " + BB.type() + "\nCC = " + CC.type();
}
}
class Program
{
static void Main(string[] args)
{
Point point1 = new Point(1, 2);//создаем обьект точка, используя конструктор с параметрами
Point point2 = new Point(13, 22);
Point point3 = new Point(17, 23);
point1.move();//передвигаем точку
Console.WriteLine("*********************");
Console.WriteLine(point1.type());//выводим информацию об объекте
Console.WriteLine("*********************");
Triangle triangle1 = new Triangle(point1, point2, point3);//создаем треугольник из 3 точек используя конструктор с параметрами
Triangle triangle2 = new Triangle(point2, point1, point3);
Triangle triangle3 = new Triangle(point3, point2, point1);
triangle1.move();//сдвигаем треугольник
Console.WriteLine("*********************");
Console.WriteLine(triangle1.type());//выводим информацию об объекте
Console.WriteLine("*Площадь треугольника*");
Console.WriteLine(triangle1.square());
Console.WriteLine("*Периметр Треугольника*");
Console.WriteLine(triangle1.perimeter());
Triangular_puramid puramid = new Triangular_puramid(triangle1, triangle2, triangle3);//создаем пирамиду из 3 треугольников
Console.WriteLine("*********************");
puramid.move();//сдвигаем пирамиду
Console.WriteLine("*********************");
Console.WriteLine(puramid.type());//выводим информацию об объекте
Console.WriteLine("***Площадь пирамиды**");
Console.WriteLine(puramid.square());
Console.WriteLine("**Периметр пирамиды**");
Console.WriteLine(puramid.perimeter());
}
}
}
Комментарии
Отправить комментарий