PDF de programación - Apuntes Ada

Imágen de pdf Apuntes Ada

Apuntes Adagráfica de visualizaciones

Publicado el 18 de Julio del 2020
712 visualizaciones desde el 18 de Julio del 2020
40,6 KB
14 paginas
Creado hace 18a (13/11/2005)
Paradigmas de Programación

Año 2005

LENGUAJE ADA

comienzo del cuerpo

parte declarativa

especificación del contexto

especificación del programa


Estructura de un programa

Todo programa Ada tiene 4 componentes:
· la especificación del contexto;
· la especificación del programa;
· la parte declarativa;
· el cuerpo.
La parte de especificación del contexto son directivas al compilador Ada. Pueden incluir
determinadas librerías, por ejemplo: la sentencia ”with ada_io” incluye la librería de
entrada/salida, en donde se encuentran los procedimientos que realizan la entrada/salida.
La especificación del programa da el nombre del programa.
La parte declarativa incluye las declaraciones de cualquier objeto. Puede contener
definiciones de variables y procedimientos.
El cuerpo del programa está compuesto de la secuencia de sentencias.

Ejemplo:

with ada_io; use ada_io;
procedure Doble is
x, y: integer;

begin

get(x); -- lee un número
y:=x*2; -- lo multiplica por 2
put(y); --imprime el resultado
new_line; -- avanza a la siguiente línea

end Doble;

Tipos predefinidos y operaciones

Tipo integer: Representa una secuencia de uno o más dígitos. Ada permite que cualquiera
de los dígitos (excepto el primero) esté precedido por el carácter “_” para dar legibilidad al
programa.

Ejemplo:
57
18_502_007 nro. de documento
10_18502007_001 nro. de IOMA
Por defecto, se asume que son números decimales, pero existen mecanismos para expresar
enteros en otra base:
Ejemplo:
8#377# 377 octal (255 en decimal)

fin del cuerpo

Lenguaje ADA – Página 1

Paradigmas de Programación

Año 2005

16#FF# FF hexadecimal (255 en decimal)
2#1111_1111# 1111_1111 binario (255 en decimal)

La base siempre se define en decimal y puede ser entre 2 y 16.
Están definidas las operaciones aritméticas tradicionales tales como +,-,*,/, y -(negación)
(los números negativos técnicamente son expresiones y no literales)

Existen dos procedimientos en ada_io para leer y escribir números enteros: get(i) y put(i)

Tipo flotante: se distinguen por la presencia de un punto decimal. Pueden incluir un
exponente.

Ejemplo:
10.0
0.5
3.14159_26
1.15E-12
1.0e+6

Las mismas operaciones que para los reales de Pascal.


Nota: Es importante aclarar que los valores flotantes y enteros NO pueden

mezclarse en una expresión


Tipo Boolean: Los valores booleanos están denotados por unos de dos literales
predefinidos: true y false.
Los operadores para este tipo son:
x and y
x or y
x xor y
not x
y los operadores relacionales (=,!=,<,>,etc.)

Tipo Character: Los valores de este tipo representan valores ASCII. Son caracteres
encerrados entre comillas simples.

Ejemplo:
‘a’,’A’,’’

Las únicas operaciones definidas para el tipo character son las relacionales.

Tipo string: todos los tipos anteriores son tipos escalares, esto es, que tiene valores que no
pueden ser divididos en partes más pequeñas. Ada tiene un tipo predefinido que es un tipo
compuesto, el tipo String, que consiste de una secuencia de valores character.
Un literal string es una secuencia de cero, o más caracteres encerrados entre comillas
dobles.

Lenguaje ADA – Página 2

Paradigmas de Programación

Año 2005

No es posible mezclar variables de distintos tipos en una misma expresión.

Ejemplo:
“estos es un string”
“ “
“123·

Expresiones



Ejemplo:

i: integer;
x: float;

x:=3.7;
i:=1;
x:=x+i; No es correcto.

La forma correcta sería realizando un casting (conversión de tipo explícita)

x:=x + float(i)

Una conversión de tipo consiste del nombre del tipo seguido por una expresión entre
paréntesis.

Declaraciones
Existen dos tipos de objetos: variables y constantes.

Ejemplo:
x: integer;
y: constant float:=1.9;

x es una variable e y es una constante de tipo flotante.

