Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - javierx0246

Páginas: [1]
1
Hola estoy empezando con el temario de los Streams y aun no se muchas cosas.


Quería saber como yo puedo yo copiar un archivo origen a otro destino  Con el FileStream . Y con la explicación paso a paso.Con texto ya puesto Y para que sirve el Read Y el write.


Yo lo he intentado


Mi código:

Código: [Seleccionar]
internal class Program
{

    public static void CopiarArchivo(string origen, string destino)
    {
        FileStream ficheroOrigen = new FileStream(origen, FileMode.OpenOrCreate, FileAccess.Write);
        FileStream ficheroDestino = new FileStream(destino, FileMode.OpenOrCreate, FileAccess.Write);
     
        ficheroOrigen.CopyTo(ficheroDestino);
        ficheroOrigen.Close();
        ficheroDestino.Close();
    }

    private static void Main(string[] args)
    {
        CopiarArchivo(args[0], args[1]);
        Console.ReadLine();
    }
}

Gracias

2
Hola estoy haciendo un ejercicio y cuando lo ejecuto .Me sale que el calculo que he realizado esta fuera del array por eso necesito vuestra ayuda .Gracias


 
 

 
La aplicación permitirá recoger datos de una cuenta bancaria. Deberás crear los siguientes métodos y comprobar que funcionan correctamente. Prueba la aplicación con más de un número de cuenta y captura las posibles excepciones en el programa principal.

    El constructor NumeroCuenta recibirá un string con el número de cuenta completo y si este no se corresponde con un número de cuenta correcto se lanzara una excepción NumeroCuentaIncorrectoException. Esta excepción se puede lanzar por dos motivos:
        Porque no cumple el patrón de un número de cuenta (para ello llamará al método formatoCorrecto)
        Porque la cuenta no se corresponde con los dígitos de control (en este caso usara dcCorrecto).

    El método privado de NumeroDeCuenta, formatoCorrecto. Comprobará el formato del número de cuenta con expresiones regulares y si el formato es correcto rellenará los campos del objeto. En caso contrario lanzará una excepción NumeroCuentaIncorrectoException, indicando que el formato de la cuenta no cumple las condiciones necesarias.

    El método privado dcCorrecto, comprobará si el dígito de control corresponde a la cuenta, devolviendo false en caso contrario. Para ver como se hace esto, consulta la Nota y la Pista posterior.

    El método Reintegro, lanzará una exception SaldoInsuficienteException, cuando se intente retirar una cantidad y no haya suficiente saldo.

El código cuenta corriente es un número de 20 cifras. Las 4 primeras de la izquierda identifican a la Entidad, las 4 siguientes, la Sucursal, luego vienen 2 dígitos de control y las 10 últimas corresponden al número de la cuenta corriente.

    El primero es el dígito de control de Entidad/Sucursal.
    El segundo es el dígito de control del número de la cuenta corriente.

El siguiente ejemplo nos enseñará a calcularlos…

Supongamos ahora 2085 el código de una hipotética entidad y 0103 el código de una de sus sucursales.

Para calcular el dígito de control de Entidad/Sucursal:

    Realizaremos la operación:
    2*4 + 0*8 + 8*5 + 5*10 + 0*9 + 1*7 + 0*3 + 3*6 = 123

    Es decir, cada una de las cifras de la entidad, seguidas de la sucursal, se han ido multiplicando por los números del array de ponderaciones 4, 8, 5, 10, 9, 7, 3, 6 y luego se han sumado estos resultados.

    Ahora realizaremos la operación 11 – (resultado % 11)
    El resultado será un número entre 1 y 11. Si el número es menor que 10 será ya el valor del DC. Pero si es 10 el DC será 1 y si es 11 será 0. En este caso 11 – (123 % 11) = 9 que será el DC de Entidad/sucursal.

Para calcular el dígito de control de número de cuenta corriente:

    Si este es, por ejemplo, el 0300731702, para calcular su dígito de control se realiza la operación:
    0*1 + 3*2 + 0*4 + 0*8 + 7*5 + 3*10 + 1*9 + 7*7 + 0*3 + 2*6 = 141
    Es decir, cada una de las cifras del número de la cuenta, leídas de izquierda a derecha, se han ido multiplicando por 1, 2, 4, 8, 5, 10, 9, 7, 3, 6 y luego se han sumado estos resultados.
    Realizaremos la misma operación que antes 11 – (121 % 11) = 2 que será el DC de número de cuenta.
 





