Guía mínima de Ada 95

Conversión de tipos

Ada es un lenguaje muy estricto en la utilización de los tipos, y no permite nunca mezclar tipos diferentes de forma implícita. Sin embargo, puede haber situaciones en que sea necesario operar tipos diferentes en una expresión. Por ejemplo:

Media := SumaElementos / NumeroElementos;

Si SumaElementos  y NumeroElementos son variables integer y Media es float, tal expresión es incorrecta, dado que el resultado de la división es de tipo integer, y pretendemos asignársela a un float. Previamente, se deben convertir SumaElementos y NumeroElementos a float. Para ello basta hacer lo siguiente:

Media := float(SumaElementos) / float(NumeroElementos);

Nótese que:

Media := float(SumaElementos / NumeroElementos);

no daría el mismo resultado.

En general, para convertir de un tipo numérico a otro basta con poner:

Nuevo_Tipo(Expresión_tipo_original)

Cuando una expresión real se convierte a un tipo entero, se redondea el resultado al entero más cercano: "integer(2.85)" da como resultado "3". Si no es esto lo que queremos, podemos utilizar las siguiente funciones atributo de los reales en coma flotante:
(Sea FT un tipo real en coma flotante, x una variable de tipo FT y el resultado también será de tipo FT)
FT'rounding(x)   redondea x al valor entero más próximo
FT'truncation(x) devuelve el valor de x sin decimales
FT'floor(x)      devuelve el valor entero más grande menor que x
FT'ceiling(x)    devuelve el valor entero más pequeño mayor que x



[Anterior] [Inicio][Siguiente]