Tema 5: Programación de ordenadores

1 Tema 5: Programación de ordenadoresAsignatura: Introduc...
Author: Lucinde Rodriguez
0 downloads 3 Views

1 Tema 5: Programación de ordenadoresAsignatura: Introducción a la Informática 2º CC Ambientales Universidad Rey Juan Carlos INTRODUCCIÓN A LA INFORMÁTICA

2 INTRODUCCIÓN A LA INFORMÁTICA 2002-2003Objetivos Conocer las bases de la programación de ordenadores. Aprender las generalidades de los lenguajes y de los entornos de programación. Ver cómo se organizan los programas y los métodos (algoritmos) para resolver problemas. INTRODUCCIÓN A LA INFORMÁTICA

3 TEMARIO 5- PROGRAMACIÓN DE ORDENADORES.5.1 Fundamentos de programación. 5.2 Lenguajes y entornos de programación. 5.3 Organización de los programas: Algoritmos y estructuras de datos. Práctica: Programación en pseudocódigo INTRODUCCIÓN A LA INFORMÁTICA

4 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Instrucción: Es un conjunto de símbolos que representa una orden de operación o tratamiento para el computador. Programa: Conjunto ordenado de instrucciones que indican las tareas u operaciones que el computador debe realizar. Es la representación de un algoritmo, escrito en algún lenguaje de programación. INTRODUCCIÓN A LA INFORMÁTICA

5 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Lenguaje de programación (DEF1): Es el conjunto de símbolos y el conjunto de reglas para combinar dichos símbolos que se utilizan para realizar programas. Léxico (cjto. de símbolos permitidos). Sintaxis (reglas para realizar las construcciones del lenguaje). Semántica (reglas para determinar el significado de dichas construcciones). INTRODUCCIÓN A LA INFORMÁTICA

6 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Lenguaje de programación (DEF2): Es una notación para escribir programas. Permite comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso. Viene definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados. INTRODUCCIÓN A LA INFORMÁTICA

7 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: INSTRUCCIONES BÁSICAS: Instrucciones de asignación. Instrucciones selectivas (o bifurcaciones o condicionales) Instrucciones repetitivas (o iterativas o bucles) Instrucciones de entrada y salida (o de transferencia de datos entre periféricos y memoria central). INTRODUCCIÓN A LA INFORMÁTICA

8 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: PROGRAMACIÓN DE ORDENADORES: No todos los problemas pueden ser resueltos con un computador. Para resolver un problema con un ordenador hay que seguir las siguientes fases o etapas: 1. Planteamiento del problema: Definir bien el problema. Delimitar y aclarar todos sus aspectos. INTRODUCCIÓN A LA INFORMÁTICA

9 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: PROGRAMACIÓN DE ORDENADORES: 2. Análisis y diseño: Estudiar el problema y dividirlo en distintas sub-tareas. Decidir que estructuras de datos se van a usar. 3. Programación o codificación: Se implementan en el ordenador los datos y las tareas a realizar utilizando un lenguaje de programación. INTRODUCCIÓN A LA INFORMÁTICA

10 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: PROGRAMACIÓN DE ORDENADORES: 4. Prueba, depuración y mantenimiento: Se comprueba que el programa funciona según las especificaciones. Se corrigen los errores detectados. Se actualizan los datos o el programa (cuando sea necesario). INTRODUCCIÓN A LA INFORMÁTICA

11 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: INGENIERÍA DEL SOFTWARE: DEFINICIÓN: Disciplina que trata de los aspectos tecnológicos y burocráticos relacionados con el diseño, producción y mantenimientos sistemáticos de programas de computadores. INTRODUCCIÓN A LA INFORMÁTICA

12 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: INGENIERÍA DEL SOFTWARE: Tres elementos básicos: Métodos (cómo construir software) Planificación y estimación de proyectos Análisis de requerimientos Diseño Codificación Prueba y mantenimiento INTRODUCCIÓN A LA INFORMÁTICA

