Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes de Programación. 2.2 Traductores de Lenguaje. 2.3 Fases de Generación de un Programa. 2.4 Esquema General de Funcionamiento de un Programa. 3. Programas Escritos en Pseudocódigo. 4. El Lenguaje C. 4.1 Características del Lenguaje C. 4.2 Estructura Básica de un Programa en C. 4.3 Comentarios. 2 1. Conceptos Básicos 1.1 Definiciones Instrucción: Expresión formada por números, operaciones y letras que indica, en un computador, la operación que debe realizar y los datos correspondientes. Algoritmo: Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Programa: Conjunto de instrucciones en un lenguaje dado que indica a un ordenador cómo resolver un problema. De manera más informal: Algoritmo: Secuencia de instrucciones no ambigua que resuelve una tarea concreta en un tiempo finito. Programa: Codificación de uno o más algoritmos en un lenguaje de programación. Procesar: Someter datos a una serie de operaciones programadas. Al proceso de traducir o codificar un algoritmo a forma de programa se le conoce con el nombre de implementación. 3 1. Conceptos Básicos 1.2 El Proceso de Desarrollo de Software Proceso de desarrollo de software: Proceso de trabajo que debe seguir un programador a la hora de construir un programa o aplicación que resuelva cierto problema. Se divide en: Definición del problema. Implica el desarrollo y clarificación exacta de las especificaciones del problema, de los datos de entrada y de los datos de salida. Diseño del algoritmo. Describe la secuencia ordenada de pasos que conducen a la solución de un problema dado. Implementación. Codificar el algoritmo como un programa en un lenguaje de programación. Ejecución y validación del programa en el ordenador. Documentación. Tanto la definición del problema como el algoritmo y el programa deben formar parte de la documentación. Su contenido dependerá de a quién va dirigida. Mantenimiento del programa. Los programas pueden quedarse anticuados, debiendo ser revisados, ampliados y modificados. 4 2. Lenguajes de Programación 2.1. Definición y Tipos de Lenguajes Lenguaje de Programación: Conjunto de reglas, símbolos y palabras especiales utilizados para construir un programa de forma que pueda ser entendido por el ordenador. Se clasifican en: Lenguajes Máquina. Lenguajes de Bajo Nivel o Ensambladores. Lenguajes de Alto Nivel. 5 2. Lenguajes de Programación 2.1. Definición y Tipos de Lenguajes (II) Lenguaje Máquina. Es aquél que entiende directamente el ordenador ya que sus instrucciones son secuencias binarias. También se le conoce como código binario. Dificultad de desarrollo, verificación y puesta a punto de programas. El código desarrollado no es portable. Lenguajes de Bajo Nivel o Ensamblador. Está compuesto por las instrucciones del lenguaje máquina escritas mediante nemotécnicos. Es más fácil de utilizar que el anterior. El programa sigue siendo dependiente de la máquina. Requiere una fase de traducción del código fuente al programa objeto. Lenguajes de Alto Nivel. Son los más utilizados por los programadores. Mayor facilidad en el desarrollo, verificación y mantenimiento de los programas. Los programas desarrollados son portables. Requiere una fase de traducción del código fuente al programa objeto. 6 2. Lenguajes de Programación 2.2. Traductores de Lenguaje Traductores de lenguaje. Programas que traducen los programas fuente escritos en un lenguaje de alto nivel a código máquina. En algunos casos pasan por fases intermedias generando lenguaje ensamblador. Se dividen en dos categorías: Compiladores. Intérpretes. 7 2. Lenguajes de Programación 2.2. Traductores de Lenguaje (II) Compiladores: Programas que traducen un código fuente, escrito en un lenguaje de alto nivel, a un código objeto escrito en lenguaje máquina. El programa desarrollado se ejecuta tras la compilación. La fase de compilación es independiente de la fase de ejecución. Los programas compilados son más rápidos que los interpretados. Intérpretes: Programas que traducen el código fuente instrucción a instrucción a lenguaje máquina mientras lo van ejecutando. No generan un programa escrito en lenguaje máquina. Cada vez que se ejecuta el programa, este deberá ser interpretado de nuevo. Son más lentos que el mismo programa compilado. 8 2. Lenguajes de Programación 2.3. Fases de Generación de un Programa Fases de generación de un programa: Escritura del Programa Fuente Compilación SI ¿Hay errores? NO Archivos de Biblioteca Programas Objeto del Usuario Programa Objeto Enlace Programa Ejecutable SI ¿Hay errores? NO FIN 9 2. Lenguajes de Programación 2.4. Esquema de Funcionamiento de un Programa El esquema general de funcionamiento de un programa se divide en: Entrada de datos: Suele tener lugar al comienzo del programa, aunque no tiene por qué ser así. Procesamiento de la información: Una vez disponibles los datos, el programa sigue las instrucciones para operar con ellos y obtener los resultados. Salida de datos: Una vez procesada la información el programa presenta por pantalla, o por impresora, los resultados obtenidos. Entrada de Datos Proceso Salida de Resultados 10 3. Programas Escritos en Pseudocódigo Nos permite realizar un esbozo del programa final utilizando un lenguaje cercano al natural. Aunque el conjunto de palabras y símbolos de los distintos lenguajes es muy diferente, su funcionalidad es similar. Después será sencillo traducir al lenguaje elegido. Ejemplo: Dados 2 números, visualizar la suma de ambos Algoritmo en pseudocódigo Inicio • • • • Leer el primer número Leer el segundo número Calcular la suma de ambos Visualizar el resultado Fin 11 4. El Lenguaje C 4.1 Características Desarrollado en los laboratorios Bell a comienzo de los 70 por Brian W. Kernighan y Dennis M. Ritchie. Se diseñó y desarrolló para programar el S.O. Unix. Características: Lenguaje de alto nivel y de propósito general, útil para desarrollar cualquier tipo de aplicación o programa. Es el lenguaje más utilizado en ingeniería e investigación. Es un lenguaje estructurado (funciones, estructuras, bucles, etc.) que permite la programación modular. Eficiencia. Los programas ejecutables son rápidos. El código fuente es portable a muchas arquitecturas de computadores. Se encuentran compiladores de C disponibles para cualquier tipo de ordenador y S.O. Es el paso previo a otros lenguajes como C++ y Java. 12 4. El Lenguaje C 4.2 Estructura Básica de un Programa en C Estructura más básica de un programa en C: int main ( ) { instrucción 1; instrucción 2; … instrucción n; return 0; } main. Palabra reservada. Indica que el programa comienza a partir de ella. { }. Delimitan el conjunto de instrucciones que componen el programa. El programa se compone de n instrucciones que se ejecutan secuencialmente. Todas deben acabar en ; La tabulación, aunque voluntaria, es útil para hacer los programas ordenados y legibles. 13 4. El Lenguaje C 4.3 Comentarios Comentarios: Es útil documentar un programa para hacerlo más legible. Los comentarios son textos que el programador escribe para describir partes del código. Facilita la comprensión posterior por el propio programador y por otros (trabajo en equipo). Inserta información adicional de cualquier tipo. No influye en absoluto sobre el rendimiento final del programa generado. Deben ir delimitados entre /* y */ Ejemplo: /* Esto es un ejemplo de un comentario */ 14