Noticias:

C.M. Burns se compra un dinosaurio.

Menú Principal

Curso de Programación Lúdica. Actualmente: Tetris funcionando

Iniciado por Bill, 13 de Mayo de 2009, 15:08

0 Miembros y 1 Visitante están viendo este tema.

neoprogram

Que dulce y melodiosa voz....  *.*

Gracias por la lección ^^:




たとえばここには愛すべき声があってあたしはそれすた守れなくて

Bill

En fin... Thylzos, lo de subirte la máquina virtual está jodido  :gñe:
Con lo que estamos dando ahora puedes tirar con Mono, o bien puedes instalar vmWare, montar un XP y sobre él montas el Visual Studio. Eso sí, cuando lleguemos a lo de XNA te va a ir como el culo en vmWare... si fuese tú me plantearía crear una partición con juindous.

Thylzos

Lo estuvo posponiendo mucho tiempo, ya ha llegado la hora de hacerlo.

Tendré que crear una partición con Windows :llori:

Gracias freyi *.*


Cita de: Gambit en 26 de Enero de 2010, 10:25
Follar cansa. Comprad una xbox 360, nunca le duele la cabeza, no discute, no hay que entenderla, la puedes compartir con tus amigos...


Bill

Eres un crack  :gñe:

(ahora habrá que subir la beta del visual studio 2010  :lol:)

Bill

2. Sistema de tipos (Parte I : Definición y Clasificación)

Lo primero es entender lo que es un tipo. Cualquier cosa que en nuestro programa queremos que tenga un valor, debe tener un tipo. Ya está explicado en el libro anterior, pero repetimos.

Suponed que queremos una variable para almacenar la cantidad de alumnos de una aula del colegio. Sabemos que en una aula del colegio no habrán más de 100 alumnos, y además que es un número natural (entero sin signo), dado que no vamos a tener nunca 32 alumnos y medio o similares. Entonces podríamos guardar la cantidad de alumnos en un tipo Byte, que es un número natural de 0 a 255. Pero, ¿y para el total de alumnos de un colegio? Un colegio tiene muchas aulas y en cada una alumnos, pero el total será mayor de 255 así que el Byte no nos sirve... De nuevo sabemos que es un número natural, pero en este caso mayor, y el siguiente mayor al byte es el tipo que posee dos bytes, entero y sin signo, que es el ushort (unsigned short) que puede valer desde 0 hasta 65535.

Eso serían tipos simples, pero existen más tipos que definen los usuarios. Por ejemplo podríamos definir enumerados, que son tipos que contienen un número finito y conocido de opciones, por ejemplo los meses del año sería un enumerado que contiene enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre y diciembre. De esta forma si definimos un enumerado para los meses cualquier variable que sea de ese tipo tendrá que valer forzosamente uno de los valores permitidos.

Para estructurar la lección he realizado un pequeño árbol de tipos, con su clasificación, que procederé a explicar.



La primera distinción que vemos es en tres grupos: tipos valor, tipos referencia y punteros.
Los tipos valor son aquellos en los que el contenido es tal cual el valor de lo que se quiere, es decir, cuando se declara una variable de dicho tipo ya se sabe cuánto ocupará físicamente.
Los tipos referencia son aquellos que no contienen el valor, sino una referencia a dónde se encuentra, y sirven para variables cuyo gasto de memoria no es mesurable desde el momento de la compilación, como por ejemplo una cadena de caracteres (string) que puede valer desde "hola" hasta un libro entero si queremos. Los objetos son tipos referencia también.
Los punteros son direcciones a una posición de memoria, y no se pueden emplear directamente en .NET, sino que se usan en su modo inseguro (unsafe mode) que no daremos hasta el final del curso, así que por ahora no les daremos la más mínima importancia.

Tipos Valor

Como dijimos, son aquellos que contienen directamente el valor. Se subdividen en tipos estructurados y enumerados.

Tipos Estructurados

Son los tipos más básicos y más empleados del lenguaje, y se subdividen en numéricos (contienen valores numerables), booleanos (tipo bool, valor lógico que puede valer cierto o falso) y definidos por el usuario.

