introducciÓn a la informÁtica 2002-20031 tema 5: programación de ordenadores asignatura:...

Post on 28-Jan-2016

228 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

1

Tema 5: Programación de ordenadores

Asignatura: Introducción a la Informática

2º CC Ambientales

Universidad Rey Juan Carlos

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

2

Objetivos

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 2002-2003

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 2002-2003

4

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

5

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

6

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

7

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

8

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

9

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

10

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

11

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

12

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

13

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

14

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

15

5.1 Fundamentos de programación

CONCEPTOS BÁSICOS: Ejemplo de ALGORITMO: Determinar si

un número es par:1. Leer N2. Si N=2 Escribe: “es par”3. Si N=1 Escribe: “es impar”4. Si N=1 o N=2 ir a 75. N=N-26. Ir a 27. Fin del procedimiento

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

16

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

17

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

18

5.1 Fundamentos de programación

CONCEPTOS 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 2002-2003

19

5.2 Lenguajes de programación

LENGUAJES DE PROGRAMACIÓN: Tipos:

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 2002-2003

20

5.2 Lenguajes de programación

LENGUAJES DE PROGRAMACIÓN: Evolució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 2002-2003

21

5.2 Lenguajes de programación

LENGUAJE 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 2002-2003

22

5.2 Lenguajes de programación

LENGUAJE 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 2002-2003

23

5.2 Lenguajes de programación

LENGUAJE MÁQUINA: Ejemplo:

1100 1 011 1011 : Suma (1100) indirecta (1) del contenido de la dirección (011 10112 = 5910) con el acumulador.

1010 0 000 0000 : Desplaza hacía la derecha (1010) el contenido del acumulador.

0000 0 101 1101 : Carga el acumulador (0000) con el contenido de la dirección de memoria (101 11012 = 9310)

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

24

5.2 Lenguajes de programación

LENGUAJE 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 2002-2003

25

5.2 Lenguajes de programación

LENGUAJE 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 2002-2003

26

5.2 Lenguajes de programación

LENGUAJE 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 2002-2003

27

5.2 Lenguajes de programación

LENGUAJES 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 2002-2003

28

5.2 Lenguajes de programación

LENGUAJES 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 2002-2003

29

5.2 Lenguajes de programación

LENGUAJES 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 2002-2003

30

5.2 Entornos de programación ENTORNO 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 2002-2003

31

5.3 Organización de los programas

TIPOS 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 2002-2003

32

5.3 Organización de los programas

TIPOS DE DATOS:Clases de tipos de datos:

ConstantesVariables

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 2002-2003

33

5.3 Organización de los programas

TIPOS 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 2002-2003

34

5.3 Organización de los programas

TIPOS 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 2002-2003

35

5.3 Organización de los programas

TIPOS 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 2002-2003

36

5.3 Organización de los programas

Tabla ASCII-DOS

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

37

5.3 Organización de los programas

Tabla ASCII-WIN

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

38

Decimal value Symbol Decimal value Symbol

64 blank 108 %

74 ó 109 _

75 . 110 >

76 < 111 ?

77 ( 122 :

78 + 123 #

79 | 124 @

80 & 125 '

90 ! 126 =

91 $ 127 "

92 * 129-137 a-i

93 ) 145-153 j-r

94 ; 162-169 s-z

95 ` 193-201 A-I

96 - 209-217 J-R

97 / 226-233 S-Z

Tabla EBCDIC

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

39

5.3 Organización de los programas

TIPOS 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)

0 0 0 0 0 1 1

0 1 0 1 1 1 1

1 0 0 1 1 1 0

1 1 1 1 0 0 0

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

40

5.3 Organización de los programas

TIPOS 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 2002-2003

41

5.3 Organización de los programas

TIPOS 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 originalEjemplo : type dígito = 0..9;

minúsculas = ‘a’..’z’;

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

42

5.3 Organización de los programas

TIPOS 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 2002-2003

43

5.3 Organización de los programas

TIPOS 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 2002-2003

44

5.3 Organización de los programas

TIPOS 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)::frasefrase = ‘Ciencias Ambientales’

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

45

5.3 Organización de los programas

TIPOS 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',10000000,'sueldo',345000);

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

46

5.3 Organización de los programas

TIPOS 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 2002-2003

47

5.3 Organización de los programas

TIPOS 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 2002-2003

48

5.3 Organización de los programas

ALGORITMOS:

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 2002-2003

49

5.3 Organización de los programas

ALGORITMOS:

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 2002-2003

50

5.3 Organización de los programas

ALGORITMOS:

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 2002-2003

51

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

52

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

53

5.3 Organización de los programas

REPRESENTACIÓN DE ALGORITMOS: Pseudocódigo

Ejemplo: Suma de un numero variable de datos:

Suma = 0

lee (dato)

mientras (dato <> 0)

suma = suma + dato

lee (dato)

fin mientras

escribe (‘La suma total es = ‘, Suma)

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

54

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

55

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

56

5.3 Organización de los programas

REPRESENTACIÓN DE ALGORITMOS: Organigramas o diagramas de flujo

Símbolos:

Asignación:

Terminal:

M = 3

Inicio Fin

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

57

REPRESENTACIÓN DE ALGORITMOS: Organigramas o diagramas de flujo

Símbolos:

Selección:

Entrada/Salida:

5.3 Organización de los programas

SiN<>0

No

Leer Dato

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

58

Ejemplo: Suma de un numero variable de datos:

5.3 Organización de los programas

Inicio

Suma = 0

Leer Dato

SiDato<>0

No

Suma = Suma + Dato

Escribir Suma

Fin

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

59

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

60

5.3 Organización de los programas

REPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman

Símbolos:

Asignación, entrada/salida

Dato = 30

Escribir Dato

...

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

61

5.3 Organización de los programas

REPRESENTACIÓN DE ALGORITMOS: Diagramas de Nassi-Schneiderman

Símbolos:

Selección

condiciónSi No

Instruc1

Instruc2

...

InstrucA

InstrucB

...

INTRODUCCIÓN A LA INFORMÁTICA 2002-2003

62

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

63

5.3 Organización de los programas

REPRESENTACIÓ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 2002-2003

64

5.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

top related