Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación n Proximidad del lenguaje al que entiende el ordenador: n Bajo nivel: específico para cada máquina n n n Forma de traducción de los programas: n C, Fortran, Java, Pascal, Cobol, Ada, Logo, etc. Ensambladores n n Lenguaje máquina Ensamblador Alto nivel: independiente de la máquina n n Compiladores n n n De ensamblador a lenguaje máquina Traducen un programa escrito en un lenguaje de alto nivel todo de una vez. Se guarda traducido Intérpretes n n Traducen un programa escrito en un lenguaje de alto nivel de instrucción en instrucción Más fácil encontrar errores 1 Desarrollo de un programa 1. Definición del problema n 2. Desarrollo de un algoritmo n 3. n Corrección de errores lógicos Completar la documentación n n 6. Escribir las instrucciones siguiendo las reglas del lenguaje elegido Corrección de errores de sintaxis Pruebas n 5. Un procedimiento paso a paso para resolver el problema Codificación del programa n 4. Definir entradas y salidas y breve descripción de cómo transformar las entradas en salidas Manual de usuario para instalación y uso Explicación de la lógica del programa e informaciones sobre las entradas y salidas Implantación n Instalación y seguimiento Partes de un programa n n Cabecera Definiciones y declaraciones: n n n n Tipos: especifica el tipo de valor que van a tomar los datos del programa Constantes: valores que no cambian a lo largo del programa Variables: datos que pueden cambiar a lo largo del programa Código (instrucciones) n n Sentencias Subprogramas con sus propios datos y los globales 2 Estructuras lógicas de programación n Secuencia simple: n n Selección, decisión o alternativa: n n Varias instrucciones que se ejecutarán en orden Si ocurre A hacer B y en otro caso hacer C Bucle, iteración, repetitiva: n Repetir un conjunto de instrucciones un número de veces Diagramas de flujo n La estructura de un programa se puede representar mediante diagramas de flujo, donde se representan las acciones en cajas con forma de rectángulo y las condiciones como rombos. Acción n n No Cada acción tiene una vía de entrada y una de salida. Cada condición tiene una vía de entrada y dos de salida. En programación existen tres estructuras básicas: n n n n condición El flujo del programa se representa por líneas que van de un elemento a otro: n n Sí secuencia (una sentencia detrás de otra) selección (decidir si algo se hace o no) iteración (repetir una acción varias veces). Para la selección e iteración es necesario expresar las condiciones que las controlan. Estas expresiones pueden dar como resultado dos valores: sí o no, en función de que se cumpla o no la condición. Para expresar estas condiciones se utilizan los operadores lógicos estudiados en el tema de la información y su representación. 3 Diagramas de flujo Estructura secuencial Estructura de selección Estructuras repetitivas Acción 1 Sí condición No Acción Acción Acción 2 Acción 1 Acción 2 condición Sí Acción 3 condición No No Sí Hacer Acción 1 , después Acción 2 y después Acción 3 Si se cumple condición, hacer Acción 1 , si no se cumple, hacer Acción 2 Hacer Acción mientras se cumpla condición Repetir Acción hasta que se cumpla condición 4 Acciones: Lo que se puede escribir en un rectángulo n Tipos de instrucciones de acción (1): n Asignar un valor a una variable del programa: Numero = 24 n Mete en la variable numérica Numero el valor 24 Nombre = “Carlos López” n Mete en la variable de texto Nombre el valor Carlos López Letra = “a” n Mete en la variable carácter Letra, el valor a Acciones: Lo que se puede escribir en un rectángulo n Tipos de instrucciones de acción (2): n Operación aritmética n Guardar en una variable del programa el resultado de una operación Numero = dato1 * 5 n n Guarda en la variable Numero el valor que tiene el dato dato1 multiplicado por 5 Actualizar el valor de una variable; es decir, partir del valor anterior de la variable (lo que valía antes) y hacerle una operación aritmética Numero = Numero + 1 n Deja en la variable Numero el valor que tenía más 1 1 Acciones: Lo que se puede escribir en un rectángulo n Tipos de instrucciones de acción (3): n Salida de datos: enviar un mensaje a un dispositivo de salida (p. ej. a la pantalla) n Un texto Escribir “hola ¿qué tal?” n n Muestra (por pantalla, p.ej) el mensaje Hola ¿qué tal? El valor de un dato del programa (o varios) Escribir Numero, Letra n n Muestra el valor de los datos Numero y Letra El resultado de una operación Escribir Numero + 36 n n Muestra el valor del dato Numero más 36 Escribir texto y valores Escribir “el resultado es: ” Numero + 36 Acciones: Lo que se puede escribir en un rectángulo n Tipos de instrucciones de acción (y 4): n Entrada de datos: guardar en una variable del programa lo que se recibe por un dispositivo de entrada (p. ej. del teclado) Leer Numero n Guarda en la variable Numero el valor introducido (desde teclado, por ejemplo) Leer Numero, Letra n Guarda en la variable Numero el primer valor introducido y en la variable Letra el segundo 2 Condiciones: Lo que se puede escribir en un rombo n Una pregunta sobre los datos del programa cuya respuesta sea Sí o No, utilizando los operadores de comparación: =, >, <, ? , =.... O los operadores lógicos: AND, OR, NOT ¿Numero = 25? ¿Lado1 > Lado2? ¿Lado1 > Lado2 + 3 AND Lado2 < 8 ? Consideraciones adicionales: n n Tanto en los rectángulos como en los rombos, sólo se pueden escribir instrucciones como las que se han mostrado Rectángulos y rombos se unen a través de líneas que indican el flujo del programa. Siguiendo esas líneas se sabe cual va a ser la siguiente instrucción n n n n n A cada rectángulo o rombo sólo puede llegar una línea De cada rectángulo sólo puede salir una línea De cada rombo tienen que salir dos líneas: una indica cuál sería la siguiente instrucción si se cumple la condición y otra indica cuál sería la siguiente instrucción si no se cumple la condición Una línea no se puede bifurcar en más líneas, es decir una línea sólo puede ir a un rectángulo o a un rombo Dos líneas se pueden unir en una, es decir, las dos pueden llevar a la misma instrucción 3 Ejemplo n n Un programa que pida dos números enteros y los escriba ordenados de menor a mayor, y dé un mensaje de final de programa: Paso 1: determinar los datos que interviene en el programa (ponerles nombre y escoger un tipo de dato adecuado) n n n Numero1: entero Numero2: entero Paso 2: escribir el diagrama de flujo: Ejemplo n Paso 2: escribir el diagrama de flujo: Escribir “Introduce los números a comparar” Leer Numero1, Numero2 No Sí ¿Numero1 < Numero2? Escribir “Los números ordenados son:” Numero1, Numero2 Escribir “Los números ordenados son:” Numero2, Numero1 Escribir “Fin del programa” 4