PDF de programación - Parte I: Programación en Ada - 2. Elementos básicos del lenguaje

Filtrado por el tag: Sitio web Html css Js
<<>>
Imágen de pdf Parte I: Programación en Ada - 2. Elementos básicos del lenguaje

Parte I: Programación en Ada - 2. Elementos básicos del lenguajegráfica de visualizaciones

Publicado el 6 de Junio del 2017
1.960 visualizaciones desde el 6 de Junio del 2017
582,9 KB
56 paginas
Creado hace 16a (26/09/2008)
Parte I: Programación en Ada

UNIVERSIDAD DE CANTABRIA

1. Introducción a los computadores y su programación
2. Elementos básicos del lenguaje
3. Modularidad y programación orientada a objetos
4. Estructuras de datos dinámicas
5. Tratamiento de errores
6. Abstracción de tipos mediante unidades genéricas
7. Entrada/salida con ficheros
8. Herencia y polimorfismo
9. Programación concurrente y de tiempo real

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

1

2.1. Introducción

UNIVERSIDAD DE CANTABRIA

Motivación para el lenguaje: "Crisis del software" de
mediados de los años 70
• gran número de lenguajes
• necesidad de introducir técnicas de ingeniería de software

- fiabilidad
- modularidad
- programación orientada a objetos (comenzaba en ese

momento)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

2

Principios de diseño del
lenguaje Ada 83:

UNIVERSIDAD DE CANTABRIA

• Fiabilidad

- legibilidad
- tipificación estricta
- excepciones

• Modularidad
• Abstracción de datos y tipos
• Compilación separada
• Concurrencia
• Tiempo Real
• Estandarizado

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

3

Elementos introducidos por
Ada 95

UNIVERSIDAD DE CANTABRIA

• Mejor soporte a programación orientada a objetos

- extensión de objetos

• Más eficiencia en concurrencia
• Mejor soporte de sistemas de tiempo real

El Ada es el lenguaje de la ingeniería de software,
recomendable para grandes proyectos de software

Los principios del Ada son recomendables para todos los
desarrollos software, incluso los realizados en otros
lenguajes

Por ello es aconsejable como primer lenguaje de
programación.

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

4

2.2 Estructura de un
programa

UNIVERSIDAD DE CANTABRIA

with Nombres_de_Otros_Modulos_de_Programa;
procedure Nombre_Programa is
declaraciones;
begin
instrucciones;
end Nombre_programa;

Las declaraciones son:
• de datos: constantes, variables, tipos
• de fragmentos de programa: procedimientos, funciones,

paquetes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

5

Ejemplo:

UNIVERSIDAD DE CANTABRIA

with Ada.Text_IO;
procedure Sencillo is
-- sin declaraciones
begin
Ada.Text_IO.Put("Esto es un programa sencillo");
end Sencillo;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

6

Comentarios sobre el ejemplo:

UNIVERSIDAD DE CANTABRIA

• Concepto de sangrado:

- legibilidad
- muestra visualmente la estructura del código

• Comentarios: comienzan por -- y acaban al final de la línea
• Las instrucciones y declaraciones acaban en ";". El

programa también

• Los nombres de identificadores:

- comienzan por letra
- siguen letras, números y "_"
- no se distinguen mayúsculas de minúsculas
- no es aconsejable usar acentos y ñ
- hay un conjunto de nombres reservados

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

7

Programa sencillo con
ventanas

UNIVERSIDAD DE CANTABRIA

with Message_Windows;
use Message_Windows;

procedure Sencillo is
Message : Message_Window_Type;
begin
Message:=Message_Window("Esto es un programa sencillo");
Wait(Message);
end Sencillo;

Message_Windows es un módulo software perteneciente a
Win_IO:
• No es estándar de Ada
• http://www.ctr.unican.es/win_io/

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

8

2.3. Variables, constantes, y
tipos simples

UNIVERSIDAD DE CANTABRIA

La información se guarda en casillas de memoria
• variables: el contenido puede variar

- algunas tienen nombre
- otras se crean dinámicamente sin nombre (se verán más

adelante)

• constantes: el contenido no puede variar

- las hay con nombre
- y sin nombre (literales): se pone directamente el valor

Todos los datos tienen siempre un tipo asociado:
• tipos predefinidos
• tipos definidos por el usuario

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

9

2.3.1. Tipos predefinidos

UNIVERSIDAD DE CANTABRIA

Son:

Tipo

Valores

Integer

Float

Character

String (1..n)

Boolean

Duration

entero de 16 bits mínimo [-2**15..2**15-1]
real de unos 6 dígitos como mínimo
caracter de 8 bits (Wide_Character
para 16 bits)
texto o secuencia de caracteres
True o False
número real en segundos

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

10

Atributos de los tipos
predefinidos:

UNIVERSIDAD DE CANTABRIA

Tipo

Atributo

Descripción

enteros, reales
y enumerados

reales

discretos (ente-
ros, caracteres
y enumerados)
strings

tipo’FIRST
tipo’LAST
tipo’IMAGE(numero)
tipo’VALUE(string)
tipo’DIGITS
tipo’SMALL
tipo’POS(valor)
tipo’VAL(numero)

Primero valor
Ultimo valor
Conversión a String
Conversión String a número
Número de dígitos
Menor valor positivo
Código numérico de un valor
Conversión de código a valor

s’LENGTH (s es un
string concreto)

Número de caracteres del
string

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

11

Componentes de los strings

UNIVERSIDAD DE CANTABRIA

Caracteres individuales
s(i)
Rodajas de string (también son strings)
s(i..j)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

12

2.3.2. Constantes sin nombre o
literales

UNIVERSIDAD DE CANTABRIA

Números enteros
13 0 -12 1E7 13_842_234
16#3F8#
Números reales
13.0 0.0 -12.0 1.0E7
Caracteres
’a’ ’Z’
Strings
"texto"
Booleanos
True False

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

13

2.3.3. Variables y constantes
con nombre

UNIVERSIDAD DE CANTABRIA

Características
• Ocupan un lugar en la memoria
• tienen un tipo
• tienen un nombre : identificador
• las constantes no pueden cambiar de valor

Declaración de variables
identificador : tipo;
identificador : tipo:=valor_inicial;

Declaración de constantes:

identificador : constant := valor_inicial;
identificador : constant tipo:=valor_inicial;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

14

Ejemplos:

UNIVERSIDAD DE CANTABRIA

Numero_De_Cosas : Integer;
Temperatura : Float:=37.0;
Direccion : String(1..30);
Esta_Activo : Boolean;
Simbolo : Character:=’a’;
A,B,C : Integer;
Max_Num : constant Integer:=500;
Pi : constant:=3.1416;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

15

Ejemplo de un programa con
objetos de datos:

UNIVERSIDAD DE CANTABRIA

with Ada.Text_Io;

procedure Nombre is

Tu_Nombre,Tu_Padre : String (1..20);
N_Nombre,N_Padre : Integer;
-- Ejemplo de uso de strings de tamaño variable

begin
Ada.Text_Io.Put("Cual es tu nombre?: ");
Ada.Text_Io.Get_Line(Tu_Nombre,N_Nombre);
Ada.Text_Io.Put("Como se llama tu padre?: ");
Ada.Text_Io.Get_Line(Tu_Padre,N_Padre);
Ada.Text_Io.Put_Line("El padre de "&Tu_Nombre(1..N_Nombre)&
" es "&Tu_Padre(1..N_Padre));
end Nombre;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

16

El mismo ejemplo, con
cláusula “use”

UNIVERSIDAD DE CANTABRIA

with Ada.Text_Io;
use Ada.Text_Io;
procedure Nombre_Con_Use is

Tu_Nombre,Tu_Padre : String (1..20);
N_Nombre,N_Padre : Integer;
-- Ejemplo de uso de strings de tamaño variable

begin
Put("Cual es tu nombre?: ");
Get_Line(Tu_Nombre,N_Nombre);
Put("Como se llama tu padre?: ");
Get_Line(Tu_Padre,N_Padre);
Put_Line("El padre de "&Tu_Nombre(1..N_Nombre)&
" es "&Tu_Padre(1..N_Padre));
end Nombre_Con_Use;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

17

A observar

UNIVERSIDAD DE CANTABRIA

• Para strings de longitud variable

- Usamos un string grande y de él sólo una parte
- una variable entera nos dice cuántos caracteres útiles

hay

• Uso de rodajas de string

- para coger la parte útil del string

• Text_IO: Put, Get_Line, Put_Line, New_Line
• Cláusula use
• Uso de variables

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

18

El mismo ejemplo, con
ventanas

UNIVERSIDAD DE CANTABRIA

with Input_Windows;
use Input_Windows;

procedure Nombres is

Tu_Nombre,Tu_Padre : String (1..20);
N_Nombre,N_Padre : Integer;
Entrada : Input_Window_Type:=Input_Window("Nombres");

begin
Create_Entry(Entrada,"Cual es tu nombre?: ","");
Create_Entry(Entrada,"Como se llama tu padre?: ","");
Wait(Entrada,"Teclea datos y pulsa OK");
Get_Line(Entrada,"Cual es tu nombre?: ",Tu_Nombre,N_Nombre);
Get_Line(Entrada,"Como se llama tu padre?: ",Tu_Padre,N_Padre);
Put_Line(Entrada,"El padre de "&Tu_Nombre(1..N_Nombre)&
" es "&Tu_Padre(1..N_Padre));
Wait(Entrada,"");
end Nombres;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

19

2.4. Expresiones

UNIVERSIDAD DE CANTABRIA

Permiten transformar datos para obtener un resultado

Se construyen con
• operadores

- dependen del tipo de dato
- se pueden definir por el usuario
- binarios (dos operandos) y unarios (un operando)

• operandos
- variables
- constantes
- funciones

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Javier Gutiérrez, Michael González

26/sept/08

20

Precedencia de los
operadores

UNIVERSID
  • Links de descarga
http://lwp-l.com/pdf4323

Comentarios de: Parte I: Programación en Ada - 2. Elementos básicos del lenguaje (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