1
« en: Lunes 20 de Marzo de 2017, 22:48 »
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
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!!