martes, 2 de noviembre de 2010
lunes, 1 de noviembre de 2010
martes, 19 de octubre de 2010
jueves, 30 de septiembre de 2010
UNIDAD III . CONCEPTOS
* Problema: relación que existe entre un conjunto de instancias (pruebas) y un conjunto de soluciones.
* Herramientas computacionales para la solución de problemas.
- Hardware: corresponde a todas las partes físicas y tangibles de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente al soporte lógico e intangible que es llamado software.
? Sistema operativo: Un Sistema operativo (SO) es un software que actúa de conexión entre los dispositivos de hardware y los programas usados por el usuario para utilizar un computador. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos y actúa como estación para las aplicaciones que se ejecutan en la máquina.
? Programas de Aplicación: es un tipo de software diseñado para facilitar al usuario la concretacion de un cierto trabajo. Esta característica lo diferencia de otros tipos de programas como los sistemas operativos, los lenguajes de programación y las utilidades.
? Lenguajes de Programación: Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
:P
GENERACIONES DE LOS LENGUAJES DE PROGRAMACION
Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:
Primera generación: Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.
Segunda generación: Los lenguajes simbólicos, así mismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.
Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.
Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.
Historia y Características de algunos Lenguajes
Ada
Lenguaje de programación diseñado por Jean Ichbiah de Cii Honeywell Bull por encargo del Departamento de Defensa de los EE.UU. para unificar el uso de los lenguajes de programación en los proyectos que le fuesen entregados. Es un lenguaje diseñado con la seguridad en mente y es multipropósito, pudiendo llegar desde la facilidad de Pascal a la flexibilidad de C pero con una filosofía orientada a la reducción de errores.
Su nombre conmemora a la condesa Ada Lovelace, hija de Lord Byron, a quien se considera la primera programadora de la Historia, por su relación con Charles Babbage, creador de la máquina analítica. El Departamento de Defensa de los Estados Unidos (DoD) y los ministerios equivalentes de varios países europeos exigen la utilización de este lenguaje en los proyectos realizados bajo su patrocinio. También es usado en otros entornos en los que también se necesita una gran seguridad como la gestión del tráfico aéreo (en empresas como Boeing o la española Indra).
Ada se diseñó de manera que permita evitar los errores comunes y difíciles de descubrir. Esto puede hacer que sea muy irritante para los programadores principiantes.
Hasta la fecha la ISO ha publicado dos ediciones del estándar de Ada: la original Ada 83 que incluía conceptos novedosos como las excepciones y la programación genérica; y la revisión Ada 95, que entre otras cosas añadió la capacidad de herencia para completar sus características de lenguaje OOP.
Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York y mantenido en la actualidad por Ada Core Technologies. Está basado en la tecnología de GCC y es software libre.
Smalltalk
Diseñado por Alan Kay durante los años setenta en el Palo Alto Reasearch Institute de Xerox (conocido como Xerox Parc). Smalltalk era un elemento de la primera computadora personal con interfaz gráfica el "Alto" (que nunca fue llevado al mercado pero de cuyas ideas nació el Macintosh).
Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP). En Smalltalk TODO es un objeto.. aun los números enteros. Smalltalk se basó en ideas de Simula (un lenguaje de simulaciones).
Pero Smalltalk no es meramente un lenguaje, sino un entorno completo, prácticamente un sistema operativo que se ejecuta encima de una "máquina virtual". Esto asegura su máxima portabilidad entre plataformas.
A pesar de ser un lenguaje muy simple, muy poderoso, y que promueve buenas prácticas de programación, Smalltalk (hasta el 2002) no había llegado a ser un lenguaje muy popular. Esto se debe a la poca aceptación de lenguajes interpretados en los años 1980 y 1990. A pesar de esto algunas empresas como Digitalk, VisualWorks e IBM llegaron a tener relativo éxito con la plataforma como una herramienta de desarrollo rápido que competía contra herramientas como PowerBuilder y en menor grado contra VisualBasic que eran muy populares en los años 80 y 90.
En 1995, Sun Microsystems lanzó Java que es un lenguaje fuertemente influenciado por Smalltalk. Un lenguaje que popularizaría el concepto de lenguajes interpretados con recolectores de basura.
Ejemplos de Smalltalk:
En Smalltalk todo es un objeto, y a un objeto le enviamos mensajes. Por ejemplo:
1 + 1
Significa que al objeto "1" le enviamos el mensaje "+" con el parámetro "1". Este ejemplo entonces resulta en el valor "2".
Java
Plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales.
La plataforma Java consta de tres partes:
- El lenguaje de programación
- Máquina virtual de Java
- API Java
Originalmente llamado OAK por Ingenieros de Sun Microsystems, Java fue diseñado para correr en computadoras embebidas. Sin embargo, en 1995, dada la atención que estaba produciendo la Web, Sun Microsystems la distribuyó para sistemas operativos tales como Microsoft Windows.
El lenguaje mismo adopta la sintaxis de C++, pero su funcionamiento es muy similar al de Smalltalk. Incorpora sincronización y manejo de tareas en el lenguaje mismo (similar a Ada) e incorpora interfaces como un mecanismo alternativo a la herencia múltiple de C++.
A fines del siglo XX, Java llegó a ser el lenguaje de mayor acogida para programas de servidor. Utilizando una tecnología llamada JSP (similar a ASP de Microsoft), se hizó muy fácil escribir páginas dinámicas para sitios de Internet. Sumado a esto, la tecnología de JavaBeans, al incorporarse con JSP, permitía utilizar el patrón MVC (Modelo-Vista-Controlador) que ya tanto se había aplicado a interfaces gráficas.
Java llegó a ser extremadamente popular cuando Sun Microsystems introdujo la plataforma y el modelo de programación J2EE (Java 2 Enterprise Edition). Este modelo permite una separación entre la presentación de los datos al usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) que es una tecnología de objetos distribuídos que pudo lograr el sueño de muchas empresas como Microsoft e IBM de crear una plataforma de objetos distribuídos con un monitor de transacciones. Con este nuevo estándar, empresas como BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron gran acogida en el mercado.
Además de programas del servidor, Java permite escribir programas de interfaz gráfica o textual. Además se pueden correr programas de manera incorporada o embebida en los navegadores web de Internet, aunque esto nunca llegó a popularizarse como se esperaba en un principio.
Los programas en Java generalmente son compilados a un lenguaje intermedio o bytecode, y luego interpretados por una máquina virtual (JVM). Esta última sirve como una plataforma de abstracción entre la máquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado". También existen compiladores nativos de Java, tanto comercial como libre. El compilador GCC de GNU compila Java a código de máquina con algunas limitaciones al año 2002.
C Más Más
C++ (pronunciado "C plus plus" o "C más más", por algunos programadores de habla hispana) es un lenguaje de programación, diseñado a mediados de los ochenta, por Bjarne Stroustrup, como extensión del lenguaje de programación C.
Es un lenguaje híbrido, que se puede compilar y resulta más sencillo de aprender para los programadores que ya conocen C. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (http://root.cern.ch/) (enlace externo). Las principales características del C++ son abstracción (encapsulación), el soporte para programación orientada a objetos (polimorfismo) y el soporte de plantillas o programación genérica (Templates). Las plantillas se las define de la manera siguiente: template <parámetros> declaración X y se las instancia con X<parámetros>.
Pero añade otra serie de propiedades que se encuentran más difícilmente en otros lenguajes de alto nivel:
- Posibilidad de redefinir los operadores
- Indentificación de tipos en tiempo de ejecución (RTTI)
El nombre C++ fue propuesto por Rick Masciatti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En el C++, "C++" significa "uno más de C" y se refiere a que C++ es una extensión del C.
Algunos dicen que "C++" todavía significa "C", porque "++" en este caso es el operador de la postincrementación, es decir, aumenta el valor de la expresión a la que se refiere, después, en las instrucciones siguientes. Por esto el valor de la expresión en este momento permanece original.
Pascal
Pascal es un lenguaje de programación de alto nivel, desarrollado por Niklaus Wirth. Se convirtió en uno de los lenguajes extensamente usados en lo cursos de introducción a la programación, pues fue bien recibido como lenguaje de enseñanza para estudiantes universitarios. Pascal es un lenguaje con técnicas de programación estructurada, dicha programación hace programadores disciplinados.
Sus primeras versiones datan de 1970. Es un lenguaje de programación estructurado creado por Niklaus Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando en un lenguaje didáctico que enseñase la programación como "una disciplina sistemática basada en determinados conceptos fundamentales". Estos conceptos más tarde se tornarían motivo de controversia entre los que creen que este lenguage tiene utilidad limitada a los medios academicos, como Brian W. Kernighan.
A partir de los años setenta se convirtió en el sucesor de ALGOL en el entorno universitario. Pascal permite construir programas muy legibles. Wirth es también autor del lenguaje Modula-2 y de Oberon.
El lenguaje de programación Delphi es una versión orientada a objetos moderna del lenguaje Pascal y es ampliamente utilizada en la industria de software.
En la ciencia de la computación, Pascal es uno de los hitos de lenguajes de programación el cual tiene definido la programación de computadora y esta todavía en uso hoy en día.
Niklaus Wirth lo desarrollo para hacer posible la programación estructurada que seria mas fácil para un compilador para procesar. Pascal se baso en el lenguaje de programación Algol y su nombre se debe en honor del matemático Blaise Pascal. Wirth también desarrollo Modula-2 y Oberon, lenguajes similares a Pascal el cual también soporta programación orientada a objetos.
lunes, 30 de agosto de 2010
UNIDAD II. Circuitos Lógicos
Para poder representar los números naturales se utilizan distintos sistemas de numeración. Cada uno de ellos está compuesto por un conjunto de símbolos y reglas. Ejemplos de sistemas de numeracion son el decimal, binario, octal y hexadecimal.
¡ Sistemas de numeración !
SISTEMA DECIMAL
Es el sistema de numeración usado habitualmente en todo el mundo (excepto ciertas culturas) y en todas las áreas que requieren de un sistema de numeración.
*Se llama cifra o dígito a cada uno de los símbolos que forman la base del sistema de numeración decimal;
*Se llama base del sistema de numeración a la cantidad de elementos que se combinan, y se escribe:
B10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Para representar números mayores que nueve, se agrupan los elementos de 10 en 10 para formar una unidad del orden inmedianto superior.
El sistema decimal es un sistema de numeración posicional.
Según los antropólogos, el origen del sistema decimal está en los diez dedos que tenemos los humanos en las manos, los cuales siempre nos han servido de base para contar.
SISTEMA BINARIO
El sistema de numeración binario o de base 2 es un sistema posicional que utiliza sólo dos símbolos para representar un número. Este sistema de numeración es sumamente importante ya que es el utilizado por las computadoras para realizar todas sus operaciones. pues trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).
Conversiones
Decimal a binario
Consiste en un método parecido a la factorización en números primos. Es relativamente fácil dividir cualquier número entre 2. Este método consiste también en divisiones sucesivas. Dependiendo de si el número es par o impar, colocaremos un cero o un uno en la columna de la derecha. Si es impar, le restaremos uno y seguiremos dividiendo entre dos, hasta llegar a 1. Después sólo nos queda tomar el último resultado de la columna izquierda (que siempre será 1) y todos los de la columna de la derecha y ordenar los dígitos de abajo a arriba.
Ejemplo: Transformar el número decimal 100 en binario.
Binario a decimal
Se pueden utilizar los valores que presenta cada posición del número binario a ser transformado, comenzando de derecha a izquierda, y sumando los valores de las posiciones que tienen un 1.
Ejemplo: El número binario 1010010 corresponde en decimal al 82. Se puede representar de la siguiente manera:
entonces se suman los valores: 64 + 16 + 2 = 82

