Conceptos Fundamentales de Programación: Estructuras, Algoritmos y Datos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 10,13 KB

1. Tipos de Estructuras de Control

  • Secuencial: Las instrucciones se ejecutan en el orden en que están escritas.
  • Decisión: Permite seleccionar entre diferentes caminos basados en condiciones (ej.: if, switch).
  • Repetición: Ejecuta un bloque de código varias veces (ej.: for, while, do-while).

2. Diferencias entre Estructuras de Datos Simples y Compuestas

  • Simples: Contienen un solo dato por vez (ej.: variables escalares como enteros, flotantes).
  • Compuestas: Agrupan varios datos relacionados (ej.: arreglos, registros, listas).

3. Clasificación de Estructuras Compuestas

  • Homogéneas: Todos los elementos son del mismo tipo (ej.: arreglos, matrices).
  • Heterogéneas: Los elementos pueden ser de diferentes tipos (ej.: registros).

4. Características de un Algoritmo

  • Finito: Termina en un tiempo limitado.
  • Preciso: Detalla los pasos a realizar.
  • Definido: Produce el mismo resultado bajo las mismas condiciones.

5. Métodos de Ordenamiento

  • Selección: Encuentra el elemento más pequeño y lo coloca en su posición final.
  • Burbuja: Intercambia elementos adyacentes desordenados.
  • Inserción: Inserta elementos en su posición correcta durante cada iteración.

6. Diferencias entre Pilas y Colas

  • Pilas: Operan bajo el principio LIFO (Last-In, First-Out).
  • Colas: Operan bajo el principio FIFO (First-In, First-Out).

7. Uso de Punteros

  • Definición: Una variable que almacena la dirección de memoria de otra variable.
  • Aplicaciones:
    • Crear estructuras dinámicas como listas enlazadas.
    • Manipular matrices y arreglos.
    • Pasar parámetros por referencia en funciones.

8. Etapas del Diseño de Programas

  1. Definición del Problema: Identificar entrada, salida y restricciones.
  2. Diseño del Algoritmo: Crear una solución lógica paso a paso.
  3. Codificación: Traducir el algoritmo a un lenguaje de programación.
  4. Depuración: Identificar y corregir errores en el código.
  5. Documentación: Incluir comentarios y explicaciones sobre el programa.

9. Concepto y Ventajas de los Subprogramas

  • Definición: Unidad de código reutilizable que realiza una tarea específica.
  • Ventajas:
    • Modularidad: Divide problemas complejos en partes pequeñas.
    • Reutilización: Pueden ser usados en múltiples programas.
    • Mantenimiento: Facilitan la modificación del código.

10. Aplicaciones de Archivos

  • Cuando la RAM es insuficiente: Manejo de grandes volúmenes de datos.
  • Persistencia de Datos: Guardar información para usarla en otro momento.
  • Intercambio entre Programas: Salida de un programa que sirve como entrada a otro.

11. Características de los TAD (Tipos Abstractos de Datos)

  • Encapsulamiento: Oculta la implementación interna.
  • Reutilización: El código puede ser usado en diferentes programas.
  • Independencia: Se pueden modificar sin afectar al resto del programa

12. Tipos de Archivos

  • Secuenciales: Los registros se procesan uno tras otro, sin posibilidad de saltear.
  • Indexados: Se accede directamente a los registros mediante un índice o clave.
  • Particionados: Combinación de acceso secuencial e indexado, donde los registros están agrupados en subconjuntos.

13. Operaciones Básicas con Archivos

  1. Abrir: Prepara el archivo para lectura, escritura o ambas.
  2. Cerrar: Libera los recursos asociados al archivo después de procesarlo.
  3. Leer: Recupera datos desde el archivo.
  4. Grabar: Almacena datos en el archivo.
  5. Modificar: Cambia datos existentes en un archivo.

14. Estructuras de Datos Homogéneas

  • Definición: Almacenan elementos del mismo tipo.
  • Ejemplos:
    • Vectores: Arreglos unidimensionales.
    • Matrices: Arreglos bidimensionales organizados en filas y columnas.

