Título: Eliminar dato de matriz y array Publicado por: eleaefe en 29 Junio 2017, 16:28 pm Hola, hice este metodo:
Código
invoco en el main asi: Código
no se porque no puedo incovarlo me da error de argumentos y tampoco se si el codigo es el correcto el resto del main es este Código
Título: Re: Eliminar dato de matriz y array Publicado por: Eleкtro en 29 Junio 2017, 16:58 pm Bienvenido al foro, pero debes leer las reglas de un subforo antes de publicar, y usar las etiquetas GeShi para insertar código...
Declaraste 4 parámetros para esa función, pero tan solo le estás pasando 3 argumentos, ahí tienes el error... La próxima vez al formular una duda de programación que implique un mensaje de error, por favor muestra el mensaje. tampoco se si el codigo es el correcto Si tu intención es buscar un elemento (o "apuesta") y eliminarlo de una lista, entonces todo ese código sobra... puedes usar los miembros de la clase List para satisfacer la funcionalidad de buscar y/o eliminar elementos que cumplan "X" condición: Código
Saludos. Título: Re: Eliminar dato de matriz y array Publicado por: eleaefe en 29 Junio 2017, 17:09 pm tengo el siguiente metodo, pero solo me esta eliminando el nombre y no la apuesta, tengo una matriz definida como:
Código: cantidad = Convert.ToInt32(Console.ReadLine()); METODO: Código: static bool elimino(int[] lista, string[] nombre, string nom, ref int tope) y asi llamo al metodo: elimino(vector, nombre, nom, ref tope); Título: Re: Eliminar dato de matriz y array Publicado por: Serapis en 30 Junio 2017, 16:25 pm Elektro, ya te ha respondido...
Imagino que estás empezando y por eso has saltado por encima de las recomendaciones que te daba Elektro, al no entender de que te hablaba... Voy a suponer que es así. ------------------------------------ Tu has colocado una función que requiere que se le pasen 4 parámetros, pero sólo le envías 3 desde la llamada. el 4º parámetro (el 3º según el orden que ocupa en la función) lo obtienes desde dentro de la función... algo que rompe la lógica de las funciones, pero que admeás te genera el error al invocarla (no porque esto dentro, si no porque reclamas un parámetro que no se recibe desde fuera... Si la función recibe dos arrays, un texto y un entero, esa función debe servir para cualesquiera arrays se reciban, por tanto la petición del texto por consola, la inutiliza para propósitos generales y la hace específica de ese único caso. y a tal efecto, entonces ya porqué no hacerlo más 'íntimo' y 'particular' y obtener el resto de parámetros también desde ahí... :silbar: :silbar: :silbar: Esta línea debería estar antes de invocar la función. Para que al invocar la función, 'nom' ya tenga el valor que usará la función Código
Luego tus bucles son extraños... e inenecesarios ¿por qué pones dos bucles uno dentro de otro?. Cuando usas dos bucles de pongamos 100 ciclos cada uno, al final se ejecutan 100x100 ciclos. Buscar en un array de 100 elementos, solo requiere un máximo 100 ciclos, nunca 10.000 (100x100) El pseudocódigo de tu función debería ser similar a esto: Código: NombreBuscado = Consola.LeerEntradaUser("blablabla") Como te decía el propósito del parámetro "Tope" parece ser el punto final hasta el cual buscar, pero si es un array, tras eliminar un item en un punto que no sea el final, exige bajar todos los que tiene encima una posición (hasta el final de la lista)... Salvo que pretendas insertar uno en determinada posición, en cuyo caso crea una función remplazar, con la particularidad que localiza y borra un elemento y si lo encuentra, en el índice marcado como tope inserta el remplazo. Código: NombreBuscado = Consola.LeerEntradaUser("blablabla") Nota:* Aún así, no me queda claro el propósito del array 'Lista', si tienen valores precisos asignados a cada nombre (algo normal), entonces la función debería incluir un parámetro más para remplazar en la misma posición y asnignarlo donde he puesto el comentario: <---- no queda claro que va aquí * Finalmente aclararte que incluso así, esa función deberían ser dos funciones... para generar un código más eficiente: Código: // Busca un elemento Si existe devuelve el índice donde se localiza, si no , devuelve -1 Igualmente puedes hacer funciones más específicas de remplazo. En cualquier caso, siempre que puedas separa la tareas, en este caso en dos funciones: 'Buscar' y luego la acción adicional, resulta más útil... que hacer bastante código en una sola función que "busca y remplaza", o "busca y elimina". ------------------------------------------- También te decía Elektro, que cuando escribas código si pertenece a un lenguaje 'conocido' (específico), usa las etiqeutas GESHI (aparece en el editor, arriba a la derecha), seleccióna el trozo de código y marca el lenguaje al que pertenece en ese combo desplegable, así queda bien coloreado y las líneas numeradas y mucho más nítido... |