SISTEMA OCTAL
El sistema de numeracion octal es muy usado en la computación por tener una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple.
El sistema octal usa 8 dígitos (0,1,2,3,4,5,6,7)
conversionesdecimal a octal
Para convertir del sistema decimal al octal primero el numero decimal que se desea se tiene que convertir a binario, después se tiene que agrupar de 3 en 3 empezando de derecha a izquierda y después se tiene que obtener el numero decimal de los números binarios obtenidos y así se forma el numero octal
Por ejemplo:
El número binario para 74 (en decimal) es 1001010 (en binario), lo agruparíamos como 1 / 001 / 010, de tal forma que obtengamos una serie de números en binario de 3 dígitos cada uno (para fragmentar el número se comienza desde el primero por la derecha y se parte de 3 en 3), después obtenemos el número en decimal de cada uno de los números en binario obtenidos: 1=1, 001=1 y 010=2.
De modo que el número decimal 74 en octal es 112.
Octal a decimal
La conversión de un número octal a decimal se obtiene multiplicando cada dígito por su peso y sumando los productos:
Ejemplo: Convertir 47308 a decimal.
4730 = (4 x 83)+(3x82)+(8x81)+(0x80) = 2048+192+64+0= 2304
4730 = (4 x 83)+(3x82)+(8x81)+(0x80) = 2048+192+64+0= 2304
El sistema hexadecimal es el sistema de numeración posicional de base 16 —empleando por tanto 16 símbolos—. Su uso actual está muy vinculado a la informática y ciencias de la computación.
En principio dado que el sistema usual de numeración es de base decimal y, por ello, sólo se dispone de diez dígitos, se adoptó la convención de usar las seis primeras letras del alfabeto latino para suplir los dígitos que nos faltan. El conjunto de símbolos sería, por tanto, el siguiente:
S = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Se debe notar que:
A = 10.
B = 11.
C = 12.
D = 13.
E = 14 y
F = 15.
Como en cualquier sistema de numeración posicional, el valor numérico de cada dígito es alterado dependiendo de su posición en la cadena de dígitos, quedando multiplicado por una cierta potencia de la base del sistema, que en este caso es 16.
Decimal a Hexadecimal
En la conversión de una magnitud decimal a hexadecimal se realizan divisiones sucesivas por 16 hasta obtener un cociente de cero. Los residuos forman el número hexadecimal equivalente, siendo el último residuo el dígito más significativo y el primero el menos significativo.
Ejemplo: Convertir el número 186910 a hexadecimal.

El resultado en hexadecimal de 186910 es 74D16.
Hexadecimal a decimal
En el sistema hexadecimal, cada dígito tiene asociado un peso equivalente a una potencia de 16, entonces se multiplica el valor decimal del dígito correspondiente por el respectivo peso y se realiza la suma de los productos.
Ejemplo: Convertir el número 31F16 a decimal.
31F16 = 3x162 + 1x16 + 15 x 160 = 3x256 + 16 + 15 = 768 + 31 = 79910
:DD !
! fácil fácil !
Suscribirse a:
Entradas (Atom)