3 – Tipos de datos

1. Resolución del ejercicio del capítulo anterior

Hola, bienvenido de nuevo a Programar mola con Visual Studio donde puedes seguir éste curso de programación en C# con Visual Studio y .NET Framework 4.5.

Antes de empezar con nuevo temario vamos a resolver el ejercicio que planteamos en el capítulo anterior, recordemos el enunciado:

“El mismo señor que te había pedido que sumaras dos número cualesquiera te pide ahora que le hagas lo mismo con una resta, una multiplicación y una división y guardes los resultados en cuatro variables diferentes.”

Solución:

Lo cierto es que el ejercicio no tenía mucho misterio y estoy seguro que, después de haber hecho una suma en el capítulo dos no os ha resultado muy difícil hacer el resto de operaciones.

El código quedaría de la siguiente manera:

result_ejer

Como siempre, existen multitud de formas de resolver los ejercicios, tus variables (en mi caso numero1, numero2, resultado_suma, etc.) seguramente se llamen diferente pero el resto debe ser muy parecido.

2. Contenido del capítulo

En base a lo que hemos aprendido en el capítulo anterior, hoy vamos a ampliar horizontes aprendiendo lo siguiente:

  • Constantes
  • Nuevos tipos de datos
  • Arrays
  • Resolución de un ejercicio de ejemplo
  • Enunciado del ejercicio para la próxima entrada.

Como siempre, voy a dar por sentado que los conceptos del capítulo anterior están claros. Si no es así te animo a pegarle un repaso o a dejarme tus consultas en los comentarios.

3. Constantes

En el capítulo anterior y en la resolución del ejercicio hemos hecho uso de variables, recuerda que una variable es como una caja de zapatos: un día puede contener bambas, al día siguiente zapatillas y dentro de un mes quizás libros viejos o herramientas. Es un recipiente donde poner cosas, en los casos que nosotros hemos visto números enteros, pero números que pueden ir cambiando.

Siguiendo el ejemplo del ejercicio anterior, si el enunciado no nos hubieran exigido usar variables nuevas las podríamos haber aprovechado, por ejemplo así:

reapro

Como puedes ver, en lugar de declarar nuevas variables para guardar el resultado he reaprovechado la que ya teníamos, si debugas el programa paso a paso verás como el valor de “resultado” va cambiando.

Si te fijas bien, verás que hemos usado variables para numero1 y numero2, y si te fijas mejor verás que esos números nunca cambian, nos son variables sino que son constantes.

Podemos definirlos como constantes de la siguiente forma:

constantes

Ahora numero1 y numero2 son constantes y su valor no se puede modificar durante la ejecución.

Nuestro programa es tan pequeño que apenas se nota pero hemos mejorado su eficiencia, al reaprovechar variables es como si en lugar de comprar una nevera nueva cada vez que se llena, la vaciáramos para llenarla con otras cosas. Con las constantes se mejora la velocidad de acceso a datos, es como si te aprendes de memoria tu DNI en lugar de sacarlo de la cartera y consultarlo cada vez que te lo piden.

Como he dicho todos estos cambios apenas se notan en un pequeño programa pero si éste crece cada día hasta transformarse en una gran aplicación habrás agradecido tener estas cosas en mente desde el principio.

¡Ah! Un último detalle, ¿te has fijado en la línea verde debajo de resultado? Se parece a la línea roja que vimos en el capítulo anterior y se llama “warning”. A diferencia de los errores, los warnings son sólo avisos y, en éste caso, nos está diciendo esto:

warning

Básicamente nos está diciendo: “Has creado resultado, le estás poniendo valores, pero nadie los usa por lo que te la puedes ahorrar”. Pero VS no sabe que las estamos usando para consultar el valor de las operaciones mientras debugamos.

4. Otros tipos de datos

Bueno, llegados a este punto hemos aprendido a declarar variables y constante de tipo entero y a realizar diferentes operaciones matemáticas. Ahora me gustaría enseñarte otros tipos diferentes.

4.1. float

El float es el tipo de dato que representa un número decimal, al igual que los int se les pueden realizar operaciones matemáticas como sumar, restar, etc.

floats

En este código hemos definido dos constantes de tipo float y las hemos sumado poniendo el resultado en una variable float. Si te fijas hay una “f” al final del número decimal que da valor a las constantes, es necesario para indicarle a VS que es un valor float válido.