13 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: INGENIERÍA DEL SOFTWARE: Herramientas Desarrollo, integración, enlazado automático o semiautomático de los métodos. Procedimientos Definen cómo se aplican los métodos Documentos (formato, plazos) Controles para asegurar la calidad y la consistencia INTRODUCCIÓN A LA INFORMÁTICA

14 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: ALGORITMO: DEFINICIÓN: Conjunto ordenado de pasos a seguir para resolver un problema concreto, en un tiempo finito y sin ambigüedad. INTRODUCCIÓN A LA INFORMÁTICA

15 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Ejemplo de ALGORITMO: Determinar si un número es par: Leer N Si N=2  Escribe: “es par” Si N=1  Escribe: “es impar” Si N=1 o N=2 ir a 7 N=N-2 Ir a 2 Fin del procedimiento INTRODUCCIÓN A LA INFORMÁTICA

16 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Organización de datos: Ficheros (Archivos): Conjunto de información del mismo tipo (homogénea) que se guardan en unidades de almacenamiento masivo. Arrays (Vectores): Conjunto de información del mismo tipo (homogénea) guardada en memoria. INTRODUCCIÓN A LA INFORMÁTICA

17 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Organización de datos: Registros: Conjunto de información de distinto tipo (heterogénea) relacionada de forma lógica Los datos que forman un registro se denominan campos. INTRODUCCIÓN A LA INFORMÁTICA

18 5.1 Fundamentos de programaciónCONCEPTOS BÁSICOS: Organización de datos: Base de datos: Organización sistemática de datos en archivos orientada a facilitar su acceso, recuperación y actualización, por diversos programas o usuarios y que incluye las relaciones de unos datos con otros. Sistema Gestor de Bases de Datos (DBMS Data Base Management System) INTRODUCCIÓN A LA INFORMÁTICA

19 5.2 Lenguajes de programaciónTipos: Lenguajes de bajo nivel Lenguaje máquina Lenguaje ensamblador Lenguajes de alto nivel Lenguajes imperativos o procedurales Lenguajes declarativos Lenguajes funcionales o de programación lógica. INTRODUCCIÓN A LA INFORMÁTICA

20 5.2 Lenguajes de programaciónEvolución histórica: -52: L. Máquina 49-56: Ensambladores 54-...: Fortran (56), Algol (58), Cobol (59), Lisp (62), Basic (64), C (72), Pascal (73), Modula-2 (79), Ada (80)... 61-...: Entornos de programación, Prolog(72), Smalltalk (72), C++ (85), Haskell (88), Java... INTRODUCCIÓN A LA INFORMÁTICA

21 5.2 Lenguajes de programaciónLENGUAJE MÁQUINA: Es el único que entiende directamente la computadora. Las instrucciones se expresan en sistema binario (u octal o hexadecimal). Los datos se referencian por medio de las direcciones de memoria donde están. Tiene una sintaxis rígida. Depende de la CPU del ordenador. INTRODUCCIÓN A LA INFORMÁTICA

22 5.2 Lenguajes de programaciónLENGUAJE MÁQUINA: Repertorio de instrucciones reducido. La programación en este lenguaje es tediosa y complicada No admite poner comentarios => Difícil legibilidad. Permite utilizar la totalidad de los recursos. Programas muy eficientes en tiempo de ejecución y en ocupación de memoria. INTRODUCCIÓN A LA INFORMÁTICA

23 5.2 Lenguajes de programaciónLENGUAJE MÁQUINA: Ejemplo: : Suma (1100) indirecta (1) del contenido de la dirección ( = 5910) con el acumulador. : Desplaza hacía la derecha (1010) el contenido del acumulador. : Carga el acumulador (0000) con el contenido de la dirección de memoria ( = 9310) INTRODUCCIÓN A LA INFORMÁTICA

24 5.2 Lenguajes de programaciónLENGUAJE ENSAMBLADOR: Es más cercano al lenguaje humano. Usa notación simbólica o nemotécnica para representar los códigos de operación. También utiliza nombres para referenciar datos guardados en memoria. Permite el uso de comentarios. Cada instrucción en ensamblador se corresponde con una en lenguaje máquina. INTRODUCCIÓN A LA INFORMÁTICA

25 5.2 Lenguajes de programaciónLENGUAJE ENSAMBLADOR: La traducción es realizada por un programa traductor llamado ensamblador. Posee la mayoría de los inconvenientes del lenguaje maquina: Baja portabilidad. Formato de instrucciones rígido. Repertorio reducido. INTRODUCCIÓN A LA INFORMÁTICA

26 5.2 Lenguajes de programaciónLENGUAJE ENSAMBLADOR: Ejemplo: SUM Coste : Suma (SUM) del contenido de la dirección de memoria (Coste) con el acumulador. DED Acum : Desplaza hacía la derecha (DED) el contenido del acumulador. CAR Numero : Carga el acumulador (CAR) con el contenido de la dirección de memoria (Numero) INTRODUCCIÓN A LA INFORMÁTICA

27 5.2 Lenguajes de programaciónLENGUAJES DE ALTO NIVEL: CARACTERÍSTICAS: Son independientes de la arquitectura física del computador. Una instrucción se traduce en varias instrucciones en lenguaje máquina. Utilizan una nomenclatura cercana a la usada por las personas. Facilita la escritura y lectura de programas. INTRODUCCIÓN A LA INFORMÁTICA

28 5.2 Lenguajes de programaciónLENGUAJES DE ALTO NIVEL: CARACTERÍSTICAS: Las instrucciones se expresan por medio de texto (inglés) con caracteres alfanuméricos y caracteres especiales (+, -, * , / , = ...). Dispone de instrucciones complejas, para todo tipo de operaciones aritméticas, para entrada/salida de datos... Hay una gran cantidad y variedad de lenguajes de alto nivel. INTRODUCCIÓN A LA INFORMÁTICA

29 5.2 Lenguajes de programaciónLENGUAJES DE ALTO NIVEL: Ejemplo (Matlab): function cuadrado % Este programa hace cuadrados de 1 a 10: for i=1:10 disp([i i^2]) end INTRODUCCIÓN A LA INFORMÁTICA

30 5.2 Entornos de programaciónENTORNO DE PROGRAMACIÓN: Es el software que integra varias programas para el desarrollo de aplicaciones. Facilitan las tareas de diseño codificación prueba depuración y mantenimiento. Ejemplos: Delphi, Visual Basic, Visual C++, JBuilder,… INTRODUCCIÓN A LA INFORMÁTICA

31 5.3 Organización de los programasTIPOS DE DATOS: Dato: Cualquier objeto manipulable por el ordenador. Rango: Cjto. de valores que puede tomar Operaciones primitivas: Operaciones que es posible realizar con los datos Operadores que se les pueden aplicar Tipos de datos: Conjunto de funciones externas e internas y de transformaciones definidas sobre el conjunto de datos INTRODUCCIÓN A LA INFORMÁTICA

32 5.3 Organización de los programasTIPOS DE DATOS: Clases de tipos de datos: Constantes Variables Clasificación: Datos simples Numéricos (enteros, reales, etc), caracteres, lógicos o booleanos, enumerados y subrangos. Datos compuestos Arrays (vectores), cadenas de caracteres, registros... INTRODUCCIÓN A LA INFORMÁTICA

33 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Numéricos: Tipo entero: Representación del conjunto de los números enteros. Rango: subconjunto de enteros.(2n-1 - 1, -2 n-1) Operaciones/operadores: Aritméticos: + , - , *, /, Div, Mod, Abs, Sqr, Ln, Exp... Relacionales: =, <>, >=, >, <=, < INTRODUCCIÓN A LA INFORMÁTICA

34 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Numéricos: Tipo real: Representación del conjunto de los números reales. Rango: subconjunto de reales. N=M*BE Operaciones/operadores: Aritméticos: Igual que enteros más Trunc, Round... Relacionales: =(*), <>(*), >=, >, <=, < (*) Estos operadores no se suelen usar debido a la falta de precisión en la representación. INTRODUCCIÓN A LA INFORMÁTICA

