Clase de Estructura de Datos y Algoritmos -INF156-01- con el Prof. Jose Guillen, Director de la Carrera de Ingeniería en Sistemas. Los Jueves de 4 a 6 p.m. y Viernes de 6 a 8 p.m.
viernes, 2 de diciembre de 2011
Programación Orientada a Objetos
miércoles, 30 de noviembre de 2011
ESTRUCTURA DE DATOS LINEALES PARA BUSQUEDA DE INFORMACION
- Los algoritmos de búsqueda lineal y binaria son 2 de los algoritmos más usados para encontrar elementos en una estructura de datos.La búsqueda lineal probablemente es sencilla de implementar e intuitiva. Básicamente consiste en buscar de manera secuencial un elemento, es decir, preguntar si el elemento buscado es igual al primero, segundo, tercero y así sucesivamente hasta encontrar el deseado. Entonces este algoritmo tiene una complejidad de O(n).
- Si la tabla de números está ordenada, por ejemplo, en orden creciente, es posible utilizar para la búsqueda un algoritmo más eficiente que se basa en un concepto muy utilizado en la programación: dividir para vencer.Si está ordenada la tabla y miramos el número situado en la mitad para ver si es mayor o menor que el número buscado (o con suerte igual), sabremos si la búsqueda ha de proceder en la subtabla con la mitad de tamaño que está antes o después de la mitad. Si se repite recursivamente el algoritmo al final o bien encontraremos el número sobre una tabla de un sólo elemento o estaremos seguros de que no se encuentra allí.
STRINGS
Las palabras string hace referencia a una cadena de caracteres. Su estudio cobra importancia cuando se toma en consideración que la mayor parte de la información que se maneja actualmente en casi cualquier área del conocimiento, puede verse como una secuencia de caracteres. El nombre de una persona, el contenido de un libro, la información presentada en un texto puede ser vistas como una cadena de caracteres o string. Esto nos lleva a pensar que un string debe definirse como una estructura de datos y por ello es conveniente que se diseñe inicialmente un TDA.
¿ De que firma concptualizar un string como un TDA?
Se puede diseñar muchas TDA que definan un string considerando que operaciones se tomaran como basicas para el funcionamiento de dicha estructura y cual sera el conjunto de caracteres que se acepptaran como parte de el.
Una posible definición para el TDA de un sting seria la siguiente:
- ESTRUCTURA; dado como un string se considera una cadena se puede pensar que se establece una ralacion lineal entre elementos, suponiendo que los string pueden almacenar entre 0 y 80 elementos, entonces su dominio sera el conjunto de todas las cadenas que se puede forma con combinaciones de los elementos y que cumplen con la regla de longitud.
viernes, 28 de octubre de 2011
¿Como viajan los datos por el Bus?

El bus, por lo general supervisado por el microprocesador, se especializa en el transporte de diferentes tipos de información.
En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. La CPU escribe la dirección de la posición deseada de la memoria en el bus de direcciones accediendo a la memoria, teniendo cada una de las líneas carácter binario.
Es decir solo pueden representar 0 o 1 y de esta manera forman conjuntamente el número de la posición dentro de la memoria (es decir: la dirección).
Cuanto más líneas haya disponibles, mayor es la dirección máxima y mayor es la memoria a la cual puede dirigirse de esta forma. En el bus de direcciones original habían ya 20 direcciones, ya que con 20 bits se puede dirigir a una memoria de 1 MB y esto era exactamente lo que correspondía a la CPU.
Esto que en le teoría parece tan fácil es bastante mas complicado en la práctica, ya que aparte de los bus de datos y de direcciones existen también casi dos docenas más de líneas de señal en la comunicación entre la CPU y la memoria, a las cuales también se acude.
Todas las tarjetas del bus escuchan, y se tendrá que encontrar en primer lugar una tarjeta que mediante el envío de una señal adecuada indique a la CPU que es responsable de la dirección que se ha introducido. Las demás tarjetas se despreocupan del resto de la comunicación y quedan a la espera del próximo ciclo de transporte de datos que quizás les incumba a ellas.
PROCESADOR | Bus de direcciones | Bus de datos |
8086 | 20 | 16 |
8088 | 20 | 8 |
80186 | 20 | 16 |
80188 | 20 | 8 |
80286 | 24 | 16 |
80386 SX | 32 | 16 |
80386 DX | 32 | 32 |
80486 DX | 32 | 32 |
80486 SX | 32 | 32 |
PENTIUM | 32 | 64 |
PENTIUM PRO | 32 | 64 |
Este mismo concepto es también la razón por la cual al utilizar tarjetas de ampliación en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de dirección o campos de dirección que se solapan entre ellos.
Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tenía solo 8 bits con lo cual sólo podía transportar 1 byte a la vez. Si la CPU quería depositar el contenido de un registro de 16 bits o por valor de 16 bits, tenía que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrás de otro.
De todas maneras para los fabricantes de tarjetas de ampliación, cuyos productos deben atenderse a este protocolo, es de una importancia básica la regulación del tiempo de las señales del bus, para poder trabajar de forma inmejorable con el PC.

Pero precisamente este protocolo no ha sido nunca publicado por lBM con lo que se obliga a los fabricantes a medir las señales con la ayuda de tarjetas ya existentes e imitarlas. Por lo tanto no es de extrañar que se pusieran en juego tolerancias que dejaron algunas tarjetas totalmente eliminada.
jueves, 20 de octubre de 2011
Comprender la representación de datos
- los datos numéricos están formados por cifras que representan cantidades y que se pueden emplear en operaciones aritméticas: por ejemplo tus ingresos anuales. puedes usarlos en operaciones aritméticas cada que calculas tus impuestos.
- los datos caracteres están formados por letras, símbolos y números que no se van usar en operaciones aritméticas, digamos, tu nombre, el color da tu cabello, tu numero telefónico y tu RFC. como no vas a usar el numero de RDF ni tu teléfono en operaciones aritméticas se consideran datos caracteres.
- normalmente, las computadoras digitales representan los datis de caracteres mendiante el codigo ASCII(de american Standard code for information interchange) o EBCDIC( de Extenden Binary-Coded Decimal Interchange Code). ASCII representa simbolos, numeros, mayusculas y minusclas; el ASCII es un codigo de representacion de datos de 7 bits que se encuentran en la genearalidadd de las PC yen mcuchas minicomputadoras y en algunas mainframe.
miércoles, 19 de octubre de 2011
Codificicaones para Computadores

110100110110 110101100110 110110110110
Muy difíciles de recordar y distinguirlas entre sí, para nosotros, la notación decimal más compacta -3382, 3430. 3510- es muy superior. Para cerrar la brecha entre los sistemas binarios y decimal, se usan otros sistemas numéricos en relación con los computadores –principalmente, los sistemas octal (base b=8) y hexadecimal (base b=16). Por otro parte, como 8 y16 con potencias de 2, existe una casi instantánea interconexión entre los sistemas octal y decimal, en cuanto lo compacto, con el sistema Decimal.
Sistemas Numéricos
Cualquier numero positivo b > 1 puede ser escogido como base para un sistema numérico posicional similar al sistema decimal (b = 10) o al sistema binario (b = 2), tal sistema usa b símbolos para los enteros.
0, 1, 2, 3,… b-1
Estos símbolos se denominan dígitos del sistema.
Todo entero N se presentara en el sistema por una secesion del digito base –b:
Entonces bk valor posicional de ak, y
N= an x bn + an-1 + … + a2 x b2 + a1 x b1 + a0 x b0
Se denomina forma expandida o notación expandida para N.
Mas generalmente, cualquier numero M se representa en el sistema por una sucesión de dígitos con, posiblemente, un punto para la base intercalado.


