Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Challenge: Constructors | Structs & Enumerators
C# Object-Oriented Structures

Challenge: Constructors

Swipe to show menu

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 you 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

index.cs

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
using System; class Program { struct Point { public double x; public double y; ___ { ___ = x; ___ = y; } } struct Triangle { public Point[] 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()); } }
Hint
expand arrow

A constructor is similar to a method however it doesn't have any return value, moreover use the public keyword before its definition.

Solution
expand arrow
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());
    }
}
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 2. Chapter 9

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Section 2. Chapter 9
some-alt