| |||
tengo codigos en c# que fallan y no entiendo Hola, soy nuevo en esto de la programacion en c# y tengo que hacer una seriede ejercicios para un curso que estoy haciendo, si alguien me puede ayudar ... la ayuda que necesito es que me revisen el código que ya he generado y que me digan donde está el fallo. mi mail es [email protected] Gracias |
| |||
Respuesta: tengo codigos en c# que fallan y no entiendo cuelga lo trozos de código que no te "agradan". Por aquí hay gente muy buena que te puede ayudar.
__________________ Si quieres conseguir resultados diferentes no hagas siempre lo mismo. |
| |||
Respuesta: tengo codigos en c# que fallan y no entiendo El proceso de suma iterativa me funciona bien pero el de reiterativa no, supongo que es la formula de resultado. Debe de hacer para por ejemplo dos valores 4*5=4+4+4+4+4 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace SumaIterativaReiterativa { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int SumaIterativa(int a, int b) { int i, resultado; resultado = 0; for (i = 1; i <= a; i++) { resultado = resultado + b; } return resultado; } int SumaRecursiva(int a, int b) { int resultado; if (b == 0) { resultado = a; } else { resultado = a+SumaRecursiva(a, b-1); } return resultado; } private void button1_Click(object sender, EventArgs e) { int a, b,resultado; a = int.Parse(textBox1.Text); b = int.Parse(textBox2.Text); resultado = SumaIterativa(a, b); MessageBox.Show("Suma Iterativa: "+resultado.ToString()); } private void button2_Click(object sender, EventArgs e) { int a, b, resultado; a = int.Parse(textBox1.Text); b = int.Parse(textBox2.Text); resultado = SumaRecursiva(a, b); MessageBox.Show("Suma Recursiva: "+resultado.ToString()); } } } |
| |||
Respuesta: tengo codigos en c# que fallan y no entiendo Creo que tu problema está ahí: Cita: Imagina que tienes 4*5 como pusiste. El programa hace:resultado = 4(b=5) +4(b=4) + 4(b=3) +4 (b=2) + 4(b=1) Pero entonces haces esto: resultado = 4 Porqué en el caso b=0 estás asignando, no sumando. Yo te aconsejaría hacer un for: for(i=0; i<b; i++){ resultado += a; }
__________________ Si quieres conseguir resultados diferentes no hagas siempre lo mismo. |
| |||
Respuesta: tengo codigos en c# que fallan y no entiendo Creo que te estás confundiendo caperutxa. La variable resultado es local, es decir, solo conserva su valor dentro de la función y, por tanto, al salir de ella ya no existe. Lo que ha puesto es como debe ser, el problema es, como he dicho antes, que el caso base es cuando b=1, y no cuando b=0. Por ejemplo: a = 4, b= 3; La traza de llamadas sería: Suma(4,3) = 4 + Suma(4,2) Suma(4,2) = 4+Suma(4,1) Suma(4,1) = 4; Y si juntas todo: Suma(4,3) = 4+ 4 + 4 = 12 = 4*3 |
Etiquetas: |