tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)

Post on 11-Jul-2015

60 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Daniel Poot Mutul Luis Salgado Segoviano.

Rossana Chi Gomez. Omar Mandujano Ordaz.

¿Cuáles son las ventajas de usar tipos enumerados ?

Menciona el propósito de nombrar constantes

¿Por qué los arreglos deben manejarse como estructuras de secuencia?

¿Cual es la importancia de la creación de tipos propios?

Menciona las consideraciones al usar tipos definidos.

Usar tipos enumerados para la legibilidad. En vez de escribir:

if chosenColor=1

puedes escribir:

if chosenColor= Color_Red

Usar tipos enumerados para mayor confiabilidad. En pocos lenguajes como ADA, un tipo enumerado le permite al compilador mas desempeño por medio del chequeo de tipos que este lo haga con valores enteros y constantes. Con constantes nombradas el compilador no tiene manera de saber que los valores legales solamente son Color_Red, Color_Green y Color_Blue.

El compilador no hara objeción en sentencias como color= Country_England o country= Output_Printer.

Si usas un tipo enumerado , declarando una variable Color, el compilador permitirá a la variable ser asignada solo los valores Color_Red, Color_Green y Color_Blue.

Usar tipos enumerados para facilitar la modificación. Si encontramos un defecto en nuestro “1 singinfica rojo, 2 significa verde, 3 significa azul” tendríamos que ir a través de todo nuestro código e ir cambiando los 1’s, 2’s, 3’s, y asi sucesivamente. En cambio si utilizamos un tipo enumerado, puedes seguir añadiendo elementos a la lista con sólo ponerlos en la definición del tipo y recompilar.

Usar tipos enumerados como una alternativa a las variables booleanas. A menudo, una variable booleana no es lo suficientemente rica para expresar el significado que se necesita. Por ejemplo, suponiendo que se tiene una rutina que devuelve el valor de true si la tarea se desempeño correctamente y falso de otra manera. Despues te das cuenta que tienes dos maneras posibles de que la rutina devuelva el valor de falso. Una cuando la tarea fallo y los efectos se limitan a la rutina misma. Y la otra es cuando la tarea fallo y causa un error fatal que necesita ser propagado al resto del programa. En este caso un tipo enumerado con los valores: Status_Succes, Status_Warning y Status_FatalError, podría ser mas usable que una simple variable booleana con los valores true y false.

Checar valores invalidos. Cuando comparas un tipo enumerado en un if o case (switch en java), checa valores invalidos. Usa la clausula else en una sentencia case para atrapar valores invalidos.

Select Case screenColor Case Color_Red ... Case Color_Blue ... Case Color_Green ... Case Else DisplayInternalError( False, "Internal Error 752: Invalid color." ) End Select

Definir la primera y la ultima entrada de una enumeración para usarlas como limite en los ciclos. Esto permite escribir un bucle que recorre los elementos de una enumeración. Configure el tipo enumerado utilizando valores explícitos, como se muestra a continuación:

Public Enum Country Country_First = 0 Country_China = 0 Country_England = 1 Country_France = 2 Country_Germany = 3 Country_India = 4 Country_Japan = 5 Country_Usa = 6 Country_Last = 6 End Enum ' compute currency conversions from US currency to target currency Dim usaCurrencyConversionRate( Country_Last ) As Single Dim iCountry As Country For iCountry = Country_First To Country_Last usaCurrencyConversionRate( iCountry ) = ConversionRate( Country_Usa, iCountry ) Next

Reservar la primera entrada de un tipo enumerado como invalido. Muchos compiladores asignan al primer elemento de un tipo enumerado el valor 0. Declarar el elemento que se asigna a 0 para ser inválida ayuda a atrapar variables que no se ha inicializado correctamente, ya que son más propensos a ser 0 que cualquier otro valor no válido.

Public Enum Country Country_InvalidFirst = 0 Country_First = 1 Country_China = 1 Country_England = 2 Country_France = 3 Country_Germany = 4 Country_India = 5 Country_Japan = 6 Country_Usa = 7 Country_Last = 7 End Enum

Definir con precision, como el primer y el ultimo elementos se van a utilizar en la codificación estándar del proyecto, y usarlas consistentemente.

Tener cuidado con las trampas de la asignación de valores explícitos a los elementos de una enumeración. Si se declara un índice de bucle de tipo Color y trató de recorrer a través de colores, lo haría circular a través de los valores no válidos de 3, 5, 6 y 7, así como los valores válidos de 1, 2, y 4.