La declaración de constantes como en Pascal, debe incluir una inicialización. Las
declaraciones de variables pueden incluir una inicialización que especifica el valor inicial
de las variables.

Ejemplo:
n: integer:= 10;
p: integer:= n+1:


Lenguaje ADA – Página 3

Paradigmas de Programación

Año 2005


Estructuras de control

Asignación: “:=”

Sentencias condicionales

if condición
then sentencias

endif;


if condición
then sentencias
else sentencias
endif;


if condición
then sentencias
elseif cond then
elseif cond then

else
endif;

case n is
when 0 | 1 => sentencias
when 3 =>………
when 4..10 =>
when others =>
end case;



Sentencias de repetición

while condición loop
...................
end loop;

for i in 0..10 loop
……...
end loop;

Nota: la cláusula others debe ir obligatoriamente cuando no se especifican todos los
posibles valores de n.

Lenguaje ADA – Página 4

Paradigmas de Programación

Año 2005

parámetro formal

especificación del procedimiento

for i in reverse 0..10 loop
……....
end loop;

Subprogramas

Ada define dos tipos de subprogramas: procedimientos y funciones.

Ejemplo:

with ada_io; use ada_io;
procedure demo is
n: integer := 4;


procedure space (cant:integer) is
begin
for i in 1..cant loop
put (‘ ’);
end loop;
end space;

begin
space(6);
space(n+2);
end demo;



Parámetros formales

Recordamos que los parámetros formales representan objetos locales al procedure. Hay 3
tipos de pasaje de parámetro: in, out e in out.


Aclaración: notar que la variable i del loop no está declarada. Esto es porque Ada
permite declarar implícitamente las variables de control del for y son definidas como
de lectura únicamente, esto es, no es posible alterar su valor.




in: parecido al pasaje por copia, pero el parámetro actúa como una constante, y,

cuerpo del procedimiento

por lo tanto no se puede modificar su valor.

• out: parámetro por resultado


in out: actúa como una variable local que se inicializa con el valor del parámetro
real y es asignado al parámetro real cuando finaliza el procedimiento. (Según el
caso es valor-resultado o referencia)

Si no se especifica explícitamente ninguno de estos tipos, se asume in.

opcional

parámetro real

Lenguaje ADA – Página 5

Paradigmas de Programación

Año 2005


Los parámetros pueden tener valores por defecto.


Ejemplo:
procedure space(cant: integer:= 1) is.
……..
end space;

De esta manera se puede invocar al procedimiento space sin parámetros reales:

space;

Los nombres de los subprogramas se pueden”sobrecargar”. Es decir, que diferentes
subprogramas pueden tener el mismo nombre, pero distinto tipo y/o número de parámetros.

Ejemplo:
Procedure put(item:character)
Procedure put(item:integer);

Funciones

Ejemplo:
function pepe(n: intejer) return integer is
………….
return….
end pepe;

Los parámetros de una función siempre son in.

Alcance de variables

El alcance de las variables va desde su definición hasta el final del subprograma que la
engloba. (parecido a Pascal.-alcance estático-)
Es posible calificar una variable, de esta manera se puede acceder a un identificador que
está enmascarado.

Ejemplo:

procedure A is
x: integer:=10;
procedure B is
x:float:= 1.9;
begin
put(x);
put(A.x);

Lenguaje ADA – Página 6

Paradigmas de Programación

Año 2005

end B;

begin
B;
end A;

El alcance de la variable x entera definida en A es todo el procedure A y TODO el
procedure B (ya que es posible calificar y, por lo tanto, acceder a la variable).

Tipos enumerativos

Un tipo define un conjunto de valores posible para una variable o expresión y las
operaciones sobre ellos. Veamos la siguiente declaración:

type días_de_la_semana is (dom, lun,….sab);
hoy: días_de_la_semana;

Con esta declaración definimos un nuevo tipo (días_de_la_semana) enumerando todos los
posibles valores. La variable hoy es del tipo días_de_la_semana y, por lo tanto puede
asumir cualquiera de sus valores.

Ejemplo:
hoy:=dom;

Los tipos enumerativos son tipos discretos y sus valores pueden usarse como limites en un
rango discreto:

Ejemplo:
for ch in character loop;
for i in integer loop;
for dia in dias_de_la_semana loo
  • Links de descarga
http://lwp-l.com/pdf17917

Comentarios de: Apuntes Ada (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad