TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte
Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad, la noción de programación se encuentra muy asociada a la creación de aplicaciones informáticas y videojuegos; es el proceso por el cual una persona desarrolla un programa valiéndose de una herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, tales como C++, Java y Python) y de otra que sea capaz de traducirlo a lo que se conoce como lenguaje de máquina, el cual puede ser entendido por una CPU.
Qué es un lenguaje de programación? Un lenguaje de programación sirve para especificar las secuencias de instrucciones que debe interpretar una CPU. Cada equipo según su diseño entiende un conjunto de instrucciones elementales llamado lenguaje máquina. Lenguajes de bajo nivel: están muy próximos al lenguaje máquina. El lenguaje ensamblador es una reformulación del lenguaje máquina que utiliza una notación abreviada (mnemotécnica) para que el programador pueda recordar sin dificultad las instrucciones de la CPU, direcciones de memoria, etc. Lenguajes de alto nivel: están pensados para que las personas puedan escribir y entender programas de una manera mucho más sencilla en comparación con los de bajo nivel. Los más difundidos: C, C++, Cobol, Java, Pyton, Pascal, Delphi, Fortran, Smalltalk, Visual Basic, C#, PHP, ASP, etc. public class Hello{ public static void main(string[] args) { System.out.println("Hola mundo"); } }
Generaciones de lenguajes Primera generación: Dependen totalmente de la maquina. Lenguaje máquina y lenguaje ensamblador. Segunda generación(finales de los 50 y principios de los 60): Fortran: Científico y de ingeniería. Cobol: Aplicaciones de procesamiento de datos. Algol: Predecesor de los lenguajes de 3ª generación. Basic: Originalmente para enseñar a programar. Tercera generación(hacia los años 70 crisis del software): Lenguajes de programación estructurada. Posibilidades procedimentales y de estructura de datos. Propósito general: Pascal: Bloques estructurados, tipificación de datos. C: Originalmente para sistemas, gran flexibilidad. Ada: Para aplicaciones de tiempo real.
TEMA 4 - INICIACIÓN A LA PROGRAMACIÓN Generaciones de lenguajes Tercera generación (hacia los años 70 crisis del software): Orientados a objetos: Smalltalk. Eiffel. C++. Java. Especializados(sintaxis diseñada para una aplicación particular) LISP: demostración de teoremas. Prolog: inteligencia artificial. Apl: tratamiento de vectores y matrices. Cuarta generación: Alto nivel de abstracción. No es necesario detalles algorítmicos. Ejemplo: SQL (orientados a tratamiento de datos.)
Qué necesitamos para definir un lenguaje de programación? Conjunto de símbolos y palabras clase utilizables. Reglas gramaticales para construir sentencias sintáctica y semánticamente correctas (instrucciones y órdenes). Sintaxis: Conjunto de normas que dicen cómo hay que escribir las sentencias del lenguaje. Semántica: Interpretación de las sentencias. Indica el significado de las mismas. Algoritmos, programas y codificación. Un algoritmo es un procedimiento para resolver un problema de manera sistemática. Un problema puede ser resuelto por dos algoritmos diferentes, dando un mismo resultado pero pueden presentar distinto coste computacional. Un programa es una versión particular de un algoritmo descrito en un lenguaje de programación determinado. Al proceso de escribir un programa que ejecute un algoritmo determinado se le denomina codificación. Características que debe cumplir todo algoritmo: Preciso: Se ha de poder interpretar sin ambigüedad. Definido: Si se sigue dos veces, se debe obtener idénticos resultados. Finito:Sehadeterminarenalgúnmomento,esdecir,hadehacerunnúmerofinitodepasos.
Compiladores e intérpretes. Un traductor es un programa que toma como entrada un programa escrito en un lenguaje fuente y lo transforma en un programa escrito en lenguaje máquina. El proceso de conversión se denomina traducción y puede realizarse de dos formas diferentes: por interpretación o por compilación. Interprete: Es un programa que toma como entrada un programa escrito en lenguaje fuente y lo va traduciendo y ejecutando instrucción por instrucción(de una en una). Compilación: Es el proceso de traducción de programas de alto nivel a código máquina. La entrada de este proceso de traducción se denomina programa fuente y el resultado se denomina programa objeto. Ciclo de creación de un programa. si si Programa fuente Compilador Hay errores de compila_ ción? no Programa a prueba Hay errores de ejecu_ ción? no Programa correcto
Resolución de problemas. Haciendousodeunordenador,serefierealprocesoqueconsisteenpartirdeladescripcióndeunproblemay desarrollar un programa que resuelva dicho problema. Para ello se seguirán unos pasos: 1. Análisis del problema. 2. Diseño o desarrollo de un algoritmo. 3. Transformación del algoritmo en un programa(codificación). 4. Ejecución y validación del programa. Por tanto, una vez analizado el problema y obtenido el algoritmo, su transformación al programa es una mera tarea de traducción al lenguaje de programación deseado.
Pseudocódigo o lenguaje algorítmico: Es una notación algorítmica textual muy parecida al lenguaje natural. Es la aplicación de las estructuras tratadas en los puntos posteriores(1-6) disponiendo además de palabras reservadas con las que poder expresar tanto las acciones elementales como las diferentes estructuras lógicas del algoritmo. También en estas estructuras pueden utilizarse comentarios, generalmente entre los símbolos /* y */. Veamos un ejemplo: ALGORITMO nombre_algoritmo; CONSTANTES /* Sección reservada para la declaración de datos constantes usados en el algoritmo */ VARIABLES /* Sección reservada para la declaración de datos variables utilizados por el algoritmo */ INICIO /* Comienzo del cuerpo principal de acciones del algoritmo */ Acción 1; Acción 2; Acción 3; Acción N; FIN
1. Acción elemental: Una acción elemental es aquella que el ordenador es capaz de realizar de forma nativa ypuedenserdedostipos: A. Aritmético lógicas: Son operaciones que a partir de unos determinados datos, realizan un calculo aritmético (suma, resta, multiplicación, ) o un cálculo lógico (mayor que, igual que, ). Las primeras devuelven un valor numérico (4, 45,75454, )ylassegundasunvalorlógico(verdaderoofalso). B. De entrada salida: Son acciones que permiten capturar datos de entrada para su posterior tratamiento(las de entrada) y guardar los resultados de dicho tratamiento(las de salida). 2. Secuencia de acciones elementales(composición secuencial): Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente, estas se describen una detrás de otrasegúnelordenenquedebanejecutarse.seempleaelpuntoycoma ; parasepararlas. Acción 1; Acción 2; Acción n;
3. Ejecución condicional de una acción: Cuandoenunalgoritmosequiereindicarqueciertaacciónsólosedebeejecutarbajouna cierta condición se indica del siguiente modo: SI condición ENTONCES Acción; FIN SI Solo si la condición (operación lógica) es verdadera se ejecutará la acción. 4. Ejecución alternativa de una de dos acciones: En ocasiones se deben ejecutar unas acciones u otras en función de que una determinada condición se dé o no.portanto,silacondiciónsecumpleserealizarála accióna ysinosecumpleserealizarála acciónb : SI condición ENTONCES Acción A; SINO Acción B; FIN SI
5. Ejecución condicional de una de varias opciones: Otra posibilidad es escoger una acción entre varias dependiendo del valor de una determinada variable, debiendo expresarse del siguiente modo: SELECCIONAR indicador: Caso valor1: Acción 1; Caso valor2: Acción 2; Caso valor 3: Acción 3; [En otro caso: Acción X;] FIN CASO indicador tendrá un determinado valor que en caso de coincidir con alguno de los n valores provocará la ejecución de la acción asociada.
6. Ejecución múltiple de una acción: Cuando una acción o conjunto de acciones debe ejecutarse varias veces se recurre a una estructura iterativa llamada bucle. Este tipo de estructuras necesitan una condición que determine cuándo terminan las iteraciones: Condición al principio de la estructura. Condición al final de la estructura La condición de terminación ha de ser FALSA Estructura 1 MIENTRAS condición HACER Acción 1; FIN MIENTRAS Estructura 3 HACER Acción 1; MIENTRAS condición; La condición de terminación ha de ser VERDADERA Estructura 2 HASTA condición HACER Acción 1; FIN HASTA Estructura 4 HACER Acción 1; HASTA condición;
6. Ejecución múltiple de una acción: Enlasestructuras1y2,cuandoseevalúala Condición porprimeravez,siéstatomaun valortalquenopermitaejecutarla Acción (FALSOenla1yVERDADEROenla2),éstano seejecutaráningunavez,esdecir,puedeocurrirquenosellegueaejecutarnunca. En las estructuras 3 y 4, al estar la Condición al final de la construcción, la Acción se ejecutará antes de que la condición se evalúe por primera vez, por lo que aunque la Condición tome un valor tal que no se permita realizar más iteraciones, la Acción se ejecutará al menos una vez. Estructuras especiales: Cuando queremos que una acción se repita un número determinado de veces: PARA parámetro HASTA condición HACER Parámetro Acción A; MIENTRAS condición HACER FIN PARA Acción A; Operar parámetro; FIN MIENTRAS
Diagramas de flujo: Un diagrama de flujo es una representación gráfica de un algoritmo. Los elementos gráficos que emplea son los siguientes: Indicador de inicio y fin del algoritmo Operación de tratamiento de datos Operación lógica para la toma de decisiones Operación de entrada / salida (E/S) Línea de flujo Conector (Para cuando un diagrama no cabe en una página)
Del Pseudocódigo al diagrama de flujo: Inicio Acción 1; Acción 2; Acción n; Acción 1 Acción 2 Acción 3 Fin
Del Pseudocódigo al diagrama de flujo: SI condición ENTONCES Acción; FIN SI Inicio Condición NO SI Acción 1 Fin
Del Pseudocódigo al diagrama de flujo: SI condición ENTONCES Acción A; SINO Acción B; FIN SI SI Inicio Condición NO Acción A Acción B Fin
Del Pseudocódigo al diagrama de flujo: SELECCIONAR indicador: Caso valor1: Acción A; Caso valor2: Acción B; Caso valor 3: Acción C; [En otro caso: Acción X;] FIN CASO Acción A Inicio Condición Acción B Acción C Acción D Fin
Del Pseudocódigo al diagrama de flujo: MIENTRAS condición HACER Acción 1; FIN MIENTRAS Inicio Condición SI NO Acción Fin
Del Pseudocódigo al diagrama de flujo: HACER Acción 1; MIENTRAS condición; Inicio Acción SI Condición Fin NO
Del Pseudocódigo al diagrama de flujo: PARA parámetro HASTA condición HACER Inicio Acción A; FIN PARA i = 1 i < = n SI NO i = i + 1 Fin