Sei sulla pagina 1di 81

Introduccin

Bienvenidos/as al curso de Programacin en C#.


En este curso aprenders a programar desde cero. No necesitars tener conocimientos
previos en programacin para aprender.
Eso si, debers seguir las lecciones en el orden del ndice, ya que se irn explicando las
instrucciones necesarias en cada momento para realizar los ejemplos que se van haciendo.
Empezaremos por lo ms bsico, desde instalar el compilador donde trabajar, pasando por
la realizacin de pequeos programas de consola, hasta la programacin orientada a
objetos. No te preocupes si no has entendido algo de lo citado anteriormente, vamos a ir
paso a paso para que no te pierdas.
Nos centraremos en lo puramente prctico, sin perdernos en tecnicismos, para conseguir un
acercamiento rpido y ameno para cualquier persona.
Sin ms, si ests preparado/a, comenzamos.

Instalar el compilador
Para programar en cualquier lenguaje, se necesita un compilador. Vamos a entender sto
como un entorno de trabajo necesario para hacer un programa.
Normalmente hay varias opciones, nosotros utilizaremos el oficial de Microsoft, que
adems es gratuito y podemos descargar desde su pgina web.
La versin concreta que vamos a utilizar es la siguiente:
Visual C# 2010 Express
Descargar aqu

Proceso de instalacin
Ejecuta el instalador una vez descargado.
Espera a que la aplicacin extraiga los archivos.

Ahora copiar los archivos necesarios para empezar con la instalacin.

En la siguiente ventana cargar.

En esta ventana nos pregunta si queremos colaborar con Microsoft en mejorar el programa,
etc. Decide t mismo/a. Yo lo he dejado marcado.

A continuacin debemos aceptar la licencia as que marca la primera opcin: "He ledo y
acepto los trminos de la licencia".

Productos opcionales que podemos instalar. Desmarca el primero si lo marca por defecto.
No necesitamos ninguno de ellos para este curso.

Mostrar los requisitos del sistema. Si cumples los requisitos podemos proseguir.

Comienza a descargar el programa.

Por fin comienza la instalacin.

Si todo ha ido bien, nos mostrar esta ventana indicando que la instalacin fue correcta.

Ya hemos instalado el compilador. En la siguiente leccin empezaremos a "meternos en


materia".

Primer vistazo al compilador


Abre el compilador desde la lista de programas instalados de tu PC. ste tiene un periodo
de pruebas de 30 das, pero puedes obtener una licencia gratuita por correo electrnico.
Vamos a ver un repaso a la pantalla principal:

1. Guardar todo. Utilizaremos este botn para ir guardando el proyecto. Lo que hace
es guardar los avances en todos los proyectos que tengamos abiertos. Si queremos
guardar slo el actual, utilizaremos el botn que est justo a su izquierda.
2. Nuevo proyecto... Haciendo click ah crearemos un nuevo proyecto.
3. Proyectos recientes. Desde aqu podemos abrir los proyectos en los que hemos
trabajado recientemente. Lo normal es que ahora mismo no tengamos ninguno.
4. Iniciar. Desactivado, porque se utiliza para ejecutar el proyecto actual. Con esto
iniciaremos el programa que tengamos abierto en ese momento para probarlo.
5. Explorador de soluciones. Aqu veremos qu proyectos estn abiertos en ese
momento, por eso ahora no hay nada. Entenderemos "solucin" como un proyecto.

Adems del punto 2, tambin podemos crear un nuevo proyecto desde el men Archivo.
Vamos a crear un proyecto nuevo:

Clicamos en el men Archivo > Nuevo proyecto...

Elegimos ahora las opciones del nuevo proyecto:


1. Selecciona Visual C# (seguramente no tengas otra opcin).
2. Elegimos aplicacin de consola. En este curso slo trabajaremos con aplicaciones
de este tipo.
3. Dale un nombre al programa. Es muy recomendable no utilizar espacios ni
caracteres extraos.
4. Aceptar.

Si todo ha ido bien, veremos una pantalla con el proyecto abierto, tal que as:

Muy bien, hasta aqu todo lo que necesitas saber sobre la creacin de un proyecto.

Primer programa: "Hola mundo"


En esta leccin vamos a crear un primer programa bsico, algo muy sencillo.
Si no ests familiarizado/a con la programacin, hemos de sealar que "Hola mundo"
suele ser el primer programa que se realiza en cualquier lenguaje para aprender, son como
los primeros pasos.
Podemos trabajar sobre el proyecto que abrimos en la leccin anterior. Aunque si te atreves,
crea tu propio proyecto llamado HolaMundo. Siempre que abres un nuevo proyecto, el
contenido que encontrars escrito es el mismo, as que no habr diferencias a la hora de
programar.

Este programa slo incluye una lnea, que es la siguiente:


Console.WriteLine("Hola Mundo");
Aqu puedes ver dnde hay que colocarlo.

La lnea debe ir dentro de ese bloque. Dentro? Como puedes observar hay una lnea en
blanco encerrada entre corchetes { }. En programacin, el bloque es separado en lneas para
mantener una estructura ms fcil de entender.
A su vez, este bloque est dentro de "class Program" y ste dentro de "namespace
PrimerPrograma". Esto no hace falta que lo entendamos por el momento, lo que es
importante es no modificar nada en la estructura.
Tampoco debemos modificar el primer bloque del programa donde aparecen las directivas
"using", de las que ms tarde hablaremos.

Bien, nuestro programa quedara as:

Ahora podemos iniciarlo para probarlo.

Hacemos clic en el icono de iniciar y se ejecutar. Qu ocurre? El programa se abrir,


escribir "Hola Mundo" en la consola y se cerrar al instante. Probablemente slo veas un
"pestaeo" en la pantalla.

Vamos a solucionarlo escribiendo una lnea que har que se cierre la consola cuando
pulsemos una tecla. Quedando as:

Ahora s, tenemos el programa terminado. Volvemos a iniciarlo y deberas ver esto:

Ya hemos hecho nuestro primer programa funcional. Con esto hemos aprendido a escribir
texto en la consola.

Errores
Si has tenido algn error de escritura, al ejecutar el programa vers una ventana avisando de
ello, as:

Abajo del programa te aparecern marcados los errores:

En el programa sern subrayadas las palabras que no estn bien escritas:

Para evitar estos problemas, es recomendable utilizar la ayuda que ofrece el compilador:

Puede que en este programa tan sencillo no hayas fallado, pero ten en cuenta estas pautas
para solucionar posibles errores en futuros ejercicios.

Comentarios y tipos de datos


En el cdigo de un programa podemos poner comentarios. Este texto ser meramente
informativo para quien lea el cdigo. No provocar ningn cambio en la programacin.

As se escriben los comentarios:

