Practicing Constructors
The following program has two structs, one of them is called Point
which defines some coordinate as it has an x
and a y
attribute / field. The other struct is called Triangle
and it is made up of 3 point objects. In the constructor we pass three point objects to correctly initialize a triangle.
Fill in the blanks to complete the constructors of both the structs.
It will also be a good code reading exercise to read the whole code and try to understand it, however it is not necessary to solve this task.
index.cs
public
keyword before its definition.
using System;
class Program
{
struct Point
{
public double x;
public double y;
public Point(double x, double y)
{
this.x = x;
this.y = y;
}
}
struct Triangle
{
public Point[] vertices;
public Triangle(Point a, Point b, Point c)
{
this.vertices = new Point[] { a, b, c };
}
// Calculates and returns the area of the triangle based on the vertices.
public double getArea()
{
// Storing the values in shorter variables for ease of use and code readability.
double x1 = this.vertices[0].x;
double x2 = this.vertices[1].x;
double x3 = this.vertices[2].x;
double y1 = this.vertices[0].y;
double y2 = this.vertices[1].y;
double y3 = this.vertices[2].y;
// Calculating and returning the area of the triangle.
// This formula is easy available on the internet, you don't need to understand it.
return (0.5) * ( x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2) );
}
}
static void Main(string[] args)
{
Point p1 = new Point(47, 17);
Point p2 = new Point(9, 50);
Point p3 = new Point(7, 14);
Triangle tri = new Triangle(p1, p2, p3);
Console.WriteLine(tri.getArea());
}
}
Все було зрозуміло?
Зміст курсу
C# Beyond Basics
C# Beyond Basics
Practicing Constructors
The following program has two structs, one of them is called Point
which defines some coordinate as it has an x
and a y
attribute / field. The other struct is called Triangle
and it is made up of 3 point objects. In the constructor we pass three point objects to correctly initialize a triangle.
Fill in the blanks to complete the constructors of both the structs.
It will also be a good code reading exercise to read the whole code and try to understand it, however it is not necessary to solve this task.
index.cs
public
keyword before its definition.
using System;
class Program
{
struct Point
{
public double x;
public double y;
public Point(double x, double y)
{
this.x = x;
this.y = y;
}
}
struct Triangle
{
public Point[] vertices;
public Triangle(Point a, Point b, Point c)
{
this.vertices = new Point[] { a, b, c };
}
// Calculates and returns the area of the triangle based on the vertices.
public double getArea()
{
// Storing the values in shorter variables for ease of use and code readability.
double x1 = this.vertices[0].x;
double x2 = this.vertices[1].x;
double x3 = this.vertices[2].x;
double y1 = this.vertices[0].y;
double y2 = this.vertices[1].y;
double y3 = this.vertices[2].y;
// Calculating and returning the area of the triangle.
// This formula is easy available on the internet, you don't need to understand it.
return (0.5) * ( x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2) );
}
}
static void Main(string[] args)
{
Point p1 = new Point(47, 17);
Point p2 = new Point(9, 50);
Point p3 = new Point(7, 14);
Triangle tri = new Triangle(p1, p2, p3);
Console.WriteLine(tri.getArea());
}
}
Все було зрозуміло?