En este caso haremos un recordatorio de la directiva (#define)
Debemos recordar en primer lugar que no tiene nada que ver con las variables. Podemos comparar la directiva #define, como la creación de una macro.
Sintaxis:
#define MI_NOMBRE Juan
En este caso, en cualquier parte del programa donde aparezca MI_NOMBRE, será sustituido por Juan.
En el caso siguiente:
Yo me llamo MI_NOMBRE
El complilador lo transformará en:
Yo me llamo Juan
Ahora un ejemplo tipo ejercicio para comprender la directiva. No hagáis los comentarios en whatsapp, hacedlos aquí para que queden como guía.
#define NUMERO 10
#define INCREMENTO (NUMERO + 1)
#define VALOR 5
#define QUE_ROLLO ((NUMERO*INCREMENTO)/VALOR)
int a = NUMERO;
int b = VALOR * 2
if (a == b) b= b + INCREMENTO;
if (a < b) b = b / 5;
int c = a + NUMERO + INCREMENTO + b;
int d = (c * VALOR)/2 + QUE_ROLLO;
int e = a + b + c + d;
1º Valor de la variable e
2º ¿Cuanto vale al final QUE_ROLLO?
Espero, que tras esto, el #define quede un poco más claro. Ánimo.
Podéis dar el valor de la variable e, pero sin dar muchas pistas a los demás.
Si tenéis preguntas muy concretas, que den pistas, las preguntas aquí en el blog, pero os contesto por whatsapp, en privado, pero solo para eso.
Me quiero pasar de listo intentando compilarlo para que el arduino me de el valor de "e"y me lo muestre por puerto serie , pero no hay forma...
ResponderEliminarEso era primordial, que no se pudiera
EliminarVenga me tiro a la piscina....e=124,7
ResponderEliminarCreo que es el mismo rollo de siempre ;).
Pues no.
ResponderEliminarLa cague en el valor de QUE_ROLLO, hice sumar VALOR e INCREMENTO.
QUE_ROLLO = 22 siempre.
El resultado final que lo ponga otro......
Jode me confundo hasta en lkos comentarios...hice:NUMERO+INCREMENTO. De ahi mi error, creo que solo ese ese.
ResponderEliminara mi me ha salido:
ResponderEliminarque la variable e=185.5
y el define QUE_ROLLO es 22.
Buenas tardes compañer@s y teacher:
ResponderEliminarYo lo había hecho con papel y lápiz y me salía un resultado e=159,4 y QUE_ROLLO = 22 y como quería comprobarlo, lo he convertido a código y lo he metido en el programa Arduino... y no salía lo mismo el "e"
Esta tarde "El Teacher" me ha comentado que las variables "int" no pueden utilizar decimales... hay que utilizar "float".... y entonces sí...
Para poder visualizarlo, Ángel nos enseñará a utilizar el monitor de arduino, que se comunica con la placa..Salud..
Vocación de profe, mando tarea y el contesta mandándome tarea, :)
EliminarTres comentarios tres resultados. A la segunda pregunta los tres de acuerdo. Faltan 17 comentarios.
ResponderEliminarA mi me sale lo mismo que a Joel.
ResponderEliminare=185,5
q_ROLLO=22
Ok, mañana lo comentaré aquí después de clase, porque no puedes ir creo
EliminarComo son valores int y no llevamos decimales, a mi me sale: e=158 y QUE_ROLLO=22
ResponderEliminarami me sale diferente 159.4
ResponderEliminarpero lo voy a hacer otra vez
ya me sale bien 158 sin decimales
ResponderEliminarcomo metes esto a arduino copias y pegas ,cambias lo de int por float y luego hay que poner void loop o void setup
ResponderEliminarTe falta la segunda parte del ejercicio
Eliminare=159,4
ResponderEliminarQUE_ROLLO=22
Este comentario ha sido eliminado por el autor.
ResponderEliminara mi me sale el QUE_ROLLO = 22; y al tomar todos los resultados como enteros he tenido que truncar aquellos que me salían con decimales, quedándome con la parte entera, siendo el resultado de e = 158
ResponderEliminarYo he obtenido que QUE_ROLLO es 22 y que e con decimales es 159,4 y sin decimales e es 159
ResponderEliminarQué rollo 22 e 235
ResponderEliminarEso de los decimales... Que rollo = 22 y valor de e= 213???
ResponderEliminar