elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda: Problema con ejercicio en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda: Problema con ejercicio en C#  (Leído 3,322 veces)
ODAC333

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Ayuda: Problema con ejercicio en C#
« en: 3 Julio 2013, 04:56 am »

Hola buenos dias!!!

Soy nuevo en la comunidad y estoy aprendiendo a programar solo, eh tratado de resolver este problema pero no eh podido, creo que es a la falta de ordenes o comandos que se. El problema es el siguiente:

http://coj.uci.cu/24h/problem.xhtml?abb=1099

En mi código uso recursion para grabar en memoria los resultados pero como podrán notar los imprime de manera inversa, no se si haya algo para guardar los datos en memoria y despues que termine alguna condición los imprima en la consola o que al terminar una condición leea los datos y asi los vaya evaluando.

"Muchas gracias"

Código:
using System;

namespace PythagoreanNumbers
{
class program
{
static void Main()
{
program numero = new program();
numero.Evaluar();
Console.ReadLine();
}

public void Evaluar()
{
string[] aux = Console.ReadLine().Split();
int acuadrado = int.Parse(aux[0]) * int.Parse(aux[0]);

if(acuadrado != 0)
{
int bcuadrado = int.Parse(aux[1]) * int.Parse(aux[1]);
int ccuadrado = int.Parse(aux[2]) * int.Parse(aux[2]);
Evaluar();
if(acuadrado == bcuadrado + ccuadrado)
{
Console.WriteLine("right");
}

else if (bcuadrado == acuadrado + ccuadrado)
{
Console.WriteLine("right");
}

else if (ccuadrado == acuadrado + bcuadrado)
{
Console.WriteLine("right");
}

else
{
Console.WriteLine("wrong");
}
}
}
}



En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Ayuda: Problema con ejercicio en C#
« Respuesta #1 en: 3 Julio 2013, 06:07 am »

Saludos, ODAC333.

Bueno, primero que nada creo que deberías de olvidarte de usar recursión, realmente no es necesario y te complica demasiado el asunto. Lo que puedes hacer colocar un simple "while" en vez de hacer la recursión:

Código
  1. while(acuadrado != 0)
  2. {
  3.     //Aquí realizas las operaciones
  4. }
  5.  
  6. //Aquí muestras los resultados.
  7.  

Pero necesitarás otro array para guardar los resultados, es decir, las cadenas "Cierto/Falso".


En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
ODAC333

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda: Problema con ejercicio en C#
« Respuesta #2 en: 4 Julio 2013, 02:13 am »

Si ya eh manejado el "while" pero use recursión porque necesito almacenar esos datos en memoria y esque no se utilizar los array para guardar los datos no se si pudieras ayudarme Benjo

Gracias
« Última modificación: 4 Julio 2013, 02:16 am por ODAC333 » En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Ayuda: Problema con ejercicio en C#
« Respuesta #3 en: 4 Julio 2013, 04:14 am »

Claro que puedo ayudarte!!!

Mira, yo había pensado que el código quedara como sigue:

Código
  1. public void Evaluar()
  2.        {
  3.            string[] aux;
  4.            string[] Resultados = null;
  5.            string[] ArrayTemporal;
  6.            int acuadrado = 1;
  7.            while (acuadrado != 0)
  8.            {
  9.                aux = Console.ReadLine().Split();
  10.                acuadrado = int.Parse(aux[0]) * int.Parse(aux[0]);
  11.                if (acuadrado != 0)
  12.                {
  13.                    int bcuadrado = int.Parse(aux[1]) * int.Parse(aux[1]);
  14.                    int ccuadrado = int.Parse(aux[2]) * int.Parse(aux[2]);
  15. //Redimensiono el arreglo de los resultados.
  16.                    if (Resultados == null)
  17.                    {
  18.                        Array.Resize(ref Resultados, 1);
  19.                    }else{
  20.                        ArrayTemporal = Resultados;
  21.                        Array.Resize(ref Resultados, Resultados.Length + 1);
  22.                        Array.Copy(ArrayTemporal, Resultados, ArrayTemporal.Length);
  23.                    }
  24. //Hago las operaciones y guardo los resultados.
  25.                    if (acuadrado == bcuadrado + ccuadrado)
  26.                    {
  27.                        Resultados[Resultados.Length - 1] = "right";
  28.                    }
  29.                    else if (bcuadrado == acuadrado + ccuadrado)
  30.                    {
  31.                        Resultados[Resultados.Length - 1] = "right";
  32.                    }
  33.  
  34.                    else if (ccuadrado == acuadrado + bcuadrado)
  35.                    {
  36.                        Resultados[Resultados.Length - 1] = "right";
  37.                    }
  38.  
  39.                    else
  40.                    {
  41.                        Resultados[Resultados.Length - 1] = "wrong";
  42.                    }
  43.                }
  44.            }
  45. //Presentar información.
  46.        }
  47.  

Según yo, ese sería el código completo, y lo siguiente que tienes que hacer hacer un bucle que recorra el array de resultados y que imprima la información en la pantalla, pero eso parte del código te la dejo a ti, no es muy complicada y es para que practiques con los arrays, que realmente son necesarios en toda buena aplicación.  ;D

Nota que sólo he colocado la parte del método "Eavaluar()" y estudia la parte del código donde se redimensiona el arreglo que guarda los resultados.
« Última modificación: 4 Julio 2013, 04:21 am por El Benjo » En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
ODAC333

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Ayuda: Problema con ejercicio en C#
« Respuesta #4 en: 4 Julio 2013, 17:06 pm »

Mira despues de lo que me dijiste de la necesidad de un array hize este código:
Código
  1. using System;
  2.  
  3. namespace PythagoreanNumbers2
  4. {
  5. class Program
  6. {
  7. static void Main()
  8. {
  9. string[] array = new string[10];
  10.  
  11. int limite = 1;
  12.  
  13. for(int i=0; i<=limite; i++)
  14. {
  15.  
  16. string linea = Console.ReadLine();
  17.  
  18. if(linea != "0")
  19. {
  20. string[] aux = linea.Split();
  21. int acuadrado = int.Parse(aux[0]) * int.Parse(aux[0]);
  22. int bcuadrado = int.Parse(aux[1]) * int.Parse(aux[1]);
  23. int ccuadrado = int.Parse(aux[2]) * int.Parse(aux[2]);
  24.  
  25. if(acuadrado == bcuadrado + ccuadrado)
  26. {
  27. array[i] = "right";
  28. }
  29.  
  30. else if(bcuadrado == acuadrado + ccuadrado)
  31. {
  32. array[i] = "right";
  33. }
  34.  
  35. else if(ccuadrado == acuadrado + bcuadrado)
  36. {
  37. array[i] = "right";
  38. }
  39.  
  40. else
  41. {
  42. array[i] = "wrong";
  43. }
  44.  
  45. limite = i + 1;
  46. }
  47.  
  48. else
  49. {
  50. limite = i;
  51. }
  52. }
  53.  
  54. foreach(string resultado in array)
  55. {
  56. Console.WriteLine(resultado);
  57. }
  58.  
  59. Console.ReadLine();
  60. }
  61. }
  62. }

Ya solo me falta poder modificar el numero de limitante en el array dependiendo de las lineas que se escriban, en este código puse 10 para verificar que funcionara.
En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Ayuda: Problema con ejercicio en C#
« Respuesta #5 en: 8 Julio 2013, 18:50 pm »

Sólo recuerda que con ese for() estás condicionando a los usuarios de tu aplicación a que introduzcan 10 entradas, si lo haces de esa manera en vez del while() necesitas añadir una instrucción para comprobar que al introducir "0" salgas del bucle for()

Yo te recomiendo que lo sigas intentando con el while() y echale un vistazo a la parte de los arrays en el código que te compartí. (Ese código ya lo probé y funciona a la perfección).

Saludos.
En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ problema ] ejercicio 100
Ejercicios
_mÙëK§™_ 2 4,961 Último mensaje 1 Diciembre 2007, 01:31 am
por Iñaki Viggers
problema con ejercicio en C ayuda!!!
Programación C/C++
hugg 3 3,303 Último mensaje 15 Enero 2011, 03:32 am
por leogtz
problema con un ejercicio
Java
shing18 3 3,934 Último mensaje 3 Junio 2011, 22:14 pm
por sapito169
Tengo un problema con un ejercicio
Programación Visual Basic
Senior++ 5 2,775 Último mensaje 18 Junio 2011, 18:49 pm
por Senior++
Problema en ejercicio Ayuda please
Programación C/C++
mimel 5 9,764 Último mensaje 25 Marzo 2015, 08:23 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines