algoritmos y estructuras de datos profesor: ing. luis vaca 2009 escuela superior politécnica de...

38
ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial Area de Ciencias Básicas

Upload: encarna-cuellar

Post on 11-Apr-2015

120 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

ALGORITMOS YESTRUCTURAS DE DATOS

Profesor: Ing. Luis Vaca

2009

Escuela Superior Politécnica de Chimborazo

Facultad de Ingeniería Mecánica Escuela de Industrial

Area de Ciencias Básicas

Page 2: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

GENERALIDADES

DATOEs la representación simbólica de un hecho, atributo o

característica de una entidad.Ejm: nota de un alumno, nombre de un docente, color de un

carro, etc.

INFORMACIONEs un dato útil.Ejm. El promedio final de un alumno para un curso,

número de aprobados en un examen, nombre de los primeros alumnos de cada especialidad por cada ciclo.

La información se obtiene mediante el procesamiento de los datos

Page 3: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Procesador

Entrada Salida

Algoritmo

DATOS

INFORMACION

Es realizado por el procesador el cual ejecuta un conjunto de pasos previamente definidos (algoritmo) El procesamiento de datos puede ser:

Manual

Mecanizada (uso de calculadora, sumadora, etc)

Automatizado (uso del computador)

PROCESAMIENTO DE DATOS

Operaciones que transforman datos en información

Page 4: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

PROCESAMIENTO DE DATOS AUTOMATIZADO

Entrada

DATOS

Salida

INFORMACION

Programa

Algoritmo

Procesador

Page 5: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Elementos del Computador

+

HARDWARE (elem.físicos)

SOFTWARE (programa)

Page 6: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

HARDWARE (componentes físicos)

Unidades PeriféricasDe Entrada

Ejem.TecladoMouseEscaner, etc

UnidadesPeriféricasDe Salida

Ejm.ImpresoraMonitor,Parlantes, etc.

Unidades deAlmacenamiento.

Ejem. Disquete,Discos compactos,Discos duros, etc.

Unidad deControl

UnidadAritméticaY Lógica

Memoria PrincipalRAM y ROM

UNIDAD CENTRAL DE PROCESO

Page 7: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

SOFTWARE (Conjunto de Programas)

TIPOS DE SOFTWARE:

- Sistemas operativos Ejm. DOS, Windows, Linux, etc.

- Aplicaciones de uso general Ejm. Word, Excel, Power Point, etc.

- Aplicaciones de uso específico Ejm. sistema de notas,

sistema de facturación,etc)

Programa 1

Programa 2

Programa 3

MEMORIA RAM

Page 8: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

FASES PARA LA CONSTRUCCION DE UN PROGRAMA

SOLUCION DEL PROBLEMA

IMPLEMENTACIONEN LA

COMPUTADORA

Datos

Algoritmo Program

a(Software)

Análisis del problema

Diseño del algoritmo

Verificación del algoritmoError

de lógica OK

Codificación del algoritmo (programa)

Ejecución del programa

Verificación del programa

Programa

Error

sintaxis

OK

Algoritmo

Page 9: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

ALGORITMO Secuencia ordenada de pasos (acciones) para resolver un problema. Se expresa en lenguaje natural

PROGRAMAEs el algoritmo escrito en un lenguaje de programación para ser ejecutado por el computador.

Tipos de lenguajes de Programación: Lenguaje de alto nivel: lenguaje similar al lenguaje natural. Son fáciles de escribir. Es el mas usado por los programadores.

Ejm. C++, Pascal, Basic, Prolog, Java, etc Lenguaje de bajo nivel: lenguaje mnemotécnico.

Ejm. ADD M, N, P Lenguaje de máquina: lenguaje binario (0 y 1) entendible directamente por el computador.

Ejm. 0110 1001 1010 1011

Page 10: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

TIPOS DE PROGRAMAS (según el Lenguaje de Programación)

PROGRAMA FUENTE (PF)

Programa escrito en lenguaje de alto o bajo nivel. PROGRAMA OBJETO (PO):

Programa escrito en lenguaje de máquina. Es el que ejecuta el computador.

TRADUCTORES DE LENGUAJE

Programas que traducen programas fuente a lenguaje de máquina.

Programa Fuente Compilad

or

ProgramaObjeto

Programa Fuente Intérprete

Ejecución del Programa

Instrucción en leng.máq.

Ejecución de la Instrucción

Tipos de Traductores: Compiladores e Intérpretes

instrucción

Page 11: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

D A T O S

Page 12: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Tipos de Datos (reconocidos por el computador):

DATOS

BASICOS COMPUESTOS

Numéricos

Caracter Lógico Estático Dinámico

-Arreglos -Registros -Archivos

-Listas -Arboles -Grafos

-Enteros -Reales

Page 13: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

DATOS SIMPLES O DATOS BASICOS

DATOS NUMERICOS Enteros y Reales

El rango y precisión de los datos numéricos depende del lenguaje de programación que se utilice.

DATOS TIPO CARACTERConjunto de caracteres que el computador reconoce.Se encuentran normalizados bajo el código ASCII o EBCDICSe tienen:

Caracteres alfabéticos: A - Z ; a - zCaracteres numéricos: 0 - 9Caracteres especiales: *, / , +, >, <, =, etc.

DATOS TIPO LOGICOConjunto formado por dos valores lógicos:

verdad, falso

Page 14: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Operaciones con los datos

OPERACIONES INTERVIENEN OPERADORES RESULTADO

ARITMETICAS Datos

Numéricos

Aritméticos

+, - , *, /, resto, entero

Dato

Numérico

DE COMPARACION

Datos del mismo tipo

Relacionales

>, <, >=, <=, =

Dato

Lógico

LOGICAS Datos

lógicos

Lógicos

No, Y, O

Dato

lógico

Page 15: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

IMPORTANTE:

En operaciones aritméticas:

Muchos lenguajes cuentan con operadores adicionales a los conocidos como los operadores para datos enteros:

entero (a/b): división entera de a/b

resto (a/b): resto de la división entera de a/b

Ejm. 10+ resto(5/3) Resultado: 12

En operaciones de Comparación:

En la comparación de datos tipo carácter se tiene:

‘0’<‘1’<‘2’<..<’9’<‘A’<‘B’<…<‘Z’<‘a’<‘b’<..<‘z’

En datos tipo lógico:

falso < verdad

Page 16: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Expresión de los datos

Un dato puede venir expresado como: constantes, variables, expresiones, funciones, etc.

CONSTANTEEs un dato (de cualquier tipo) cuyo valor no cambia durante la ejecución del algoritmo o programa.

Tipos de constantes: Literal: es un valor expresado en forma explícita. Ejm. 3.1416

Simbólica: viene expresado bajo un nombre que guarda su valor

Ejm. Pi (Previamente se debe definir que Pi = 3.1416)

Page 17: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

VARIABLE

Es un objeto (porción de memoria) que almacena un dato

Para definir una variable es necesario:

- Darle un Nombre

- Indicar el tipo de dato que va almacenar

OJO: El valor de una variable puede cambiar

durante la ejecución del algoritmo.

Tipos de variables:

Entero: Ejm. nota, edad, examen,

Real: Ejm. promedio, sueldo, talla

Carácter: Ejm. sección, sexo,

Lógica: Ejm. Fin, encontrado, vale

Page 18: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Operador de asignación

Se utiliza para almacenar un dato en una variable,

perdiéndose cualquier otro valor

previamente almacenado en ella.

Se representa con el símbolo Ejem.

Nota 12.3

Nota Nota +2

12.3

Nota

Memoria RAM

14.3

Page 19: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

EXPRESIONESEs una combinación de operandos y operadoresTipos: Expresiones aritméticas

Operando: constantes, variables y expres. numér.

Operadores: aritméticosResultado: numéricoEjm. (EP + 2*EF + PP)/4

Expresiones lógicasOperando: constantes, variables y expres.

lógicasOperadores: lógicos y relacionalesResultado: lógicoEjm. (PP>6.1 y PF>6.1)

Page 20: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

FUNCIONESSon programas predefinidas que:- Tienen un nombre con el cual se les invoca y- Aceptan datos y devuelven un resultado.

