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

2 – Introducción a la programación

1. Contenido del capítulo

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.

Si has leído el capítulo anterior ya debes tener instalado y correctamente configurado tu Visual Studio así que en éste capítulo vamos a hacer lo siguiente:

  1. Pequeña y breve introducción a los elementos fundamentales de VS.
  2. Creación de un nuevo proyecto Windows Forms.
  3. Diseñador de formularios y herramientas.
  4. Vista de código.
  5. Compilación en modo debug.
  6. Introducción a los tipos de datos.
  7. Declaración de variables.
  8. Operaciones básicas con variables.
  9. Depuración punto por punto.
  10. Ser elegante no cuesta nada.
  11. Presentación del primer problema del curso.

Antes de continuar voy a dar por sentado que los conceptos del capítulo anterior están claros (de hecho será así en cada capítulo) por lo que me voy a ahorrar los enlaces a la Wikipedia de la terminología que ya se ha visto anteriormente (irlos poniendo es un coñazo) pero si tienes dudas puedes dejar un comentario o consultar el capítulo anterior, lo que te sea más cómodo 🙂

2. Introducción a Visual Studio

Visual Studio es la herramienta con la que vamos a programar, probar y generar nuestros programas. Es una herramienta muy potente y tiene millones de opciones de las cuales no tengo ni puta idea de la mitad, pero si de las que nos van a hacer falta para el curso así que iré al grano.

Tan pronto como hayas abierto VS verás algo similar a esto:

inicio

Propaganda, anuncios y mierdas varias a las que nunca he prestado atención. Lo que vamos a hacer es crear nuestro primer proyecto, para ello vamos a Archivo/Nuevo proyecto.

3. Creación de un proyecto

Como vamos a usar C#, nos vamos a su opción correspondiente y seleccionamos Aplicación de Windows Forms. Ahora hay que ponerle un nombre a la aplicación y escoger (si no te gusta la que viene por defecto) una ubicación. En la imagen tienes un ejemplo:

proyecto nuevo

Si te fijas, verás que puedes escoger la versión del .NET Framework que por defecto viene marcada la 4.5.1. Si por algún motivo estás usando una versión anterior de Visual Studio (por ejemplo la 2010) no podrás ir más allá del Framework 4.0 pero no te preocupes, para el contenido de éste curso no debería haber ningún problema en trabajar con un Framework más antiguo.

Acepta y crearás tu proyecto viendo algo parecido a esto:

proyecto

4. Diseñador de formularios y herramientas

formSobretodo no te asustes y no entres en pánico, son muchas cosas nuevas pero son muy sencillas de usar cuando le pillas el truco.

Lo que tienes en el centro es el formulario, que viene a ser como se ve tu aplicación. No puedes moverla, minimizarla ni cerrarla así que no lo intentes… vale, seguro que lo has intentado pero no va, no es más que una imagen. Lo que sí puedes hacer es jugar con su tamaño arrastrando los cuadritos blancos que la rodean.

explorador y propsSi te fijas en el lado izquierdo, verás que si haces clic donde pone Cuadro de herramientas se despliega una pestaña con muchas opciones, desplegando la primera opción puedes ver todos los componentes que Visual Studio nos permite insertar en nuestro formulario. Todos estos componentes son nativos del .NET Framework 4.5 (lo cual quiere decir que cualquier persona que lo tenga instalado debería ser capaz de hacer funcionar nuestro programa), muchos de ellos no los vamos a usar y algunos otros nos hartaremos de verlos, pero lo dejaremos para más adelante.

Ahora quiero que te fijes en el panel de la derecha, en la parte de arriba tienes el Explorador de soluciones que te permite ver todos los elementos que contiene tu programa, algunos de esos elementos son archivos que se han creado en tu disco duro al generar el proyecto, otros son solamente configuraciones del proyecto… como antes ya lo veremos sobre la marcha porque sino esto puede ser un puto lío que te cagas, ahora solamente nos interesa que nos suenen las cosas y que sepamos que están ahi y que hacen “cosas”.

