Beispiel #1
0
        static void Main(string[] args)
        {
            Nodos         miNodo;
            Cluster       miCluster;
            ListaNodos    listaN       = new ListaNodos();
            ListaClusters listaC       = new ListaClusters();
            String        ListaNombres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

            Console.WriteLine("Ingrese el numero de Nodos: ");
            String n         = Console.ReadLine();
            int    num_nodos = Int32.Parse(n);

            Console.WriteLine("Ingrese el numero de clusters: ");
            n = Console.ReadLine();
            int num_clusters = Int32.Parse(n);

            for (int i = 0; i < num_nodos; i++)
            {
                Console.WriteLine("Ingrese la cordenada x del nodo " + ListaNombres.Substring(i, 1) + ": ");
                n = Console.ReadLine();
                int cordenadaX = Int32.Parse(n);
                Console.WriteLine("Ingrese la cordenada y del nodo " + ListaNombres.Substring(i, 1) + ": ");
                n = Console.ReadLine();
                int cordenadaY = Int32.Parse(n);
                miNodo = new Nodos(ListaNombres.Substring(i, 1), cordenadaX, cordenadaY);
                listaN.AgregarNodo(miNodo);
            }
            for (int i = 0; i < num_clusters; i++)
            {
                Console.WriteLine("Ingrese la cordenada x del cluster " + (i + 1) + ": ");
                n = Console.ReadLine();
                int cordenadaX = Int32.Parse(n);
                Console.WriteLine("Ingrese la cordenada y del cluster " + (i + 1) + ": ");
                n = Console.ReadLine();
                int cordenadaY = Int32.Parse(n);
                miCluster = new Cluster(i.ToString(), cordenadaX, cordenadaY);
                listaC.AgregarCluster(miCluster);
            }
            int k = 1;

            Iteraciones(k, num_nodos, num_clusters, listaN, listaC);
        }
Beispiel #2
0
        public static void Iteraciones(int k, int num_nodos, int num_clusters, ListaNodos listaN, ListaClusters listaC)
        {
            String ListaNombres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

            double[,] resultados = new double[num_clusters, num_nodos];
            Console.WriteLine("Iteracion numero " + k + ": ");
            for (int i = 0; i < num_clusters; i++)
            {
                Console.WriteLine("Cluster " + (i + 1) + ": ");
                double[] cluster = listaC.DameCordenadas((i + 1));
                for (int j = 0; j < num_nodos; j++)
                {
                    Console.WriteLine("Nodo " + ListaNombres.Substring(j, 1) + ": ");
                    double[] nodo   = listaN.DameCordenadas((j + 1));
                    double   valor1 = Potencia((cluster[0] - nodo[0]));
                    double   valor2 = Potencia((cluster[1] - nodo[1]));
                    resultados[i, j] = Math.Sqrt(valor1 + valor2);
                    resultados[i, j] = Math.Truncate(resultados[i, j] * 100) / 100;
                    Console.WriteLine("((" + cluster[0] + "-" + nodo[0] + ")^2 + (" + cluster[1] + "-" + nodo[1] + ")^2)^1/2=  " + resultados[i, j]);
                }
                Console.WriteLine("\n");
            }

            double resultadomenor = resultados[0, 0];
            int    position       = 0;

            for (int j = 0; j < num_nodos; j++)
            {
                for (int i = 0; i < num_clusters; i++)
                {
                    if (resultadomenor < resultados[i, j])
                    {
                        resultadomenor = resultados[i, j];
                        position       = i;
                    }
                    ;
                }
                Console.WriteLine();
            }
            Console.Read();
        }