miércoles, 30 de marzo de 2011

Estructura básica de un programa en Ada.

Un programa en Ada consta de al menos dos partes: una cláusula de contexto y un procedimiento principal. --Programa simple en Ada
with Text_IO; --cláusula de contexto
procedure Hola is --procedimiento principal
    --Parte de declaraciones
begin
    --Cuerpo de sentencias ejecutables
    Text_IO.Put_Line("Hola");
end Hola;

Tipos escalares.

Los tipos en Ada se clasifican en escalares (simples) y estructurados. Los escalares se dividen en: discretos, u ordinales, y no discretos. Los tipos discretos son enumerados y enteros. Los no discretos son los reales. Tanto los enteros como los reales se clasifican a su vez como numéricos. Los tipos enumerados son aquellos que se definen especificando la lista ordenada de valores que lo componen:
type Día is (Lun, Mar, Mie, Jue, Vie, Sab, Dom);
type Palos is (Oros, Bastos, Espadas, Copas);
type Género is (M, F);
type Color is (Blanco, Rojo, Amarillo, Verde, Azul, Marrón, Negro);
type Luz is (Rojo, Naranja, Verde);
 
Una vez definido el tipo, se pueden declarar variables. Si, como ocurre con los tipos Color y Luz, hay valores que se repiten, habrá que cualificar ese valor cuando su uso pueda ser ambiguo:
x := Color'Rojo; -- x debe ser de tipo Color
y := Luz'Rojo; -- y debe ser de tipo Luz
 
Ada tiene predefinido el tipo enumerado character --que representa el alfabeto de caracteres utilizado--, y el tipo boolean, que puede tomar los valores true o false.
Ada posee un tipo integer predefinido cuyo rango de valores depende de la implementación del lenguaje. Además, se pueden definir nuevos tipos enteros que pueden ser, con signo o sin signo:
type MiEntero is range -32768..32767; --Entero con signo
type MiNatural is mod 32767; --Entero sin signo (rango 0..32766)
En ambos casos se pueden usar expresiones para definir los límites del tipo:
type MiEntero is range -2**15..2**15; --Entero con signo
type MiNatural is mod 2**16; --Entero sin signo (rango 0..65535)
Existen predefinidos en el paquete standard dos subtipos del tipo integer:
subtype Natural is integer range 0..Integer'last;
subtype Positive is integer range 1..Integer'last;
Todos los tipos ordinales tienen asociadas, entre otras, las siguientes operaciones como atributos (todas se usan cualificadas con el nombre del tipo), sea T un tipo ordinal:
    T'succ(x) devuelve el valor que sigue a x en la lista de valores del tipo (el último valor no tiene sucesor)T'pred(x) devuelve el valor que precede a x en la lista de valores del tipo(el primer valor no tiene predecesor) T'pos(x) devuelve la posición que ocupa x en la lista de valores del tipo (al primer valor le corresponde la posición 0) T'val(x) devuelve el valor correspondiente a la posición x en la lista de valores del tipo T'first devuelve el valor más pequeño del tipo T'last devuelve el mayor valor del tipo T'range devuelve el número de valores posibles del tipo
Ejemplos: x:=Día'succ(Mar); --x toma el valor Mie
x:=Día'pred(Mar); --x toma el valor Lun
y:=Día'Pos(Mar); --y toma el valor 1
x:=Día'Val(3); --x toma el valor Jue
Con la tecnología de Blogger.

Busqueda

Sabias que?

chat

Popular Posts