En este módulo, aprenderemos sobre las operaciones de entrada y salida (I/O) en Ada. La entrada y salida son fundamentales para interactuar con el usuario y manipular datos. Ada proporciona un conjunto robusto de bibliotecas para manejar I/O de manera eficiente y segura.
Contenido
- Introducción a la Entrada/Salida en Ada
- Entrada/Salida Estándar
- Entrada/Salida con Archivos
- Ejemplos Prácticos
- Ejercicios
- Introducción a la Entrada/Salida en Ada
Ada utiliza paquetes estándar para manejar operaciones de entrada y salida. Los paquetes más comunes son:
Ada.Text_IO: Para operaciones de entrada/salida de texto.Ada.Integer_Text_IO: Para operaciones de entrada/salida con enteros.Ada.Float_Text_IO: Para operaciones de entrada/salida con números de punto flotante.
- Entrada/Salida Estándar
Entrada Estándar
Para leer datos desde la entrada estándar (teclado), utilizamos el paquete Ada.Text_IO. Aquí hay un ejemplo básico:
with Ada.Text_IO; use Ada.Text_IO;
procedure Read_Input is
Input_Line : String (1 .. 100);
Last : Natural;
begin
Put("Enter a line of text: ");
Get_Line(Input_Line, Last);
Put_Line("You entered: " & Input_Line(1 .. Last));
end Read_Input;Explicación:
Putse utiliza para mostrar un mensaje sin un salto de línea.Get_Linelee una línea de texto desde la entrada estándar y la almacena enInput_Line.Put_Linemuestra el texto ingresado seguido de un salto de línea.
Salida Estándar
Para escribir datos a la salida estándar (pantalla), también utilizamos el paquete Ada.Text_IO. Aquí hay un ejemplo:
with Ada.Text_IO; use Ada.Text_IO;
procedure Write_Output is
begin
Put_Line("Hello, World!");
end Write_Output;Explicación:
Put_Linese utiliza para mostrar un mensaje seguido de un salto de línea.
- Entrada/Salida con Archivos
Ada proporciona mecanismos para trabajar con archivos de texto a través del paquete Ada.Text_IO.
Lectura de Archivos
Para leer desde un archivo, primero debemos abrir el archivo en modo lectura:
with Ada.Text_IO; use Ada.Text_IO;
procedure Read_From_File is
File : File_Type;
Line : String (1 .. 100);
Last : Natural;
begin
Open (File, In_File, "input.txt");
while not End_Of_File (File) loop
Get_Line (File, Line, Last);
Put_Line (Line (1 .. Last));
end loop;
Close (File);
end Read_From_File;Explicación:
Openabre el archivoinput.txten modo lectura (In_File).Get_Linelee una línea del archivo.End_Of_Fileverifica si hemos llegado al final del archivo.Closecierra el archivo.
Escritura en Archivos
Para escribir en un archivo, primero debemos abrir el archivo en modo escritura:
with Ada.Text_IO; use Ada.Text_IO; procedure Write_To_File is File : File_Type; begin Open (File, Out_File, "output.txt"); Put_Line (File, "This is a line of text."); Close (File); end Write_To_File;
Explicación:
Openabre el archivooutput.txten modo escritura (Out_File).Put_Lineescribe una línea de texto en el archivo.Closecierra el archivo.
- Ejemplos Prácticos
Ejemplo 1: Copiar Contenido de un Archivo a Otro
with Ada.Text_IO; use Ada.Text_IO;
procedure Copy_File is
Input_File : File_Type;
Output_File : File_Type;
Line : String (1 .. 100);
Last : Natural;
begin
Open (Input_File, In_File, "input.txt");
Open (Output_File, Out_File, "output.txt");
while not End_Of_File (Input_File) loop
Get_Line (Input_File, Line, Last);
Put_Line (Output_File, Line (1 .. Last));
end loop;
Close (Input_File);
Close (Output_File);
end Copy_File;Ejemplo 2: Leer y Escribir Números Enteros
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Text_IO; use Ada.Text_IO;
procedure Read_Write_Integers is
Number : Integer;
begin
Put("Enter an integer: ");
Get(Number);
Put_Line("You entered: " & Integer'Image(Number));
end Read_Write_Integers;
- Ejercicios
Ejercicio 1: Leer y Mostrar Texto
Instrucciones:
- Escribe un programa que lea una línea de texto desde la entrada estándar y la muestre en la salida estándar.
Solución:
with Ada.Text_IO; use Ada.Text_IO;
procedure Exercise_1 is
Input_Line : String (1 .. 100);
Last : Natural;
begin
Put("Enter a line of text: ");
Get_Line(Input_Line, Last);
Put_Line("You entered: " & Input_Line(1 .. Last));
end Exercise_1;Ejercicio 2: Contar Líneas en un Archivo
Instrucciones:
- Escribe un programa que cuente el número de líneas en un archivo de texto.
Solución:
with Ada.Text_IO; use Ada.Text_IO;
procedure Exercise_2 is
File : File_Type;
Line : String (1 .. 100);
Last : Natural;
Line_Count : Natural := 0;
begin
Open (File, In_File, "input.txt");
while not End_Of_File (File) loop
Get_Line (File, Line, Last);
Line_Count := Line_Count + 1;
end loop;
Close (File);
Put_Line("Number of lines: " & Natural'Image(Line_Count));
end Exercise_2;Conclusión
En esta sección, hemos cubierto los conceptos básicos de entrada y salida en Ada, incluyendo cómo leer y escribir desde y hacia la entrada/salida estándar y archivos. Estos fundamentos son esenciales para cualquier programa que necesite interactuar con el usuario o manipular datos externos. En el próximo módulo, exploraremos el manejo de archivos en mayor profundidad y aprenderemos a trabajar con diferentes tipos de datos.
Curso de Programación en Ada
Módulo 1: Introducción a Ada
Módulo 2: Conceptos Básicos
- Variables y Tipos de Datos
- Operadores y Expresiones
- Estructuras de Control
- Bucles en Ada
- Subprogramas: Procedimientos y Funciones
Módulo 3: Tipos de Datos Avanzados
Módulo 4: Programación Modular
Módulo 5: Concurrencia y Programación en Tiempo Real
Módulo 6: Temas Avanzados
Módulo 7: Mejores Prácticas y Optimización
- Estilo de Código y Mejores Prácticas
- Depuración y Pruebas
- Optimización del Rendimiento
- Consideraciones de Seguridad
