Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Info1] Duda sobre ejercicio de final
Autor Mensaje
mauro.a.g Sin conexión
Empleado del buffet
En pañales
*

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 8
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Nov 2011
Mensaje: #1
[Info1] Duda sobre ejercicio de final Ejercicios Informática I (Electrónica)
Hola muchachos,

Estaba resolviendo la parte teórica de un final y se me dio por probar el código escrito en el final para poder responder las preguntas que piden.

el ejercicio es dado este codigo:

#include<stdio.h>

int main(void)
{
float numero=3.2;
int *ptr;

ptr=&numero;
printf("%f\n",numero);
printf("%f\n",*ptr);

return 0;
}

decir si da warnings, errores, si se crea el ejecutable, si lo hace que muestra en pantalla y si no lo hace que se modificaría.

Al compilar obtengo esto:

mauro@pc:~/ejemplos$ gcc ./volatil.c -o ./programa
./volatil.c: En la función ‘main’:
./volatil.c:8:8: aviso: asignación desde un tipo de puntero incompatible [activado por defecto]
./volatil.c:10:5: aviso: formato ‘%f’ espera un argumento de tipo ‘double’, pero el argumento 2 es de tipo ‘int’ [-Wformat]
mauro@pc:~/ejemplos$ ./programa
3.200000
3.199999
mauro@pc:~/ejemplos$

Conclución: se encuentran warnings, se crea el ejecutable y se muestra lo que puse.

PERO MI PREGUNTA ES: ¿POR QUÉ SE MUESTRA DE ESA FORMA?¿QUÉ PASÓ?

Gracias y espero sus respuestas
25-09-2013 18:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.686 en 547 posts
Registro en: Sep 2010
Mensaje: #2
RE: [Info1] Duda sobre ejercicio de final
Debe ser por esto : printf("%f\n",*ptr);
Cuando vos declaraste ptr, dijiste que era un puntero a int y dps lo haces que apunte a un float.

Otra cosa, por ahí es al pedo la aclaración pero a vos en el final no te dejan probar estas cosas con la maquina. ES mejor no hacerlo y si darse cuenta mirando el codigo

love
25-09-2013 18:41
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] CarooLina recibio 1 Gracias por este post
mauro.a.g (25-09-2013)
mauro.a.g Sin conexión
Empleado del buffet
En pañales
*

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 8
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Nov 2011
Mensaje: #3
RE: [Info1] Duda sobre ejercicio de final
Gracias caro por responder tan rápido, en realidad me di cuenta del problema con la asignación pero no tenía claro si iba a generar un error o un warning, me falta un poco de cancha en esos temas. Y lo que me generó curiosidad es lo del muestreo, que en uno muestra 3.2 y en otro 3.19999999 eso me dejo con ganas de saber porque paso eso. Y debe ser como decis el %f al int.
25-09-2013 18:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.686 en 547 posts
Registro en: Sep 2010
Mensaje: #4
RE: [Info1] Duda sobre ejercicio de final
Si yo estoy casi segura que debe ser eso, tranca es normal pero viste para que despues no te acostumbres jaja =P Si tenes dudas esta el K&C que podes sacar la sintaxis y todo eso

love
25-09-2013 19:38
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Abend Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 179
Agradecimientos dados: 26
Agradecimientos: 36 en 24 posts
Registro en: Feb 2013
Mensaje: #5
RE: [Info1] Duda sobre ejercicio de final
Pensa que un punto flotante tiene un numero finito de valores, a diferencia de lso numeros reales que son infinitos. Entonces tenes infinitas lagunas entre numeros y siempre te tira lo mas aproximado que encontro. Por eso JAMAS se hacen comparaciones entre float. No tiene nada que ver el puntero a int o a float en este caso. En ambos casos, el puntero es de 2 bytes, no hay problema con eso, pero si te va a tirar un warning.
25-09-2013 21:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)