enum Color { Color_InvalidFirst = 0, Color_Red = 1, Color_Green = 2, Color_Blue = 4, Color_InvalidLast = 8 };

SI TU LENGUAJE NO TIENE TIPOS ENUMERADOS… Si tu lenguaje no le da soporte a los tipos de datos enumerados, tu puedes simularlos con variables globales de clase: // set up Color enumerated type class Color { private Color() {} public static final Color Red = new Color(); public static final Color Green = new Color(); public static final Color Blue = new Color(); } // set up Country enumerated type class Country { private Country() {} public static final Country China = new Country(); public static final Country England = new Country(); public static final Country France = new Country(); public static final Country Germany = new Country(); public static final Country India = new Country(); public static final Country Japan = new Country(); } // set up Output enumerated type class Output { private Output() {} public static final Output Screen = new Output(); public static final Output Printer = new Output(); public static final Output File = new Output(); }

Este particular metodo de creacion de tipos enumerados es también typesafe, porque cada tipo es declarado como una clase. El compilador checara sentencias invalidas como Output output = Country.England.

Una constante nombrada es como una variable, excepto que no se puede cambiar la constante de valor una vez que lo hayas asignado.

Hay veces que declaramos un arreglo que termina siendo más grande de lo que tu pensabas que ibas a necesitar y luego de correrlo se queda fuera del espacio

MaximumEmployees 1000

Cuando se cambia el tamaño de un arreglo, tu solamente cambias la definición de la constante que tu usaste para declarar el arreglo. este punto único de control tiene un largo camino por recorrer para hacer del software realmente “soft” fácil de trabajar y de cambiar

Tener el habito de usar constantes nombradas ayuda a conservar la legibilidad y mantenibilidad en declaraciones de datos .

Ejemplo:

En el bucle de abajo podemos ver un ejemplo donde nos preguntamos qué quiere decir el 12

aparenta que el 12 hace referencia a los meses del año. Pero estamos seguros 100% de que es así Quieren apostar sus laps?

es mejor aclararlo con una constante nombrada

Este ejemplo está casi completo a excepción por una cosa..

podemos ir aún más lejos mediante el uso de un tipo enumerado:

este en esto momento donde ya no debe haber más dudas sobre el propósito del bucle

En resumen utiliza constantes con nombre aun cuando creas que es una literal segura si no estás seguro de haber erradicado dichos errores utiliza un editor de texto para verificar que no los estés usando accidentalmente.

Simular constantes nombradas con variables con ámbito apropiadamente o clases

Si tu lenguaje no soporta constantes nombradas , tu tendrás que crear las tuyas.

Utilice constantes con nombre constantemente

Es muy peligroso usar constantes con nombre en un lugar y en otro un literal para representar la misma entidad

Un arreglo contiene un grupo de elementos, todos ellos del mismo tipo y son directamente accesados mediante un índice

Asegúrese de que todos los índices del arreglo están dentro de los límites del arreglo.

Piense en arreglos como estructuras secuenciales.

Compruebe los puntos extremos de arreglos.

Si un arreglo es multidimensional, asegúrese de que sus subíndices se utilizan en el orden correcto

Cuidado con los índices cruzados

Meter un elemento adicional al final de un arreglo

Es una de las capacidades más poderosas que un lenguaje le puede dar para aclarar su comprensión de un programa.

Si estás usando C, C + + u otro lenguaje que te permite tipos definidos por el usuario, aprovecha de ellos!

Todo lo que tiene que cambiar es la definición de tipo.

Suponga que está creando una nómina

sistema en el que los nombres de los empleados son un máximo de 30 caracteres. Su

usuarios han dicho que nadie tiene un nombre más largo de 30 caracteres. Hacer

que en el código el número 30 se mantenga a lo largo de su programa?

Es prudente definir un nombre constante que indica la longitud de la cadena o matriz y luego usar el nombre constante en la definición de tipo.

•Para realizar las modificaciones más fácil.

• Para evitar la distribución de la información excesiva.

• Para aumentar la fiabilidad.

• Para compensar las deficiencias del lenguaje.

Crear tipos con nombres funcionalmente orientados

BigInteger LongString

Evite los tipos predefinidos

coordenada x; int x;

No volver a definir un tipo predefinido

Integer ¿?

Definir tipos sustitutos para la portabilidad Maquina de 16 bits

typedef short int intNumber;

typedef float floatNumber;

Maquina de 32 bits

typedef long int intNumber;

typedef double floatNumber;

Considerar la creación de una clase en lugar de utilizar un typedef.

top related