Generalmente los lenguajes de programación poseen funciones matemáticas, de cadenas y otros.Ejm. En C++Abs(X):devuelve el valor absoluto del número entero XSqrt(X): devuelve la raiz cuadrada del número X (X>=0)

Identificadores Son los nombres que se le dan a las constantes simbólicas,

variables, funciones y otros. Constan de una cadena de caracteres que debe empezar con

una letra. Deben ser significativos sugiriendo lo que representa.

Page 21: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

ACUMULADOR Es una variable cuyo valor aumenta o disminuye en una

cantidad variable cada vez que se produce un determinado suceso o acción.

Debe ser inicializado

Ejm. Se desea acumular las notas de prácticas de un alumno

Sum 0 (el valor de sum es 0)

sum sum + 13 (el valor de sum es 13)

sum sum + 10 (el valor de sum es 23)

CONTADOR Es un acumulador cuyo valor aumenta o disminuye en una

cantidad constante cada vez que se produce un determinado suceso o acción.

Se usa para contar sucesos. Ejm. Contar número de aprobados

VARIABLES IMPORTANTES

Page 22: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

DISEÑO DE ALGORITMOS

Page 23: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

ALGORITMO Secuencia ordenada de pasos o acciones o instrucciones

que se debe ejecutar para realizar una tarea o para resolver un problema.

Es expresado en lenguaje natural utilizando herramientas estandarizadas.

Características de un algoritmo Preciso: El algoritmo debe indicar el orden en que se debe

realizar cada paso. Finito: El algoritmo tiene un número finito de pasos y debe

terminar en algún momento. Bien definido: Si el algoritmo se prueba dos veces con los

mismos datos de entrada, se debe obtener el mismo resultado.

Page 24: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

TECNICA DE PROGRAMACION ESTRUCTURADA Conjunto de técnicas para desarrollar algoritmos fáciles de escribir, leer, verificar y modificar.

Diseño Modular ( Top-down ) En problemas grandes y complejos: dividir el problema en subproblemas y diseñar un subprograma para resolver cada uno de ellos

Descomposición del programa en recursos abstractosDescompone una acción compleja en acciones

simples capaces de ser ejecutadas por un computador

( instrucciones )

Estructuras de control básicasUn programa se escribe utilizando 3 estructuras de control:EC Secuenciales, EC Selectivas, EC Repetitivas

Page 25: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

INSTRUCCIONES

Son las acciones que van a ser ejecutadas por el computador para resolver el problema.

TIPOS : Instrucciones de Inicio/Fin :

Indica el Inicio y el Fin del algoritmo

Instrucciones de lectura:

Solicita al usuario el ingreso de datos desde un dispositivo de entrada por ejemplo el teclado.

Instrucciones de escritura:

Muestra los resultados a través de un dispositivo de salida por ejemplo la pantalla, impresora, etc.

Page 26: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Instrucciones de asignación:

Almacena un valor en una variable, perdiéndose cualquier otro valor almacenado en ella.

Instrucciones selectivas:

Permiten ejecutar unas u otras tareas de acuerdo al resultado de una expresión condicional

Instrucciones repetitivas:

Permiten la repetición de un grupo de instrucciones, generando un bucle (lazo o loop).

Page 27: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

EJEMPLO DE ALGORITMO

Se cuenta con las notas del EP, EF y PP de un alumno.

Se sabe que el promedio final (PF) se calcula con la fórmula:

PF=(EP+ PP+2EF)/4

Si el alumno cumple con la siguiente condición: PP>6.1 y

PF> 6.1 tiene opción a rendir un examen sustitutorio (ES)

Escriba un algoritmo reciba las notas del alumno y luego muestre un mensaje indicando si el alumno puede rendir o no puede rendir el ES.

En el caso que ya no pueda rendir el ES, debe mostrar

también el PF

Page 28: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Análisis

Datos de entrada: EP, EF, PP

Salida: mensaje y PF (si no puede rendir ES)

Algoritmo

Inicio del algoritmo

Ingresar las notas del alumno: EP, EF y PP