35 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Caracteres: Representa elementos de un conjunto finito y ordenado de caracteres. Conjuntos usuales: ASCII American Standard Code for Information Interchange EBCDIC Extended Coded Decimal Interchange Code Operadores: Length, strcat Relacionales: =, <>, >=, >, <=, < INTRODUCCIÓN A LA INFORMÁTICA

36 5.3 Organización de los programasTabla ASCII-DOS INTRODUCCIÓN A LA INFORMÁTICA

37 5.3 Organización de los programasTabla ASCII-WIN INTRODUCCIÓN A LA INFORMÁTICA

38 INTRODUCCIÓN A LA INFORMÁTICA 2002-2003Tabla EBCDIC Decimal value Symbol Decimal value Symbol blank % ó _ > < ? ( : # | @ & ' ! = $ " * a-i ) j-r ; s-z ` A-I J-R / S-Z INTRODUCCIÓN A LA INFORMÁTICA

39 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Booleanos (lógicos): Representan solo dos valores: Verdadero (True) o Falso (False). Rango: Dos valores Operaciones/operadores: AND, OR, NOT, XOR, NAND Op1 Op2 AND OR XOR NAND NOT (Op1) INTRODUCCIÓN A LA INFORMÁTICA

40 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Enumerados: Representan a un conjunto finito de valores definidos explícitamente. Ejemplo: Type Genero = (dramatica, comica, suspense, terror). Operaciones/Operadores: Pred, Succ. Ejemplo: Pred (comica) = dramatica Succ(comica) = suspense INTRODUCCIÓN A LA INFORMÁTICA

41 5.3 Organización de los programasTIPOS DE DATOS: Datos simples Subrangos: Se definen a partir de los tipos enteros, carácter o enumerados, dando un rango entre un valor mínimo y un máximo de uno de esos tipos. Rango: [Valor mínimo...Valor Máximo] Operaciones/Operadores: Los mismos que tiene el tipo original Ejemplo : type dígito = 0..9; minúsculas = ‘a’..’z’; INTRODUCCIÓN A LA INFORMÁTICA

42 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Son tipos de datos construidos a partir de otros tipos de datos. Arrays (vectores o matrices): Colección ordenada de datos del mismo tipo. Acceso a los datos: Mediante índice(s) que determinan de manera unívoca un elemento. Ejemplo: Pascal: var Matriz : array [1..10,1..4] of real C : float Matriz[10,4] Acceso: Matriz [7,3] INTRODUCCIÓN A LA INFORMÁTICA

43 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Arrays (vectores o matrices): Es una estructura de datos estática. Los elementos se almacenan en memoria ocupando un área contigua. Ejemplo: El elemento i,j de una matriz MxN estará en la posición: Posición = Posición base + (i -1) * N + (j - 1) INTRODUCCIÓN A LA INFORMÁTICA

44 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Cadena de caracteres (Strings): Secuencia ordenada de caracteres. Operaciones: Concatenación Extracción de una subcadena Comparación de cadenas Longitud de la cadena Ejemplo: (Fortran) character(len=50)::frase frase = ‘Ciencias Ambientales’ INTRODUCCIÓN A LA INFORMÁTICA

45 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Registros (Records):Conjunto de información de distinto tipo (heterogénea) relacionada lógicamente. Los datos que forman un registro se denominan campos. Cada campo se identifica por un nombre Ejemplo (Matlab) empleado=struct('nombre','Juan','Apellido1','Fernandez',... 'Apellido2','Garcia','dni', ,'sueldo',345000); INTRODUCCIÓN A LA INFORMÁTICA

46 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Listas: Colección con un numero variable de datos del mismo tipo, ordenados de manera lineal. Estructura dinámica. Cada elemento tiene un predecesor, excepto el primero, y un sucesor, salvo el último. INTRODUCCIÓN A LA INFORMÁTICA

47 5.3 Organización de los programasTIPOS DE DATOS: Datos compuestos o estructurados Listas: Operaciones: Añadir un elemento Eliminar un elemento Acceder a un elemento Saber si la lista esta vacía INTRODUCCIÓN A LA INFORMÁTICA

48 5.3 Organización de los programasALGORITMOS: Conjunto ordenado de pasos a seguir para resolver un problema concreto, en un tiempo finito y sin ambigüedad. Acciones bien definidas Secuencia finita y ordenada Tiempo finito INTRODUCCIÓN A LA INFORMÁTICA

49 5.3 Organización de los programasALGORITMOS: Características: Precisión Repetitividad Finitud. Propiedad: Es independiente del lenguaje de programación en el que se implemente y de la computadora en la que se ejecute. INTRODUCCIÓN A LA INFORMÁTICA

50 5.3 Organización de los programasALGORITMOS: Para resolver un mismo problema se pueden definir varios algoritmos. Factores para decidir que algoritmo usar: Tiempo que tarda en hallar la solución Recursos utilizados para implantar el algoritmo. INTRODUCCIÓN A LA INFORMÁTICA

51 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Existen diferentes métodos: Pseudocódigo o lenguaje de descripción de algoritmos Organigramas o diagramas de flujo Diagramas de Nassi-Schneiderman (N-S) (o diagramas de Chapin) INTRODUCCIÓN A LA INFORMÁTICA

52 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Pseudocódigo o lenguaje de descripción de algoritmos: Es un conjunto pequeño y completo de sentencias mediante las cuales podemos expresar todas las instrucciones básicas. Reglas: Cada identificador (variable, constante...) debe tener un nombre significativo Cada sentencia debe ir en una línea Los nombres de las sentencias son únicos. INTRODUCCIÓN A LA INFORMÁTICA

53 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Pseudocódigo Ejemplo: Suma de un numero variable de datos: Suma = 0 lee (dato) mientras (dato <> 0) suma = suma + dato fin mientras escribe (‘La suma total es = ‘, Suma) INTRODUCCIÓN A LA INFORMÁTICA

54 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Pseudocódigo Ventajas sobre las representaciones gráficas Es más compacto Más fácil de escribir Más fácil de traducir a un lenguaje de programación concreto. INTRODUCCIÓN A LA INFORMÁTICA

55 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Organigramas o diagramas de flujo Herramienta gráfica de descripción de algoritmos fácil y extendida. Los símbolos representan acciones Las flechas representan el orden de ejecución. INTRODUCCIÓN A LA INFORMÁTICA

56 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Organigramas o diagramas de flujo Símbolos: Asignación: Terminal: M = 3 Inicio Fin INTRODUCCIÓN A LA INFORMÁTICA

57 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Organigramas o diagramas de flujo Símbolos: Selección: Entrada/Salida: Si N<>0 No Leer Dato INTRODUCCIÓN A LA INFORMÁTICA

58 5.3 Organización de los programasEjemplo: Suma de un numero variable de datos: Inicio Suma = 0 Leer Dato Si Dato<>0 Suma = Suma + Dato No Escribir Suma Fin INTRODUCCIÓN A LA INFORMÁTICA

59 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman Es otra manera gráfica de representar algoritmos. Facilita la utilización de las técnicas de programación estructurada. Solo posee símbolos y el flujo del programa es de arriba abajo. INTRODUCCIÓN A LA INFORMÁTICA

60 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman Símbolos: Asignación, entrada/salida Dato = 30 Escribir Dato ... INTRODUCCIÓN A LA INFORMÁTICA

61 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman Símbolos: Selección condición Si No Instruc1 Instruc2 ... InstrucA InstrucB INTRODUCCIÓN A LA INFORMÁTICA

62 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman Símbolos: Repetición condición Instrucción 1 Instrucción 2 .... INTRODUCCIÓN A LA INFORMÁTICA

63 5.3 Organización de los programasREPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman Ejemplo: Suma = 0 Leer Dato Mientras Dato <> 0 Suma = Suma + Dato Leer Dato Escribir Suma INTRODUCCIÓN A LA INFORMÁTICA

64 INTRODUCCIÓN A LA INFORMÁTICA 2002-20035.5 REFERENCIAS ”Fundamentos de Informática” Luis A. Ureña- Antonio M. Sanchez... Ed. RA-MA 1997 “Introducción a la Informática” A. Prieto, A. Lloris ... Ed. McGrawHill 1997 INTRODUCCIÓN A LA INFORMÁTICA