Mi codigo



Código: [Seleccionar]
using System.Text.RegularExpressions;
namespace ejercicio4;
class NumeroCuenta
{
    class NumeroCuentaIncorrectoException : Exception
    {
        public NumeroCuentaIncorrectoException(string message) : base("tu poblema es " + message)
        {

        }
    }
    private string entidad;
    private string sucursal;
    private string dcEntSuc;
    private string dcNumero;
    private string cuenta;
    public NumeroCuenta(string numero)
    {
        dcCorrecto(dcEntSuc, entidad + sucursal, new int[] { 4, 8, 5, 10, 9, 7, 3, 6 });
        dcCorrecto(dcNumero, cuenta, new int[] { 1, 2, 4, 8, 5, 10, 9, 7, 3, 6 });
    }
    private bool dcCorrecto(string dc, string digitos, int[] ponderaciones)
    {
        int sumaPonderacion = 0;
        int sumaTotal = 0;
        int operacion = 0;
        for (int i = 0; i < ponderaciones.Length; i++)
        {
            sumaPonderacion += (digitos[i] - 48) * ponderaciones[i];
        }
        sumaTotal += sumaPonderacion;
        operacion = 11 - (sumaTotal % 11);



        int dcCalculado;

        if (operacion < 10)
        {

            dcCalculado = operacion;
        }
        else if (operacion == 10)
        {

            dcCalculado = 1;
        }

        else dcCalculado = 0;

        if (dcCalculado.ToString() == dc)
        {
            return true;
        }
        return false;
    }
    public bool FormatoCorrecto(string numero)
    {

        string patron = @"^((?<entidad>\d{4) ?(?<sucursal>\d{4}) ?(?<dcEntSuc>\d)(?<dcNumero>\d) ?(?<dcNumero>\d{10})$";
        bool isMatch = Regex.IsMatch(numero, patron);
          Regex r = new Regex(patron);
        Match match = r.Match(numero);
        if (isMatch == false) //Si es falso
        {

            throw new NumeroCuentaIncorrectoException("Mensaje");

        }
        else
        {
            int[] ponderacion = new int[8] { 4, 8, 5, 10, 9, 7, 3, 6 };


        }
        if(match.Success)
        {
             entidad = match.Groups["entidad"].Value;
            sucursal = match.Groups["sucursal"].Value;
            dcEntSuc = match.Groups["dcEntSuc"].Value;
            dcNumero = match.Groups["dcNumero"].Value;
            dcNumero = match.Groups["dcNumero"].Value;
        }
        return match.Success;
    }

     public override string ToString()
        {
            return $"{entidad}-{sucursal}-{dcEntSuc}{dcNumero}-{cuenta}";
        }
}
Muchas gracias por intentar ayudarme  ;)

3
Hola estoy haciendo un ejercicio y me falla la parte donde yo tengo que poner el valor. Al atributo valor y el enumerado.


El ejercicio
Debes definir un tipo valor que represente un Naipe de la baraja Española de 48 cartas. El tipo estará compuesto por dos miembros: un valor y un palo, este último sera de tipo enumerado con los siguientes valores posibles: Oros, Copas, Bastos, Espada.
Crea un método en la clase principal que utilizando el tipo Naipe nos devuelva una baraja con las 48 cartas, usa una matriz Naipe[,] baraja= new Naipe[4,12] e inicialízala suponiendo que cada fila representa un palo.


Mi codigo





using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Text;
using System.Text.RegularExpressions;
internal class Program
{
    struct Naipe
    {
        public enum Tipo { Oros, Copas, Bastos, Espada }
        public Tipo tipo;
        public readonly int valor;
        public Naipe(Tipo tipo, int valor)
        {

            this.valor = valor;
            this.tipo = tipo;
        }


    }


    public static void Baraja()
    {
        Naipe[,] Baraja = new Naipe[4, 12];
        for (int i = 0; i < Baraja.GetLength(0); i++)
        {
            for (int j = 0; j < Baraja.GetLength(1); j++)
            {
                Baraja[i, j].tipo = Naipe.Tipo.Oros;
                Baraja[i, j].valor=0
            }
        }


    }
    private static void Main(string[] args)
    {


        Program.Baraja();
        Console.ReadLine();


    }

}
Gracias

4
Hola tengo que hacer un ejercicio sobre Flags de enumeracion y aun no lo entiendo del todo

Ejercicio:

Crea una aplicación para gestionar la personalización de coches en un determinado taller.

    Tendrás que utilizar Enumeraciones NO excluyentes, debes definir la enumeración con un mínimo de 7 colores (incluido el None).
    La aplicación permitirá añadir un color o más a la elección, eliminar un color de los que ya se habían elegido y mostrar los colores elegidos.
    El programa comenzará mostrando un menú, con las tres opciónes y la que nos permita salir.



Mi codigo







using System.Text;
internal class Program
{
    [Flags]
    public enum Color
    {
        None = 0b_0000_0000, //0
        Amarillo = 0b_0000_0001, //1
        Rojo = 0b_0000_0010,//2
        Verde = 0b_0000_0100,//4
        Violeta =0b_0000_1000 , //6
        Naranja =0b_0001_0000, //8
        Negro = 0b_0010_0000, //16 


    }
 public static Object LeerEnum(Type tipo, string texto, string textoError)
    {

        string pregunta = "";
        bool error = false;


        foreach (string obj in Enum.GetNames(tipo))
        {
            Console.WriteLine($"{obj}");
        }
        do
        {
            Console.WriteLine("Introduce un elemento");
            pregunta = Console.ReadLine();
            if (Enum.IsDefined(tipo, pregunta))
            {
                Console.WriteLine(texto);
                error = true;
                return Enum.Parse(tipo, pregunta);
            }
            else
            {
                Console.WriteLine(textoError);
                foreach (string a in Enum.GetNames(tipo))
                {
                    Console.WriteLine($" Los valores correctos son : {a}");
                }
                error = false;
            }
        } while (error == false);


        return null;

    }
    public static Color AñadeColor()
    {
       
    }
    private static void Main(string[] args)
    {
 Color b = (Color)LeerEnum(typeof(Color), "Se ha cogido correctamente", "Error");

        Console.ReadLine();


    }

}
Gracias

5
Hola me falta muy poco por terminar un ejercicio de c# de matrices y necesito vuestra ayuda gracias


Lo que me falla es que cuando se alcance el maximo de entradas me diga un error diciendo que esta lleno y por estoy con un switch para los tres valores


Enunciado del ejercicio



Escribe un programa que se encargue de controlar el aforo de un Multicine:

    El cine tendrá tres salas (A, B, C), en las cuales se pasarán diariamente tres sesiones (1ª, 2ª, 3ª).
    El número máximo de personas de cada una de las salas es:
        Sala A = 200 personas.
        Sala B = 150 personas.
        Sala C = 125 personas.
    Tendremos un menú con dos opciones:
        Venta de entradas.
        Estadística de aforo.
    Para salir del programa se tendrá que pulsar la tecla ESC.

Cada vez que se realice una venta de entradas se pedirá:

    El número de entradas que se van a comprar.
    La sala
    La sesión a la que se quiere asistir.

Las entradas vendidas quedarán registradas en la matriz bi-dimensional.
Si el número de entradas sobrepasa el aforo máximo de la sala, se indicará mediante un mensaje por pantalla.

En la opción de estadística de aforo, se mostrará una tabla de la siguiente manera:

      Sesión1           Sesión2           Sesión3
SalaA      178      100      99
SalaB      12      50      100
SalaC      32      101      55






Mi codigo








using System.Text;
internal class Program
{
    public static char Salas()
    {
        bool result;
        char sala;


        do
        {
            Console.WriteLine("Introduce una sala ");
            sala = char.Parse(Console.ReadLine());
            result = sala == 'A' || sala == 'B' || sala == 'C';
            if (result)
            {
                Console.WriteLine("Sala correcta");

            }
            else
            {
                Console.WriteLine("Sala incorrecta");
            }
        } while (!result);




        return sala;

    }
    public static int EncontrarSesion()
    {
        bool result;
        int Sesiones = 0;
        do
        {
            Console.WriteLine("Introduce un numero de sesion");
            Sesiones = int.Parse(Console.ReadLine());
            result = Sesiones == 1 || Sesiones == 2 || Sesiones == 3;

            if (result)
            {
                Console.WriteLine("Sesion encontrada");
            }
            else
            {
                Console.WriteLine("No encontrada");
            }
        } while (!result);
        return Sesiones;

    }