Calcular PF con la siguiente fórmula:

PF = (EP + 2EF + PP)/4

Si cumple la condición PP> 6.1 y PF>6.1entonces mostrar

el mensaje “Puede rendir el ES”

Si no cumple la condición entonces mostrar el mensaje “No

puede rendir ES” y mostrar PF

Fin del algoritmo.

Page 29: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

HERRAMIENTAS PARA LA REPRESENTACION DE ALGORITMOS

Para representar los algoritmos en forma estandarizada, existen herramientas como:

Diagrama de flujoTécnica tipo gráfico

PseudocódigoLenguaje de especificación (palabras reservadas)

en lenguaje natural

Diagrama de Nassi-ScheneidermanEs una combinación de las dos anteriores

Page 30: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

DIAGRAMA DE FLUJO PSEUDOCODIGO

Símbolos Significado Palabras reservadas

Inicio / Fin

Lectura / Escritura

Proceso

Selectiva

Proceso repetitivo

Inicio / Fin

Dirección o flujo

Leer / Escribir

Si - entonces

+ - * /

Mientras/ desde/Repetir

Page 31: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

El algoritmo en Diagrama de Flujo

Inicio

Leer EP,EF, PP

PF=(EP+PP+2*EF)/4

PP>6.1 y PF>6.1

Escribir “Puede rendir ES”

Escribir “No puede rendir ES”

Fin

Escribir “La nota final es: “ , PF

Page 32: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Escritura de un algoritmo en pseudocódigo

CABECERAContiene el nombre del algoritmo (opcional)

Constantes Nombre-constante = valorVariables Tipo-dato: nombre de variables

BLOQUE DE DECLARACIONES Se utilizan para asignar espacios en la RAMSe declaran: Constantes (opcional),

Variables (obligatorio), Otros definidos por el usuario

(opc.)BLOQUE DE INSTRUCCIONES• Inicio/Fin• Lectura

Leer ( lista de variables)• Escritura

Escribir ( resultado)• Asignaciónnombre de la variable valor ó expresión

•Comentarios (no se ejecutan)Sirven para escribir información interna para facilitar el mantenimiento del algoritmo. Formato: // comentario

aAlgoritmo nombre del algoritmo

Inicio

instrucciones

Fin

Page 33: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

El algoritmo en Pseudocódigo

Algoritmo PROMEDIO

Variablesentero: EP, EFreal: PP, PF

InicioLeer (EP, EF, PP)PF (EP+PP+2*EF)/4 // Calcula PFSi (PP>6.1 y PF>6.1) Escribir ( “Puede rendir el ES”)sino Escribir (“No puede rendir el ES”) Escribir (“La nota final es: “, PF)Fin-si

Fin

Cabecera del algoritmo

Bloque de declaraciones

Bloque de Instrucciones

Page 34: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

ESTRUCTURAS DE CONTROL

Un algoritmo debe ser escrito utilizando tres estructuras

de control:

E.C. Secuencial

Simple E.C. Selectiva Doble

Múltiple

Desde E.C. Múltiple Mientras

Repetir - hasta

Page 35: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Estructura SECUENCIAL

Las acciones del algoritmo se ejecutan en el orden que se encuentran escritos.

acción 1

acción 2

acción 3

-------

-------

acción n

Page 36: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

Estructuras Selectivas

La ejecución de las acciones dependen del resultado de una condición.

Se tienen tres tipos de estructuras selectivas:

1. SELECTIVA SIMPLE

Las acciones se ejecutan si la condición es verdadera .

condición

acciones

V F

Pseudocódigo

Si (condición)

acción1

acción 2

………

acción n

fin-si

Page 37: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial

2. SELECTIVA DOBLE

Si la condición es Verdadera se ejecutan unas acciones.

Si la condición es Falsa se ejecutan otras acciones

condición

Acciones-F Acciones-V

VF

Pseudocódigo

Si (condición)

acciones 1

Sino

acciones 2

Fin-si

Page 38: ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor: Ing. Luis Vaca 2009 Escuela Superior Politécnica de Chimborazo Facultad de Ingeniería Mecánica Escuela de Industrial