380 likes | 483 Views
UNIVERSIDAD NACIONAL DE INGENIERIA Recinto Universitario Augusto C. Sandino. ALGORITMOS Y ESTRUCTURAS DE DATOS. Elaborado: Ing. Irma Inga Serrano Presentado: MSc. Marcos Hernández. GENERALIDADES. DATO Es la representación simbólica de un hecho, atributo o característica de una entidad.
E N D
UNIVERSIDAD NACIONAL DE INGENIERIA Recinto Universitario Augusto C. Sandino ALGORITMOS YESTRUCTURAS DE DATOS Elaborado: Ing. Irma Inga Serrano Presentado: MSc. Marcos Hernández
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
PROCESAMIENTO DE DATOS Operaciones que transforman datos en información DATOS Procesador INFORMACION Salida Entrada Algoritmo • Es realizado por elprocesadorel 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 AUTOMATIZADO Procesador DATOS INFORMACION Salida Entrada Programa Algoritmo
Elementos del Computador SOFTWARE (programa) HARDWARE (elem.físicos) +
HARDWARE (componentes físicos) Unidades Periféricas De Entrada Ejem. Teclado Mouse Escaner, etc UNIDAD CENTRAL DE PROCESO Unidades Periféricas De Salida Ejm. Impresora Monitor, Parlantes, etc. Unidad de Control Unidad Aritmética Y Lógica Memoria Principal RAM y ROM Unidades de Almacenamiento. Ejem. Disquete, Discos compactos, Discos duros, etc.
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
Algoritmo Datos SOLUCION DEL PROBLEMA IMPLEMENTACION EN LA COMPUTADORA Programa • FASES PARA LA CONSTRUCCION DE UN PROGRAMA (Software) Análisis del problema Codificación del algoritmo (programa) Ejecución del programa Diseño del algoritmo Error sintaxis Verificación del programa Verificación del algoritmo Error de lógica OK OK Programa Algoritmo
ALGORITMO • Secuencia ordenada de pasos (acciones) para resolver un problema. • Se expresa en lenguaje natural • PROGRAMA • Es el algoritmoescrito 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
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. Tipos de Traductores: Compiladores e Intérpretes Programa Fuente ProgramaObjeto Ejecución del Programa Compilador Ejecución de la Instrucción instrucción Programa Fuente Instrucción en leng.máq. Intérprete
Tipos de Datos (reconocidos por el computador): DATOS BASICOS COMPUESTOS Numéricos Caracter Lógico Estático Dinámico -Enteros -Reales -Arreglos -Registros -Archivos -Listas -Arboles -Grafos
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
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
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)
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
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. • Nota12.3 • Nota Nota +2 Memoria RAM Nota 12.3 14.3
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)
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.
VARIABLES IMPORTANTES • 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
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.
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
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.
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).
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
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.
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
DIAGRAMA DE FLUJOPSEUDOCODIGO • Símbolos Significado Palabras reservadas Inicio / Fin Inicio / Fin Lectura / Escritura Leer / Escribir Proceso + - * / Selectiva Si - entonces Mientras/ desde/Repetir Proceso repetitivo Dirección o flujo
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“No puede rendirES” Escribir“Puede rendirES” Escribir “La nota final es: “ , PF Fin
Escritura de un algoritmo en pseudocódigo CABECERA Contiene el nombre del algoritmo (opcional) aAlgoritmo nombre del algoritmo BLOQUE DE DECLARACIONES Se utilizan para asignar espacios en la RAM Se declaran:Constantes (opcional), Variables (obligatorio), Otrosdefinidos por el usuario (opc.) Constantes Nombre-constante = valor Variables Tipo-dato: nombre de variables • 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 Inicio instrucciones Fin
El algoritmo en Pseudocódigo Cabecera del algoritmo • 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 Bloque de declaraciones Bloque de Instrucciones
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
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
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 . Pseudocódigo Si (condición) acción1 acción 2 ……… acción n fin-si condición V F acciones
2. SELECTIVA DOBLE • Si la condición es Verdadera se ejecutan unas acciones. • Si la condición es Falsase ejecutan otras acciones Pseudocódigo Si (condición) acciones 1 Sino acciones 2 Fin-si condición V F Acciones-F Acciones-V
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