Asistencia: 4.5
Participación: 5
Objetivos: 5
Motivación: 5
Competencias: 5
Desarrollo Fernando
jueves, 31 de mayo de 2012
Diferencias POO y Estructurada
La programación estructurada, como lo indica su nombre.. pretende "separar" el pensamiento y funcionamiento por módulos... con combinaciones de sentencias simples y complejas.
En una escala más alta de abstracción, se encuentra el enfoque OO. Donde cada elemento de la "realidad" es un ente, un objeto... un conjunto de objetos que comparten características comunes forman una clase. La clase físicamente no existe... es un elemento abstracto. Para que comprendas: Podemos distinguir muchos distintos tipos de autos... pero en fin... todo son autos. "Internamente" nuestro razonamiento nos dice: "que todo objeto que posea cuatro ruedas, 2, 4 o 5 puertas, techo y un motor pertenece a la categoría o clase auto". En la jerga informática se dice que la clase es la que estructura base de donde cada INSTANCIA de la clase es un objeto. Y así podemos armar un conjunto de clases y subclases: Garfield es un gato, pero un gato es un animal (Gato es una subclase de animal, y Garfield es una INSTANCIA de Gato). Esto es lo que se conoce como Herencia. A la par vienen el concepto de polimorfismo y el de especificacíon.
El enfoque OO está dirigido también por un principio fundamental: el encapsulamiento.
La idea central del encapsulamiento es "Yo te digo superficialmente lo que se hacer y tu me dices lo que deseas saber de mi" Y esta es la manera en que cada objeto se comunica con otro: uno le dice a otro que lo que desea obtener y éste se lo hace sin darle demasiado detalles. Por ponerte un ejemplo: Tu necesitas dinero, vas al banco y pides un préstamo. Le dices a la cajera (o el personal adecuado) y le haces saber lo que deseas. A ti no te interesa saber en profundidad como es el procedimiento interno del banco para realizar el prestamo. Simplemente te dicen lo que debe serte comunicado y listo. Es decir que el encapsulamiento sirve para ocultar información a lo demás que simplemente no debe saber. Se da a conocer solo lo necesario para que otro pueda trabajar.
En pocas, POO es un "nuevo" enfoque: Se ve la realidad como un gran conjunto de objetos que se relacionan y hacen su taréa apoyandose unos a otros. Para que juntos consigan un objetivo mayor del que podrían conseguir en forma aisladas.
Esto no quiere decir que se haya abandonado la estructuración, sigue existiendo... pero con otro grado de abstracción. Cada clase debe responder a los principios de Cohesión y Acoplamiento. Una clase internamente debe estar estrucuturada de modo que exista un grado de "afinidad" entre sus contenidos: funciones, eventos, etc... Una clase que no sabe lo que hace es una clase que no sirve.
Por otro lado, una clase que no sabe delegar información (dar a conocer su funcionamiento superficialmente) conduce a una mala modularidad.
En una escala más alta de abstracción, se encuentra el enfoque OO. Donde cada elemento de la "realidad" es un ente, un objeto... un conjunto de objetos que comparten características comunes forman una clase. La clase físicamente no existe... es un elemento abstracto. Para que comprendas: Podemos distinguir muchos distintos tipos de autos... pero en fin... todo son autos. "Internamente" nuestro razonamiento nos dice: "que todo objeto que posea cuatro ruedas, 2, 4 o 5 puertas, techo y un motor pertenece a la categoría o clase auto". En la jerga informática se dice que la clase es la que estructura base de donde cada INSTANCIA de la clase es un objeto. Y así podemos armar un conjunto de clases y subclases: Garfield es un gato, pero un gato es un animal (Gato es una subclase de animal, y Garfield es una INSTANCIA de Gato). Esto es lo que se conoce como Herencia. A la par vienen el concepto de polimorfismo y el de especificacíon.
El enfoque OO está dirigido también por un principio fundamental: el encapsulamiento.
La idea central del encapsulamiento es "Yo te digo superficialmente lo que se hacer y tu me dices lo que deseas saber de mi" Y esta es la manera en que cada objeto se comunica con otro: uno le dice a otro que lo que desea obtener y éste se lo hace sin darle demasiado detalles. Por ponerte un ejemplo: Tu necesitas dinero, vas al banco y pides un préstamo. Le dices a la cajera (o el personal adecuado) y le haces saber lo que deseas. A ti no te interesa saber en profundidad como es el procedimiento interno del banco para realizar el prestamo. Simplemente te dicen lo que debe serte comunicado y listo. Es decir que el encapsulamiento sirve para ocultar información a lo demás que simplemente no debe saber. Se da a conocer solo lo necesario para que otro pueda trabajar.
En pocas, POO es un "nuevo" enfoque: Se ve la realidad como un gran conjunto de objetos que se relacionan y hacen su taréa apoyandose unos a otros. Para que juntos consigan un objetivo mayor del que podrían conseguir en forma aisladas.
Esto no quiere decir que se haya abandonado la estructuración, sigue existiendo... pero con otro grado de abstracción. Cada clase debe responder a los principios de Cohesión y Acoplamiento. Una clase internamente debe estar estrucuturada de modo que exista un grado de "afinidad" entre sus contenidos: funciones, eventos, etc... Una clase que no sabe lo que hace es una clase que no sirve.
Por otro lado, una clase que no sabe delegar información (dar a conocer su funcionamiento superficialmente) conduce a una mala modularidad.
Conversiones a las diferentes bases
Cambios de base.
Número decimal
|
Representación binaria
|
Representación octal
|
Representación hexadecimal
| |||
0
|
0
|
0
|
0
| |||
1
|
1
|
1
|
1
| |||
2
|
10
|
2
|
2
| |||
3
|
11
|
3
|
3
| |||
4
|
100
|
4
|
4
| |||
5
|
101
|
5
|
5
| |||
6
|
110
|
6
|
6
| |||
7
|
111
|
7
|
7
| |||
8
|
1000
|
10
|
8
| |||
9
|
1001
|
11
|
9
| |||
10
|
1010
|
12
|
A (valor decimal 10)
| |||
11
|
1011
|
13
|
B (valor decimal 11)
| |||
12
|
1100
|
14
|
C (valor decimal 12)
| |||
13
|
1101
|
15
|
D (valor decimal 13)
| |||
14
|
1110
|
16
|
E (valor decimal 14)
| |||
15
|
1111
|
17
|
F (valor decimal 15)
| |||
16
|
10000
|
20
|
10
| |||
Cambio de binario a octal.
Se divide el número binario de 12 dígitos en grupos de tres bits consecutivos cada uno, y se escriben estos grupos sobre los dígitos que corresponden al número octal:
100 011 010 001
4 3 2 1
Cambio de binario a hexadecimal.
Se divide el número binario de 12 dígitos en grupos de cuatro bits consecutivos cada uno y se escriben estos grupos sobre los dígitos que corresponden al número hexadecimal:
1000 1101 0001
8 D 1
Conversión de octal a binario.
Por ejemplo, el número octal 653 se convierte a binario al escribir el 6 como su equivalente binario de 3 dígitos 011 para crear el número binario de 9 dígitos 110101011.
Conversión de hexadecimal a binario.
El número hexadecimal FAD5 se convierte a binario al escribir la F como su equivalente binario de 4 dígitos 1111, la A como su equivalente binario de 4 dígitos 1111, la A como su equivalente binario de 4 1010, la D como su equivalente binario de 4 dígitos 1101, y el 5 como su equivalente binario de 4 dígitos 0101 para formar el número de 16 dígitos:
1111101011010101.
Conversión de decimal a otra base.
Se multiplica el equivalente decimal de cada dígito por su valor posicional, y se suman estos productos.
32 16 8 4 2 1
1 1 0 1 0 1
1*32 1*16 0*8 1*4 0*2 1*1
32 + 16 + 0 + 4 + 0 + 1 = 53
Conversión de octal a decimal.
Se utiliza la misma técnica que la anterior pero esta vez se toman los valores posicionales octales apropiados.
Conversión de hexadecimal a decimal.
Se utiliza la misma técnica que la anterior pero tomando los valores posicionales hexadecimales apropiados.
Complemento a uno.
Es un operador de complemento a nivel de bits ( ) de C.
Ones_complement_of_value = value;
Aquí value tiene sus bits invertidos, los unos se convierten en ceros y vice versa:
value:
00000000 00000000 00000000 00001101
value: (es decir el complemento uno de value)
11111111 11111111 11111111 11110010
AND: los bits en el resultado se establecen a 1 si los bits correspondientes en los dos operandos son 1.
| OR inclusivo: los bits en el resultado se establecen a 1 si por lo menos uno de los bits correspondientes en ambos operandos es 1.
^ OR exclusivo: los bits en el resultado se definen a 1 si uno de los bits correspondientes en los ambos operandos es 1.
<< desplazamiento a la izquierda: desplaza los bits del primer operando hacia la izquierda en el número de bits especificado por el segundo operando; a partir de la derecha, rellena con bits 0.
>> desplazamiento a la derecha: desplaza los bits del primer operando hacia la derecha en el número de bits especificado por el segundo operando; el método de rellenar a partir de la izquierda depende de la máquina.
jueves, 15 de marzo de 2012
Exámen
jueves, 1 de marzo de 2012
viernes, 17 de febrero de 2012
Eras Informatica
Primera Generación (1951 a 1958):
Las computadoras de la primera Generación emplearon bulbos para procesar información. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor.
Segunda Generación (1959-1964)
Transistor Compatibilidad Limitada
El invento del transistor hizo posible una nueva Generación de computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el costo seguía siendo una porción significativa del presupuesto de una Compañía. Las computadoras de la segunda generación también utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones.
Tercera Generación (1964-1971)
Circuitos Integrados, Compatibilidad con Equipo Mayor, Multiprogramación, Minicomputadora
Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes.
que los modelos contemporáneos.
Las computadoras de la primera Generación emplearon bulbos para procesar información. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor.
Segunda Generación (1959-1964)
Transistor Compatibilidad Limitada
El invento del transistor hizo posible una nueva Generación de computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el costo seguía siendo una porción significativa del presupuesto de una Compañía. Las computadoras de la segunda generación también utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones.
Tercera Generación (1964-1971)
Circuitos Integrados, Compatibilidad con Equipo Mayor, Multiprogramación, Minicomputadora
Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes.
que los modelos contemporáneos.
Suscribirse a:
Comentarios (Atom)


