SlideShare una empresa de Scribd logo
Programación Distribuida y en Tiempo Real
EJERCICIO 1. TIPOS DE DATOS ENTEROS
Escribir un programa en ADA con las siguientes características:
1.Defina los tres tipos de datos siguientes:
• A: entero dentro del intervalo [-120, 120].
• B: entero dentro del intervalo [0, 50]
• C: entero sin signo de 1 byte.
2.Inicialice tres variables (una por cada tipo de dato definido) y
calcule las operaciones:
• A + B
• A + C
• B + C
3.Imprima por pantalla los resultados de cada una de las operaciones
anteriores.
with Ada.Text_IO;
use Ada.Text_IO;
procedure Ejercicio1 is --procedimiento principal
package Integer_InOut is new Integer_IO(Integer);
use Integer_InOut;
subtype A is integer range -120 .. 120;-- Entero de rango -120-120
subtype B is integer range 0 .. 50; -- Entero de rango 0 a 50
subtype C is integer range 0 .. Integer'last; --Entero sin signo
de rango 0 a último entero permitido
--Parte de declaraciones
varA : A := -42;
varB : B := 25;
varC : C := 100;
begin --Cuerpo de sentencias ejecutables
put("El valor A es:");
put(varA);
New_line;
put_line("El valor B es:");
put(varB);
New_line;
put("El valor C es:");
put(varC);
New_line;
put_line("El valor A + B es:");
put(varA + varB);
Francisco Manuel García Vallejo Página 1 de 10
Programación Distribuida y en Tiempo Real
New_line;
put_line("El valor A + C es:");
put(varA + varC);
New_line;
put_line("El valor B + C es:");
put(varB + varC);
end;
Francisco Manuel García Vallejo Página 2 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 2. TIPOS DE DATOS DISCRETOS
Escribir un programa en ADA que defina un tipo de datos discreto
llamado “Semáforo” que pueda tomar los valores {Rojo, Amarillo,
Verde}.
with Ada.Text_IO;
use Ada.Text_IO;
procedure Ejercicio2 is --procedimiento principal
type Semaforo is (Rojo, Amarillo, Verde); -- Creamos el tipo
enumerado Semaforo con los tres valores
package Semaforo_IO is new Enumeration_IO(Semaforo); -- Lo
utilizamos para poder realizar entradas y salidas con los tipos
enumerados
use Semaforo_IO;
--Parte de declaraciones
varA : Semaforo := Semaforo'val(1); --Creamos una variable
tipo semaforo, cuyo valor lo asignamos por la posicion que ocupa,
en este caso he dicho posición 1 que corresponde al segundo
elemeno
varB : Semaforo := Amarillo; --Creamos una variable tipo
semaforo asignadole un valor directamente
varC : Semaforo := Semaforo'last; --Creamos una variable tipo
semaforo cuyo valor es el ultimo
begin
--Cuerpo de sentencias ejecutables
put(varA); --Mostramos por pantalla el contenido de la
variable
New_line;
put(varB);
New_line;
put(varC);
New_line;
put_line("Ejercicio 2");
end;
Francisco Manuel García Vallejo Página 3 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 3. TIPOS DE DATOS REALES
Escribir un programa en ADA con las siguientes características:
1.Defina los tipos de datos siguientes:
• A: coma fija dentro del intervalo [-50, 50] con precisión 0.01.
• B: coma flotante dentro del intervalo [-200, 200] con tres dígitos
decimales.
2.Inicialice dos variables (una por cada tipo de dato definido) y calcule
la operación A + B.
3.Imprima por pantalla el resultado de la operación anterior.
with Ada.Text_IO;
use Ada.Text_IO;
procedure Ejercicio3 is
-- Necesario para leer/escribir Reales Float.
type Float_B is digits 3 range -2.0E2 .. 2.0E2;
--Float_B_IO sirve para reales en coma flotante
use Float_B_IO;
type Float_A is delta 0.01 range -100.00 .. 100.00;
--Coma fija decimal
subtype Fija_A is Floatfija_A is range -50.00 .. 50.00;
package Float_A_IO is new Float_IO(Float_A);
--Float_B_IO sirve para reales en coma flotante
use Float_A_IO;
A : Fija_A := Fija_A'last;
B : Float_B := Float_B'first;
begin
put_line("El valor A es:");
--put(A);
put_line("El valor B es:");
put(B);
put_line("El valor B + B es:");
Float_B(A)
put(A + B);
end ;
Francisco Manuel García Vallejo Página 4 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 4. ARRAYS
Escribir un programa en ADA con las siguientes características:
1. Defina los tipos de datos siguientes:
1. A: vector de 150 posiciones de datos reales.
2. B: matriz de tres dimensiones con tamaño 200x200x200 de
datos enteros.
3. C: vector de datos reales con cualquier tamaño.
2. Inicialice tres variables (una por cada tipo de dato definido) a 0.
3. Imprimir por pantalla el resultado.
with Ada.Text_IO;
use Ada.Text_IO;
procedure Ejercicio4 is
posicionesA : constant Integer := 150;
--Creamos la constante que nos indica le numero de valores del
vector A
type VectorA is array(0 .. posicionesA-1) of Float;
posicionesB : constant Integer := 199;
type MatrizB is array( 0 .. posicionesB , 0 .. posicionesB , 0 ..
posicionesB ) of Integer;
type VectorC is array( integer range <> ) of Float;
--package Float_IO is new Float_IO(Float);
--Float_IO sirve para reales en coma flotante
--use Float_IO;
--package Integer_IO is new Integer_IO(Integer);
--Float_IO sirve para enteros
--use Integer_IO;
A : VectorA := (0.0, others => 0.0);
B : MatrizB := (others => (others => (others => 0)));
C : VectorC(1 .. 10) := (others => 0.0);
begin
put_line("Ejercicio 4");
--Put_Line(B(50,50,50)'Img);
end;
--Compila Bien pero al ejecutarlo se produce un desbordamiento
Francisco Manuel García Vallejo Página 5 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 5. CADENAS
Escribir un programa en ADA con las siguientes características:
1. Inicialice una constante de tipo cadena que contenga la
expresión “TIEMPO REAL”.
2. Imprimir por pantalla la constante anterior.
with Ada.Text_IO;use Ada.Text_IO;
procedure Ejercicio5 is
tiemporeal : constant String := "TIEMPO REAL";
begin
put_line("Ejercicio 5");
Put(tiemporeal);
end;
Francisco Manuel García Vallejo Página 6 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 6. REGISTROS
Escribir un programa en ADA con las siguientes características:
1. Definir el tipo de datos “Datos_personales” con los siguientes
campos:
1. Nombre: cadena de texto
2. Apellidos: cadena de texto
3. Fecha de nacimiento: registro con día, mes y año.
2. Inicializar una variable del tipo definido con tus datos
personales.
3. Imprimir por pantalla la variable definida anteriormente.
with Ada.Text_IO;use Ada.Text_IO;
procedure ejercicio6 is
package Integer_InOut is new Integer_IO(Integer);
use Integer_InOut;
type NombreMes is
(Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octu
bre,Noviembre,Diciembre);
type TipoDia is new Integer range 1 .. 31;
type TipoAnio is new Integer range 0 .. 4000;
type Date is
record
Dia : TipoDia;
Mes : NombreMes;
Anio : TipoAnio;
end record;
type Personal is
record
Nombre : String(1 .. 20) ;
Apellidos : String(1 .. 20);
Nacimiento : Date;
end record;
yo : Personal;
Francisco Manuel García Vallejo Página 7 de 10
Programación Distribuida y en Tiempo Real
begin
-- yo := (Nombre => "Francisco Manuel ", Apellidos => "Garcia
Vallejo ", Nacimiento => (Dia => 21, Mes => Diciembre, Anio
=>1968) );
yo.Nombre := "Francisco Manuel " ;
yo.Apellidos := "Garcia Vallejo ";
yo.Nacimiento := (21,Diciembre,1968) ;
put_line( "Ejercicio 6" );
put_line( "Mi nombre es: " );
put_line( yo.Nombre );
put_line( "Mis apellidos son: " );
put_line( yo.Apellidos );
put_line( "Nací el día: " );
put_line( yo.Nacimiento.Dia'Img );
put_line( "Nací el més: " );
put_line( yo.Nacimiento.Mes'Img );
put_line( yo.Nacimiento.Anio'Img );
end ejercicio6 ;
Francisco Manuel García Vallejo Página 8 de 10
Programación Distribuida y en Tiempo Real
EJERCICIO 7. TIPOS DINÁMICOS
Escribir un programa en ADA con las siguientes características:
1. Definir un tipo de datos “Nodo” para elaborar una lista enlazada
de elementos tipo “Datos_personales” definido en el ejercicio
anterior.
2. Inicializar una variable de tipo “Nodo” con tus datos personales.
3. Imprimir por pantalla la variable definida anterior
with Ada.Text_IO;use Ada.Text_IO;
procedure Ejercicio7 is
package Integer_InOut is new Integer_IO(Integer);
use Integer_InOut;
type NombreMes is
(Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octu
bre,Noviembre,Diciembre);
type TipoDia is new Integer range 1 .. 31;
type TipoAnio is new Integer range 0 .. 4000;
type Date is
record
Dia : TipoDia;
Mes : NombreMes;
Anio : TipoAnio;
end record;
type Personal is
record
Nombre : String(1 .. 20) ;
Apellidos : String(1 .. 20);
Nacimiento : Date;
end record;
type Nodo is access Personal;
yo : Personal;
liEnPersonal : Nodo;
Francisco Manuel García Vallejo Página 9 de 10
Programación Distribuida y en Tiempo Real
begin
-- yo := (Nombre => "Francisco Manuel ", Apellidos => "Garcia
Vallejo ", Nacimiento => (Dia => 21, Mes => Diciembre, Anio
=>1968) );
liEnPersonal := new Personal;
yo.Nombre := "Francisco Manuel " ;
yo.Apellidos := "Garcia Vallejo ";
yo.Nacimiento := (21,Diciembre,1968) ;
liEnPersonal.all.Nombre := "Francisco Manuel " ;
liEnPersonal.all.Apellidos := "Garcia Vallejo ";
liEnPersonal.all.Nacimiento := (21,Diciembre,1968) ;
put_line( "Ejercicio 7: Con el Registro Yo del Ejercicio 6" );
put_line( "Mi nombre es: " );
put_line( yo.Nombre );
put_line( "Mis apellidos son: " );
put_line( yo.Apellidos );
put_line( "Nací el día: " );
put_line( yo.Nacimiento.Dia'Img );
put_line( "Nací el més: " );
put_line( yo.Nacimiento.Mes'Img );
put_line( "Nací el año: " );
put_line( yo.Nacimiento.Anio'Img );
put_line( "Ejercicio 7: Con La lista enlazada del tipo Nodo" );
put_line( "Mi nombre es: " );
put_line( liEnPersonal.Nombre );
put_line( "Mis apellidos son: " );
put_line( liEnPersonal.Apellidos );
put_line( "Nací el día: " );
put_line( liEnPersonal.Nacimiento.Dia'Img );
put_line( "Nací el més: " );
put_line( liEnPersonal.Nacimiento.Mes'Img );
put_line( "Nací el año: " );
put_line( liEnPersonal.Nacimiento.Anio'Img );
end Ejercicio7 ;
Francisco Manuel García Vallejo Página 10 de 10

Más contenido relacionado

PDF
Ejercicio ADA Instrucciones y Estructuras de Control
PDF
Ejercicio ADA: Ocultación de Información en ADA
PDF
Tipos de datos C#
PDF
Resolucion De Problemas Con Computadora
PPTX
Unidad 5
PPTX
Python variables and data types.pptx
PPT
Cadenas y punteros.ppt
PDF
Constructor and Destructor
Ejercicio ADA Instrucciones y Estructuras de Control
Ejercicio ADA: Ocultación de Información en ADA
Tipos de datos C#
Resolucion De Problemas Con Computadora
Unidad 5
Python variables and data types.pptx
Cadenas y punteros.ppt
Constructor and Destructor

La actualidad más candente (20)

PDF
Comparison between runtime polymorphism and compile time polymorphism
PPT
File handling in C++
PPTX
Type conversion
PPTX
Templates in c++
PPTX
Type casting
PPTX
Funciones en c++
PPSX
Complete C programming Language Course
PDF
Ppt on visual basics
PPTX
array of object pointer in c++
PDF
Date and Time Module in Python | Edureka
PPTX
Ejercicios de python
PPS
Wrapper class
PPTX
Algorithms and flowcharts by Haseeb Khan
PPTX
Polymorphism in java
PPTX
C++ decision making
PPT
User defined data type
PPTX
Java packages
PPT
Preprocessors
PPTX
Multithreading in java
PDF
Estructura de Datos: Lista
Comparison between runtime polymorphism and compile time polymorphism
File handling in C++
Type conversion
Templates in c++
Type casting
Funciones en c++
Complete C programming Language Course
Ppt on visual basics
array of object pointer in c++
Date and Time Module in Python | Edureka
Ejercicios de python
Wrapper class
Algorithms and flowcharts by Haseeb Khan
Polymorphism in java
C++ decision making
User defined data type
Java packages
Preprocessors
Multithreading in java
Estructura de Datos: Lista
Publicidad

Similar a Ejercicio ADA Tipos de Datos en ADA (20)

PDF
Visual Basic
DOCX
Aa javaaa intro
DOCX
Trabajo grupal de ciclos repetitivos
PDF
Plataformas tecnologicas introduccion visual studio clase 1 - 4
PDF
MANUAL 6
PDF
Diagramas de flujo
PDF
Diagramas de flujo
PDF
Manual de dfd
PDF
PDF
Manual dfd 3
PDF
Diagramas de flujo
PDF
Diagramas de flujo1
PDF
Diagramas de flujo
PDF
manual de Dfd
PDF
Manual dfd
PDF
Manual de DFD_3
PDF
MANUAL DFD
PDF
PDF
MANUAL DFD
Visual Basic
Aa javaaa intro
Trabajo grupal de ciclos repetitivos
Plataformas tecnologicas introduccion visual studio clase 1 - 4
MANUAL 6
Diagramas de flujo
Diagramas de flujo
Manual de dfd
Manual dfd 3
Diagramas de flujo
Diagramas de flujo1
Diagramas de flujo
manual de Dfd
Manual dfd
Manual de DFD_3
MANUAL DFD
MANUAL DFD
Publicidad

Último (20)

PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
Doctrina 1 Soteriologuia y sus diferente
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
ciencias-1.pdf libro cuarto basico niños
V UNIDAD - PRIMER GRADO. del mes de agosto
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
caso clínico iam clinica y semiología l3.pptx
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf

Ejercicio ADA Tipos de Datos en ADA

  • 1. Programación Distribuida y en Tiempo Real EJERCICIO 1. TIPOS DE DATOS ENTEROS Escribir un programa en ADA con las siguientes características: 1.Defina los tres tipos de datos siguientes: • A: entero dentro del intervalo [-120, 120]. • B: entero dentro del intervalo [0, 50] • C: entero sin signo de 1 byte. 2.Inicialice tres variables (una por cada tipo de dato definido) y calcule las operaciones: • A + B • A + C • B + C 3.Imprima por pantalla los resultados de cada una de las operaciones anteriores. with Ada.Text_IO; use Ada.Text_IO; procedure Ejercicio1 is --procedimiento principal package Integer_InOut is new Integer_IO(Integer); use Integer_InOut; subtype A is integer range -120 .. 120;-- Entero de rango -120-120 subtype B is integer range 0 .. 50; -- Entero de rango 0 a 50 subtype C is integer range 0 .. Integer'last; --Entero sin signo de rango 0 a último entero permitido --Parte de declaraciones varA : A := -42; varB : B := 25; varC : C := 100; begin --Cuerpo de sentencias ejecutables put("El valor A es:"); put(varA); New_line; put_line("El valor B es:"); put(varB); New_line; put("El valor C es:"); put(varC); New_line; put_line("El valor A + B es:"); put(varA + varB); Francisco Manuel García Vallejo Página 1 de 10
  • 2. Programación Distribuida y en Tiempo Real New_line; put_line("El valor A + C es:"); put(varA + varC); New_line; put_line("El valor B + C es:"); put(varB + varC); end; Francisco Manuel García Vallejo Página 2 de 10
  • 3. Programación Distribuida y en Tiempo Real EJERCICIO 2. TIPOS DE DATOS DISCRETOS Escribir un programa en ADA que defina un tipo de datos discreto llamado “Semáforo” que pueda tomar los valores {Rojo, Amarillo, Verde}. with Ada.Text_IO; use Ada.Text_IO; procedure Ejercicio2 is --procedimiento principal type Semaforo is (Rojo, Amarillo, Verde); -- Creamos el tipo enumerado Semaforo con los tres valores package Semaforo_IO is new Enumeration_IO(Semaforo); -- Lo utilizamos para poder realizar entradas y salidas con los tipos enumerados use Semaforo_IO; --Parte de declaraciones varA : Semaforo := Semaforo'val(1); --Creamos una variable tipo semaforo, cuyo valor lo asignamos por la posicion que ocupa, en este caso he dicho posición 1 que corresponde al segundo elemeno varB : Semaforo := Amarillo; --Creamos una variable tipo semaforo asignadole un valor directamente varC : Semaforo := Semaforo'last; --Creamos una variable tipo semaforo cuyo valor es el ultimo begin --Cuerpo de sentencias ejecutables put(varA); --Mostramos por pantalla el contenido de la variable New_line; put(varB); New_line; put(varC); New_line; put_line("Ejercicio 2"); end; Francisco Manuel García Vallejo Página 3 de 10
  • 4. Programación Distribuida y en Tiempo Real EJERCICIO 3. TIPOS DE DATOS REALES Escribir un programa en ADA con las siguientes características: 1.Defina los tipos de datos siguientes: • A: coma fija dentro del intervalo [-50, 50] con precisión 0.01. • B: coma flotante dentro del intervalo [-200, 200] con tres dígitos decimales. 2.Inicialice dos variables (una por cada tipo de dato definido) y calcule la operación A + B. 3.Imprima por pantalla el resultado de la operación anterior. with Ada.Text_IO; use Ada.Text_IO; procedure Ejercicio3 is -- Necesario para leer/escribir Reales Float. type Float_B is digits 3 range -2.0E2 .. 2.0E2; --Float_B_IO sirve para reales en coma flotante use Float_B_IO; type Float_A is delta 0.01 range -100.00 .. 100.00; --Coma fija decimal subtype Fija_A is Floatfija_A is range -50.00 .. 50.00; package Float_A_IO is new Float_IO(Float_A); --Float_B_IO sirve para reales en coma flotante use Float_A_IO; A : Fija_A := Fija_A'last; B : Float_B := Float_B'first; begin put_line("El valor A es:"); --put(A); put_line("El valor B es:"); put(B); put_line("El valor B + B es:"); Float_B(A) put(A + B); end ; Francisco Manuel García Vallejo Página 4 de 10
  • 5. Programación Distribuida y en Tiempo Real EJERCICIO 4. ARRAYS Escribir un programa en ADA con las siguientes características: 1. Defina los tipos de datos siguientes: 1. A: vector de 150 posiciones de datos reales. 2. B: matriz de tres dimensiones con tamaño 200x200x200 de datos enteros. 3. C: vector de datos reales con cualquier tamaño. 2. Inicialice tres variables (una por cada tipo de dato definido) a 0. 3. Imprimir por pantalla el resultado. with Ada.Text_IO; use Ada.Text_IO; procedure Ejercicio4 is posicionesA : constant Integer := 150; --Creamos la constante que nos indica le numero de valores del vector A type VectorA is array(0 .. posicionesA-1) of Float; posicionesB : constant Integer := 199; type MatrizB is array( 0 .. posicionesB , 0 .. posicionesB , 0 .. posicionesB ) of Integer; type VectorC is array( integer range <> ) of Float; --package Float_IO is new Float_IO(Float); --Float_IO sirve para reales en coma flotante --use Float_IO; --package Integer_IO is new Integer_IO(Integer); --Float_IO sirve para enteros --use Integer_IO; A : VectorA := (0.0, others => 0.0); B : MatrizB := (others => (others => (others => 0))); C : VectorC(1 .. 10) := (others => 0.0); begin put_line("Ejercicio 4"); --Put_Line(B(50,50,50)'Img); end; --Compila Bien pero al ejecutarlo se produce un desbordamiento Francisco Manuel García Vallejo Página 5 de 10
  • 6. Programación Distribuida y en Tiempo Real EJERCICIO 5. CADENAS Escribir un programa en ADA con las siguientes características: 1. Inicialice una constante de tipo cadena que contenga la expresión “TIEMPO REAL”. 2. Imprimir por pantalla la constante anterior. with Ada.Text_IO;use Ada.Text_IO; procedure Ejercicio5 is tiemporeal : constant String := "TIEMPO REAL"; begin put_line("Ejercicio 5"); Put(tiemporeal); end; Francisco Manuel García Vallejo Página 6 de 10
  • 7. Programación Distribuida y en Tiempo Real EJERCICIO 6. REGISTROS Escribir un programa en ADA con las siguientes características: 1. Definir el tipo de datos “Datos_personales” con los siguientes campos: 1. Nombre: cadena de texto 2. Apellidos: cadena de texto 3. Fecha de nacimiento: registro con día, mes y año. 2. Inicializar una variable del tipo definido con tus datos personales. 3. Imprimir por pantalla la variable definida anteriormente. with Ada.Text_IO;use Ada.Text_IO; procedure ejercicio6 is package Integer_InOut is new Integer_IO(Integer); use Integer_InOut; type NombreMes is (Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octu bre,Noviembre,Diciembre); type TipoDia is new Integer range 1 .. 31; type TipoAnio is new Integer range 0 .. 4000; type Date is record Dia : TipoDia; Mes : NombreMes; Anio : TipoAnio; end record; type Personal is record Nombre : String(1 .. 20) ; Apellidos : String(1 .. 20); Nacimiento : Date; end record; yo : Personal; Francisco Manuel García Vallejo Página 7 de 10
  • 8. Programación Distribuida y en Tiempo Real begin -- yo := (Nombre => "Francisco Manuel ", Apellidos => "Garcia Vallejo ", Nacimiento => (Dia => 21, Mes => Diciembre, Anio =>1968) ); yo.Nombre := "Francisco Manuel " ; yo.Apellidos := "Garcia Vallejo "; yo.Nacimiento := (21,Diciembre,1968) ; put_line( "Ejercicio 6" ); put_line( "Mi nombre es: " ); put_line( yo.Nombre ); put_line( "Mis apellidos son: " ); put_line( yo.Apellidos ); put_line( "Nací el día: " ); put_line( yo.Nacimiento.Dia'Img ); put_line( "Nací el més: " ); put_line( yo.Nacimiento.Mes'Img ); put_line( yo.Nacimiento.Anio'Img ); end ejercicio6 ; Francisco Manuel García Vallejo Página 8 de 10
  • 9. Programación Distribuida y en Tiempo Real EJERCICIO 7. TIPOS DINÁMICOS Escribir un programa en ADA con las siguientes características: 1. Definir un tipo de datos “Nodo” para elaborar una lista enlazada de elementos tipo “Datos_personales” definido en el ejercicio anterior. 2. Inicializar una variable de tipo “Nodo” con tus datos personales. 3. Imprimir por pantalla la variable definida anterior with Ada.Text_IO;use Ada.Text_IO; procedure Ejercicio7 is package Integer_InOut is new Integer_IO(Integer); use Integer_InOut; type NombreMes is (Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octu bre,Noviembre,Diciembre); type TipoDia is new Integer range 1 .. 31; type TipoAnio is new Integer range 0 .. 4000; type Date is record Dia : TipoDia; Mes : NombreMes; Anio : TipoAnio; end record; type Personal is record Nombre : String(1 .. 20) ; Apellidos : String(1 .. 20); Nacimiento : Date; end record; type Nodo is access Personal; yo : Personal; liEnPersonal : Nodo; Francisco Manuel García Vallejo Página 9 de 10
  • 10. Programación Distribuida y en Tiempo Real begin -- yo := (Nombre => "Francisco Manuel ", Apellidos => "Garcia Vallejo ", Nacimiento => (Dia => 21, Mes => Diciembre, Anio =>1968) ); liEnPersonal := new Personal; yo.Nombre := "Francisco Manuel " ; yo.Apellidos := "Garcia Vallejo "; yo.Nacimiento := (21,Diciembre,1968) ; liEnPersonal.all.Nombre := "Francisco Manuel " ; liEnPersonal.all.Apellidos := "Garcia Vallejo "; liEnPersonal.all.Nacimiento := (21,Diciembre,1968) ; put_line( "Ejercicio 7: Con el Registro Yo del Ejercicio 6" ); put_line( "Mi nombre es: " ); put_line( yo.Nombre ); put_line( "Mis apellidos son: " ); put_line( yo.Apellidos ); put_line( "Nací el día: " ); put_line( yo.Nacimiento.Dia'Img ); put_line( "Nací el més: " ); put_line( yo.Nacimiento.Mes'Img ); put_line( "Nací el año: " ); put_line( yo.Nacimiento.Anio'Img ); put_line( "Ejercicio 7: Con La lista enlazada del tipo Nodo" ); put_line( "Mi nombre es: " ); put_line( liEnPersonal.Nombre ); put_line( "Mis apellidos son: " ); put_line( liEnPersonal.Apellidos ); put_line( "Nací el día: " ); put_line( liEnPersonal.Nacimiento.Dia'Img ); put_line( "Nací el més: " ); put_line( liEnPersonal.Nacimiento.Mes'Img ); put_line( "Nací el año: " ); put_line( liEnPersonal.Nacimiento.Anio'Img ); end Ejercicio7 ; Francisco Manuel García Vallejo Página 10 de 10