Título: problema l requerir números Publicado por: 7hongo7 en 17 Febrero 2013, 03:15 am Hola aqui ando de nuevo con mis dudas sobre programacion jejejeje :huh: :huh: :huh: :huh:
bueno espero me entiendan asi voy a plantear el problema: Tengo un entero I que va de 1 hasta 1000 y enteros N1,N2,...,Nn el punto es que tengo que introducir un valor I por ejemplo 5 y despues introducir 5 valores de N, y después correr de nuevo el programa y si quiero pedir que I sea 7 e introducir 7 valores de N, osea que yo pueda meter cualquier numero e introducir esa cantidad de numeros. osea 4 1 1 1 1 ó 5 6 3 4 5 2 ó 2 2 1 No se si me supe entender me dijeron que era con un ciclo while o for pero esa es mi duda como hacer que solamente meta los valores que me piden sin mas ni menos Título: Re: problema l requerir números Publicado por: engel lex en 17 Febrero 2013, 03:43 am que llevas de código? en donde exactamente es tu duda?
por lo que entiendo con vectores y un while deberia bastar Título: Re: problema l requerir números Publicado por: BatchianoISpyxolo en 17 Febrero 2013, 06:13 am A ver, en C y parecidos. Usar un for, while o do while es prácticamente lo mismo. Aunque, teóricamente, usaremos un for cuando haya unos límites fijos (punto de partida y punto de salida). Usaremos un ciclo do while, cuando desconozcamos alguno de los límites del recorrido y además sepamos que el ciclo se va a ejecutar como mínimo una vez. Usaremos el ciclo while en cualquier otro caso.
En este caso, teóricamente lo correcto sería usar un for porque conocemos los límites: 1..I, donde I es introducido por el usuario. Código
Espero que este código te sirva de ejemplo. Los usuarios de este foro (incluyéndome a mí) rara vez facilitan tanto las cosas. Trata de comprender el código y si tienes alguna duda, tan sólo pregunta. Ten claro que si no programas tú mismo, jamás aprenderás. "La práctica hace al maestro." Título: Re: problema l requerir números Publicado por: amchacon en 17 Febrero 2013, 11:45 am Unas observaciones a ese código:
Código Eso no es estándar, solo funcionará en Windows. Es una buena práctica usar las cosas lo más estándar posible, de esa forma funcionará en casi cualquier plataforma. Este es su equivalente: Código
Así mismo, en lugar de usar un break. Creo que es más correcto poner la condición directamente en el while. Así te ahorras una condición. Por último, creo que las llaves quedan mejor abajo. Este sería mi código: Código
Por cierto, este sería su equivalente en C++ (por si acaso es este tu lenguaje): Código
Título: Re: problema l requerir números Publicado por: BatchianoISpyxolo en 17 Febrero 2013, 14:16 pm Gracias por tus aclaraciones y en este caso el ciclo do while era más apropiado.
De todas formas fíjate que al cambiar de ciclo su lógica también cambia: Código
Pedir número mientras que I sea menor que 1 o que I sea mayor que 1000. Por otra parte, con el getchar() para salto de línea y final de archivo no lee bien la entrada ._. Será que no lo sé usar :P Título: Re: problema l requerir números Publicado por: leosansan en 17 Febrero 2013, 17:34 pm ¿Me he perdido algo en el camino?.¿ Qué sentido tiene reservar un array de 1000 elementos cuando puede que sólo tenga 10?. ¿No creéis que es mejor crearlo sobre la marcha? :silbar:
Código
Saluditos!. P.D: Por cierto, el uso de "while (getchar() != '\n' && getchar() != EOF);" es usualmente usado para limpiar el buffer "después" de una entrada, pero donde está no tiene como mucho sentido. :rolleyes: Título: Re: problema l requerir números Publicado por: BatchianoISpyxolo en 17 Febrero 2013, 17:38 pm Porque C permite declarar cualquier elemento en cualquier lugar :P
Si no también se podría haber usado memoria dinámica (aunque ocupe más memoria por cada componente). Título: Re: problema l requerir números Publicado por: leosansan en 17 Febrero 2013, 18:10 pm Porque C permite declarar cualquier elemento en cualquier lugar :P Creo que no has entendido el sentido de mi observación. Precisamente como se puede declarar en cualquier lugar, por qué dimensionar la "a priori" a 1000 en lugar de "esperar" a recibir la entrada de la dimensión y dimensionara justito después con ese valor, que es justo lo que yo hago. El ya hacerlo estáticamente o dinámicamente sería otra historia a debatir. Saluditos!. Título: Re: problema l requerir números Publicado por: BatchianoISpyxolo en 17 Febrero 2013, 20:42 pm Te di la razón antes :P
Ahora lo que no tengo claro es que tú pides el tamaño del array al usuario... y, ¿reservamos la memoria estática en tiempo de ejecución? Supongo que será posible... Título: Re: problema l requerir números Publicado por: leosansan en 17 Febrero 2013, 21:00 pm Ahora lo que no tengo claro es que tú pides el tamaño del array al usuario... y, ¿reservamos la memoria estática en tiempo de ejecución? Supongo que será posible... Sí, esa es la gracia de no tener que predefinir un tamaño para el array. Saluditos!. Título: Re: problema l requerir números Publicado por: amchacon en 17 Febrero 2013, 21:20 pm Por cierto, el uso de "while (getchar() != '\n' && getchar() != EOF);" es usualmente usado para limpiar el buffer "después" de una entrada, pero donde está no tiene como mucho sentido.[/size] :rolleyes: Cierto, habría que ponerlo despues del scanf. No antes.Título: Re: problema l requerir números Publicado por: rir3760 en 18 Febrero 2013, 17:34 pm Ahora lo que no tengo claro es que tú pides el tamaño del array al usuario... y, ¿reservamos la memoria estática en tiempo de ejecución? Supongo que será posible... Una declaracion similar a esta:Código Es valida o no dependiendo del estandar de C utilizado al compilar el programa: A) En C90 no es posible. B) En C99 si es valida (Array de longitud variable o VLA). C) En C11 es (Ouch!) opcional. Ni modo, asi es la vida ... Un saludo Título: Re: problema l requerir números Publicado por: 7hongo7 en 20 Febrero 2013, 16:01 pm Vientos muchas gracias a todos es algo parecido lo que tengo que hacer ahora déjenme probarlo, gracias BatchianoISpyxolo y leosansan sus codigos son geniales ahora a probarlos para que me salga el programa que me dejaron jejeje
Título: Re: problema l requerir números Publicado por: 7hongo7 en 20 Febrero 2013, 18:49 pm ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ya me salio mi programa muchas gracias a todos y su ayuda vientos :P :P :P :P :P :P :P
|