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