ALGORITMOS Y ESTRUCTURAS DE DATOS
-
Upload
mikayla-booth -
Category
Documents
-
view
57 -
download
4
description
Transcript of ALGORITMOS Y ESTRUCTURAS DE DATOS
![Page 1: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/1.jpg)
ALGORITMOS YESTRUCTURAS DE DATOS
Elaborado: Ing. Irma Inga Serrano
Presentado: MSc. Marcos Hernández
UNIVERSIDAD NACIONAL DE INGENIERIA
Recinto Universitario Augusto C. Sandino
![Page 2: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/2.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/3.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/4.jpg)
PROCESAMIENTO DE DATOS AUTOMATIZADO
Entrada
DATOS
Salida
INFORMACION
Programa
Algoritmo
Procesador
![Page 5: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/5.jpg)
Elementos del Computador
+
HARDWARE (elem.físicos)
SOFTWARE (programa)
![Page 6: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/6.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/7.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/8.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/9.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/10.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/11.jpg)
D A T O S
![Page 12: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/13.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/14.jpg)
Operaciones con los datos
OPERACIONES INTERVIENEN OPERADORES RESULTADO
ARITMETICAS DatosNuméricos
Aritméticos
+, - , *, /, resto, entero
DatoNumérico
DE COMPARACION
Datos del mismo tipo
Relacionales>, <, >=, <=, =
DatoLógico
LOGICAS Datoslógicos
LógicosNo, Y, O
Datológico
![Page 15: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/15.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/16.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/17.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/18.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/19.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/20.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/21.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/22.jpg)
DISEÑO DE ALGORITMOS
![Page 23: ALGORITMOS Y ESTRUCTURAS DE DATOS](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/23.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/24.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/25.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/26.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/27.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/28.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/29.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/30.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/31.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/32.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/33.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/34.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/35.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/36.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/37.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022062309/568135ce550346895d9d34d7/html5/thumbnails/38.jpg)
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