Está en la página 1de 3

Programacin Distribuida y en Tiempo Real

EJERCICIO 1:

INSTRUCCIONES Y ESTRUCTURAS DE CONTROL


Escribir un programa en ADA con las siguientes caractersticas:
1.Inicializar una variable tipo cadena que contenga los caracteres
ABCDEFG.
2.Realizar un bucle para extraer la informacin de la cadena anterior
carcter a carcter e imprimir por pantalla en funcin del carcter
ledo:
A o B: mostrar Opcin 1.
C, D o E: mostrar Opcin 2.
F: mostrar Opcin 3.
En otro caso: mostrar Otra opcin.
3.Extender el cdigo anterior para admitir una cadena de entrada
por teclado.

with Ada.Text_IO;
use Ada.Text_IO;

procedure Ejercicio2ADA is

Max : constant Integer := 7;

--Creo la constante Max, que nos sirve como limite de la cadena a


tratar y despues la utilizo para el bucle for, tiene valor 7 porque es el
mximo numero de caracteres que tiene la cadena inicial

type TipoCadena is new String(1..Max);


CadenaMuestra : TipoCadena;

CadenaTeclado : String(1..Max);

-- Creo un procedimiento interno que nos va a ejecutar un bucle for


que ejecuta un case con las distintas opciones que nos ha dado el
ejercicio

procedure OpcionesCadena ( CadenaEntrada: in String ) is

begin

--CadenaMuestra := ("ABCDEFG");
--CadenaMuestra := CadenaEntrada;

Francisco Manuel Garca Vallejo Pgina 1 de 3


Programacin Distribuida y en Tiempo Real

for i in 1 .. Max loop

-- utilizo un bucle for que se ejecuta tantas veces como caracteres


tiene la cadena, en este caso tiene 7

case CadenaEntrada(i) is

when 'A' | 'B' => put_line ("Opcin 1");


when 'C' | 'D' | 'E' => put_line ("Opcin 2");
when 'F' => put_line ("Opcin 3");
when others => put_line ("Otra opcin");
end case;

-- utilizo un case porque contempla distintas opciones, dentro de las


opciones utilizo un OR con dos o con tres valores, adems utilizo una
unica opcin y la opcin por defecto

end loop;

End OpcionesCadena;

begin

Put_Line("Hola, Vamos a ver las opciones para la cadena ABCDEFG");

OpcionesCadena("ABCDEFG");

-- Ejecuto el procedimiento anidado Opciones Cadena para que al


recibir la cadena escriba en pantalla la distintas opciones, lo hago
primero con la cadena inicial dada en el ejercicio

Put_Line("Dime una cadena de texto de 7 caracteres como minimo


para ver las opciones?");

-- Le pido al usuario una cadena de caracteres la cual la introducir


por el teclado

Put_Line("Debe de escribir la cadena en mayscula");

-- Recomiendo que los caracteres los escriba en mayscula y porque


no contenplo caracteres en minscula

Get(CadenaTeclado);

-- Almaceno en una variable la cadena que nos ha dado por teclado


put_line(CadenaTeclado);

Francisco Manuel Garca Vallejo Pgina 2 de 3


Programacin Distribuida y en Tiempo Real

-- Visualizo la cadena con un tamao de 7 caracteres y que nos ha


dado para poder comprobar las opciones

OpcionesCadena(CadenaTeclado);

-- LLamo al procedimiento para que nos muestre las opciones que le


corresponden a la cadena que nos han dado por teclado

end Ejercicio2ADA;

Francisco Manuel Garca Vallejo Pgina 3 de 3

También podría gustarte