En el caso de los definidos por el usuario son los llamados tipos "struct" de C o los "record" de Pascal. Básicamente el usuario puede definir una estructura que contiene a otros tipos. De esta forma un usuario podría declarar una estructura para almacenar varios datos de una misma cosa, un ejemplo sería un hilo del foro, del cual podemos almacenar datos como número de posts, número de visitas, fecha de creación, fecha de último post, nombre del creador, nombre del hilo, link y sección.

Los booleanos, a pesar de poseer dos valores diferenciados que solemos asociar a 0 y 1, no son numéricos como tal debido a su función lógica que los hace totalmente distintos.

Dentro de los numéricos existen los enteros (poseen un valor entero o natural), los de coma flotante (contienen un valor decimal de coma flotante) y los decimal que poseen un trato especial a pesar de que la lógica nos dice que corresponderían a la sección de coma flotante. Sin embargo esto no es así porque los decimales están diseñados para ser terriblemente precisos en sus valores. Mientras en los de coma flotante se produce un redondeo si se excede su precisión, los decimales son exactos, es decir, de cada valor podemos conocer el siguiente y no hay redondeo. Cuando se define un número decimal y se le quiere asignar un valor con decimales se debe poner una letra "m" detrás para indicar que ese valor es decimal y no de coma flotante. Esto es importante, porque existe el casteo directo entre tipos enteros y decimales, pero no entre tipos de coma flotante y decimales.

Como nota, los char son enteros a pesar de que representen letras, dado que sus valores internos son numerables.

Tipos Enumerados

Como vimos, sirven para definir un tipo en el cual hay una cantidad finita y conocida de posibles valores (ya puse el ejemplo de los meses del año, también serviría para los días de la semana).

Tipos Referencia

En el espacio de nombres System nos vienen definidos varios tipos referencia importantes. El más importante de ellos es la clase Object. Cualquier clase que definamos en nuestros programas tiene como ancestro más lejano a Object, es decir, es el padre de toda la estructura de objetos, se podría decir que es el Adán de las clases.
De Object desciende otra clase de gran importancia: String. String sirve para representar a una cadena de caracteres, y también es muy usada.
Vemos que hay varios subtipos de tipos referencia. El primero es el array, que es una lista de objetos (hay que tener en cuenta que todo es un objeto en .NET).
Luego la clase, que nos sirve para definir los objetos.
Luego los interfaces, que dan un esqueleto abstracto que los objetos que implementan dicho interfaz deben cumplir. Pongamos un ejemplo, todos los reproductores de media que conocemos poseen unos ciertas funcionalidades en forma de botonera: play/pause, stop, ir hacia delante, ir hacia atrás, anterior y siguiente. Esto es independiente de si lo que reproducimos es un sonido o un vídeo, pero está claro que la funcionalidad interna no es la misma. Esas funciones pertenecerían al interfaz, y las clases que implementásemos para reproducir sonidos y vídeos implementarían dicho interfaz rellenando la funcionalidad.
Y por último los delegados, que son una forma de utilizar métodos como si fuesen variables.

Valores de los tipos básicos




Luego grabaré el resto de la lección y la podéis ver y oír ;) Esto es para abrir boca.



neoprogram





たとえばここには愛すべき声があってあたしはそれすた守れなくて

Faerindel

Esperamos al vídeo. Si eso cuando te puedas salir del monasterio mocosofístico y eso... Y algo de tarea vendría bien.

Bill

Cita de: Faerindel en 22 de Octubre de 2009, 01:48
Esperamos al vídeo. Si eso cuando te puedas salir del monasterio mocosofístico y eso... Y algo de tarea vendría bien.

Lo sé :( Pero la transformación a siervo de Microsoft me está consumiendo.

cokycastillo

Hola a tod@s!

aunque no se si hay muchas chicas en este hilo...

Me presento y espero poder cogeros en poco tiempo ya que empiezo el curso un poco tarde :lol:

Saludos!

cokycastillo