15. Características de Vectores

  • Definición: Conjunto finito y ordenado de elementos homogéneos.
  • Propiedades:
    • Tamaño fijo.
    • Elementos almacenados en posiciones contiguas de memoria.
    • Se acceden mediante un índice.

16. Matrices

  • Definición: Estructura homogénea que organiza datos en una tabla de doble entrada.
  • Acceso a Elementos: Se utiliza una combinación de índices para filas y columnas.

17. Variables

  • Definición: Referencia a una celda de memoria que almacena un valor cambiante.
  • Atributos:
    • Nombre: Identificador único.
    • Tipo de Datos: Conjunto de valores que puede almacenar.
    • Tiempo de Vida: Duración durante la ejecución del programa.
    • Alcance: Líneas del programa donde la variable es conocida.

18. Constantes

  • Definición: Objetos cuyo valor no cambia durante la ejecución del programa.
  • Declaración: Se define con un nombre y un valor fijo.

19. Lectura y Escritura en Memoria

  • Lectura Destructiva: Almacena un nuevo valor en la variable, eliminando el valor anterior.
  • Escritura no Destructiva: Transfiere el valor de la variable a un dispositivo externo, conservando el valor original.

20. Estructuras de Control Repetitivas

  • Incondicionales: Se conoce de antemano el número de iteraciones (ej.: bucle for).
  • Condicionales: Las iteraciones dependen de una condición evaluada (ej.: bucle while).

21. Repetición Pre y Post-condicional

  • Pre-condicional: Evalúa la condición antes de ejecutar el cuerpo del bucle (ej.: while).
  • Post-condicional: Ejecuta primero el cuerpo y luego evalúa la condición (ej.: do-while).

22. Registros

  • Definición: Estructura de datos compuesta y heterogénea que agrupa elementos relacionados bajo un único nombre.
  • Componentes:
    • Campos: Elementos individuales con nombre y tipo.

23. Subprogramas

  • Definición: Unidades de programa independientes que realizan tareas específicas.
  • Tipos:
    • Procedimientos: No devuelven valor.
    • Funciones: Devuelven un único valor.

24. Parámetros

  • Actuales: Valores enviados al subprograma en el momento de la invocación.
  • Formales: Variables definidas en el subprograma para recibir los valores de los parámetros actuales.

25. Métodos de Búsqueda

  • Secuencial: Recorrido completo del arreglo hasta encontrar el elemento deseado.
  • Binaria: Divide el conjunto ordenado en mitades, buscando el elemento en una de ellas.

26. Características de TAD (Tipos Abstractos de Datos)

  • Encapsulamiento: Los datos y las operaciones están ocultos de los usuarios.
  • Interfaz de Usuario: Define qué operaciones se pueden realizar sobre el TAD.

27. Punteros

  • Definición: Variables que almacenan la dirección de memoria de otra variable.
  • Aplicación: Se utilizan para crear estructuras dinámicas como listas y árboles.

28. Pilas

  • Definición: Estructura de datos LIFO donde el último elemento ingresado es el primero en salir.
  • Operaciones:
    • Apilar: Agregar un elemento.
    • Desapilar: Retirar el último elemento.

29. Colas

  • Definición: Estructura de datos FIFO donde el primer elemento ingresado es el primero en salir.
  • Operaciones:
    • Encolar: Insertar un elemento al final.
    • Desencolar: Retirar el primer elemento.

30. Estructuras Dinámicas

  • Definición: Estructuras que se crean y destruyen en tiempo de ejecución, como listas enlazadas.
  • Ventaja: Uso eficiente de memoria, adaptándose a las necesidades del programa.

31. Tipos de Errores en un Programa

  • Sintácticos: Violaciones a las reglas del lenguaje.
  • Lógicos: El programa no produce el resultado esperado.
  • De Ejecución: Fallos durante la ejecución, como acceso a memoria no válida.

32. Recursión

  • Definición: Técnica donde una función se llama a sí misma.
  • Componentes:
    • Caso Base: Condición que detiene la recursión.
    • Llamada Recursiva: Autoinvocación de la función con datos más simples.

Entradas relacionadas: