Título: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 00:11 am Hola buenas tardes, necesito que me echen una mano con este ejercicio:
Programa en C que pase de pies (unidad de longitud) a metros y a la inversa, utilizando funciones, las cuales no recibirán parámetros. (1 metro=0.3048pies). Muchas gracias :D Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 26 Marzo 2013, 00:13 am ¿Llevas algo hecho ya? Postealo si es así.Dado que este es un foro para resolver dudas, no para hacerle el trabajo a nadie.
¡Un saludo y bienvenido al foro! Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 00:26 am Sí, se me olvidó escribir lo que llevo hecho.
Soy novato y aun no controlo mucho el tema jajaja Esto es lo que llevo por ahora: Código: #include <stdio.h> Muchas gracias :D Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 26 Marzo 2013, 00:28 am Bueno pero tendrás que contarnos cual es tu problema ¿no? , no podemos adivinar :silbar:
Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 00:34 am Pues el problema es que cuando compilo el código fuente y voy a probarlo siempre me aparece 0 como resultado.
Muchas gracias :D Título: Re: ¿Me echáis un cable? Publicado por: durasno en 26 Marzo 2013, 00:46 am Hola! LA variable pies es de tipo float sin embargo tu funcion recibe un char. Si queres ingresar un caracter tenes que declarar a pies como char y en el scanf usar %c
Saludos Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 26 Marzo 2013, 00:49 am Bien pues vamos por partes al no poder usar funciones con parámetros vamos a ser chicos malos y usaremos variables globales, a las que podremos acceder durante todo el programa. Por lo tanto lo primero que tenemos que decirle al usuario es que si quiere convertir de metros a pies o de pies a metros, luego pedirle cuantos pies o cuantos metros desea convertir y luego cuando ya tengamos la entrada, pues decidir en base a eso y llamar a las funciones:
Código
Hola! LA variable pies es de tipo float sin embargo tu funcion recibe un char. Si queres ingresar un caracter tenes que declarar a pies como char y en el scanf usar %c Durasno de todas maneras no ingresaba ni los metros ni los pies por lo tanto siempre iba a darle 0 de salida.Saludos ¡Un saludo! kayron8 en tu código el principal problema es que no sabías como decidir lo que el usuario quería, además debías ingresar los metros o pies que querías. Tal y como posteaste el programa pies casi nunca sería igual que 1 dado que pies casi nunca sería 'p' y entonces al pasar al bloque de sentencias del else , al ser metros 0, 0/0.3048 = 0, por lo tanto a pies se le asignaba el valor 0 y por eso todo daba 0. Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 01:04 am Wow, muchísimas gracias por ayudarme a resolver el problema, sabía que el ejercicio en sí, no era muy difícil.
El problema lo tengo con las funciones que no me aclaro de familiarizar con ellas. ¡Ojalá solucionase los ejercicios así de rápido! Por cierto, en la línea 24 te dejaste el &, sino el programa peta ;) Muchas gracias de nuevo :D Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 26 Marzo 2013, 01:24 am Wow, muchísimas gracias por ayudarme a resolver el problema, sabía que el ejercicio en sí, no era muy difícil. De nada, las funciones son sencillas, nada del otro mundo, lo más complicado que puedes ver ahí es la recursividad y el número variable de argumentos pero poco más . . . ¡Que fallo! lo corrijo ahora mismo, es que hace poco he desactivado los avisos del compilador para que no me de el coñazo con algunos avisos innecesarios y se me ha olvidado activarlo.El problema lo tengo con las funciones que no me aclaro de familiarizar con ellas. ¡Ojalá solucionase los ejercicios así de rápido! Por cierto, en la línea 24 te dejaste el &, sino el programa peta ;) Muchas gracias de nuevo :D Título: Re: ¿Me echáis un cable? Publicado por: durasno en 26 Marzo 2013, 02:15 am Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien
Saludos Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 12:46 pm Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien Saludos Lo tendré en cuenta ;) Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 26 Marzo 2013, 12:52 pm Como consejo personal para kayron8 por ahora, no te acostumbres a usar variables globales ya que recien te estas iniciando, y como muchos usan este recurso para facilitarse los ejercicios al final terminan complicandose... Igual esto es cuestion de cada uno, mientras entiendan lo que hacen esta bien Llevas muchísima razón, lo mejor en ese código hubiese sido esto(utilizando variables locales en las funciones):Saludos Código
Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 14:21 pm Llevas muchísima razón, lo mejor en ese código hubiese sido esto(utilizando variables locales en las funciones): Código
Hola, muchas gracias por la ayuda, sois mejores que mi profe de programación jejeje Me quedo con esta segunda versión ya que el profe prefiere este modo que no el primero que se planteó. Saludos :D Título: Re: ¿Me echáis un cable? Publicado por: 85 en 26 Marzo 2013, 14:41 pm que raro porque los profesores son los que siempre dicen que no usés variables globales.
Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 26 Marzo 2013, 15:15 pm Por eso me quedo con la segunda versión del ejercicio xD
Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 27 Marzo 2013, 00:01 am ¡Hola, buenas noches de nuevo!
Tengo un nuevo ejercicio que hacer, que aparentemente me funciona correctamente pero no sé si está bien escrito su código. El enunciado del ejercicio, es el síguete: "Escribe el código en C de la función que imprima por pantalla tantos asteriscos como indique el número que reciba como argumento." El código que llevo por ahora es el siguiente: Código
Muchas gracias por vuestra ayuda "profes" :P Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 27 Marzo 2013, 00:18 am Pregunta nueva, tema nuevo. De todas maneras lo que tiene que imprimir por pantalla los asteriscos es la función, y ni llamas a la función ni la función hace lo que dice el enunciado. En todo caso sería llamando a la función y pasándole la cantidad de asteriscos a imprimir por pantalla:
Código Creo que deberías darle un repaso al uso de las funciones, porque no sabes usarlas o da la impresión de eso. A una función tu le pasas unos parámetros y o hace una cosa y no devuelve nada como en este caso. O evalúa un problema y devuelve una solución. ¡Pero tienes que llamarla , si no no hace nada! Título: Re: ¿Me echáis un cable? Publicado por: kayron8 en 27 Marzo 2013, 00:35 am La verdad es que sí, me hace falta un buen repaso. Programo en varios lenguajes y me lio bastante :(
La condición while, la remplace con tú permiso, por mi for antiguo, este cambio lo hice porque con tu código me imprime asteriscos de forma infinita. Luego una pequeña tontería, en la línea 11, cuando escribes Código ¿no sería Código ? Muchas gracias de nuevo Título: Re: ¿Me echáis un cable? Publicado por: avesudra en 27 Marzo 2013, 00:45 am Luego una pequeña tontería, en la línea 11, cuando escribes Es que he cambiado el tipo a unsigned int ya que no tiene sentido imprimir -4 asteriscos :xD de todas maneras me he equivocado sería:Código ¿no sería Código ? Código No sé porque te genera un bucle infinito, a mi no me lo genera ni en Windows ni en Linux(Ubuntu) sobre el compilador GCC sobre Linux y MinGW sobre Windows y el IDE Codeblocks. |