using System.Collections.Generic;
using System.Threading.Tasks;
public int Radius {get;set;}
public Circle (int radius)
public Point (int x, int y)
public int Sidelength {get;set;}
public Square (int sidelength)
public class FilehandlingAndShapeReading
public List<Circle> Circles;
public List<Point> Points;
public List<Square> Squares;
public static void Main (string [] args)
SimpleMath sm = new SimpleMath();
FilehandlingAndShapeReading fas = new FilehandlingAndShapeReading();
foreach(var i in fas.Circles)
sumcircle += sm.areaCircle(i);
Console.WriteLine("Sum of Area Circle= "+sumcircle);
foreach (var i in fas.Squares)
sumsquare += sm.areaSquare(i);
Console.WriteLine("Sum of Area Square = "+sumsquare);
foreach(var i in fas.Points)
Console.WriteLine("x-coordinate= " + i.X + " y-coordinate= " +i.Y+ "(Index "+index+ ")");
Console.WriteLine("Please enter a Point index: ");
String input = Console.ReadLine();
int INPUT = Convert.ToInt32(input);
double [,] matrix = sm.distanceMatrix(fas.Points);
string [] Givendata = {"Circle 5","Square 3","Point 4 5" , "Circle 1","Square 8",
"Point 2 1", "Circle 9","Square 6", "Point 10 6", "Circle 17", "Square 25", "Point 11 12",
"Circle 8", "Square 7","Square 9","Square 10","Point 8 6","Point 5 2","Point 7 4"};
Circles = new List<Circle>();
Points = new List<Point>();
Squares = new List<Square>();
for(int i=0; i< Givendata.Length; i++)
string Shape = Givendata[i].Split(new char[0],StringSplitOptions.RemoveEmptyEntries)[0];
if (string.Equals (Shape,"Circle"))
int Zahl = Int32.Parse(Givendata[i].Split(new char[0],StringSplitOptions.RemoveEmptyEntries)[1]);
Circles.Add(new Circle(Zahl));
else if (string.Equals (Shape,"Square"))
int Zahl = Int32.Parse(Givendata[i].Split(new char[0],StringSplitOptions.RemoveEmptyEntries)[1]);
Squares.Add(new Square(Zahl));
else if (string.Equals (Shape,"Point"))
int X = Int32.Parse(Givendata[i].Split(new char[0],StringSplitOptions.RemoveEmptyEntries)[1]);
int Y = Int32.Parse(Givendata[i].Split(new char[0],StringSplitOptions.RemoveEmptyEntries)[2]);
Points.Add(new Point(X,Y));
public double distance (Point a, Point b)
var temp1 = Math.Pow((a.X - b.X), 2);
var temp2 = Math.Pow((a.Y - b.Y), 2);
var result = Math.Sqrt(temp1+temp2);
public double areaCircle (Circle a)
var area = Math.PI*a.Radius*a.Radius;
public int areaSquare (Square a)
var square = a.Sidelength*a.Sidelength;
public double[,] distanceMatrix (List<Point> PointsList)
SimpleMath sm = new SimpleMath();
double[,] distanceMatrix = new double[PointsList.Count,PointsList.Count] ;
foreach(var i in PointsList)
foreach(var j in PointsList)
double distance = sm.distance(i, j);
distanceMatrix[arr1, arr2] = distance;
public double [] nearestNeighbor (double[,] distanceMatrix, int Node)
Min = distanceMatrix [Node,0];
Min = distanceMatrix [Node,1];
for (int i=1; i< distanceMatrix.GetLength(Node);i++)
if( Min > distanceMatrix [Node, i] && i != Node)
Min = distanceMatrix [Node,i];
double [] result = new double[2];
result [1] = nearestNeighbor;