• Lunes 9 de Diciembre de 2024, 07:23

Autor Tema:  Matriz/Array sin datos repetidos en C#  (Leído 3634 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!!

cesar.queb

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Matriz/Array sin datos repetidos en C#
« Respuesta #1 en: Jueves 11 de Julio de 2024, 02:00 »
0
Cuando desees realizar este tipo de tareas, lo ideal es utilizar un objeto de tipo Diccionario.

Código: C#
  1. // C# program to illustrate how
  2. // to  check the given key or
  3. // value present in the dictionary
  4. // or not
  5. using System;
  6. using System.Collections.Generic;  
  7.  
  8. class GFG {
  9.  
  10.         // Main Method
  11.     static public void Main () {
  12.          
  13.                  // Creating a dictionary
  14.         // using Dictionary<TKey,TValue> class
  15.         Dictionary<int, string> My_dict =  
  16.                       new Dictionary<int, string>();
  17.            
  18.           // Adding key/value pairs in the
  19.           // Dictionary Using Add() method
  20.           My_dict.Add(1123, "Welcome");
  21.           My_dict.Add(1124, "to");
  22.           My_dict.Add(1125, "GeeksforGeeks");
  23.            
  24.           // Using ContainsKey() method to check
  25.           // the specified key is present or not
  26.           if (My_dict.ContainsKey(1122)==true)
  27.           {
  28.               Console.WriteLine("Key is found...!!");
  29.           }
  30.  
  31.           else
  32.           {
  33.                Console.WriteLine("Key is not found...!!");
  34.           }
  35.            
  36.           // Using ContainsValue() method to check
  37.           // the specified value is present or not
  38.           if (My_dict.ContainsValue("GeeksforGeeks")==true)
  39.           {
  40.               Console.WriteLine("Value is found...!!");
  41.           }
  42.  
  43.           else
  44.           {
  45.                Console.WriteLine("Value is not found...!!");
  46.           }
  47.     }
  48. }
  49.  

Saludos.