Neur0na2
Timing Attack!
- Registrado
- 13 Feb 2016
- Mensajes
- 115
- Puntos
- 0
En el capítulo anterior estuvimos dimos un vistazo rápido a las variables. Vimos los tipos int, float y char*, así que hoy veremos algún tipo más en los ejemplos y veremos algunas de las posibilidades que nos permiten las variables.
Recordad lo que dije al final del anterior capítulo, es importante utilizar la variable adecuada según el rango disponible para ahorrar memoria y que nuestro programa esté lo más optimizado posible. Os vuelvo a poner la tabla para que os hagáis una idea.
Supongamos que tenemos el siguiente código:
Ahora vayamos por partes:
Esta vez creamos una variable de tipo entero sin signo unsigned int por lo que no se le pueden asignar valores negativos, llamada ladrillos y le asignamos el valor 69. Lo mismo ocurre abajo, pero la llamamos botesPintura y le asignamos el valor de 15.
Esto ya lo hemos visto en capítulos anteriores. Mostramos en pantalla el valor asignado de ambas variables.
Modificamos el valor asignado de ambas variables.
Y los volvemos a mostrar en pantalla.
Esto sí es nuevo. Ahora le asignamos a la variable ladrillos el valor de ladrillos que es 59 y le restamos 4 unidades. A la variable botesPintura le asignamos el valor que posee y le restamos 7 unidades.
Y mostramos en pantalla el valor restante de ambas variables.
Es muy sencillo, pero poco a poco vamos viendo todas las posibilidades que nos brinda C. También podemos sumar, restar, multiplicar y dividir las variables que creemos en uno de los argumentos de printf. Veamos como hacerlo:
Supongamos que ahora tenemos:
Declaramos una serie de variables y les asignamos un valor.
Mostramos en pantalla el valor de numero y le sumamos 3 y después lo dividimos por 1. Sí, en C la el operador de dividir se escribe con una /.
Mostramos en pantalla el valor de numero2 y lo multiplicamos por 3. Efectivamente, en C el operador de multiplicar se escribe con un *.
Y por último, mostramos en pantalla el valor de numero3 y le sumamos el valor de numero2.
Evidentemente podemos complicar los algoritmos matemáticos tanto en las variables como en los argumentos de printf. Volvamos a ver otro ejemplo:
De nuevo por partes:
Creamos unas variables esta vez de tipo double, que como vimos en la tabla ocupa en memoria 64 bits y tiene una precisión de 15 dígitos por los 32 bits que ocupa el tipo float y sus 7 dígitos de precisión. Evidentemente para este caso podía usar un tipo float perfectamente, pero es para que vayáis viendo más tipos de dato en los ejemplos.
Asignamos el valor de la variable a, a su valor multiplicado por la suma del paréntesis.
Ahora asignamos el valor de la variable b a su valor, sumado a la variable a, sumado a la multiplicación del paréntesis y a la división.
Y ahora mostramos los valores por pantalla. Fijaos que al ser tipos double la letra a escribir después del símbolo % es lf.
Por último hacemos la operación matemática desde uno de los argumentos de printf. Sumamos a la variable c el resultado de la multiplicación del paréntesis y lo restamos por la multiplicación del segundo paréntesis.
Podéis hacer vosotros mismos ejercicios. Por ejemplo dado la nota de cinco exámenes calcular la media. Una vez visto esto solo hay que darle un poco al coco para sacarlo.
En el siguiente capítulo veremos como escanear datos introducidos con el teclado.
Espero que os haya gustado k:
Capítulo anterior
Capítulo siguiente
Recordad lo que dije al final del anterior capítulo, es importante utilizar la variable adecuada según el rango disponible para ahorrar memoria y que nuestro programa esté lo más optimizado posible. Os vuelvo a poner la tabla para que os hagáis una idea.
Spoiler
Supongamos que tenemos el siguiente código:
Código:
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int ladrillos = 69;
unsigned int botesPintura = 15;
printf("Tenemos %d ladrillos actualmente\n", ladrillos);
printf("Tenemos %d botes de pintura actualmente\n", botesPintura);
ladrillos = 59;
botesPintura = 9;
printf("Ahora tenemos %d ladrillos\n", ladrillos);
printf("Ahora tenemos %d botes de pintura\n", botesPintura);
ladrillos = ladrillos - 4;
botesPintura = botesPintura - 7;
printf("Quedan %d ladrillos\n", ladrillos);
printf("Quedan %d botes de pintura\n", botesPintura);
getch();
return 0;
}
Ahora vayamos por partes:
Código:
unsigned int ladrillos = 69;
unsigned int botesPintura = 15;
Esta vez creamos una variable de tipo entero sin signo unsigned int por lo que no se le pueden asignar valores negativos, llamada ladrillos y le asignamos el valor 69. Lo mismo ocurre abajo, pero la llamamos botesPintura y le asignamos el valor de 15.
Código:
printf("Ahora tenemos %d ladrillos\n", ladrillos);
printf("Ahora tenemos %d botes de pintura\n", botesPintura);
Esto ya lo hemos visto en capítulos anteriores. Mostramos en pantalla el valor asignado de ambas variables.
Código:
ladrillos = 59;
botesPintura = 9;
Modificamos el valor asignado de ambas variables.
Código:
printf("Ahora tenemos %d ladrillos\n", ladrillos);
printf("Ahora tenemos %d botes de pintura\n", botesPintura);
Y los volvemos a mostrar en pantalla.
Código:
ladrillos = ladrillos - 4;
botesPintura = botesPintura - 7;
Esto sí es nuevo. Ahora le asignamos a la variable ladrillos el valor de ladrillos que es 59 y le restamos 4 unidades. A la variable botesPintura le asignamos el valor que posee y le restamos 7 unidades.
Código:
printf("Quedan %d ladrillos\n", ladrillos);
printf("Quedan %d botes de pintura\n", botesPintura);
Y mostramos en pantalla el valor restante de ambas variables.
Es muy sencillo, pero poco a poco vamos viendo todas las posibilidades que nos brinda C. También podemos sumar, restar, multiplicar y dividir las variables que creemos en uno de los argumentos de printf. Veamos como hacerlo:
Supongamos que ahora tenemos:
Código:
#include <stdio.h>
int main(int argc, char *argv[])
{
int numero = -1;
unsigned numero2 = 5;
int numero3 = -9;
printf("El valor de numero ahora es: %d\n", numero + 3 / 1);
printf("El valor de numero2 ahora es: %d\n", numero2 * 3);
printf("El valor de numero3 ahora es: %d\n", numero3 + numero2);
getch();
return 0;
}
Código:
int numero = -1;
unsigned numero2 = 5;
int numero3 = -9;
Declaramos una serie de variables y les asignamos un valor.
Código:
printf("El valor de numero ahora es: %d\n", numero + 3 / 1);
Mostramos en pantalla el valor de numero y le sumamos 3 y después lo dividimos por 1. Sí, en C la el operador de dividir se escribe con una /.
Código:
printf("El valor de numero2 ahora es: %d\n", numero2 * 3);
Mostramos en pantalla el valor de numero2 y lo multiplicamos por 3. Efectivamente, en C el operador de multiplicar se escribe con un *.
Código:
printf("El valor de numero3 ahora es: %d\n", numero3 + numero2);
Y por último, mostramos en pantalla el valor de numero3 y le sumamos el valor de numero2.
Evidentemente podemos complicar los algoritmos matemáticos tanto en las variables como en los argumentos de printf. Volvamos a ver otro ejemplo:
Código:
#include <stdio.h>
int main(int argc, char *argv[])
{
double a = -2;
double b = -5;
double c = 12;
a = a * (5+3-1);
b = b + a + (7 * 8) / 2;
printf("El valor de a es: %lf\n", a);
printf("El valor de b es: %lf\n", b);
printf("El valor de c ahora es: %lf\n", c + (9 * 9) - (3 * 3));
getch();
return 0;
}
De nuevo por partes:
Código:
double a = -2;
double b = -5;
double c = 12;
Creamos unas variables esta vez de tipo double, que como vimos en la tabla ocupa en memoria 64 bits y tiene una precisión de 15 dígitos por los 32 bits que ocupa el tipo float y sus 7 dígitos de precisión. Evidentemente para este caso podía usar un tipo float perfectamente, pero es para que vayáis viendo más tipos de dato en los ejemplos.
Código:
a = a * (5+3-1);
Asignamos el valor de la variable a, a su valor multiplicado por la suma del paréntesis.
Código:
b = b + a + (7 * 8) / 2;
Ahora asignamos el valor de la variable b a su valor, sumado a la variable a, sumado a la multiplicación del paréntesis y a la división.
Código:
printf("El valor de a es: %lf\n", a);
printf("El valor de b es: %lf\n", b);
Y ahora mostramos los valores por pantalla. Fijaos que al ser tipos double la letra a escribir después del símbolo % es lf.
Código:
printf("El valor de c ahora es: %lf\n", c + (9 * 9) - (3 * 3));
Por último hacemos la operación matemática desde uno de los argumentos de printf. Sumamos a la variable c el resultado de la multiplicación del paréntesis y lo restamos por la multiplicación del segundo paréntesis.
Podéis hacer vosotros mismos ejercicios. Por ejemplo dado la nota de cinco exámenes calcular la media. Una vez visto esto solo hay que darle un poco al coco para sacarlo.
En el siguiente capítulo veremos como escanear datos introducidos con el teclado.
Espero que os haya gustado k:
Capítulo anterior
Capítulo siguiente
Última edición: