• No se han encontrado resultados

ALGORITMOS YESTRUCTURAS DE DATOS

N/A
N/A
Protected

Academic year: 2021

Share "ALGORITMOS YESTRUCTURAS DE DATOS"

Copied!
38
0
0

Texto completo

(1)

ALGORITMOS Y

ESTRUCTURAS DE DATOS

Elaborado: Ing. Irma Inga Serrano Presentado: MSc. Marcos Hernández

UNIVERSIDAD NACIONAL DE INGENIERIA

Recinto Universitario Augusto C. Sandino

(2)

GENERALIDADES

DATO

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

INFORMACION Es 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

(3)

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

(4)

PROCESAMIENTO DE DATOS AUTOMATIZADO

Entrada DATOS

Salida

INFORMACION

Programa Algoritmo Procesador

(5)

Elementos del Computador

+

HARDWARE (elem.físicos)

SOFTWARE (programa)

(6)

HARDWARE (componentes físicos)

Unidades Periféricas De Entrada Ejem.

Teclado Mouse

Escaner, etc

Unidades Periféricas De Salida Ejm.

Impresora Monitor,

Parlantes, etc.

Unidades de Almacenamiento.

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

Unidad de Control

Unidad Aritmética

Y Lógica

Memoria Principal RAM y ROM

UNIDAD CENTRAL DE PROCESO

(7)

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

(8)

FASES PARA LA CONSTRUCCION DE UN PROGRAMA

SOLUCION DEL PROBLEMA

IMPLEMENTACION EN LA

COMPUTADORA

Datos Algoritmo Programa

(Software)

Análisis del problema

Diseño del algoritmo

Verificación del algoritmo Error de

lógica

OK

Codificación del algoritmo

(programa)

Ejecución del programa

Verificación del programa

Programa

Error sintaxis

OK Algoritmo

(9)

ALGORITMO

Secuencia ordenada de pasos (acciones) para resolver un problema.

Se expresa en lenguaje natural PROGRAMA

Es 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

(10)

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 Compilador Programa

Objeto

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

(11)

D A T O S

(12)

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

(13)

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 CARACTER

Conjunto de caracteres que el computador reconoce.

Se encuentran normalizados bajo el código ASCII o EBCDIC Se tienen:

Caracteres alfabéticos: A - Z ; a - z Caracteres numéricos: 0 - 9

Caracteres especiales: *, / , +, >, <, =, etc.

DATOS TIPO LOGICO

Conjunto formado por dos valores lógicos:

verdad, falso

(14)

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

(15)

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

(16)

Expresión de los datos

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

CONSTANTE

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

(17)

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

(18)

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

(19)

EXPRESIONES

Es una combinación de operandos y operadores Tipos:

 Expresiones aritméticas

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

Operadores: aritméticos Resultado: numérico

Ejm. (EP + 2*EF + PP)/4  Expresiones lógicas

Operando: constantes, variables y expres. lógicas Operadores: lógicos y relacionales

Resultado: lógico

Ejm. (PP>6.1 y PF>6.1)

(20)

FUNCIONES

Son 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 X

Sqrt(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.

(21)

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

(22)

DISEÑO

DE ALGORITMOS

(23)

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.

(24)

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 abstractos Descompone una acción compleja en acciones simples capaces de ser ejecutadas por un computador

( instrucciones )

 Estructuras de control básicas

Un programa se escribe utilizando 3 estructuras de control:

EC Secuenciales, EC Selectivas, EC Repetitivas

(25)

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.

(26)

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

(27)

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

(28)

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.

(29)

HERRAMIENTAS PARA LA

REPRESENTACION DE ALGORITMOS

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

 Diagrama de flujo Técnica tipo gráfico  Pseudocódigo

Lenguaje de especificación (palabras reservadas) en lenguaje natural

 Diagrama de Nassi-Scheneiderman

Es una combinación de las dos anteriores

(30)

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

(31)

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

(32)

Escritura de un algoritmo en pseudocódigo

CABECERA

Contiene el nombre del algoritmo (opcional)

Constantes

Nombre-constante = valor Variables

Tipo-dato: nombre de variables

BLOQUE DE DECLARACIONES

Se utilizan para asignar espacios en la RAM Se 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ón

nombre 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

(33)

El algoritmo en Pseudocódigo

Algoritmo PROMEDIO

Variables

entero: EP, EF real: PP, PF Inicio

Leer (EP, EF, PP)

PF  (EP+PP+2*EF)/4 // Calcula PF Si (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

(34)

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

(35)

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

(36)

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

(37)

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

F V

Pseudocódigo

Si (condición) acciones 1 Sino

acciones 2 Fin-si

(38)

Reconocimiento de Autoría

Esta Presentación fue elaborada por la profesora: Ing. Irma Inga Serrano, de la UNI en Lima Perú:

Facultad de Ingeniería Industrial y de Sistemas

Área de Sistemas Computación e Informática

Referencias

Documento similar

El útil de más empleo, tanto para podar co- mo para cortar esquejes y demás necesario pa- ra injertar, es la tijera de fiodar (fig.. Conviene tener una gran- de, de 2o a 25

Realizar contrastes conjuntos de aleatoriedad que determinen si los da- tos ausentes pueden ser clasificados como MCAR. Estos contrastes ana- lizan el patr´ on de datos ausentes

- Un curso formativo para los técnicos de laboratorio de la UPV sobre la prevención de los residuos en los laboratorios, que se llevará a cabo los días 23, 24, 25, 26 y 27

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

De la intersección de la líneas de acción de esta fuerzas se construye el polígono de fuerzas que nos dará la línea de empujes correspondiente a las posiciones de E y R

Unha das principais razóns esgrimidas pola literatura para xustificar a introdu- ción de regras fiscais nunha unión monetaria era precisamente esa: que a súa ine- xistencia podía

Desde 1990 es profesora de Historia del Arte en la Facultad de Bellas Artes de la Universidad Complutense de Madrid; y desde 2004 colabora con el Departamento de Educación del

Conjunto de instrucciones definidas, ordenadas y acotadas para resolver un problema o realizar una tarea, supone el paso previo a ponerse a escribir el código.. Preguntas