Ada language posee paquetes para poder introducir datos de tipo Character (String o Text), Flotante (Float) e Entero (Integer). Crearemos un programa que nos permita introducir datos.
Ejemplo 1. Calcular el valor futuro teniendo un monto original (valor presente), tasa de interés y un plazo de pago.
Algoritmo:
presente=0.00; tasa=0.0; periodo=0; futuro=0.0; extra=0.0 print("Monto original: ",presente); input presente; print("Tasa de interes: ",tasa); input tasa; tasa = tasa/100; print("Plazo en meses: ",plazo); input plazo; for i=1 to periodo futuro=presente*pow(1+tasa,periodo); print("Monto a pagar: ",futuro, " en el periodo: ",i); end extra=futuro-presente; print("Monto a pagar: ",futuro); print("Extra a pagar: ",extra);
Creamos el proyecto Ada y nos ubicamos en el directorio creado:
alr init --bin obtener_interes cd obtener_interes
Editamos el programa ``main`` generado con el algoritmo traducido a código Ada:
obtener_interes.adb
with Ada.Text_IO; -- Para entrada y salida de texto with Ada.Float_Text_IO; -- Para entrada y salida de números de punto flotante with Ada.Integer_Text_IO; -- Para entrada de enteros with Ada.Numerics.Elementary_Functions; -- Para la función de potencia (pow) procedure Obtener_Interes is -- Declaración de variables Presente : Float := 0.0; Tasa : Float := 0.0; Periodo : Integer := 0; Futuro : Float := 0.0; Extra : Float := 0.0; begin -- Solicitar el monto original al usuario Ada.Text_IO.Put_Line ("Monto original: "); Ada.Float_Text_IO.Get (Presente); -- Leer el valor de entrada del usuario -- Solicitar la tasa de interés al usuario Ada.Text_IO.Put_Line ("Tasa de interés (%): "); Ada.Float_Text_IO.Get (Tasa); -- Leer el valor de entrada del usuario Tasa := Tasa / 100.0; -- Convertir tasa de porcentaje a decimal -- Solicitar el plazo en meses al usuario Ada.Text_IO.Put_Line ("Plazo en meses: "); Ada.Integer_Text_IO.Get (Periodo); -- Leer el valor de entrada del usuario -- Calcular el valor futuro y mostrar resultados por cada periodo for I in 1 .. Periodo loop Futuro := Presente * Ada.Numerics.Elementary_Functions."**"(1.0 + Tasa, Float(I)); Ada.Text_IO.Put_Line ("Monto a pagar: "); Ada.Float_Text_IO.Put (Futuro, Aft => 2, Exp => 0); Ada.Text_IO.Put_Line (" en el periodo: " & Integer'Image(I)); end loop; -- Calcular el monto extra a pagar Extra := Futuro - Presente; -- Mostrar el monto total a pagar y el monto extra Ada.Text_IO.Put_Line ("Monto total a pagar: "); Ada.Float_Text_IO.Put (Futuro, Aft => 2, Exp => 0); Ada.Text_IO.New_Line; Ada.Text_IO.Put_Line ("Extra a pagar: "); Ada.Float_Text_IO.Put (Extra, Aft => 2, Exp => 0); Ada.Text_IO.New_Line; end Obtener_Interes;
Como se puede ver:
- Importamos los paquetes necesarios para introducir datos de tipo Float, Integer.
- Importamos una función matemática (pow).
- Solicitamos al usuario los valores de entrada.
- Se realizan las operaciones para calcular valor futuro y el extra a pagar.
- Se muestran los resultados en la consola.
Ejercicio 2. Un programa en Ada que nos pida introducir un Char cualquiera. Aquí omitiremos la creación de un proyecto.
leer_character.adb
with Ada.Text_IO; -- Para entrada y salida estándar procedure Leer_Character is C : Character; begin Ada.Text_IO.Put_Line ("Introduce un carácter: "); Ada.Text_IO.Get (C); -- Leer un solo carácter Ada.Text_IO.Put_Line ("Has introducido el carácter: "); Ada.Text_IO.Put (C); -- Mostrar el carácter introducido Ada.Text_IO.New_Line; end Leer_Character;
No tiene mucha explicación. Básicamente solo introcimos un caracter cualquiera.
Ejercicio 3. Un program en Ada que nos permita introducir una cadena de texto (String).
leer_string.adb
with Ada.Text_IO; -- Para entrada y salida estándar procedure Leer_String is S : String (1 .. 100); -- Declara un String de longitud fija (máximo 100 caracteres) Longitud : Natural; -- Variable para almacenar la longitud de la cadena introducida begin Ada.Text_IO.Put_Line ("Introduce una cadena de texto: "); Ada.Text_IO.Get_Line (S, Longitud); -- Leer la cadena y obtener su longitud Ada.Text_IO.Put_Line ("Has introducido: " & S (1 .. Longitud)); -- Mostrar la cadena introducida end Leer_String;
Acá introducimos una cadena de caracteres o String cualuiera.
Continuaremos con esta serie en próximas entregas.
Enlaces:
Comentarios
Publicar un comentario