Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Sorting Square Problem
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { public class Program { public static void Main(string[] args) { Square sqaure1 = new Square(10); Square sqaure2 = new Square(7); Square sqaure3 = new Square(5); Square sqaure4 = new Square(3); Square sqaure5 = new Square(1); List<Square> p_Squares = new List<Square>(); p_Squares.Add(sqaure1); p_Squares.Add(sqaure5); p_Squares.Add(sqaure3); p_Squares.Add(sqaure2); p_Squares.Add(sqaure4); var sqaures = Square.PlaceInside(p_Squares); } } internal class Square { private double m_Side; private double m_PosX = 0; private double m_PosY = 0; public Square(double p_S) { m_Side = p_S; } public Square(Square p_Sq) { m_Side = p_Sq.m_Side; } public void SetPosition(double p_PX, double p_PY) { m_PosX = p_PX; m_PosY = p_PY; } public double GetSide() { return m_Side; } ///<summary> ///To calculte X and Y coordinates ///</summary> ///<remarks> ///Inputs = List of Squares ///Output = List of Squares with X and Y coordinate values ///</remarks> public static List<Square> PlaceInside(List<Square> p_Squares) { List<Square> p_sortedSquares = p_Squares.OrderByDescending(square=>square.GetSide()).ToList(); //Sorting list of squre in decending order with respect to side double globalMid = 0, currentMid = 0; for(int i=0; i<p_sortedSquares.Count; i++) //Loop till the end of the list { p_sortedSquares[i].SetPosition(0,0); // Initially setting X = 0 and Y = 0 if(i==0) // For the square with highest Side or First Square { globalMid = p_sortedSquares[i].GetSide()/2; //Calculate the mid value of Square with highest side } else { double positionX = 0, positionY = 0; currentMid = p_sortedSquares[i].GetSide()/2; //Calculate the mid value of Square positionX = positionY = globalMid - currentMid; //Calculate X and Y coordinate values of bottom left corner p_sortedSquares[i].SetPosition(positionX, positionY); } } printCoordinates(p_sortedSquares); return p_sortedSquares; } ///<summary> ///To print X and Y cordinates of Square ///</summary> ///<remarks> ///Inputs = List of Squares ///</remarks> private static void printCoordinates(List<Square> p_Squares) { int count = 0; foreach(var square in p_Squares) { Console.WriteLine("***** Square: " + ++count + " *****"); Console.WriteLine("X: " +square.m_PosX + " Y: " +square.m_PosY); Console.WriteLine(); } } } }
run
|
edit
|
history
|
help
0
Unexpected result of virtual method
Operators
test
Cast int to enum in C#
EvenOdd
Великий и могучий РУСЯЗ
1
TestApp
C# Overriding example using virtual and override keywords
as