4.2. string

El string es el tipo de dato que representa una cadena de texto.

stringsAquí hemos repetido el ejemplo del float pero usando strings.

Si te fijas el valor del string va siempre entre comillas, y si, los strings se pueden sumar aunque lo que realmente se hace es concatenarlos, por lo que en nuestro caso resultado valdría “holaadios”. Como el string no es un valor numérico no se los puede restar ni multiplicar ni dividir.

Ahora me gustaría que probaras de primera mano lo que te he enseñado en éste apartado, vamos a picar un poco de código hasta obtener lo siguiente:

ejemplo simple

Bueno, en el capítulo anterior vimos como se podía debugar para comprobar el valor de las variables, pero quiero enseñarte un pequeño truco: podemos hacer que aparezca un mensaje en pantalla con los valores que queremos ver. Vamos a hacer un par de cambios:

ejemplo mshbox

Hemos añadido un par de líneas donde hacemos uso de MessageBox.Show, MessageBox es el objeto y Show el método. Más adelante explicaremos que es un objeto y que es un método, por ahora me conformo con que os suenen esas palabrejas.

MessageBox.Show acepta un string, que es lo que le ponemos entre paréntesis. Si te fijas con resultado_string no hay problema, porque es un string, pero con resultado_float hay que hacer una cosa llamada .ToString(). Más adelante lo explicaré, no te preocupes.

Vamos a darle al play, recuerda que es el botón verde donde pone Iniciar.

msgbox_float  msgbox_string

Y ahí lo tienes, te aparece un mensaje (un MessageBox) con un número 2, que es el contenido de resultado_float (0.5 + 1.5). Si pulsas aceptar te sale el siguiente mensaje, que no es más que el contenido de resultado_string.

5. Arrays

Bueno, llegados a éste punto ya has visto cómo se declaran variables y constantes de distintos tipos (ints, strings y floats) y como se puede operar con ellos. Vamos a darle una vuelta de tuerca y nos vamos a introducir en el mundo de los arrays.

Un array no es más que un grupo de variables del mismo tipo, nosotros hemos estado usadando cajones (las variables) y un array es como un armario que tiene cajones dentro. Te voy a poner un ejemplo sencillo para que veas como funciona:

Te viene una señora y te pide que le calcules cuanto dinero tiene en la cartera si:
Empieza con 2 monedas de 2 euros, 3 de un euro, 15 monedas de 5 céntimos y una de dos céntimos.
Después paga con una moneda de 2 euros, una de uno y una de 5 céntimos.
Y le dan de cambio una de un céntimo.

Como nosotros somos gente muy apañada vamos a ordenar todo este lío de números:

tabla 1

Si pagamos con esto nos queda:

tabla 2

Y al darle el cambio nos queda:

tabla 3

Ahora sumamos el dinero y nos da que tenemos 4.73€. ¿Fácil no?

¡Pues a programar se ha dicho! Abramos Visual Studio y busquemos una manera de realizar éste cálculo con nuestro querido C#.

Una posible solución sería la siguiente:


array 1

Como puedes ver es una solución muy tonta, hay tantas variables como tipos de moneda, se realizan las operaciones, se calcula el total y se muestra el resultado.

Seguro que te has fijado en que hay una línea partida, lo he hecho a posta para que ocupara menos en pantalla. Si una línea te parece demasiado larga la puedes partir con un intro que no pasa nada… ¿mola eh?

Pues existe una forma igual de válida pero más elegante de hacer y es mediante arrays, como hemos dicho un array es una colección de elementos y nos viene perfecto porque todas las variables que hemos usado (menos el resultado) son de tipo entero.

El array de enteros se declara así:arrayç

Se parece mucho a declarar una variable normal, ¿verdad?

Lo primero como siempre es el tipo, en éste caso int, y va seguido de corchetes para decirle a C# que es un array. Luego como siempre viene el nombre (en éste caso monedero) y por último viene una cosa un poco especial: le estamos diciendo a C# que nuestro array tiene 8 posiciones.

Lo que acabamos de hacer es decirle al ordenador que queremos una tabla como la que hemos visto arriba con 8 posiciones vacías y que se llama monedero.

tabla 4

