UNIDAD II: ALGORITMOS Y LENGUAJES Hemos visto: Computación e Informática: definiciones. Entidades Sistema Informático: hardware, software y peopleware. Sistema Operativo, Aplicaciones y Sistemas de Desarrollo. Veremos hoy: Algoritmos y Lenguajes (FORTRAN).
SISTEMAS INFORMÁTICOS – ENTIDAD LÓGICA SOFTWARE Nos proponemos desarrollar programas que implementen métodos numéricos para la resolución de problemas. Esas son nuestras: APLICACIONES LENGUAJE FORTRAN SEUDOCODIGO máquina, bajo, alto imperativo, objeto interprete, compilado máquina, bajo, alto imperativo, objeto interprete, compilado SISTEMA DESARROLLO (LENGUAJE)
Generación del algoritmo. CONCEPTO DE PROGRAMA PROGRAMA DEFINICIÓN Serie de instrucciones que indican de forma precisa y exacta al computador qué tiene que hacer. LENGUAJES DE PROGRAMACIÓN La comunicación con el computador se realiza utilizando un lenguaje determinado, un lenguaje de programación. Semántica se refiere a lo que se puede decir (contenido). Sintaxis se refiere a como hay que decirlo (continente). PASOS PARA CREAR UN PROGRAMA Generación del algoritmo. Generación del código fuente. Compilación a objeto. Ligar las llamadas a funciones no resueltas.
CONCEPTO DE ALGORITMO ALGORITMO DEFINICIÓN Un conjunto finito, ordenado de reglas o instrucciones bien definidas, tal qué siguiéndolas paso a paso se obtiene la solución a un dado problema. ENTRADA INFORMACIÓN PROCESO SALIDA QUE BUSCAMOS: EFICAZ: resuelva el problema mínimo que debe ser. EFICIENTE: recursos utilizados memoria (espacio) y tiempo
INTRODUCCIÓN A LA PROGRAMACIÓN Un lenguaje de programación definimos un programa como un conjunto de sentencias. SENTENCIAS ENTENDEMOS Una sentencia es una aserción matemática o lógica. SENTENCIAS CLASIFICACIÓN Declaración NO implican operación matemática o lógica. Ejecutables SI implican operación matemática o lógica. Comentario ignoradas por el computador SENTENCIAS CONSTRUCCIÓN Datos Instrucciones Operadores
DATOS PROGRAMA OPERACIONES SOBRE DATOS ESTRUCTURAS DE DATOS DATOS DATOS PRIMITIVOS TIPOS DE DATOS PRIMITIVOS ENTEROS NUMÉRICOS REALES CARACTERES NO NUMÉRICOS LÓGICOS
VARIABLES Y CONSTANTES ENTENDEMOS Datos que pueden VARIAR su VALOR. CONSTANTES ENTENDEMOS Datos que NO pueden VARIAR su VALOR. NOMBRE Y TIPO (Datos Primitivos) VARIABLES Ej.: total, cuenta, suma, apellido. CONSTANTES Ej.: 1.0, CARLOS, verdadero, 67, Carlos
INSTRUCCIONES ASIGNACIÓN total = 5.0 total 5.0 total total + 1.0 Nombre_de_variable expresión ENTRADA/SALIDA leer escribir Nos referiremos a los DISPOSITIVOS POR DEFECTO (hardware): leer (desde teclado) escribir (a la pantalla – monitor)
PROGRAMACIÓN ESTRUCTURADA INSTRUCCIONES RAMIFICACIÓN CONDICIONES o DECISIONES Concepto de PREDICADO CONDICIONES o DECISIONES REPETICIONES, BUCLES o ITERACIONES REPETICIONES, BUCLES o ITERACIONES CONDICIÓN + SALTO INCONDICIONAL IR A rompe la secuencia PROGRAMACIÓN ESTRUCTURADA
OPERADORES Suma + Resta – Multiplicación * División / Exponenciación **, ^ Resto % ARITMÉTICOS Igual == Distinto != Mayor > Menor < Mayor o igual >= Menor o igual <= RELACIONALES Incremento unidad ++ Decremento unidad – – IN/DECREMENTO “y” lógico && “o” lógico II “no” lógico ! LÓGICOS PRECEDENCIA
INTRODUCCIÓN A LA PROGRAMACIÓN Tenemos los elementos del LENGUAJE: DATOS, INSTRUCCIONES y OPERADORES. ¿Dado un PROBLEMA, definido el ALGORITMO como vamos a construir el PROGRAMA? Todo programa con un único punto de entrada y un único punto de salida, cuyas sentencias se alcancen en algún momento y que no posea bucles infinitos (PROGRAMA PROPIO) se puede construir con tres constructores elementales: SECUENCIA, SELECCIÓN y BUCLE. Teorema de la ESTRUCTURA
FIN Clasificaciones: Manera de ejecutar una aplicación Intérpretes: existe un proceso adicional al programa, que se encarga de ir traduciendo las sentencias del programa a lenguaje de máquina. Compiladores: el proceso de traducción a código de máquina se realiza antes de la ejecución. Esto aumenta considerablemente la eficiencia, a costa de pérdida en la flexibilidad durante el desarrollo de un programa. Ambientes de programación: Son ambientes ricos para el programador, facilitando la tarea de desarrollo, depuración y prueba de un programa. FIN