Advertisement
Guest User

Untitled

a guest
Mar 4th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.65 KB | None | 0 0
  1. with Ada.Text_IO;
  2. use Ada.Text_IO;
  3.  
  4. procedure ejercicio_7 is
  5.    -- Definimos el tipo Registro
  6.    --type Tipo_Hora is array(Positive range <>) of Character;
  7.    --type Tipo_Unidad is array(Positive range <>) of Character;
  8.    type Tipo_Registro is
  9.       record
  10.          -- Valores por defecto
  11.          Hora:String(1..8);
  12.          Valor:Integer;
  13.          Unidad:String(1..20);
  14.       end record;
  15.    
  16.    -- Declaramos los elementos de una lista enlazada
  17.    type Nodo;
  18.    type Enlace is access Nodo;
  19.    type Nodo is record
  20.       Valor:Tipo_Registro;
  21.       Siguiente:Enlace:=null;
  22.    end record;
  23.    
  24.    -- Declaramos tres elementos para añadirlos a la lista
  25.    A:Enlace;
  26.    B:Enlace;
  27.    C:Enlace;
  28.    
  29.    -- Declaramos un elemento para recorrer la lista y un índice
  30.    Dato:Enlace;
  31.    I:Integer;
  32.    
  33. begin
  34.    
  35.    -- Inicializamos los elementos y creamos la lista
  36.    
  37.    A:=new Nodo;
  38.    B:=new Nodo;
  39.    C:=new Nodo;
  40.    
  41.    A.Valor:=("13:00 pm",25,"[Grados centígrados]");
  42.    A.Siguiente:=B;
  43.    B.Valor:=("14:00 pm",40,"[Grados centígrados]");
  44.    B.Siguiente:=C;
  45.    C.Valor:=("01:00 am",8,"[Grados centígrados]");
  46.    
  47.    -- Usamos estos elementos para recorrer la lista
  48.    Dato:=A;
  49.    I:=1;
  50.    
  51.    -- Recorremos la lista para mostrar su contenido
  52.    Put_Line("Los elementos de la lista son: ");
  53.    loop
  54.       exit when Dato=null;
  55.       Put_Line("Dato nº" & I'Img);
  56.       Put_Line("Hora: "& (Dato.Valor.Hora));
  57.       Put_Line("Valor: "& Dato.Valor.Valor'Img);
  58.       Put_Line("Unidad: "& (Dato.Valor.Unidad));
  59.       Put_Line("");
  60.       I:=I+1;
  61.       Dato:=Dato.Siguiente;
  62.       exit when Dato=null;
  63.    end loop;
  64.    
  65. end ejercicio_7;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement