viernes, 14 de mayo de 2010
REPRESENTACION DE DATOS Y ALGORITMOS
Para procesar información en un computador es necesario hacer una abstracción de los datos que tomamos del mundo real -abstracción en el sentido de que se ignoran algunas propiedades de los objetos reales, es decir, se simplifican-. Se hace una selección de los datos más representativos de la realidad a partir de los cuales pueda trabajar el computador para obtener unos resultados.
Cualquier lenguaje suministra una serie de tipos de datos simples, como son los números enteros, caracteres, números reales. En realidad suministra un subconjunto de éstos, pues la memoria del ordenador es finita. Los punteros (si los tiene) son también un tipo de datos. El tamaño de todos los tipos de datos depende de la máquina y del compilador sobre los que se trabaja.
En principio, conocer la representación interna de estos tipos de datos no es necesaria para realizar un programa, pero sí puede afectar en algunos casos al rendimiento.
¿Qué es una 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.
Según su comportamiento durante la ejecución del programa distinguimos estructuras de datos:
- Estáticas: su tamaño en memoria es fijo. Ejemplo: arrays.
- Dinámicas: su tamaño en memoria es variable. Ejemplo: listas enlazadas con punteros, ficheros, etc.
Las estructuras de datos que trataremos aquí son los arrays, las pilas y las colas, los árboles, y algunas variantes de estas estructuras. La tabla que se encuentra al comienzo de esta página agrupa todas las estructuras de datos que emplearán los algoritmos explicados en esta web.
Tipos Abstractos de Datos
Los tipos abstractos de datos (TAD) permiten describir una estructura de datos en función de las operaciones que pueden efectuar, dejando a un lado su implementación.
Los TAD mezclan estructuras de datos junto a una serie de operaciones de manipulación. Incluyen una especificación, que es lo que verá el usuario, y una implementación (algoritmos de operaciones sobre las estructuras de datos y su representación en un lenguaje de programación), que el usuario no tiene necesariamente que conocer para manipular correctamente los tipos abstractos de datos.
Se caracterizan por el encapsulamiento. Es como una caja negra que funciona simplemente conectándole unos cables. Esto permite aumentar la complejidad de los programas pero manteniendo una claridad suficiente que no desborde a los desarrolladores. Además, en caso de que algo falle será más fácil determinar si lo que falla es la caja negra o son los cables.
Por último, indicar que un TAD puede definir a otro TAD. Por ejemplo, en próximos apartados se indicará como construir pilas, colas y árboles a partir de arrays y listas enlazadas. De hecho, las listas enlazadas también pueden construirse a partir de arrays y viceversa.
RONALD SALAZAR CI 15025260
PROGRAMACION Y TIPOS DE LENGUAJE
Una cadena de llaves generan lo que se conoce como instrucciones, pudiendo dar así inicio a una programación, ya que un computador no hace nada por si solo a menos que se le ordene mediante una programación inmediata o previa.
Dado a que el lenguaje maquina es muy complejo en cuanto a su sintaxis ya que asolo se vale de 1´s y 0´s, una instrucción pudiese ser :11011100010010100110110001000110010, por lo tanto es difícil de recordar y crear, por ello se crean nuevos lenguaje que representan una instrucción como la anterior en letras entendibles por el hombre, es decir por ejemplo: antes lenguaje maquina la suma es igual a: 001011010, y en el lenguaje que se encarga de darle una nueva etiqueta a esa instrucción en maquina la suma es igual a "+" pero de tras fondo sigue siendo "001011010".
Clasificación
Los lenguajes de programación se clasifican por su nivel de abstracción del procesador, en este caso la abstracción es un principio por el cual se aísla toda aquella información que no es resulta relevante a un determinado nivel de conocimiento.
Lenguaje de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
En general se utiliza este tipo de lenguaje para programar controladores (drivers).
Ventajas
Mayor adaptación al equipo.
Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Inconvenientes
Imposibilidad de escribir código independiente de la máquina.
Mayor dificultad en la programación y en la comprensión de los programas.
El programador debe conocer más de un centenar de instrucciones.
Es necesario conocer en detalle la arquitectura de la máquina.
Características
Se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle.
Está orientado a la máquina
MEDIOS DE ALMACENAMIENTO
Los componentes de hardware que escriben o leen datos en los medios de almacenamiento se conocen como dispositivos o unidades de almacenamiento. Por ejemplo, una disquetera o una unidad de disco óptico, son dispositivos que realizan la lectura y/o escritura en disquetes y discos ópticos, respectivamente.
El propósito de los dispositivos de almacenamiento es almacenar y recuperar la información de forma automática y eficiente. El almacenamiento se relaciona con dos procesos:
• Lectura de datos almacenados para luego transferirlos a la memoria de la computadora.
• Escritura o grabación de datos para que más tarde se puedan recuperar y utilizar.
Los medios de almacenamiento han evolucionado en forma notable desde las primeras computadoras. En la actualidad existe una gran variedad tecnologías y dispositivos nuevos, pero el disco rígido sigue siendo el "almacén" principal de la información en la computadora.
RONALD SALAZAR CI 15025260
EL SOFTWARE
Los ordenadores sólo procesan lenguaje binario, pero para las personas este no es un modo válido de comunicarse (salvo a nivel sináptico :-). Si bien en los tiempos heroicos de los primeros ordenadores no les quedaba otro remedio que hacerlo, los programadores hace mucho que no escriben su código en lenguaje binario (denominado técnicamente ``código-máquina''), pues es terriblemente tedioso, improductivo y muy sujeto a errores. Hace tiempo que los programadores escriben las instrucciones que ha de ejecutar el procesador de la máquina mediante lenguajes formales, llamados ``de alto nivel'', bastante cercanos al inglés, si bien con rígidas reglas sintácticas que lo asemejan a los lenguajes lógico-formales. Esto facilita enormemente la tarea de escribir programas pero, para que esas instrucciones sean comprensibles para el procesador, deben ser convertidas antes a código-máquina. Esa conversión se realiza cómodamente con programas especiales, llamados compiladores. A lo que escribe el programador se le denomina ``código-fuente''. Al resultado de la ``conversión'' (compilación) en lenguaje-máquina, se le denomina ``código-objeto'', ``binarios'' o ``ficheros ejecutables''. En principio, al usuario común sólo le importa este último nivel, los ``binarios'', pero conviene tener clara la distinción entre fuentes y binarios pues es clave para entender el empeño de los partidarios del software libre en disponer de las fuentes.
RONALD SALAZAR CI 15025260
CENTRO DE PROCESAMIENTOS DE DATOS
Un sistema
El desarrollo de un sistema informático se compone de
Concepto
Un Centro de Procesamiento de Datos (CPD) es el conjunto de recursos físico, lógicos, y humanos necesarios para la organización, realización y control de las actividades informáticas de una empresa.
Funciones
Dentro de una empresa, el Centro de proceso de Datos cumple diversas funciones que justifican los puestos los puestos de
Explotación de sistemas o aplicaciones.
La explotación u operación de un sistema informático o aplicación informática consiste en la utilización y aprovechamiento del sistema desarrollado. Consta de previsión de fechas de realización de trabajos, operación general del sistema, control y manejo de soportes, seguridad del sistema, supervisión de trabajos, etc.
RONALD SALAZAR CI 15025260