Justo debajo tienes el panel de propiedades, donde se definen las propiedades de los distintos elementos que componen el formulario (éste incluido). Ahí se puede cambiar el color de fondo, el nombre, etc.

5. Vista de código

Bien, lo que hemos visto es la parte visual del proyecto, lo que sirve, entre otras cosas, para tocar lo que se llama Interfaz Gráfica de la aplicación. Pero la parte que más nos interesa es otra, donde de verdad está la chicha: EL CÓDIGO FUENTE.

Bien, para acceder a tan oscuro y hermoso lugar hacemos clic con el botón derecho del ratón sobre el formulario en el explorador de soluciones (Form1.cs) y seleccionamos ver código como se puede ver en la imagen.

opcion codigo

Deberías ver algo parecido a esto:

codigo

Seguramente tu veas todo el texto un poco más pequeño, yo tengo el zoom aumentado para no quedarme ciego (que ya lo estoy bastante) pero por si te interesa puedes cambiarlo dejando apretada la tecla Ctrl + Rueda del ratón.

Bien, lo que estamos viendo es el Mátrix de nuestro formulario, lo que realmente trabaja, lo que si no está aquí no funciona. Recuerda que independientemente de los asistentes, las ventanas de configuración que hemos visto antes, el código va a misa. El código siempre manda y nunca miente.

6. Compilación en modo Debug

Y esto del debug… ¿que es?

Pues para que nos entendamos es ejecutar un programa y poder ver que es lo que está haciendo, en teoría deberíamos saber que es lo que hace antes de ejecutarlo porque lo hemos programado nosotros pero a veces se nos escapan cosas, se producen errores y es la mejor manera de averiguar qué está pasando, lo que llamamos debugar.

playPara que veas un ejemplo, vamos a darle al botón de play verde que se ve por arriba.

formEsto nos va a compilar la aplicación en modo debug y nos la va a ejecutar para que la podamos probar. Deberías ver el formulario vacío que hemos visto antes pero ahora si que lo puedes mover, minimizar y cerrar pues ya no es una simple imagen sino toda una aplicación… ¡Tu primera aplicación!

Verás que el botón de play verde se ha transformado en un stop rojo, si lo pulsas se para la ejecución y volvemos a como estábamos antes. Esto también ocurre si cierras la ventana del Form1.

7. Introducción a los tipos de datos

Bueno, la cosa ya se va poniendo interesante ¿verdad?. Ya hemos visto como crear un proyecto, algunos elementos de VS y hemos ejecutado nuestra primera aplicación. Ahora es el momento de empezar a escribir nuestras primeras líneas de código.

Vamos a hacer algo tan tonto como una suma… ¿Pero que podemos sumar?

Tienes que imaginar la programación como un gran puzzle donde las piezas las creas tú, por ejemplo, viene un señor (en éste caso yo) y te dice “Oye tú, súmame dos números y dime el resultado”. Aquí el objetivo está claro, darle a éste señor el resultado de una suma, sabemos cómo juntar las piezas del puzzle pero no tenemos las piezas así que nos las vamos a inventar.

Vamos a crear dos variables, una variable es un elemento que puede ir cambiando de valor durante la ejecución del código.

Las variables se componen de un tipo y un nombre, cómo el señor nos ha pedido que sumemos dos números vamos a crear dos variables de tipo entero y, en un arrebato de originalidad, las vamos a llamar numero1 y numero2. El código quedaría como vemos a continuación:

codigo1Al escribir int le hemos dicho a C# que vamos a crear una variable de tipo entero, y a continuación hemos puesto su nombre para rematar con un punto y coma que significa que ya hemos acabado.

Vale, el siguiente paso es darle valor a esos números, para eso usaremos lo que se conoce como asignación. En el código lo vais a ver super claro:

codigo2

Vale, tenemos nuestras piezas, dos números que valen 5 y 3, nos queda sumarlos como nos han pedido. ¿Que cómo se suma? Pues sumando :p

8. Operaciones básicas con variables

codio suma

