Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemilla con una funcion

Estas en el tema de Problemilla con una funcion en el foro de .NET en Foros del Web. Buenos dias, no he tardado en volver con esto e parametros variables globales y demas, jejje. Ahora son l as funciones en visual c#. En ...
  #1 (permalink)  
Antiguo 15/08/2012, 03:55
 
Fecha de Ingreso: octubre-2009
Mensajes: 182
Antigüedad: 14 años, 6 meses
Puntos: 5
Problemilla con una funcion

Buenos dias, no he tardado en volver con esto e parametros variables globales y demas, jejje. Ahora son l as funciones en visual c#. En el manual tengo 2 ejercicios y he cogido para familiarizarme el mas simple. Pongo el ejercicio:

Crear una tabla de multiplicar, captura y control de ciclo en el principal (BUTTONCLICK), operaciones en una funcion, despliegue en el principal.

Lo que yo he echo es poner un textbox para que el usuario meta el numero para multiplicar y un boton que hace el calculo. He puesto este codigo para el boton que hace la operacion:

private void button1_Click(object sender, EventArgs e)
{

Tabla_multiplicar(numero);

}

int Tabla_multiplicar(int contador, int numero, int total)
{
numero = int.Parse(textBox1.Text);
contador = 1;
while (contador <= 10)
{
total = contador * numero;
listBox1.Items.Add(total.ToString());
contador++;
return total;
}
}

El caso es que me da 2 fallos y por eso no puedo hacer el programa:

1. Error 1 El nombre 'numero' no existe en el contexto actual .
2. Error 2 'Ejercicio_Funciones.Form1.Tabla_multiplicar(int, int, int)': no todas las rutas de código devuelven un valor.

Yo di funciones en C y visual basic 2005 pero de eso hace ya 5 años y por lo que recuerdo creo que las funcoines con visual c# se hacen de un modo diferente.

Seguro que es una tonteria de nada. Llevo unos dias con parametros variables globales y demas de quebraderos de cabeza.

Gracias.
  #2 (permalink)  
Antiguo 15/08/2012, 07:24
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Problemilla con una funcion

Hola jlmn23, pues tu primer error radica en esta linea :

esa variable numero que le pasas no existe tanto fuera como dentro del evento Click.
Código C:
Ver original
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3.  
  4. Tabla_multiplicar(numero);
  5.  
  6. }

Debiendo ser así :

Código C:
Ver original
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. //No te olvides validar aqui de que no sea cadena o este
  4. //vacio para que no salte error
  5. Int32 numero = Convert.ToInt32(TuTextBox.Text);
  6. Tabla_multiplicar();
  7.  
  8. }

Tu segundo error, a tu método Tabla_multiplicar le estas diciendo que tiene que recibir 3 parametros de entrada que son contador,numero y total:
Código C:
Ver original
  1. int Tabla_multiplicar(int contador, int numero, int total)
  2. {
  3. //...
  4. }
y como te darás cuenta en la llamada de tu evento click de tu boton solo le mandas 1 parametro.
Código C:
Ver original
  1. Tabla_multiplicar(numero);
Debiendo ser :
Código C:
Ver original
  1. Tabla_multiplicar(numero1,numero2,numero3);
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 15/08/2012, 07:29
 
Fecha de Ingreso: agosto-2011
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problemilla con una funcion

Hola,

Hay varias cosas que estan mal, empecemos:

- En el click del botón de donde sale la variable "numero" que pasas a la función?
- La función recibe 3 parámetros, ninguno de ellos opcional y tu estas enviando solo 1.
- El return total lo tienes dentro del while, eso es lo que ocasiona el segundo error que comentas.

Deberias hacer que la función solo reciba como parámetro un número (el textbox) y los resultados ir almacenandolos en un array que será lo que devuelvas y por último recorres el array resultante y muestras los valores.

Saludos.
  #4 (permalink)  
Antiguo 15/08/2012, 09:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 182
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problemilla con una funcion

Cita:
Iniciado por caotz Ver Mensaje
Hola,

Hay varias cosas que estan mal, empecemos:

- En el click del botón de donde sale la variable "numero" que pasas a la función?
- La función recibe 3 parámetros, ninguno de ellos opcional y tu estas enviando solo 1.
- El return total lo tienes dentro del while, eso es lo que ocasiona el segundo error que comentas.

Deberias hacer que la función solo reciba como parámetro un número (el textbox) y los resultados ir almacenandolos en un array que será lo que devuelvas y por último recorres el array resultante y muestras los valores.

He corregido los errores que me has comentado, y de entrada no hsaca las tablas de multiplicar que el usuario indique y despues me da una advertencia de que Advertencia 1 El campo 'Ejercicio_Funciones.Form1.total' no se usa nunc. Pongo el codigo:

int[] edad = new int[11];

int contador = 1;
private void button1_Click(object sender, EventArgs e)
{
int numero = int.Parse(textBox1.Text);
Tabla_multiplicar(numero);

}

int Tabla_multiplicar(int numero)
{



while (contador <= 11)
{
edad[contador] = numero * contador;
listBox1.Items.Add(edad[contador].ToString());
contador++;

}
return numero;
}


}
}

Hoy mismo me dedicare a repasar las funcoines en C y visual Basic 2005 del manual por que no lo consigo coger aun, por que si necesito mas variables en una funcion como lo trabajaria, yo me acuerdo de haber tenido muchas variables en una sola funcion si no estoy equivocado.

Saludos.
  #5 (permalink)  
Antiguo 15/08/2012, 11:28
 
Fecha de Ingreso: agosto-2011
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problemilla con una funcion

Para este ejercicio no necesitas variables globales y las vriables globales entre menos las uses mejor, si se usan demasiado pueden llegar a dar bastantes dolores de cabeza.

Otro consejo, ¿si el array es una tabla de multiplicar por que lo llamas edad? intenta siempre que los nombres de tus variables sean claros.

Bueno, la función que te comente del array es que hicieras que la función "Tabla_multiplicar" retorne un array con todos los resultados y en el botón recorres ese array para añadirlos al listbox.

Cualquier duda no dudes en comentarla,
Saludos.
  #6 (permalink)  
Antiguo 16/08/2012, 02:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 182
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problemilla con una funcion

Cita:
Iniciado por caotz Ver Mensaje
Para este ejercicio no necesitas variables globales y las vriables globales entre menos las uses mejor, si se usan demasiado pueden llegar a dar bastantes dolores de cabeza.

Otro consejo, ¿si el array es una tabla de multiplicar por que lo llamas edad? intenta siempre que los nombres de tus variables sean claros.

Bueno, la función que te comente del array es que hicieras que la función "Tabla_multiplicar" retorne un array con todos los resultados y en el botón recorres ese array para añadirlos al listbox.

Cualquier duda no dudes en comentarla,

Madre mia la que estoy armando y segur que es un fallo de nada. He corregido los fallos que me has dicho tu pero no me deja compilarlo me da 3 fallos.

1. Error 1 La mejor coincidencia de método sobrecargado para 'System.Windows.Forms.ListBox.ObjectCollection.Add (object)' tiene algunos argumentos no válidos.
2. Error 2 Argumento 1: no se puede convertir de 'grupo de métodos' a 'object'.
3.Error 3 No se puede declarar una variable local denominada 'contador' en este ámbito, porque daría un significado diferente a 'contador', que ya se utiliza en un ámbito 'primario o actual' con otra denotación.

Pongo codigo actual.

int numero = int.Parse(textBox1.Text);
Tabla_multiplicar(numero);
listBox1.Items.Add(Tabla_multiplicar);

}

int Tabla_multiplicar(int numero)
{


int contador = 1;
while (contador <= 11)

{
int[] tabla = new int[11];
int contador = 1;
tabla[contador] = numero * contador;
return tabla[contador];
contador++;

Ayer hice un repaso de las funciones en C y visual Basic y me quedo bastante claro pero es que en este lenguaje madre mia lo que me esta constando hacer una miserable funcion.

Gracias por todo amigos.





Saludos.
  #7 (permalink)  
Antiguo 16/08/2012, 07:52
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Problemilla con una funcion

Hola jlmn23, no escribas tu respuesta dentro de una cita que confundes... Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #8 (permalink)  
Antiguo 16/08/2012, 08:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problemilla con una funcion

Hola,
Como en lugar de ayudarte parece que te estoy haciendo un lio, te pongo el código que hice para esto:

Código:
private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            int[] tabla = Tabla_Multiplicar(int.Parse(textBox1.Text));
            for (int i = 0; i < tabla.Length - 1; i++)
            {
                listBox1.Items.Add(string.Format("{0} x {1} = {2}", textBox1.Text, i, tabla[i]));
            }
        }

        int[] Tabla_Multiplicar(int numero)
        {
            int[] resultados = new int[12];
            int contador = 1;

            while (contador <= 11)
            {
                resultados[contador] = numero * contador;
                contador++;
            }

            return resultados;
        }
Si hay alguna parte que no entiendas, no dudes en preguntar.
Saludos.
  #9 (permalink)  
Antiguo 17/08/2012, 02:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 182
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problemilla con una funcion

Amigo caotz, gracias de veras por estar atento a mi en este ejercicio pero no entiendo nada del codigo. Esto pasa por que lo estoy dando por mi cuenta y el tutorial no es muy bueno, el tutorial es este y veras como faltan un monton de cosas te dejo el enlace para que le eches un vistazo y veras como le faltan muchas cosas: http://www.programacionfacil.com/vis..._express/start.

Ayer vi tu respuesta por el movil y empeze a pensar que tendria que irme a http://www.canalvisualbasic.net/ que ahi hay un tutorial de c# para ver si es mejor que el que sigo.

Gracias.
  #10 (permalink)  
Antiguo 18/08/2012, 01:13
 
Fecha de Ingreso: agosto-2011
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problemilla con una funcion

Hola,
En el msdn tienes varios recursos para aprender C#, por ejemplo:

http://msdn.microsoft.com/es-es/library/67ef8sbd.aspx
http://msdn.microsoft.com/es-es/vstudio/hh341490.aspx
  #11 (permalink)  
Antiguo 18/08/2012, 03:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 182
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problemilla con una funcion

caotz, gracias por todo, esa web la tengo yo en favoritos lo que pasa es que tengo la paguina donde estan todos los controles de los formularios. Habia pensado en seguir con el c# desde la web de canalvisualbasic que ahi lo den en modo consola y cuando lo controle pasarme a los elementos visuales. ¿Que te parece?.

Etiquetas: funcion, tabla, textbox, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.