Fundamentos de la Programación: Conceptos Clave y Metodología
Enviado por nono y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 12,41 KB
Introducción a la Programación
Fundamentos de Programación
Objetivos
- Introducir los principales conceptos relacionados con la informática.
- Definir los elementos de un sistema informático.
- Conocer los componentes básicos del hardware de un ordenador.
- Definir el software y clasificarlo.
- Conocer cómo se representa la información para que sea manipulable por el ordenador.
- Introducir la metodología para la elaboración del software.
Índice
- Conceptos Básicos
- Elementos de un sistema informático
- Soporte físico o hardware
- Soporte lógico o software
- Representación de la información
- Metodología de la programación
- Clasificación de los lenguajes de programación
- Resumen
Conceptos básicos
Informática: INFORmación autoMÁTICA. Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información por medio de ordenadores. Ciencia que abarca todos los aspectos del diseño y uso de ordenadores.
Información: Conjunto de símbolos que representan hechos, objetos o ideas.
Tipos de información:
- Datos: Conjuntos de símbolos que representan una información en forma adecuada para ser procesada.
- Instrucciones: Indican al ordenador qué debe hacer y con qué datos (procesando los de entrada o produciendo los de salida).
Conceptos básicos
Ordenador: Máquina que acepta unos datos de entrada, realiza operaciones aritméticas y lógicas y obtiene datos de salida, bajo el control de un programa previamente almacenado.
Programa
Entrada → Cálculos → Salida
Operaciones aritméticas
Operaciones lógicas
Necesidad de Hardware + Software
Conceptos básicos
Programa: Conjunto ordenado de sentencias que se dan a un ordenador indicando las operaciones que se desea que realice.
Tipos de sentencias:
- Imperativas o instrucciones: Representan una orden a ejecutar (transferencias de datos, tratamiento de datos, bifurcación y saltos).
- Declarativas: Proporcionan información sobre los datos.
Conceptos básicos
Aplicación informática: Conjunto de programas y su documentación, para la realización de un determinado tipo de trabajo.
Sistema informático: Conjunto de elementos necesarios para la realización y explotación de aplicaciones informáticas.
Elementos de un sistema informático
Hardware o soporte físico: Conjunto de componentes físicos.
Software o soporte lógico: Conjunto de programas ejecutables sobre el hardware junto con los documentos y datos asociados a los mismos.
Personal informático: Conjunto de personas relacionadas con la utilización y explotación de los ordenadores.
Soporte físico o hardware
Esquema Von Neumann (1945)
Computadora Central
CPU (Procesador)
Unidad de Control (UC)
Unidad Aritmético-Lógica (ALU)
En la actualidad también memoria caché, coprocesador
MEMORIA PRINCIPAL
Datos e instrucciones
Caché (en la actualidad)
RAM (Random Access Memory)
ROM (Read Only Memory)
MEMORIA MASIVA
Periféricos
UNIDAD DE ENTRADA/SALIDA
Unidades de entrada
Unidades de salida
Unidades de memoria masiva
Soporte lógico o software
Conjunto de programas que se ejecutan en un ordenador y su documentación asociada.
Sistema operativo: Conjunto de programas que controla directamente los recursos de un ordenador proporcionando una máquina virtual más fácil de utilizar que el hardware subyacente.
Soporte lógico o software
Capas de software
Software de aplicación
Traductores, Cargadores,…
S.O.
Hardware
Soporte lógico o software
Lenguaje de programación: Lenguaje utilizado para la escritura de los programas.
Elementos del lenguaje:
- Léxico o vocabulario: Conjunto de símbolos constitutivos (palabras).
- Sintaxis o gramática: Conjunto de reglas para la construcción de las sentencias correctas.
- Semántica: Conjunto de reglas que asocian significado a las construcciones correctas del lenguaje.
Soporte lógico o software
Lenguaje o código máquina:
- Directamente interpretable por la UC.
- Programas muy eficientes.
- Símbolos {0, 1}, complejo.
- No permite uso de comentarios, programas poco legibles.
- Repertorio de instrucciones muy limitado y formato muy rígido.
- Muy dependiente del hardware (específico para cada procesador), programas poco portables.
- Necesidad por parte del programador de conocer direcciones de memoria y resto de unidades físicas.
Soporte lógico o software
Lenguajes ensambladores y macroensambladores:
- Notación simbólica para representar la operación.
- Uso de direcciones simbólicas de memoria.
- Se pueden incluir comentarios.
- En macroensambladores existen macros o módulos que permiten ampliar el repertorio de instrucciones.
- Los programas resultantes necesitan traducción.
Soporte lógico o software
Lenguajes de alto nivel:
- Vocabulario amplio (caracteres alfabéticos, numéricos y especiales).
- Permiten uso de variables.
- Repertorio de instrucciones amplio.
- Casi independientes del hardware.
- Permite uso de comentarios (se aumenta la legibilidad).
- Los programas resultantes necesitan traducción.
Soporte lógico o software
Traductor: Software que traduce programas escritos en un lenguaje de programación a otro.
Tipos:
- Compiladores: Traducen globalmente un programa escrito en un determinado lenguaje (fuente) y producen como salida el programa escrito en otro lenguaje (objeto).
- Intérpretes: Traducen y ejecutan una a una las sentencias de un programa pero sin generar un nuevo programa traducido (no generan código o programa objeto).
Representación de la información
Codificación en sistema binario {0,1}
Bit: Unidad mínima de información. Representa la información correspondiente a la ocurrencia de un suceso de entre dos posibilidades distintas.
Byte: Cantidad mínima de información para representar un carácter. Se suele tomar como 8 bits.
Todos los datos se convierten a su representación binaria.
Representación de la información
Múltiplos
Bytes o bits
Kilo 2^10
Mega 2^20 | 2^10 Kilo
Giga 2^30 | 2^10 Mega
Tera 2^40 | 2^10 Giga
Peta 2^50 | 2^10 Tera
Exa 2^60 | 2^10 Peta
Representación de la información
Código binario:
19 = 10011
26 = 11010
19/2 9 1
9/2 4 1
4/2 2 0
2/2 1 0
1 1
se lee de abajo arriba: 10011
26/2 13 0
13/2 6 1
6/2 3 0
3/2 1 1
1 1
se lee de abajo arriba: 11010
Todos los datos se convierten a información numérica, luego a binario y se almacenan.
Metodología de la programación
El proceso de la programación es un proceso de resolución de problemas.
- Definición (¿Qué?)
- Análisis del problema
- Desarrollo (¿Cómo?)
- Ingeniería del Software
- Diseño del algoritmo
- Codificación a un lenguaje de programación
- Pruebas: depuración, verificación y validación
- Mantenimiento (Mejoras y correcciones)
Definición del problema
Tener claro las Entradas, Salidas e intentar buscar la relación entre ellas.
Una buena definición es esencial para obtener una solución correcta.
Ejemplo Problema: Diseñar un programa que calcule el área de un rectángulo.
// Programa AreaRectangulo
// Entradas: la base y la altura del rectángulo
// Salidas: el área del rectángulo
// Relación: el área es el producto de la base por la altura
Desarrollo
Diseño: desarrollo de un algoritmo o conjunto finito de acciones para resolver un problema (fundamental en problemas complejos).
Codificación: expresar las acciones del algoritmo con un lenguaje de programación y así obtenemos un programa (vamos a utilizar C++).
Pruebas: ejecutar el programa dándole valores a los datos de entrada para comprobar si devuelve bien la salida (ver si resuelve el problema).
Mantenimiento
- Necesidad de realizar correcciones a errores aparecidos cuando el software se está utilizando.
- Necesidad de ampliar las funcionalidades del software.
- Necesidad de adaptación del software a nuevos entornos.
Características de los programas
Legibilidad: Programa fácil de leer y entender.
Portabilidad:
- Algoritmo: fácil codificación en cualquier lenguaje.
- Programa: ejecución en cualquier sistema.
Modificabilidad: Facilidad para hacer correcciones y mejoras.
Eficiencia: Aprovechamiento de los recursos del ordenador.
Modularidad: División en módulos con funciones bien definidas.
Estructuración: Se ha de cumplir con las reglas de la Programación Estructurada.
Estilo de programación
Objetivo: hacer el algoritmo/programa más legible.
Elementos de estilo:
- Uso de comentarios.
- Código autodocumentado.
- Código con formato.
- Uso de constantes.
Clasificación de los lenguajes de programación
Según su nivel:
- Lenguajes de bajo nivel: lenguajes máquina.
- Lenguajes de nivel medio: ensambladores y macroensambladores.
- Lenguajes de alto nivel.
Según el estilo de programación:
- Imperativos o Procedurales:
- Estructurados: PASCAL, C,…
- No estructurados: Basic.
- Orientados a objetos: C++, Java, Eiffel …
- Declarativos:
- Funcionales: LISP.
- Lógicos: PROLOG.
Clasificación de los lenguajes de programación
Según su campo de aplicación:
- Científicos: FORTRAN, ALGOL (primeros en surgir para aplicaciones de defensa y científicas, finales de los 50).
- Gestión: COBOL, RPG (empresas para gestión, almacenamiento, recuperación y presentación de datos).
- Enseñanza: BASIC, PASCAL (necesidad de formar programadores) (luego se convierten en lenguajes de propósito general y sus sucesores Visual Basic y Delphi).
- Programación de sistemas: C (programación de sistemas operativos) y C++.
- Tratamiento de datos: SQL, XML.
- Composición de documentos: HTML.
- Lenguajes de script: Perl, PHP, javaScript (para dinamización de documentos HTML y aplicaciones de servidores de internet).
- Tratamiento de cadenas: Forth, Modula-2, Python, TCL.
- Propósito General: Pascal, C++, Smalltalk, C#, Limbo, ADA, Basic, C, Java.
Resumen
- Conceptos básicos.
- Hardware + Software.
- Traductores: Compiladores e intérpretes.
- Proceso de programación:
- Definición → Análisis del problema → Diseño (Algoritmo) → Codificación (Programa) → Pruebas.
- Clasificación de los lenguajes de programación.