¡Wow! Espera… ¿que es esa marca roja? Pues resulta que Visual Studio nos está diciendo que hay un error en nuestro código, si dejas el ratón sobre la línea errónea podrás leer el mensaje de error… aunque no siempre se entiende lo que quiere decir…

error1

Éste error, en castellano estándar, significa “Eh tio/a, estás sumando dos cosas y no me estás diciendo dónde quieres que ponga el resultado.” Ojalá Visual Studio nos dijera así las cosas, sería todo mucho más fácil.

Bien, la solución es muy sencilla, vamos a crear una nueva variable para poner el resultado de nuestra suma y vamos a poner el resultado ahí. Quedaría así:

codio suma ok

Bien, repasemos:

Tenemos tres variables, a una le ponemos un 5, a la otra un 3 y a la última le ponemos la suma de las otras dos… vamos a darle al play a ver que pasa.

¿No pasa nada verdad? Pues sí y no, el código se está ejecutando pero no lo estamos enviando hacia la interficie gráfica que es la ventana que vemos cuando le damos al play.

9. Depuración punto por punto

Vamos a debugar para demostrar lo que digo, si hacéis clic en la barrita gris a la izquierda del número de línea 19 se marcará con un punto rojo como en la imagen:

breakpoint zero

El punto rojo se conoce como Breakpoint o punto de interrupción, de ésta manera le estamos diciendo al programa que cuando le demos al play se pare ahí. Vamos a darle al play y veremos lo siguiente:

breakpoint

Si dejas el ratón puesto sobre numero1 verás que te dice que su valor es 0, esto es así porque cuando se crea una variable de tipo int su valor por defecto es siempre 0.

Ahora pulsa la tecla F10, esto hace que el programa avance un paso.

debug2

Pon el ratón sobre numero1 y verás como ahora vale 5, si haces lo mismo sobre numero2 verás que vale 0. Ahora pulsa F10 dos veces para que nos coloquemos en el punto de ejecución donde se ha realizado al suma.

debug3

Repite el proceso y verás como numero1 vale 5, numero2 vale 3 y… ¡¡¡resultado vale 8!!.

Felicidades, has picado tu primer programa 🙂

10. Ser elegante no cuesta nada

Una cosa muy cierta es que un código limpio, bonito y bien estructurado no solo hace menos daño a la vista sino que nos va a ahorrar un montón de tiempo a la hora de buscar errores, ampliar el código, etc.

Nuestro primer programa tiene solamente (si contamos lo que nosotros hemos escrito) 8 líneas contando los espacios en blanco. Pues bien, podemos dejarlo un poco más elegante si establecemos los valores cuando creamos las variables, ya veréis como todo queda más claro:

codigo_limpio

Como puedes ver la lectura ahora es clara: numero1 vale 5, numero 2 vale 3, resultado es la suma de los dos anteriores.

11. Presentación del primer problema del curso

Bueno, hemos llegado al final de éste capítulo y es el momento de presentar un problema.

He pensado que puede ser más divertido si presento el problema y no lo resuelvo hasta que publique el próximo capítulo, así te doy la oportunidad de resolverlo por ti mismo que es la mejor forma de aprender.

Creo sinceramente que si te doy la solución directamente vas a tener la tentación de mirarla y “picando piedra” es como se aprenden los truquitos y se superan los problemas que te puedas encontrar… aún así recuerda que tienes lo comentarios para hacerme cualquier pregunta que te surja.

Por último te recomiendo que te hagas muy amigo de los buscadores como Google, Yahoo! o Bing, te solucionarán muchas de tus dudas de forma rápida y cómoda y además aprenderás un montón de trucos de gente que, seguramente, sabe mucho más que yo.

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.

Pistas
Puedes aprovechar el proyecto que se ha creado en éste capítulo.
Puedes crear tantas variables como quieras para los operandos y los resultados.
Los operadores que necesitas són:

  • Suma, símbolo más (+).
  • Resta, símbolo guión (-).
  • Multiplicación, símbolo asterisco (*).
  • División, símbolo barra (/).