Download Tema 2

Document related concepts

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Little man computer wikipedia , lookup

Haxe wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Transcript
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