Aquí hay una cosa curiosa a tener en mente, y es que en C# la primera posición de nuestro array es la número cero, y la última la número siete.

Si nos imaginamos que las posiciones corresponden a la tabla que habíamos usado en el ejemplo nos quedaría una cosa así:

array 2

Poner valores en el array es muy parecido a ponerlos en una variable y que ya hemos visto tantas veces. Para hacerlo con un array hay que poner el nombre de la variable, la posición a la que queremos acceder entre corchetes y el valor a asignar.

En la primera línea estamos diciendo: “a monedero, en la posición cero, le pones un dos”.

En la segunda línea estamos diciendo: “a monedero, en la posición uno, le pones un tres”.

En cada una de las líneas estamos accediendo a una posición del array y poniéndole un valor, desde la primera (la cero) hasta la última (la siete) lo cual en nuestro dibujo equivaldría a tener esto:

tabla 5

Aunque parezca una tontería te recomiendo que siempre que tengas que pensar en una solución tengas papel y boli al lado. Ojo que no he dicho siquiera programar, los dibujos, esquemas y anotaciones es recomendables hacerlos siempre antes para tener bien claro cómo se va a ir desarrollando el código. Si te fijas, lo que estoy programando es exactamente y paso por paso lo que he explicado antes de programar nada cuando he estado dibujando las tablas con los euros.

Bien, ya tenemos nuestro array montado y solo queda calcular el resultado:

array 3

La lectura es un poco más confusa pero el resultado es el mismo, lo he partido en varias líneas para que se viera mejor en éste blog pero lo puedes poner en una si te resulta más cómodo.

Vale, tenemos la nueva versión casi acabada así que vamos a hacer un poco de limpieza.

Cuando se declara una variable de tipo entero, su valor inicial siempre es cero. En el caso de los arrays de int pasa lo mismo, las posiciones iniciales siempre valen cero por lo que podemos limpiar unas cuantas líneas:

array 4

¿Fácil verdad? Pues se puede dejar un poco más bonito todavía… aunque supongo que esto va por gustos:

array 5

Como puedes ver he declarado el array de una forma diferente y un poco más clara.

Consiste en no decir el número de posiciones y acto segudio poner entre llaves el listado de valores iniciales de todas las posiciones. De esta forma se tiene una visión mucho más clara del valor inicial de nuestro array aunque, como he dicho, es una cuestión de gustos y quizás a ti te mola más hacerlo de otra forma.

Bien, para acabar del todo nos queda hacer las operaciones del enunciado, es prácticamente igual que el ejemplo sin array pero accediendo a las posiciones con lo que el resultado final queda así:

array 6

6. Resmuen.

La verdad es que tenía pensado explicar más cosas en éste capítulo pero me da miedo que sea demasiada información de golpe y me interesa más que vayamos poco a poco y dejando bien claras las cosas.

Recapitulando hemos visto variables de distintos tipos que se declaran así:

tipos

Siempre de la misma forma: tipo -> nombre -> valor inicial -> punto y coma.

Recordemos también que, si sabemos que una variable no va a cambiar nunca de valor entonces no es una variable sino una constante:

tipos const

Basta con poner const delante para que no tengamos una variable sino una constante, esto siempre es bueno hacerlo para ayudar a nuestro programa a ir más rápido.

También hemos visto como realizar operaciones matemáticas simpes (suma, resta, multiplicación y división) con los tipos int y float así como concatenar strings sumándolos.

Y para terminar hemos visto como se crear arrays y como se accede a sus posiciones:

tipo array

7. Ejercicio

Una persona te dice que tiene un huerto con cinco parcelas, en la primera cultiva lechugas, en la segunda cultiva zanahorias, en la tercera planta cebollas, la cuarta la tiene vacía y en la quinta tiene puerros.

Un día viene una chica a comprarle unas hortalizas, y en la lista de la compra tiene apuntado comprar 3 zanahorias, 1 cebolla y 2 lechugas.

Escribe el código necesario para calcular el número de hortalizas totales (un número entero) que le quedarán al payés una vez haya realizado la venta. Utiliza como mínimo un array.

Pista:
Puedes montar una solución parecida a la que se ha usado de ejemplo en éste capítulo usando arrays.

Como siempre la respuesta en el próximo post.
Saludos y gracias por llegar hasta aquí.

¡Hasta la próxima!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s