daily pastebin goal
45%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 50 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. With Ada.Text_IO; use Ada.Text_IO;
  2. With Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
  3. With ADA.Float_Text_IO; use ADA.Float_Text_IO;
  4.  
  5.  
  6.  
  7. procedure Telefono is
  8.  
  9.  
  10.    protected type bateria is
  11.       procedure res_bateria;
  12.       function estado return float;
  13.       private
  14.       porcentaje:float:=100.0;
  15.    end bateria;
  16.  
  17.    protected body bateria is
  18.       procedure res_bateria is
  19.       begin
  20.          porcentaje := porcentaje - 0.00001;
  21.       end res_bateria;
  22.  
  23.       function estado return float is
  24.       begin
  25.          return porcentaje;
  26.       end estado;
  27.    end bateria;
  28.  
  29.    type peticion is
  30.       record
  31.          id:character;
  32.          numero:integer;
  33.       end record;
  34.  
  35.    pet:peticion;
  36.  
  37.    task peticiones is
  38.       entry LlamadaEntrante;
  39.       entry LlamadaSaliente;
  40.       entry EstadoBateria;
  41.    end peticiones;
  42.  
  43.    task interfaz;
  44.    task encendido;
  45.  
  46.    bateria_telefono:bateria;
  47.  
  48.    task body encendido is
  49.    begin
  50.       loop
  51.          bateria_telefono.res_bateria;
  52.          delay 1.0;
  53.       end loop;
  54.    end encendido;
  55.  
  56.    task body interfaz is
  57.    begin
  58.       loop
  59.          put("Introduce peticion: "); get(pet.id); get(pet.numero);
  60.          if (pet.id = 'E') then
  61.             peticiones.LlamadaEntrante;
  62.          else if (pet.id = 'S') then
  63.                   peticiones.LlamadaSaliente;
  64.               else
  65.                   peticiones.EstadoBateria;
  66.               end if;
  67.          end if;
  68.          end loop;
  69.     end interfaz;
  70.  
  71.  
  72.    task body peticiones is
  73.    begin
  74.       loop
  75.          select
  76.             accept LlamadaEntrante do
  77.                put("Ha llegado una llamada del numero: "); put(pet.numero); new_line;
  78.                delay 5.0; --5 segundos de llamada
  79.             end LlamadaEntrante;
  80.          or
  81.             accept LlamadaSaliente do
  82.                put_Line("Llamada Establecida numero: "); put(pet.numero); new_line;
  83.                delay 10.0; --10 segundos de llamada
  84.             end LlamadaSaliente;
  85.          or
  86.             accept EstadoBateria  do
  87.                put("Estado de la bateria: "); put(bateria_telefono.estado); put("%"); new_line;
  88.                end EstadoBateria;
  89.          end select;
  90.       end loop;
  91.    end peticiones;
  92.  
  93.  
  94. begin
  95.   null;
  96.  
  97. end Telefono;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top