Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: EmmanuelTR9 en 26 Febrero 2020, 07:28 am



Título: Neumann en c#
Publicado por: EmmanuelTR9 en 26 Febrero 2020, 07:28 am
hola a todos los que puedan leer mi duda que tengo, estoy realizando este metodo en c# pero al momento de tomar los 5 numeros de enmedio de la multiplicacion no lo hace hasta despues lo hace no se si tenga algun error si me podria alguien corregir

  
Código
  1. double Cantidad;
  2.            double Semilla;
  3.            Semilla = int.Parse(textBox1.Text);
  4.            Cantidad = int.Parse(textBox2.Text);
  5.            double Semilla_cuadrada = 0;
  6.  
  7.            for (int i = 0; i < Cantidad; i++)
  8.            {
  9.                Semilla_cuadrada = Semilla * Semilla;
  10.                String NSemilla_cuadrada;
  11.                NSemilla_cuadrada = Convert.ToString(Semilla_cuadrada);
  12.                String D4;
  13.                D4 = NSemilla_cuadrada.Substring(3, 5);
  14.                Semilla = Convert.ToInt64(D4);
  15.                listBox1.Items.Add(Semilla_cuadrada);
  16.                listBox2.Items.Add(Semilla);
  17.            }


CoAdm: Etiqueta corregida y tema movido al subforo correcto


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 07:41 am
desconozco el metodo que describes, pero me parece que no es necesario convertir a string, podrías explicar lo que necesitas hacer en la operacion?


Título: Re: Neumann en c#
Publicado por: EmmanuelTR9 en 26 Febrero 2020, 07:45 am
desconozco el metodo que describes, pero me parece que no es necesario convertir a string, podrías explicar lo que necesitas hacer en la operacion?
Gracias por responder, lo que necesito hacer es
1.escribir 10 numeros
2.(10numeros)^2
3.y el resultado que salga se toman los 5 de enmedio y se vuelve a repetir el paso 2


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 07:54 am
lo que describes no es claro...

escribes 10 numeros o 1 numero de 10 cifras?



Título: Re: Neumann en c#
Publicado por: EmmanuelTR9 en 26 Febrero 2020, 07:57 am
disculpa te explico
escribir un numero de 10 digitos
ejemplo
1. 1234567890
2. (1234567890)^2 elevar al 2
3. Tomar 5 numeros de enmedio de lo que salga al elevar al 2


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 08:12 am
cualquier numero de 10 cifras al cuadrado tendrá de 100 a ~122 digitos, sin librerias especializadas no podrás calcular eso y tomará un tiempo enorme en calcular... luego de eso, como decides cuales son los 5 del medio? en tu codigo asumes que es a partir del 3er digito, pero es mucho mas complejo que eso


Título: Re: Neumann en c#
Publicado por: Serapis en 26 Febrero 2020, 09:50 am
No, Engel... has interpretado mal el enunciado (aunque incompleto y confuso)
1.234.567.890 al cuadrado = 1.524.157.875.019.052.100, es decir, elevar un número decimal al cuadrado, a lo sumo dupluca su número de cifras...

Básicamente el código casi está bien... le falta un par de detalles...

Entiendo que el bucle implica que se repite el proceso x veces...

Código:
bucle para k desde 1 a x veces
    cuadrado =semilla * semilla
    txtValor = cuadrado.toString
    listCuadrado.AddItem(txtValor)
    digitos = txtValor.length
    txtValor =txtValor.Substring((dígitos\2) - 3,5)
    semilla = txtValor.parseToLong
    listSemilla.AddItem(txtValor)
Siguiente


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 10:02 am
NEBIRE gracias por la aclaratoria y me disculpo por la confusion, en mi mente estaba elevando a x^x, efectivamente de 18 a 19 digitos (19 para mayor a 3162277660)

sin embargo los 5 del medio no son desde el 3ro son desde el dígito 7 u 8

0123456789012345678 (empiezo desde 0 para dejar clara la posicion en el array)

en cual caso usaría siempre un entero de 64 bit dividiría entre 10^7 y luego haría modulo de 10^5



Título: Re: Neumann en c#
Publicado por: EmmanuelTR9 en 26 Febrero 2020, 17:07 pm
No, Engel... has interpretado mal el enunciado (aunque incompleto y confuso)
1.234.567.890 al cuadrado = 1.524.157.875.019.052.100, es decir, elevar un número decimal al cuadrado, a lo sumo dupluca su número de cifras...

Básicamente el código casi está bien... le falta un par de detalles...

Entiendo que el bucle implica que se repite el proceso x veces...

Código:
bucle para k desde 1 a x veces
    cuadrado =semilla * semilla
    txtValor = cuadrado.toString
    listCuadrado.AddItem(txtValor)
    digitos = txtValor.length
    txtValor =txtValor.Substring((dígitos\2) - 3,5)
    semilla = txtValor.parseToLong
    listSemilla.AddItem(txtValor)
Siguiente


gracias por responder, he intentado similarlo pero no, estoy usando visual studio 2019 para hacer el codigo pero no puedo hacer que funcione me podrias dar mas informacion


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 17:23 pm
que resultado obtienes? que resultado esperas?

es decir, con las correcciones de neribe casi esta listo


Título: Re: Neumann en c#
Publicado por: EmmanuelTR9 en 26 Febrero 2020, 18:00 pm
no entiendo si el valor de "txtValor" es la caja en donde se escriba el numero ?


Título: Re: Neumann en c#
Publicado por: engel lex en 26 Febrero 2020, 18:11 pm
cambialo a tu necesidad neribe simplemente arrojó el resultado a un destino... lo importante es obtener el resultado, a donde sea colocado es la parte simple porque ya tu lo tenías hecho inicialmente creo...

a menos que no hayas dejado claro que tu problema no era el resultado sino el como mostrarlo


Título: Re: Neumann en c#
Publicado por: Serapis en 26 Febrero 2020, 21:55 pm
Es pseudocodigo....

El tipo de variables se deduce de la expresión que tiene a la derecha...
Si trabajo con cadenas, corto, añado, extraigo, concateno, etc... cadenas, pués claramente la asignación será a un tipo de cadena, ¿¿¿no???.
Si sumo, resto, divido, etc... no será un tipo numérico, del tipo exacto que encaje en la magnitud a manejar????

Los métodos dados en un pseudocodigo, ni siquiera tienen por qué existir, si existirá alguno equivalente que haga lo mismo donde difiera seguramente su nombre y puede que sus parámetros... se trata pués de adaptarlo, algo que suele ser sencillo cuando se entiende lo que se lee...

Es arbitrario, como llames a tus controles en tu proyecto, yo no necesito conocer tales nombres para ofrecerte un ejemplo que tu traslades a tu código. Es más, yo he asumido que no es importante siquiera que tengas unos controles 'tipo caja de texto', simplemente el pseudocódigo expuesto, puede ser una función que reciba don tipos númericos: 'Semilla' y 'x' ('x' es las veces que se repite el bucle), luego que esos valores procedan de un textbox, del enésimo valor en un listbox, del valor arrojado por un Scroll, de un inputbox, etc... es irrelevante.

Los códigos hay que entenderlos, si simplemente te pongo el código NET para que hagas un copypaste, no es estaría ayudando nada (aunque muchos creyeren que sí). Es mejor que te enseñen a pescar que darte el pez para la cena...