    public static int Sala(char sala)
    {
        int habitacion = 0;
        switch (sala)
        {
            case 'A':
                {
                    habitacion = 0;
                    break;
                }
            case 'B':
                {
                    habitacion = 1;
                    break;
                }
            case 'C':
                {
                    habitacion = 2;
                    break;
                }
        }
        return habitacion;

    }

    public static void VentaEntradas(int[,] aforo)
    {

        int entradas = 0;
        int maxForo = 0;
        int salas = Sala(Salas());
        int Sesionesa = Sesiones(EncontrarSesion());


        Console.WriteLine("Cuantas Entradas necesita");
        entradas = int.Parse(Console.ReadLine());

        switch (salas)
        {
            case 0:
                {
                    if (aforo[salas, Sesionesa] + entradas < maxForo)
                    {

                        aforo[salas, Sesionesa] += entradas;
                        maxForo = 200;

                    }
                    break;
                }
        }





    }
    public static void Mostrar(int[,] aforo)
    {
        for (int i = 0; i < aforo.GetLength(0); i++)
        {
            for (int j = 0; j < aforo.GetLength(1); j++)
            {
                Console.Write($"{aforo[i, j],5}");
            }
            Console.WriteLine(" ");
        }
    }

    public static int Sesiones(int sesion1)
    {
        int sesion = 0;

        switch (sesion1)
        {
            case 1:
                {
                    sesion = 0;
                    break;
                }
            case 2:
                {
                    sesion = 1;
                    break;
                }
            case 3:
                {
                    sesion = 2;
                    break;
                }
        }
        return sesion;

    }
    private static void Main(string[] args)
    {
        int[,] aforoMulticine = new int[3, 3];


        VentaEntradas(aforoMulticine);
        Mostrar(aforoMulticine);



        Console.ReadLine();


    }

}



Gracias

6
Hola queria comentar estoy empezando con un ejercicio de matriz pero no entiendo .El enunciado Y queria ver si alguien me lo pudiese explicar.





El enunciado



Escribe un programa que se encargue de controlar el aforo de un Multicine:

    El cine tendrá tres salas (A, B, C), en las cuales se pasarán diariamente tres sesiones (1ª, 2ª, 3ª).
    El número máximo de personas de cada una de las salas es:
        Sala A = 200 personas.
        Sala B = 150 personas.
        Sala C = 125 personas.
    Tendremos un menú con dos opciones:
        Venta de entradas.
        Estadística de aforo.
    Para salir del programa se tendrá que pulsar la tecla ESC.

Cada vez que se realice una venta de entradas se pedirá:

    El número de entradas que se van a comprar.
    La sala
    La sesión a la que se quiere asistir.

Las entradas vendidas quedarán registradas en la matriz bi-dimensional.
Si el número de entradas sobrepasa el aforo máximo de la sala, se indicará mediante un mensaje por pantalla



Gracias

7
Hola queria comentar que estoy haciendo un ejercicio sobre la frecuencia que lo tengo casi pero no me sale



Mi codigo









using System.Text;
internal class Program
{
public static int[] Arra()
{
int notasRecogidas = 0;
int notasnumero = 0;


int[] notas = new int[5];


for (int i = 0; i < notas.Length; i++)
{

do
{
Console.Write("Ingrese nota (entre 0-10): ");
notasRecogidas = int.Parse(Console.ReadLine());
notas = notasRecogidas;
if (notas < 0 || notas > 10)
{
notasnumero++;

Console.WriteLine($"Nota fuera de rango {notasnumero}");
}

Console.WriteLine($" {notas} ");


} while (notas < 0 || notas > 10);










}
return notas;
}

static void FrecuenciaNotas(int[] Array)
{
int[] FrecuenciaNota = new int[11];
int i, j;
for (i = 0; i < 11; i++)
{
for (j = 0; j < Array.Length; j++)
{
if (i ==FrecuenciaNota[j])
{
FrecuenciaNota++;
}

}
Console.WriteLine($"Nota {i}, {FrecuenciaNota[j]} veces.");
}
}


private static void Main(string[] args)
{
int[] notas = Arra();
FrecuenciaNotas(notas);


Console.ReadLine();
}

}

Gracias

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".