La apertura de un comentario (//) slo permite escribir en una lnea. Si queremos escribir en
ms de una, debemos hacerlo de la siguiente forma:

Vamos a ver ahora los tipos de datos ms comunes para programar. Estos tipos de datos
son con los que operamos en los programas y se les conoce como variables.
Un pequeo ejemplo, imaginad que tenemos que hacer una cuenta aritmtica en un
momento determinado que sera:
4,5 + 7
Bien, pues 4,5 no es un valor del mismo tipo que 7. El valor 4,5 deber ser almacenado en
una variable compatible con su tipo (es un valor decimal) y el nmero 7 en otro tipo (es un
valor entero).

A continuacin una lista con los tipos ms utilizados:

Estos son los tipos que utilizaremos en este curso. Hay ms tipos y cada uno tiene unas
limitaciones. Para saber ms sobre ello, puedes investigar por tu cuenta, aunque no lo
necesitars para realizar las prcticas que haremos en las prximas lecciones.
Si te quedaron algunas dudas, no te preocupes, en la leccin siguiente veremos la
declaracin de variables y cmo asignar valores a cada tipo para que lo entiendas
perfectamente.

Declaracin de variables
Veamos como se declara una variable:
Tan simple como escribir el tipo de dato seguido del nombre que le queramos dar a la
variable, finalizando la instruccin con punto y coma (;).

Recuerda: En C# al final de cada instruccin siempre hay que poner punto y coma (;),
excepto en algunas otras instrucciones como bucle.

Respecto al nombre de la variable, hemos dicho antes que podemos darle el nombre que
queramos, esto es correcto, pero hay que seguir unas normas:

Slo puede estar compuesto por caracteres alfanumricos (Letras y nmeros).

No puede empezar por un nmero, debe empezar por letra.

No puedes utilizar palabras del lenguaje reservadas para otras instrucciones o


funciones.

Es recomendable utilizar slo minsculas.

Bueno, esto es slo una declaracin. Digamos que hasta aqu lo nico que hace esa
instruccin es decirle al compilador que hemos creado una variable de tal tipo y que tiene
tal nombre.

Vamos a ver como podemos darle un valor:

Debajo de la declaracin, asignamos el valor 2 a la variable entero.


Escribimos su nombre, seguido del signo igual (=) y a continuacin el valor, en nuestro
caso: 2. Finalizando cada instruccin con punto y coma (;).
Ahora s, el programa sabe que tiene una variable de tipo int, llamada entero, que vale dos
(2).

Podemos hacerlo todo en una misma lnea, as:

A continuacin voy a declarar e inicializar una variable de cada tipo que vimos en la
leccin anterior. Voy a mezclar formas de hacerlo como hemos visto aqu, ya deberas
entender el cdigo sin problemas:

De todas formas si te las un poco no te preocupes, seguiremos haciendo prcticas con


todos los tipos de datos, ya que cada uno tiene su tratamiento especial.

Operadores aritmticos
En programacin necesitaremos constantemente operar con valores. Estos valores pueden
ser escritos en el programa en el momento necesario, o pueden estar almacenados en
variables. Depender del uso que queramos darles.
Vamos a ver la forma de operar con operadores aritmticos, con variables o con valores
determinados en el momento.

Veamos una operacin con variables:

Lo primero que hemos hecho es almacenar unos valores en variables de tipo int. Luego
necesitamos otra variable donde se almacenar el resultado.

Esto mismo podemos hacerlo sin utilizar variables en los valores:

El resultado ser el mismo. La decisin es nuestra, todo depender de si los valores van a
ser reutilizados o no. Si los vas a utilizar ms adelante para otras cuentas, es conveniente
almacenarlos en una variable y poder utilizarlos por su nombre en diferentes lugares del
programa.

Veamos un ejemplo prctico:

Si estamos en un taller, y tenemos que comprar 4 ruedas y 2 espejos por cada coche; el
nmero de coches es fijo para cada total que vamos a calcular, entonces s nos conviene
declarar la variable para reutilizarla.
Quizs aqu no se aprecie tanto su utilidad, pero en programas ms grandes a veces se
necesita un mismo valor en muchas ocasiones o mismamente, es til para que el programa
se entienda mejor.

Como hemos visto, ya hemos sumado (+) y multiplicado (*). En programacin podemos
utilizar cualquier operador aritmtico, como en una calculadora. Esto sigue las mismas
reglas que en las matemticas para el orden de las operaciones.
Incluso podemos poner parntesis para realizar clculos:

Vamos a quedarnos con esto: sumar (+), restar (-), dividir (/) y multiplicar (*). Otras
cosas como potencias y races cuadradas se hacen mediante funciones, de momento no
entraremos en eso.
Asegrate de elegir el tipo de dato correcto, por ejemplo, si estamos dividiendo, el
resultado puede ser un nmero decimal, elegiremos un tipo de dato float.

Con la "f" detrs del nmero se le indica que estamos utilizando un nmero con coma
flotante (decimal).
Seguiremos practicando esto en futuras lecciones.

Constantes
Las constantes son un tipo de dato invariable. Se declaran y se utilizan de forma muy
similar a las variables, con la diferencia de que no podemos modificar su valor.
De esta forma, podemos utilizar constantes para aquellos valores fijos que nunca
cambiarn su valor en el programa. Vamos a reescribir el ejemplo del taller de la leccin
anterior utilizando constantes.

Aqu va la explicacin del cdigo:

Declaracin de constantes: se hace igual que con las variables, pero aadiendo
delante la palabra reservada "const".

Variables: el nmero de coches del taller podra variar para hacer otros clculos
durante el programa, por lo que utilizaremos una variable.

Totales: hemos declarado las dos variables del total en la misma lnea, es una forma
de ahorrar espacio y organizarlo mejor.

Operaciones: las operaciones se realizan exactamente igual que con variables.

Sacamos el resultado por pantalla para comprobar que las cuentas son correctas.
Si todo ha ido bien, veremos lo siguiente al ejecutar el programa.

Es recomendable utilizar otro tipo de esquema a la hora de crear constantes en los


programas para conocer fcilmente el tipo de dato que estamos utilizando. Por ejemplo
nombrar a las constantes con letras maysculas o que su nombre comience por un guin
bajo (_).
Ejemplos:

Para rematar el ejemplo, vamos a sacar el resultado por pantalla de forma ms presentable.
Para sacar datos estamos utilizando la funcin "Console.WriteLine();". Entre parntesis le
damos lo que queremos que se escriba, que hasta ahora ha sido o un texto ("Hola Mundo")
o una variable.
Vamos a unir texto y variable, as:

Dentro de los parntesis escribimos el texto que queramos entre comillas (" ") y con el
operador ms (+) unimos la variable que queramos.
Ahora la salida por pantalla quedar as:

Os dejo el cdigo completo para facilitar la labor de aprendizaje.


>> Cdigo del proyecto <<

Instruccin If
La instruccin "if " es algo bsico en programacin, y se utiliza para el control de flujo del
programa.
Vamos a empezar con una muy sencilla para ver si funcionamiento:
Declaramos una variable "a" que toma el valor de cinco (5). Con la instruccin "if"
comprobamos si "a" vale "5". Para comprobar si una variable es igual a algn valor se
utiliza el operador de comparacin de igualdad, que son dos signos de igual juntos (==).

1. Qu crees que har ese programa?


a.

Dar error

b.

No har nada

c.

Escribir "a vale 5" por pantalla

Corregir Ver Solucin

Estos son los operadores de comparacin que existen: (utilizamos la variable "a" y el valor
5 en los ejemplos para mejor entendimiento)

Igual que: a == 5

Mayor que: a > 5

Menor que: a < 5

Distinto de: a != 5

Mayor o igual que: a >= 5

Menor o igual que: a <= 5

Quiere decir que cualquiera de estos operadores puede ir en la instruccin "if".


Veamos unos ejemplos:
Hemos creado varias condiciones, cuando se cumpla la condicin, se ejecutarn las
instrucciones que hay entre los corchetes ( {} ). Prueba a cambiar el valor de la variable "a"
para ir comprobando su funcionamiento.

Tambin podemos comparar valores bool para comprobar si son verdadero (true) o falso
(false).

Iremos viendo ms ejemplos similares en prximas lecciones.

Else / Else if
La instruccin "if" tiene un par de modificadores que ayudan a tener mayor control del
programa. stas son else y else if. Ambas son opcionales.
Veamos una ejemplo completo:

La diferencia entre este ejemplo y el de la leccin anterior con 3 instrucciones "if", es que
esta sentencia est anidada. Quiere decir que cambia la forma de actuacin.

En este ejemplo, se comprueba si se cumple la primera condicin y hay dos caminos


posibles:
1. Si se cumple la condicin: se ejecuta el cdigo en su interior y sale del If.
2. Si no se cumple la condicin: se pasa a la siguiente condicin, as hasta cumplir
alguna o finalizar la instruccin If.
En el ejemplo de la leccin anterior, realizaba todas las comprobaciones en cada If, fuera
cual fuera el resultado.

Podemos comprobar su funcionamiento, cambiando el else if de esta forma:

Si ejecutamos este programa, veremos que cumple la primera condicin y no hace nada
ms.
Prueba a cambiar else if por if, y vers la diferencia.

A tener en cuenta:

Podemos anidar tantos else if como queramos.

La instruccin else, en caso de existir, siempre debe ir al final.

Operadores lgicos condicionales

Los operadores lgicos condicionales se utilizan para aadir condiciones, tanto en


los if como en cualquiera de las instrucciones que lleven una condicin (ya las
veremos).
Vamos a suponer, tomando alguno de los ejemplos anteriores, que queremos hacer
algo si una variable vale 1 5.
Lo haramos as:

La condicin aqu es "si a es igual a 1 o a es igual a 5". Podis ir cambiando el


valor de a en el ejemplo e ir comprobando su funcionamiento.
Hemos utilizado el operador OR (||). Tambin tenemos el operador AND (&&), que
se utiliza para aadir una condicin que tambin ha de cumplirse.
Ejemplo:

Aqu preguntamos "si a es igual a 1 y b es igual a 3". Es muy sencillo no?


Adems podemos combinar estos operadores y aadir todas las condiciones que
queramos, lo cual lo har ms complejo.

Veamos un ejemplo ms complejo.

La cosa se complica, pero si lo vemos paso a paso nos daremos cuenta de que
realmente no es tan complicado: primero vemos "si a es igual a 1 y b es igual a 3".
El resultado de la primera condicin es s, y el de la segunda tambin, as que todo
se cumple.
"Si c es igual a 1" no se cumple ya que c vale cero (0). Pero estas condiciones estn
unidas mediante un OR. En la imagen he simplificado la pregunta y he dividido sta
en dos resultados arriba. Vamos a hacer la pregunta con primera condicin y
segunda condicin.
Sera:
"Si se cumple la primera condicin o se cumple la segunda condicin". El resultado
es s ya que se cumple alguna de las dos.
Veamos otro ejemplo cambiando un poco la cosa:

a se cumple pero b no. Por tanto, la primera condicin no se cumple porque a y b no


devuelven s. Sin embargo la segunda condicin si se cumple. "Si se cumple la
primera condicin (no) o la segunda (s)". Alguna de ellas devuelve s, entonces, el
resultado final de la condicin es verdadero.
Puedes ayudarte de parntesis para entender mejor la condicin.

"(Si a es igual a 1 y b es igual a 4) o c es igual a 0".

Seguiremos practicando las condiciones, as que no te estreses si te las un poco con


las condiciones combinadas.

Switch
La instruccin switch nos va a facilitar mucho trabajo en determinados programas.
Supongamos que queremos hacer un programa que d un nmero entero y escriba por
pantalla su valor ordinal (primero, segundo, etc...).
Con lo que sabemos hasta ahora, lo haramos as:

Con el uso de switch podemos simplificar la estructura.


A continuacin el ejemplo hecho con switch:

Puede parecer lo mismo, pero hemos simplificado mucho el cdigo.


Voy a explicar la estructura en detalle y lo entenderis mejor:
1. Se inicia una bloque switch, poniendo entre parntesis la variable que vamos a
utilizar.
2. Con la palabra case creamos las condiciones. "Case 1" quiere decir si la variable
entre parntesis vale 1. De esa forma podemos aadir los casos que queramos
fcilmente.
3. Escribimos todo lo que queremos que pase cuando se cumpla la condicin.
4. Utilizamos la palabra break para salir del bloque una vez se ejecute alguna
condicin.

Otras cosas a tener en cuenta sobre su funcionamiento:

Podemos poner todos los case que queramos.

La variable puede ser de cualquier tipo, luego las condiciones deben atenerse al
cambio.

Podemos emular al else de la instruccin if utilizando la palabra default.

Se pueden anidar los case para un mismo resultado.

Ahora veamos un switch ms complejo con todas estas posibilidades:

A que ahora se aprecia mejor el cambio? Esto mismo utilizando if-else sera mucho ms
complejo.

Si no lo ves muy claro, copia el programa y ejectalo en tu ordenador. Ve modificando el


valor de a para ver que condiciones se cumplen.

Funciones
La utilizacin de funciones en programacin nos ayudan mucho.
Es altamente recomendable hacer uso de ellas por estos dos motivos principales:
1. Ahorramos lneas de cdigo.
2. Facilitan mucho el entendimiento del programa y del cdigo.

Vamos a entrar en materia para comprobar realmente su potencial. Lo primero que vais a
ver es una funcin muy sencilla:

Esta funcin lo que hace es escribir "Hola otra vez". Cada vez que en un programa
queramos escribir esto, en lugar de utilizar "Console.WriteLine()" para hacerlo, slo
tenemos que llamar a esta funcin. S, lo s, muchos trminos nuevos, pero es muy simple,
vamos a ver ahora mismo su funcionamiento.

Ahora s, sencillo no? Lo explicamos paso a paso:


1. Modificador: aqu ponemos static void. Hay ms que veremos y explicaremos ms
adelante.
2. Nombre de la funcin: al igual que en las variables, este nombre se lo damos
nosotros, y puede ser el que queramos.
3. Argumentos: detrs del nombre podemos escribir valores entre parntesis, lo
veremos en la prxima leccin. Mientras tanto, aunque no pongamos valores, hay
que poner los parntesis obligatoriamente.

4. Contenido de la funcin: dentro de los corchetes escribimos lo que har la funcin.


5. Llamada a la funcin: escribiendo su nombre en "cualquier lado" del programa
llamamos a la funcin. Quiere decir que donde la llamemos, es donde se ejecutar lo
que hay en el contenido.
6. Colocacin: hay que colocar la funcin en su sitio, y sta debe ir dentro del bloque
"class", en nuestro caso, llamado "Program".

Por si no ha quedado claro, voy a poner otro ejemplo que espero resuelva las posibles
dudas:

Sabras qu resultado dar ese programa? Si lo sabes es que has entendido como funcionan
las funciones, si no, ejectalo en tu ordenador y seguramente salgas de dudas.

Si an as te quedan algunas dudas, seguiremos utilizando funciones en las prximas


lecciones. Lo que s recomiendo es que esto de las funciones se entienda bien, pues como
digo es una prctica til y necesaria para realizar tus propios programas.

Devolver valores en funciones


En la leccin anterior hicimos funciones que hacan algo pero no devolvan nada. Podemos
hacer que las funciones nos devuelvan un valor, siendo muy til en determinados casos.
Veamos un ejemplo muy sencillo:

He subrayado las dos diferencias.


1. Detrs de la palabra static tenemos que escribir el tipo de dato que la funcin va a
devolver, en nuestro caso, como es una cadena, ponemos string.
2. Una funcin que devuelva un tipo de dato, sea cual sea, debe finalizar con su
correspondiente devolucin mediante la palabra return. A continuacin de return, el
valor devuelto, que debe ser del tipo indicado en la funcin.
Ahora entenderis que cuando una funcin no devuelve ningn valor, debemos poner en el
tipo de dato devuelto void, que es vaco.

A continuacin un ejemplo con 2 funciones que devuelven diferentes tipos de variables.

Seguiremos haciendo uso de funciones a lo largo del curso. As que este tema debe quedar
bien entendido.
>> Cdigo del proyecto <<

Instruccin For
La instruccin for es un bucle.
Vamos a ver un ejemplo sencillo:

Ah tenis la forma de escribirlo, vamos a desglosarlo para entenderlo bien:

for (inicio ; condicin; iterador)

Inicio: inicializamos una variable, normalmente en cero. Slo se ejecuta la primera


vez.

Condicin: Escribimos una condicin, por la que el bloque for se ejecutar si se


cumple.

Iterador: la variable inicializada incrementa su valor en uno (i++) cada vez que
termina su ejecucin el bloque.

Voy a explicar, lnea a lnea, todo lo que hace este bucle for:
1. Inicializa (i = 0). Comprueba i es menor que 5? (i vale 0) S. Ejecuta el bloque y
escribe i, o sea, 0. Fin de ejecucin.
2. Itera (i++). Comprueba i es menor que 5? (i vale 1) S. Ejecuta el bloque y escribe
i, o sea, 1. Fin de ejecucin.
3. Itera (i++). Comprueba i es menor que 5? (i vale 2) S. Ejecuta el bloque y escribe
i, o sea, 2. Fin de ejecucin.
4. Itera (i++). Comprueba i es menor que 5? (i vale 3) S. Ejecuta el bloque y escribe
i, o sea, 3. Fin de ejecucin.
5. Itera (i++). Comprueba i es menor que 5? (i vale 4) S. Ejecuta el bloque y escribe
i, o sea, 4. Fin de ejecucin.
6. Itera (i++). Comprueba i es menor que 5? (i vale 5) No. Fin de ejecucin.
Este es el resultado de ejecutar el programa:

Si pensis un poco, os daris cuenta de que es muy til. Cuando tenemos que repetir alguna
instruccin muchas veces nos ahorra muchas lneas de cdigo. Por ejemplo, escribir los
nmeros del 1 al 100 en pantalla. Sabras hacerlo? Te reto a probarlo.

Os dejo el cdigo del programa "nmeros del 1 al 100" para comprobar, o por si no os sale.
>> Escribir nmeros del 1 al 100 <<

Arrays
Un array es la agrupacin de un tipo de dato en una variable. Por ejemplo, supongamos
que quieres almacenar los nmeros del 1 al 20. En lugar de crear 20 variables de tipo
entero, creamos un array de enteros de 20 elementos.
Lo crearamos as:
int[] numeros = new int[20];
1. Tipo de dato seguido de corchetes [].
2. Nombre de la variable.
3. Signo igual (=).
4. Palabra new, para crear el array.
5. Tipo de dato otra vez.

6. Nmero de elementos que contendr entre corchetes. En nuestro caso 20.

Bien, ya hemos creado el array de 20 elementos, pero est vaco. Vamos a insertar los
nmeros del 1 al 20. Sera as:

En programacin, siempre la primera posicin de un array se indica con un ndice 0. Por


eso el primer valor, que es 1, hay que asignarlo al ndice 0 del array. Por ello hay que tener
en cuenta que el ltimo ndice en un array es su longitud menos 1, en este caso es 19 (20
menos 1).
Para acceder a los datos se hace igual que cuando asignamos valores, ponemos el nombre
del array con el ndice al que queremos acceder entre corchetes. Por ejemplo, vamos a
escribir en pantalla el valor del ndice 1:

El resultado de ejecutar este programa debe ser 2:

Tambin podemos darle los valores al array en el momento de crearlo. Es lo ideal para
cuando conocemos qu valores tendr, y se hace de esta forma:

No hace falta decirle cuantos valores tendr. Y a continuacin se escriben los valores entre
llaves y separados por coma cada uno.

Vamos a ver otra forma sencilla y rpida de rellenar un array con valores del 1 al 20, se os
ocurre como? recordis el bucle for? All vamos:

Ah lo tenis comentado. Podis modificar el ndice en la penltima lnea para ir


comprobando los resultados. Os dejo tambin el cdigo por si tenis algn problema.
>> Rellenar array del 1 al 20 <<

Arrays bidimensionales
Vamos a ver arrays bidimensionales, stos son igual que un array normal pero pueden tener
ms de una dimensin. Slo voy a poner ejemplo de un array de dos dimensiones para no
complicar ms el asunto, y sera as:

Hay pocas diferencias, las explico:

Entre los corchetes se pone una coma en la declaracin, significa que a cada lado de
la coma va la longitud de cada dimensin (2 dimensiones).

Cuando se crea, le damos esos valores, en mi caso he creado un array de 3x3. El


primer valor son filas, 3 filas, y el segundo columnas, 3 tambin, por lo que se
construir un "cubo" similar a un tablero de tres en raya (tictactoe).

A continuacin podemos rellenarlo en el momento de su creacin, cada fila va


entre corchetes, con sus 3 elementos dentro separados por coma, y cada dimensin
es separada por coma tambin como podis ver en la imagen.

Podemos cambiar cualquier valor de esta forma:

Sabiendo esto, te habrs dado cuenta que puedes no darle valores al crearlo y asignarlos
despus de esta misma forma.

Hasta aqu los arrays bidimensionales.

Rellenar Arrays con valores aleatorios


Vamos a rellenar un array de forma automtica con nmeros aleatorios.
Para ello, debemos saber la forma de crear un nmero aleatorio, veamos:

1. Creamos una variable de tipo random.


2. Escribimos un nmero aleatorio con la expresin:
aleatorio.Next(0, 3)
Dentro de la funcin Next, entre parntesis, debemos escribir 2 valores; que son: nmero
mnimo y nmero mximo (no incluido).
Al no estar incluido el nmero mximo, esa funcin nos dar un valor entre 0 y 2. Por eso,
si sumamos 1 al resultado, ser un nmero entre 1 y 3.

aleatorio.Next(0, 3) + 1

Sabiendo crear nmeros aleatorios, vamos a simular el lanzamiento de un dado, y lo


guardaremos como registro en un array de 10 posiciones utilizando un bucle for.

Esto rellenar el array de 10 posiciones con un nmero aleatorio entre 1 y 6 en cada una.
Ya habamos rellenado un array con un bucle for anteriormente. Lo nico nuevo aqu es la
asignacin de un nmero aleatorio.

En la prxima leccin haremos una funcin que escriba un array por pantalla, as podremos
ver el resultado de este ejemplo.

Funcin con parmetros


Vamos a ver funciones que reciben parmetros. Las forma de escribirlas es igual que lo
que hemos visto anteriormente, slo que entre parntesis podemos escribir valores que
recibir la funcin. Un ejemplo sencillo:

Para pasar un valor por parmetro, simplemente detrs del nombre de la funcin, entre
parntesis, se escribe el tipo de dato y el nombre que tendr la variable dentro de la
funcin.
Voy a poner dos formar de llamar a la funcin para explicarlo bien y que no haya los.

Como se puede ver, en la primera llamada se le pasa una variable, y en la segunda


directamente un nmero.
1. La variable numero vale 4. Y el nombre de la variable no tiene porqu
corresponderse con el nombre de la variable en la funcin (n~numero).
2. Le pasamos directamente un nmero entero. Tambin es correcto.
La salida de este ejemplo sera la siguiente:

De esta forma podemos crear funciones tiles que podamos usar ms de una vez en el
programa. Decir que, una funcin creada por nosotros, puede recibir todos los parmetros
que queramos, pero siempre habr que indicarlo correctamente en la declaracin.

Os dejo una funcin que multiplica dos nmeros enteros (int) que le pasamos por
parmetro y devuelve el resultado (return).

Puedes intentar crear funciones de este tipo si an no lo dominas del todo.

Instruccin While
La instruccin while es un bucle al igual que for. Lo que hace es repetir un bloque de
cdigo mientras se cumpla una o varias condiciones.
Por eso tiene algunas diferencias respecto a for, veamos un ejemplo prctico:

Como podemos apreciar, se diferencia bastante de un bucle for, pese a hacer la misma
funcin.
1. Slo lleva condicin (o condiciones) entre parntesis.
2. Si queremos modificar el valor de la condicin habr que hacerlo aparte y ste
debe ser inicializado antes.

Con esta descripcin, vemos que es ms complejo que el bucle for, adems de engorroso.
El bucle while en este ejemplo, es totalmente prescindible y sustituible por un bucle for.

Pero ms adelante veremos que en otros casos es ms til y adecuado que for. Sobretodo en
programas que necesitan llevar un control de flujo en ciertas partes del cdigo.

Listas
Las listas son algo muy til. Son una coleccin de datos del mismo tipo, como los arrays, a
diferencia de que en una lista podemos aadir y quitar datos fcilmente y cuando
queramos.
As creamos una lista de cadenas (string):

1. Palabra reservada List, seguido del tipo de dato que queremos almacenar entre los
smbolos mayor y menor que <>.
2. Nombre de la lista, en nuestro caso, compra, ya que vamos a crear la lista de la
compra.
3. Palabra reservada new, que es la que crea la lista.
4. De nuevo la estructura inicial List<string>. Debe coincidir aqu el tipo de dato con
el de la declaracin del punto 1.
5. Finalizamos con parntesis (), y punto y coma (;) como siempre al final de cada
instruccin.

Ya tenemos nuestra lista de la compra creada, pero est vaca. Vamos a aadir las cosas que
tenemos que comprar:

Tan sencillo como efectivo. Slo hay que escribir el nombre de la lista, seguido de la
funcin Add, y entre parntesis el valor del nuevo elemento. Esto aade un elemento al
final de la lista.

Tambin podemos insertar elementos en la posicin que queramos, mediante la funcin


Insert. Por ejemplo:

El primer parmetro es 0, significa que se insertar en la primera posicin de la lista.


Cuidado de no insertar un elemento en una posicin que no exista, pues no funcionar.

Finalmente, la lista nos dar este resultado:

Vale, vale, no he explicado como escribir la lista por pantalla, aqu vemos como:

Hay dos novedades respecto a los bucles for que hemos hecho anteriormente.
1. La variable de iteracin i se declara dentro del bucle (int i = 0), es una forma
correcta y rpida de hacerlo.
2. Con compra.Count() obtenemos el nmero de elementos de la lista, de esta forma,
si aadimos ms elementos no hace falta cambiar nada en el bucle for para que
funcione bien.
>> Programa completo <<

Ejercicio 1: Leer y escribir una lista


Os propongo el siguiente ejercicio, lo ideal sera que lo hicierais vosotros mismos, y en la
leccin siguiente os lo doy resuelto para que lo comprobis.

Hay que crear 2 funciones:

Funcin creaLista:
Esta funcin recibir por parmetro la lista que crearemos en el programa y la
devolver escrita.
Para escribirla crearemos un array de cadenas (string) dentro de la funcin con 10
elementos y los iremos aadiendo a la lista.

Pista: la declaracin de la funcin ser algo as:


static List<string> creaLista(List<string> nombrelista)

Funcin escribeLista:
Esta funcin simplemente recibir la lista por parmetro y la escribir en pantalla.

Yo he hecho el programa con una lista de la compra, pero podis poner cualquier cosa,
siempre y cuando sea texto.
El resultado final debe ser este:

En la lista no estarn escritos los nmeros, habr que escribirlos slo en la funcin que
escribe la lista.

Y en el programa principal, slo puede estar:

Inicializada la lista de cadenas (vaca).

Llamada a la funcin creaLista.

Llamada a funcin escribeLista.

Console.ReadKey(), para que no se cierre y veamos el resultado.

Ejercicio 1 resuelto
Voy a empezar con las funciones, la primera, creaLista:

Aunque est comentada para facilitar el entendimiento, la explico brevemente.

En la declaracin de la funcin, hay que incluir el tipo de dato devuelto, en nuestro


caso "List<string>".

Creamos un array con los 10 elementos que irn en la lista, de esta forma, los
aadiremos con un bucle for y ser ms rpido y sencillo.

Utilizamos en el bucle for "datos.Length", as, si introducimos ms elementos al


array, funcionar igual.

Devolvemos la lista ya rellena.

Ahora la funcin escribeLista:

En la declaracin, slo recibe la lista por parmetro, y no devuelve nada (void).

En el bucle for se utiliza esta vez compra.Count, que nos da el nmero de


elementos en la lista.

Se utiliza (i + 1) para escribir el nmero de elemento. La variable i vale 0 la


primera vez y 9 la ltima. Como queremos que sea del 1 al 10, se aade el "+1".

El programa principal quedara as:

No hace falta explicar mucho aqu. Si has conseguido hacerlo, aunque sea de otra manera,
enhorabuena. Si no, no te desanimes, una vez visto el ejercicio resuelto, puedes intentar
rehacerlo desde cero.

Adjunto el ejercicio completo:


>> Cdigo completo <<

Cadenas y caracteres
Ya hemos trabajado un poco con cadenas (string), pero vimos que haba dos tipos de datos
de texto, string y char.
Ahora veremos las diferencias entre ambos:

El tipo string acepta cadenas de texto y el dato debe ser dado entre comillas dobles.

El tipo char acepta un slo carcter y el dato debe ser dado entre comillas simples.

Un ejemplo sencillo:

Esa es la diferencia principal. Ahora veremos una similitud. Vamos a ver como un array
de char funciona igual que un string.

Si ejecutamos este programa, el resultado de ambas variables debe ser el mismo, en este
caso la letra que hay en el ndice especificado es equis "x".

Os preguntaris, si ambos pueden ser usados por igual, Por qu existen los dos tipos de
datos? Bien, dir algunas explicaciones:

Usar un string es mucho ms cmodo que un array de caracteres.

Usar un char es ms eficiente que asignar un string de 1 carcter en una variable.

En C# cada tipo de dato tiene unas funciones propias de su tipo, por lo cual, stas
son diferentes en cada uno.

Hasta aqu los tipos de datos de texto por el momento. Pronto veremos alguna de estas
funciones que he comentado en el ltimo punto.

Leer datos por teclado


Vamos a ver algo muy til en los programas de consola: leer datos por teclado.
Normalmente, para controlar el flujo de un programa se hace mediante comandos por
teclado. En el siguiente ejemplo lo veremos:

Ah est el ejemplo completo. Por si no se entiende, voy a desglosarlo por partes para que
todo quede explicado:

Creamos una variable tipo string para almacenar los datos recibidos por teclado.

Escribimos un texto informativo para que el usuario sepa qu le pedimos.

Ahora asignamos a la variable la lnea que fue escrita por el usuario.

Para comprobar si se hizo lo correcto, utilizamos una sentencia if...else que ya


conocemos.

De esta forma podemos operar sobre datos que escriba el usuario.

En las prximas lecciones veremos como podemos obtener otros tipos de datos.

Casting de datos
Los casting en programacin se utilizan para asegurarse que un dato es de un tipo en
concreto. Si es necesario, se convertir al tipo de dato pedido, pero no sirve en todos los
casos, ya que no es un sistema de conversin como tal.

Supongamos que tenemos una variable de tipo float y queremos asignarla a una variable de
tipo int.

As:

Como vemos, aparece la variable float ene (n) subrayada. Es un error, ya que no se puede
asignar un dato float a una variable int.
Para poder hacerlo vamos a utilizar un casting, de esta forma:

Lo nico que tenemos que hacer es poner entre parntesis el tipo de dato al cual
queremos asignar entre la asignacin (=) y la variable; en este caso int.

Como he dicho antes, esto no funcionar con todos los tipos de datos porque no es una
herramienta de conversin, para esto hay otros mtodos que veremos ms adelante.

Convertir datos
Como los castings no valen para todo, hay diversas formas de convertir datos de un tipo a
otro. Voy a explicar algunos de los ms comunes.
Por ejemplo, veamos como convertir cualquier tipo de dato al tipo string.

Se escribe el nombre de la variable a convertir, seguido de punto y el nombre del mtodo


ToString().

Ahora vamos a ver como convertir un string (que sea un nmero) en un int.

Partiendo de que tenemos una variable int y otra string. Lo que hacemos es asignar a la
variable int el mtodo int.Parse, entre parntesis debe ir el string.

De la misma forma, se puede convertir de un string a tipo float:

Hay muchas ms posibilidades, para conocerlas todas sera necesario saber el caso concreto
que queremos hacer y buscar la forma en la documentacin de C#.

Funciones tiles de cadenas


Este lenguaje de programacin tiene algunas funciones para tratar las cadenas (string),
que nos pueden ser muy tiles.

Vamos a ver algunas de ellas:


-Obtener la longitud de la cadena:

En este ejemplo longitud valdr 15.

-Saber si una cadena contiene otra cadena:

En este ejemplo contiene valdr "True".

-Obtener el ndice de un carcter especfico:

En este ejemplo indice valdr 2. En este caso devuelve el ndice de la primera 'a'.

-Eliminar parte de la cadena:

En este ejemplo la variable corte valdr "Frase". La funcin Remove, elimina parte de la
cadena, desde la posicin indicada (5) hasta el final.

-Reemplazar un carcter por otro:

En este ejemplo la variable nueva valdr "Fr*se de prueb*". Sustituye el carcter 'a' por '*'.

-Recortar la cadena:

En este ejemplo la variable trozo valdr "de". Extrae parte de la cadena empezando por la
posicin indicada con el primer valor (6) y con una longitud de 2, indicado con el segundo
valor.

Hay ms funciones para cadenas y todas se pueden usar de formas distintas. Esto slo son
algunos ejemplos para aprender.

Funciones matemticas
Vamos a ver como realizar ciertas operaciones con nmeros. Muchas de estas funciones
utilizan el tipo de dato double, que no hemos visto anteriormente pero es un nmero
decimal.

Algunas de estas funciones son:


-Redondeo hacia abajo:

En este ejemplo la variable resultado valdr 5.

-Redondeo hacia arriba:

En este ejemplo la variable resultado valdr 6.

-Potencia:

En este ejemplo la variable resultado valdr 8. Se hace una operacin de potencia, 2


elevado a 3.

-Raz cuadrada:

En este ejemplo la variable resultado valdr 3. Es la raz cuadrada del nmero especificado
(9).

-Truncar un decimal:

En este ejemplo la variable resultado valdr 7. Esta funcin elimina cualquier decimal (sin
redondear).

Ejercicio 2: Multiconversor
Vamos a realizar otro ejercicio.
En este caso, se trata de dar unas opciones al usuario, y segn la opcin que elija, realizar
un clculo u otro:
Para ello vamos a hacer uso de un switch (leccin 12) para las diferentes opciones.
El usuario introducir un nmero por teclado (leccin 25) para elegir dicha opcin.

Estas son las opciones que deben aparecer como mnimo:


1. Centmetro a pulgada.
2. Kilogramo a libra.
3. Kilmetro a milla.
4. Grados a radianes.

Habr que declarar constantes con el valor de la conversin de cada punto.


Os dejo esos valores:

1 cm = 0.39370 pulgadas

1 kg = 2.20462262 libras

1 km = 0.621371192 millas

1 grado = 0.0174532925 radianes

Variables necesarias:

Una de tipo entero (int) para la opcin elegida.

Ayuda: para recoger un nmero entero por teclado, suponiendo que tengamos una variable
de tipo int que se llame opcion:
opcion = int.Parse(Console.ReadLine());

Una para almacenar el resultado, y otra para el nmero introducido a convertir,


ambas del tipo double.

Estructura final del ejercicio:

Declaracin de constantes y variables.

Escribir opciones.

Recoger valor (opcin) introducido por teclado.

Switch con las 4 posibilidades (case). En cada uno:


o Escribir instruccin para el usuario.
o Recoger valor en una variable tipo double.
o Calcular conversin.
o Mostrar resultado.

Colocar al final Console.ReadKey(), para poder ver el resultado.

Este ejercicio es fcil, que no te mareen tantos nmeros, lo nico que hay que hacer es
saber poner en cada opcin la conversin correcta, que no es ms que una multiplicacin.
Os dejo una pantalla del resultado final donde se elije la primera opcin:

Ejercicio 2 resuelto

Vamos a explicar este sencillo ejercicio en dos imgenes:

Declaramos las constantes con los valores correspondientes.

Declaramos las variables que vamos a necesitar, en nuestro caso una del tipo int y
dos del tipo double.

Escribimos el texto con las opciones que puede elegir el usuario.

Recogemos el dato escrito por el usuario para saber que opcin elije.

A continuacin creamos un switch con 4 opciones (case), ms una por defecto para cuando
el nmero no est entre 1 y 4. Cada cual se corresponder con su opcin y se repetir el
proceso en cada uno, sustituyendo slo los textos.
ste es el proceso a seguir:

Se pide al usuario que introduzca la cantidad a convertir con un texto.

Obtenemos ese dato en la variable convertir.

Realizamos la multiplicacin, guardando el resultado en la variable del mismo


nombre.

Mostramos el resultado.

Finalmente, terminamos el programa con esa instruccin para ver el resultado final.

Adjunto el cdigo completo del ejercicio:


>> Cdigo completo <<

Structs (Estructuras)
Las estructuras o structs nos permiten crear un tipo de dato nico con los miembros y
propiedades que queramos.
Es como tener un tipo de dato personalizado.

Veamos un ejemplo completo, y al final de la leccin explico un poco ms para que


podemos utilizarlo.
As declaramos un struct:

Se escribe la palabra reservada struct, seguido del nombre que queramos darle
(normalmente que empiece en mayscula)

Dentro del bloque entre corchetes ({}) se crean los datos que queramos (variables,
constantes, etc...), previa palabra que mide su nivel de proteccin. Vamos a utilizar
siempre public para los ejemplos, en este curso no entraremos en esos detalles.

Es importante el lugar, debe ir dentro de la clase Program y fuera del mtodo Main.
Ahora, en el mtodo principal (Main), vamos a trabajar con la estructura que hemos creado:

Se declara: Nombre de struct seguido del nombre que le daremos a la variable.

Se asignan los datos: Para asignar los datos escribimos el nombre de la variable
seguido de un punto y el dato al que queremos asignar. Y asignamos un valor
como haramos en una variable cualquiera.

Escribimos el resultado: Como otras veces hemos hecho ya, de la misma forma
que asignamos, accedemos a los datos del struct para escribirlos por pantalla, con la
llamada notacin de punto.

Las estructuras se utilizan para agrupar un conjunto de datos, y facilitar su


almacenamiento y acceso.
As podemos crear un grupo de variables que pertenezcan a datos agrupados aunque no
tengan el mismo tipo. stas aceptan funciones dentro de ellas.

Os dejo un ejemplo igual que el de este ejercicio pero usando una funcin para los ms
atrevidos.
>> Cdigo completo <<

Programacin Orientada a Objetos (POO)


C# es un lenguaje de programacin orientado a objetos. La programacin orientada a
objetos (POO) nos permite abstraer cdigos y hacernos la programacin ms fcil
entre otras cosas.
No vamos a entrar en detalles tcnicos en esta leccin, voy a explicar brevemente todo lo
relacionado con sto, y lo iremos desarrollando poco a poco en las siguientes lecciones.

Clase: Es la declaracin del objeto con todo su contenido.

Miembros o atributos: Son las variables o constantes que tiene el objeto.

Constructor: Cada objeto debe tener al menos un constructor. Como dice la


palabra, es el mtodo que crea una instancia del objeto.

Mtodos: Un objeto puede tener mtodos o no, si los tiene, se crean dentro del
mismo.

Quizs os hayis dado cuenta que se parece bastante a las estructuras de la leccin
anterior (struct). Y as es, lo que cambia es la forma en que se crean los objetos.

Digamos que la clase es un molde, y cada vez que se crea un objeto con ese molde se dice
que se ha creado una instancia de ese objeto.

Se pueden crear tantos objetos como se deseen de la misma clase, y cada uno de ellos ser
diferente, pero compartirn atributos y mtodos.

Pasemos a la prctica que es como mejor se entiende.

Clase
Ahora vamos a hacer un ejemplo completo trabajando con objetos:
Utilizaremos una clase, miembros, objetos, un constructor... En definitiva, lo que es la
programacin orientada a objetos.

Vamos a crear una clase llamada Carta que tendr un valor posible del 1 al 12, que
identificarn el valor de la carta; y otro del 0 al 3, que identificarn los 4 palos de la baraja.
Es un tema que suele costar a la gente aprenderlo, por eso he reservado varias lecciones
para ir paso a paso.

Lo primero y nico que haremos en esta leccin ser crear la clase.


Abrimos un nuevo proyecto, y sobre ese iremos trabajando en las prximas lecciones.
Veremos esto en el nuevo proyecto:

Bien, pues la clase debemos colocarla tal que as:

Quedara dentro del namespace, en el mismo nivel que la clase Program.

Se pone la palabra reservada class para crear la clase.

A continuacin, el nombre que queramos dar a la clase (se suele poner con la
primera letra en mayscula).

Se encierra en un bloque entre corchetes ({}) donde ir todo lo perteneciente a la


clase.

Listo, ya hemos creado nuestra clase Carta, pero no funcionar de ninguna manera, ya que
le faltan cosas que vamos a ir viendo en la siguiente leccin.

Miembros o atributos
Es momento de aadir los miembros a la clase. Recordemos que con esto nos referimos a
las constantes o variables que tendrn los objetos de dicha clase.
Veamos como se declaran:

Se declaran igual que lo venimos haciendo en los programas. Es recomendable hacerlo al


inicio para tenerlo ms ordenado.

Voy a explicar el porqu de cada miembro:

Nmero: ser el valor de la carta, con un valor de 1 a 12.

Palo: ser el palo de la carta, con un valor de 0 a 3.

Palos: contiene los nombres de los palos, de esta forma se asocia cada valor
numrico a uno de ellos mediante los ndices del array.

Hasta aqu los miembros. Ni que decir tiene que una clase puede tener tantos miembros
como queramos, pero en este caso los que tenemos son suficientes.

En la prxima leccin veremos como crear el constructor del objeto y los mtodos.

Constructor y mtodos
A continuacin aadiremos el constructor a la clase. Esto es un mtodo (aunque sea
llamado constructor), que nos sirve para crear una instancia del objeto, o en este
ejemplo, para crear una carta.

Veamos como se hace:

Ponemos la palabra reservada public al principio.

Como nombre del constructor el nombre de la clase; en nuestro caso Carta.

El resto funciona como cualquier funcin. Le podemos pasar parmetros si queremos. En


nuestro caso le pasamos el nmero y el palo en valores numricos (int), y dentro del
constructor asignamos estos valores a las variables (miembros) de la clase.
Ahora vamos a crear un mtodo en la clase que escribir el valor de la carta, tanto el
nmero como el palo.

Quedara as:

No voy a explicar esto, ya que es una funcin tal como explicamos en la leccin 13, pero en
este caso se escribe dentro de la clase Carta y slo puede ser usada desde un objeto
creado de esa clase. Ms adelante veremos ms sobre esto, de momento, qudate con la
idea.
Lo nico que hay aqu es que escribimos una lnea con los valores que queremos.
Hasta ahora, tenemos una clase completa con lo mnimo que debera tener.

En las prximas lecciones ya crearemos el objeto y accederemos a l.

Creacin de un objeto
Una vez creada la clase, volvemos a trabajar en el mtodo Main. Aqu crearemos un objeto
de la clase Carta, de esta forma:

Se escribe el nombre del objeto, en nuestro caso Carta.

A continuacin el nombre que queramos poner al objeto.

Signo igual (=).

Palabra reservada new.

Ahora el nombre de la clase.

Y entre parntesis los datos que le pasamos al constructor, en el caso de que haya.
En nuestro caso primero el valor de la carta, y luego el valor del palo.

De esta forma ya hemos creado una carta. Como habamos dicho, se pueden crear muchas
instancias de una misma clase. Es tan fcil como crear otra carta, en el siguiente ejemplo
creamos dos instancias del objeto carta:

Al igual que trabajando con variables, podemos crear un objeto de esta otra forma:

Ya sabemos crear instancias de un objeto, ahora veremos como acceder a l mediante los
mtodos; pero esto ser en la prxima leccin.

Acceso al objeto
Ya tenemos todo. Slo nos falta saber cmo acceder al objeto y sus mtodos.
Para ello escribimos el nombre del objeto seguido de un punto y nos saldrn una serie de
mtodos por defecto, adems del mtodo (o mtodos) que hayamos creado.

Aqu vemos el mtodo que hemos creado. El resto son mtodos que tienen por defecto
todos los objetos en C#, y no vamos a entrar en esos detalles.
Nota: no aparecen los miembros porque stos son privados (private), hemos comentado
sto por encima en algunas lecciones, si hubiera algn miembro pblico (public)
aparecera en la lista, y podramos acceder a l igual que lo hacemos con los mtodos de
la clase.

Seguimos a lo nuestro, llamamos al mtodo escribeCarta de esta forma:

Aadimos la ltima lnea para poder ver el resultado, y al ejecutar el programa deberamos
ver algo como esto:

Bien, hasta aqu este ejemplo de POO simple. Hemos ido paso a paso con la intencin de
mostrar claramente su enfoque.

Si an siguiendo estos pasos, no lo ves claro, te recomiendo volver a leer la leccin 33,
pues probablemente leyendo la teora una vez vista la prctica, consigas aclarar mejor los
conceptos. Y cuando creas que eres capaz de hacer tu propia clase y trabajar con ella,
pasaremos al ejercicio final en el que se trabajar con todo lo visto en el curso.

Ejercicio final: Baraja de cartas


Bienvenidos al ejercicio final. Como es la ltima parte del curso voy a hacer algo diferente.
Os voy a dar un enunciado como hice en los ejercicios anteriores y quizs alguna pista que
os pueda ayudar, pero esta vez no ser tan explcito, para que podis practicar todo lo visto
en el curso y pensis a vuestra manera como hacer cada cosa.
Dicho esto, vamos con el enunciado:
Tenis que crear una clase llamada Baraja que al menos debe tener un miembro que
ser una lista de Cartas, as como los siguientes mtodos:

numeroCartas(): Escribe en pantalla cuantas cartas tiene la baraja actualmente.

robaCarta(): Escribe en pantalla el valor de la primera carta de la baraja y la "saca"


de la baraja (elimina de la lista).

cogeCarta(int n): Coge la carta (escribe en pantalla) que est en la posicin "n"
pasada por parmetro y la saca de la baraja.

cogeCartaAlAzar(): Coge una carta (escribe en pantalla) al azar y la saca de la


baraja.

escribeBaraja(): Escribe el nombre de todas las cartas de la baraja (una por lnea).

Barajar(): Mezcla las cartas en la lista.

No os olvidis del constructor, ste debe introducir las 48 cartas de la baraja en la lista.
Luego en el mtdo Main, creamos una instancia de la baraja y vamos probando los
mtodos para ir comprobando si la cosa sale bien.

Ayuda

En el proyecto deben estar las clases Carta (que ya tenemos hecha) y Baraja.

Para crear una lista de cartas: List<Carta>.

En el constructor de Baraja crea una instancia de Carta, una vez aadida a la lista
puedes reutilizar esa instancia de la Carta para aadir las 42 cartas. Cada valor de la
lista ser una instancia de Carta.

En el mtodo "Barajar()" se utilizan estas dos funciones de listas: Insert(int index,


Carta item) y Remove(Carta item).

No olvides Console.ReadKey() al final del programa para ver resultados.

Creo que es suficiente. Hazlo a tu manera, lo ms importante en este ejercicio es que


pensis en las posibilidades de lograr el resultado y comprobar vuestra capacidad.
Repasa las lecciones que necesites; for, if, random.... Es importante que encontris la mejor
forma de hacerlo por vosotros mismos.
Y sobretodo, llegad hasta donde podis, es muy probable que si sois novatos en esto de la
programacin no os salga todo esto, pues es todo un desafo, aunque no algo imposible;
nimo.

Ejercicio final resuelto


Espero que durante el curso hayis aprendido a programar en C#, por lo menos para hacer
vuestros propios ejercicios o pequeos juegos del tipo "Adivina el nmero".
Hemos visto prcticamente todas las funciones bsicas de la programacin estructurada y
programacin orientada a objetos (POO). Con estos conocimientos y ms prctica podris
hacer cosas ms avanzadas, y seguir aprendiendo ms detalles tcnicos del lenguaje o del
mundo de la programacin.

En esta ocasin, el ejercicio es bastante largo, as que dejar el cdigo adjunto, eso s, est
comentado para que podis entender todo.
>> Cdigo completo comentado <<

Os animo a seguir creando ejemplos, juegos u otras cosas que se os ocurran para entrenar,
pues es como mejor se aprende, programando mucho y probando cosas nuevas.
Tras finalizar este curso, quizs os venga bien investigar acerca de cuestiones ms
tcnicas como la importacin de libreras, privacidad o mbito de variables, abstraccin de
cdigo, etc...
ste ha sido el punto de partida, si llegaste hasta aqu y has ido captando cosas, ya ests
preparado para entrar en este mundo; pero ten una cosa clara, nunca dejars de aprender,
as que no renuncies a seguir estudiando aunque creas saber lo suficiente.

Potrebbero piacerti anche