• Viernes 19 de Abril de 2024, 09:16

Autor Tema:  Matriz/Array sin datos repetidos en C#  (Leído 2338 veces)

joshernandez

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Matriz/Array sin datos repetidos en C#
« en: Lunes 20 de Marzo de 2017, 22:48 »
0
Hola, que tal buenas tardes.
Disculpen, alguien me podria ayudar a realizar un bucle/ciclo e if, que no me permita almacenar el mismo valor en algun campo de la matriz.
En este codigo me permite asignar el tamaño de la matriz y luego ingresar los valores, pero no se que codigo necesito ingresar para que al insertar un numero y si este ya esta ingresado, no me lo permita y asi hasta colocar un numero distino y rellanar todos los campos de la matriz. Gracias

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Matriz_bidimensional
{
    class Program
    {
        static void Main(string[] args)
        {
            bool dato = false;
            double valor = 0;
            valores v = new valores();

            //bucle o ciclo do que repite el codigo de la clase el cual almacena la primer peticion del tamaño de la matriz
            do
            {
                var result = v.valor_inicial();
                dato = result.isValid;
                valor = result.valor;
            }
            while (dato == false);

            Console.WriteLine("El valor ingresado fue: {0}", valor);






            //codigo para la creación de la matriz
            Console.WriteLine();
            int[,] matriz = new int[Convert.ToInt32(valor), Convert.ToInt32(valor)];
            for (int a = 0; a < valor; a++)
            {
                for (int b = 0; b < valor; b++)
                {
                    Console.Write("Ingrese el número: ");
                    double numero = Convert.ToDouble(Console.ReadLine());
                    matriz[a, b] = Convert.ToInt32(numero);
                }
            }







            //Codigo que manda a imprimir la matriz
            Console.WriteLine();
            Console.WriteLine("Matriz primer orden");
            for (int a = 0; a < valor; a++)
            {
                for (int b = 0; b < valor; b++)
                {
                    Console.Write("[{0}]", matriz[a, b]);
                    Console.Write(" ");
                }
                Console.WriteLine();

            }

            Console.WriteLine();
            Console.WriteLine("Matriz segundo orden");
            //Codigo que manda a imprimir la matriz al revez
            for (int a = 0; a < valor; a++)
            {
                for (int b = 0; b < valor; b++)
                {
                    Console.Write("[{0}]", matriz[b, a]);
                    Console.Write(" ");
                }
                Console.WriteLine(" ");
            }

            Console.ReadKey();
        }





        //Clase para poder ingresar el primer valor positivo, entero y mayor a 1
        class valores
        {
            public Result valor_inicial()
            {
                Result result = new Result();

                Console.WriteLine("Ingresa el número de la matriz");
                double valor = Convert.ToDouble(Console.ReadLine());

                if (valor >= 0 && valor % 1 == 0 && valor > 1)
                {
                    result.isValid = true;
                    result.valor = valor;
                }
                else
                {
                    Console.WriteLine("Ingresa un número entero, positivo y mayor a 1.");
                    Console.WriteLine();
                    result.isValid = false;
                }
                return result;
            }
        }


        //se define una propiedad autoimplementada (con esto declarado, pudemos acceder a los valores ya sea para obtener un valor o asignarle uno).
        public class Result
        {
            public bool isValid { get; set; }
            public double valor { get; set; }
        }
    }
}

Ayuda por favor!!