[email protected] ESTRUCTURA DE DATOS. Evaluación Exámenes 70% Acumulativo 30%...
-
Upload
juan-jose-ponce-cordero -
Category
Documents
-
view
215 -
download
0
Transcript of [email protected] ESTRUCTURA DE DATOS. Evaluación Exámenes 70% Acumulativo 30%...
Estructura de DATOS
EvaluaciónExámenes 70%Acumulativo 30%-------------------- Total 100%
Acumulativos1.T. Investigación 10%2.Resúmenes 10%3.Exposiciones / Otros 10%----------------------------------- Total 30%
Acumulativo I – Trabajo de Investigación
1.la notación grande: información, significado y aplicaciones.2.Tipos de datos abstractos fundamentales: pilas, colas y listas.3.Herramientas – Técnicas – Métodos para Evaluar Algoritmos
Lineamientos del Trabajo de Investigación1.Portada – Introducción – Índice – Objetivos2.Contenido3.Conclusiones4.Referencias / Bibliografía (Libros - Sitiosweb)
•Entrega por Correo Electrónico:•Formato de entrega: .docx & .pdf•Fecha de Entrega: 24 de Julio 2012 Hora máxima 5:00pm
[email protected]@gmail.comm
DATO Información en bruto, sin ningún significado Dado un enunciado, evento o acción, los datos
Permiten representar sus actores o participantes
Analizándolos, se podrá obtener resultados deseados
Analicemos el siguiente hecho: El estudiante de nombre Pedro Mejia de 22 años, tiene un
promedio de 7.5
Podemos tomar los siguientes datos Nombre: Pedro Velez -> Conjunto de Caracteres
Edad: 22 -> entero
Promedio: 7.5 -> real
INFORMACIÓN Es el resultado deseado luego de procesar los
datos Los datos, al ser procesados, se convierten en
información útil o resultados.
Procesamiento:Calcular salarios
Juan, Perez $320
Pedro, Rodriguez $310
Luis, Pozo $240
Datos de salida(se muestran en el monitor)
Datos de entrada(ingresados x teclado)
Juan, Perez
Pedro, Rodriguez
Luis, Pozo
160
155
120
Empleado Horas
Valor por hora = $2
¿Cómo representar los datos? Los seres humanos:
Usamos lenguaje natural o símbolos Ejemplo:
Para representar números, usamos el sistema decimal Para representar palabras, usamos el abecedario
La computadora: Usa conjuntos de 1s y 0s El dato mas pequeño en el computador es
Un 1 o un 0 -> bit
El conjunto de 8 bits -> 1 byte
TIPOS DE DATOS
Los datos se clasifican en TIPOS Son los diferentes dominios existentes. Ejemplo:
Edad, Año de Nacimiento, Numero de multas Tienen dominio numérico
Nombre, Dirección, Num. Cedula, Caen en el dominio de la información tipo texto
Y las operaciones permitidas para dicho dominio
Un conjunto de valores y operaciones definidas solo para esos valores
importante Un tipo de dato es el conjunto de valores
Al que puede pertenecer una constante Que puede asumir una variable o expresión Que puede ser generado por una función
De una constante, variable o expresión Se puede deducir su tipo de dato Ya sea de su forma o de su declaración Sin necesidad que se ejecute ningún proceso
Las operaciones entre datos Necesitan participantes (argumentos) de determinado
tipo Producen resultados de otro o el mismo tipo
TIPOS DE DATOS BASICOS
NOMBRE CONJUNTO DE VALORES OPERACIONES
Enteros Negativos y positivos sin decimal Sumar, restar, dividir, multiplicar, residuo
Reales Negativos y positivos, con decimal Sumar, restar, dividir, multiplicar
Lógicos Verdadero o Falso(1 o 0) And, Or, Not
Caracteres Letras, números, especiales, juntos forman una cadena
Sumar carácter + entero restar, multiplicar por entero
Los podemos distinguir fácilmente, están en el diario vivir: El Sr. Vera de 63 años tiene cedula No. 0908815533, y paga L.1200 de impuestos
Son tipos de datos simples Que permiten representar información numérica, caracteres, etc.
Datos EN LA COMPUTADORA
Solo vienen integrados los tipos de datos básicos En la computadora
Cada byte es un casillero y tiene una dirección en memoria
Los datos (números y letras) se almacena en estos casilleros
¿Cuantas casilleros ocupa un dato? Depende de su tipo y del hardware de la computadora Un entero puede ocupar casillas de hasta 4 bytes Un doble siempre ocupara mas, por su mayor precisión
PERO, un carácter SIEMPRE ocupara casillas de 1 byte
1000
1001
1002
1003
ALMACENANDO DATOS
TIPO DE DATO #bytes Representación interna En ANSI C
ENTEROS 248
Positivos: conjunto de bits38 -> 00100110Negativos:Complemento a Dos-38 -> 11011001
intlong
REALES 816
Mantisa x base(exponente)
387.53 -> 38753 x 10-2
00000000100101110110000111111110
floatdouble
CARACTERES 1 ASCII11000000 -> ‘A’
char
DECLARACION DE VARIABLES Una declaración de variables en C incluye
Tipo de dato y Nombre de variable(identificador) Ejemplo:
int a, b;float c;
¿Para que se declaran variables? Especifica cuanta memoria debe reservarse y Como se van a interpretar dichos datos
f = a + b Es una suma de enteros, que al final se convierte a real
Al declarar una variable se le asigna espacio en memoria y una dirección para dicho espacio
int a;4 bytes,dir: 100
1 byte,dir: 104
100101102103104
char c;
Estructura de Datos Se trata de un conjunto de variables de un determinado
tipo agrupadas y organizadas de alguna manera para representar un comportamiento. Lo que se pretende con las estructuras de datos es facilitar un esquema lógico para manipular los datos en función del problema que haya que tratar y el algoritmo para resolverlo. En algunos casos la dificultad para resolver un problema radica en escoger la estructura de datos adecuada. Y, en general, la elección del algoritmo y de las estructuras de datos que manipulará estarán muy relacionadas. .
Podemos encontrar muchas definiciones completas o formales de algoritmo en los textos de algorítmica y programación, todas ellas muy similares:
Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]
Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988]
Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]Caracteristicas:
Algoritmo
Las características fundamentales que debe cumplir todo algoritmo son:
Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.
Análisis de Algoritmos
Es una herramienta para hacer la evaluación de un diseño.
Permite establecer la calidad de un programa y compararlo con otros programas que resuelven un mismo problema.
Suponga que existen dos programas P1 y P2 para resolver el mismo problema.
¿Cuál de los dos es mejor?.
Análisis de Algoritmos
Solución:
Desarrollar (Implementar) ambos programas y medir el tiempo que cada uno de ellos consume para resolver el problema. Modificar los datos de entrada, promediar al final su desempeño para establecer su comportamiento en el caso promedio.
Análisis de Algoritmos
Problemas:
Pueden existir muchos algoritmos para resolver el problema.
Costoso y casi imposible implementar todos los programas.
Modificación de los datos puede ser una labor sin sentido.
Tiempo de ejecución de un algoritmos
Para tener una medida del tiempo de ejecución de un programa, se debe pensar en los factores que tienen influencia en dicho valor.
Velocidad de procesamiento. El compilador utilizado (calidad del código
generado). La estructura del algoritmo.
¿Cuáles de estos factores no son inherentes a la solución?.