POLIMORFISMO:
En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen
los objetos de una clase de responder al mismo mensaje o evento en función de los
parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad
que puede contener valores de diferentes tipos durante la ejecución del programa.
En algunos lenguajes, el término polimorfismo es también conocido como
‘Sobrecarga de parámetros’ ya que las características de los objetos permiten aceptar
distintos parámetros para un mismo método (diferentes implementaciones) generalmente
con comportamientos distintos e independientes para cada una de ellas.
el polimorfismo consiste en conseguir que un objeto de una clase se comporte
como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de
dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de
punteros a la superclase. De esta forma podemos tener dentro de una misma estructura (arrays,
listas, pilas, colas, ...) objetos de distintas subclases, haciendo que el tipo base de dichas estructuras
sea un puntero a la superclase.
FUNDAMENTOS DE PROGRAMACIÓN
martes, 20 de junio de 2017
viernes, 16 de junio de 2017
clases abstractas y abstracción
CLASES ABSTRACTAS:
Este Tipo de Clases nos permiten crear “método generales”,
que recrean un comportamiento común, pero sin especificar
cómo lo hacen. A nivel de código tienen por particularidad
que algunos de sus métodos no tienen “cuerpo de declaración”,
¿qué quiere decir esto? no tienen las llaves { } ni código dentro
de ellos y deben estar precedidos por la palabra clave abstract.
Si una clases contiene uno o más métodos abstractos está clase
debe ser abstracta. Estas clases como son generalidades no pueden
ser instanciadas por ningún objeto (se dice que su nivel de abstracción
es demasiado alto), entonces su único fin es ser heredado/extendido
por otras clases.
ABSTRACCIÓN:
Una abstracción se enfoca en la visión externa de un objeto, separa el comportamiento
específico de un objeto, a esta división que realiza se le conoce como la barrera
de abstracción, la cuál se consigue aplicando el principio de mínimo compromiso.
viernes, 26 de mayo de 2017
Maquina de Alan Turing
MAQUINA DE ALAN TURING
La máquina de Turing (abreviado MT) tiene, un control finito, una cabeza lectora y
una cinta donde puede haber caracteres, y donde eventualmente viene la palabra de
entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende
indefinidamente, llenándose los espacios con el carácter blanco (que representaremos con “t”).
La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el
extremo izquierdo, la MT la cabeza lectora es de lectura y escritura, por lo que la cinta
puede ser modificada en curso de ejecución. Además, en la MT la cabeza se mueve
bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidas veces sobre un
mismo segmento de la cinta.
Este modelo está conformado por un alfabeto de entrada y uno de salida, un símbolo especial
llamado blanco(normalmente b, Δ o 0), un conjunto de estados finitos y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una función de transición,
que recibe un estado inicial y una cadena de caracteres(la cinta, la cual es finita por la izquierda)
pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el
símbolo, escribir el nuevo símbolo perteneciente al alfabeto de salida y finalmente avanza a
la izquierda o a la derecha(solo una celda a la vez), repitiendo esto según se indique en la función
de transición, para finalmente detenerse en un estado final o de aceptación, representando así
la salida.
¿CÓMO FUNCIONA?
Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la máquina de Turing consiste
en una cinta infinitamente larga con unos y ceros que pasa a través de una caja.
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior.
La máquina tiene una serie de estados internos finitos que también se pueden numerar
en binario.
Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno arbitrario.
A continuación, se pone en marcha y la máquina lee el bit que se encuentra en ese momento
en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su
estado interno). Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar
el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo
por ejemplo.
La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta,
entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso
(la cinta se moverá hacia la derecha).
A continuación es conveniente inventar una notación para la secuencia del INPUT.
Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original
binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen
un cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1 respectivamente.
Así por ejemplo, el número 13 que en binario es 1101 es en binario expandido 1010010 con
un cero delante por esta última regla 01010010. Para volver al original hay que contraer el
binario expandido con la siguiente regla:
Empezamos a leer por la izquierda el binario expandido. Cuando encontremos un 0 tomamos
nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos
0 seguidos, apuntaríamos un 0 porque no habría ningún 1.Veamos con el 13 cómo se haría.
El primer 0 se encuentra en la primera posición y el siguiente 0 está en la posición 3.
Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y después un 0, entonces
apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se hace sucesivamente
y encontramos: 1101 que es el número original.
La máquina de Turing (abreviado MT) tiene, un control finito, una cabeza lectora y
una cinta donde puede haber caracteres, y donde eventualmente viene la palabra de
entrada. La cinta es de longitud infinita hacia la derecha, hacia donde se extiende
indefinidamente, llenándose los espacios con el carácter blanco (que representaremos con “t”).
La cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el
extremo izquierdo, la MT la cabeza lectora es de lectura y escritura, por lo que la cinta
puede ser modificada en curso de ejecución. Además, en la MT la cabeza se mueve
bidireccionalmente (izquierda y derecha), por lo que puede pasar repetidas veces sobre un
mismo segmento de la cinta.
Este modelo está conformado por un alfabeto de entrada y uno de salida, un símbolo especial
llamado blanco(normalmente b, Δ o 0), un conjunto de estados finitos y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una función de transición,
que recibe un estado inicial y una cadena de caracteres(la cinta, la cual es finita por la izquierda)
pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el
símbolo, escribir el nuevo símbolo perteneciente al alfabeto de salida y finalmente avanza a
la izquierda o a la derecha(solo una celda a la vez), repitiendo esto según se indique en la función
de transición, para finalmente detenerse en un estado final o de aceptación, representando así
la salida.
¿CÓMO FUNCIONA?
Una máquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
después de algunos pasos. Tanto el INPUT como el OUPUT constan de números en
código binario (ceros y unos). En su versión original la máquina de Turing consiste
en una cinta infinitamente larga con unos y ceros que pasa a través de una caja.
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 ó 1) está en su interior.
La máquina tiene una serie de estados internos finitos que también se pueden numerar
en binario.
Para llevar a cabo algún algoritmo, la máquina se inicializa en algún estado interno arbitrario.
A continuación, se pone en marcha y la máquina lee el bit que se encuentra en ese momento
en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su
estado interno). Después se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar
el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo
por ejemplo.
La traducción es como sigue: si la máquina se encuentra en el estado interno 0 y lee 1 en la cinta,
entonces pasará al estado interno 1101 (13), escribirá 1 y se moverá hacia la izquierda un paso
(la cinta se moverá hacia la derecha).
A continuación es conveniente inventar una notación para la secuencia del INPUT.
Esta notación se llama notación binaria expandida. Consiste en cambiar la secuencia original
binaria por otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen
un cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1 respectivamente.
Así por ejemplo, el número 13 que en binario es 1101 es en binario expandido 1010010 con
un cero delante por esta última regla 01010010. Para volver al original hay que contraer el
binario expandido con la siguiente regla:
Empezamos a leer por la izquierda el binario expandido. Cuando encontremos un 0 tomamos
nota de cuántos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos
0 seguidos, apuntaríamos un 0 porque no habría ningún 1.Veamos con el 13 cómo se haría.
El primer 0 se encuentra en la primera posición y el siguiente 0 está en la posición 3.
Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y después un 0, entonces
apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se hace sucesivamente
y encontramos: 1101 que es el número original.
lunes, 22 de mayo de 2017
TAREA
ALAN TURING
Alán Turing fué un pionero de los campos de la computación y la inteligencia artificial, y uno de los padres de la informática actual. Nació en 1912, en el seno de una familia de clase media londinense. Su padre, funcionario británico en India, deseaba que Alan fuera criado en Inglaterra. Por esa razón, cuando sus padres regresaron a India, lo dejaron al cuidado de unos amigos. Tenía solo 1 año de edad.
Durante su periodo de estudiante, pasó por diferentes centros de prestigio como el King’s College de Cambridge y la Universidad de Princeton, en los que se especializó en matemáticas, lógica y teoría de probabilidades. En 1936 publicó un trabajo en el que propuso un ingenio abstracto, conocido posteriormente como máquina de Turing. La máquina de Turing es un modelo matemático
que opera y lee instrucciones de una cinta y que es capaz de emular la lógica de funcionamiento de cualquier algoritmo de un computador.
Lo más sorprendente es que Turing desarrolló este modelo, que podía describir el funcionamiento de los ordenadores, antes de que existiera la tecnología capaz de construirlos.
En 1938, tras completar su doctorado en Princeton, Alan regresó a Gran Bretaña y comenzó a trabajar en la Escuela Gubernamental de
Códigos y Cifrados, donde investigó sobre el descrifado de códigos de la máquina alemana Enigma. Al principio no se dedicó exclusivamente a esta tarea, pero tras el estallido de la Segunda Guerra Mundial se mudó a Bletchley Park y se concentró por completo en la criptografía.
Trabajando en Bletchley Park junto con otros colegas desarrolló La Bombe, una máquina electromecánica basada en el trabajo de unos
criptógrafos polacos y con la que se consiguió descrifrar el código de las Enigma. El funcionamiento de La Bombe se basaba en una heurística que permitía acotar las posibilidades descartando las combinaciones menos probables. Lo que hacía era estudiar todas las posibles soluciones a fragmentos del texto original cifrado. Como se centraba en pequeños fragmentos, lograba descartar rápidamente gran cantidad de combinaciones que daban resultados sin sentido. Cuando La Bombe daba con una combinación exitosa se desconectaba la corriente eléctrica.
¿QUÉ APORTE HIZO ALÁN TURING PARA LA ÉPOCA MODERNA?
Alán Turing realizó numerosos aportes a lo que son hoy nuestras computadoras modernas, a través dela programación y la matemática. Sin duda fue un gran pensador que aportó desde varios campos al desarrollo de la programación y los códigos.
Dio el primer paso en plantear la posibilidad de una inteligencia artificial que pueda parecerse a la humana en su efectividad y cumplimiento de tareas, un tema que hasta el día de hoy es clave.
Alán Turing fué un pionero de los campos de la computación y la inteligencia artificial, y uno de los padres de la informática actual. Nació en 1912, en el seno de una familia de clase media londinense. Su padre, funcionario británico en India, deseaba que Alan fuera criado en Inglaterra. Por esa razón, cuando sus padres regresaron a India, lo dejaron al cuidado de unos amigos. Tenía solo 1 año de edad.
Durante su periodo de estudiante, pasó por diferentes centros de prestigio como el King’s College de Cambridge y la Universidad de Princeton, en los que se especializó en matemáticas, lógica y teoría de probabilidades. En 1936 publicó un trabajo en el que propuso un ingenio abstracto, conocido posteriormente como máquina de Turing. La máquina de Turing es un modelo matemático
que opera y lee instrucciones de una cinta y que es capaz de emular la lógica de funcionamiento de cualquier algoritmo de un computador.
Lo más sorprendente es que Turing desarrolló este modelo, que podía describir el funcionamiento de los ordenadores, antes de que existiera la tecnología capaz de construirlos.
En 1938, tras completar su doctorado en Princeton, Alan regresó a Gran Bretaña y comenzó a trabajar en la Escuela Gubernamental de
Códigos y Cifrados, donde investigó sobre el descrifado de códigos de la máquina alemana Enigma. Al principio no se dedicó exclusivamente a esta tarea, pero tras el estallido de la Segunda Guerra Mundial se mudó a Bletchley Park y se concentró por completo en la criptografía.
Trabajando en Bletchley Park junto con otros colegas desarrolló La Bombe, una máquina electromecánica basada en el trabajo de unos
criptógrafos polacos y con la que se consiguió descrifrar el código de las Enigma. El funcionamiento de La Bombe se basaba en una heurística que permitía acotar las posibilidades descartando las combinaciones menos probables. Lo que hacía era estudiar todas las posibles soluciones a fragmentos del texto original cifrado. Como se centraba en pequeños fragmentos, lograba descartar rápidamente gran cantidad de combinaciones que daban resultados sin sentido. Cuando La Bombe daba con una combinación exitosa se desconectaba la corriente eléctrica.
¿QUÉ APORTE HIZO ALÁN TURING PARA LA ÉPOCA MODERNA?
Alán Turing realizó numerosos aportes a lo que son hoy nuestras computadoras modernas, a través dela programación y la matemática. Sin duda fue un gran pensador que aportó desde varios campos al desarrollo de la programación y los códigos.
Dio el primer paso en plantear la posibilidad de una inteligencia artificial que pueda parecerse a la humana en su efectividad y cumplimiento de tareas, un tema que hasta el día de hoy es clave.
Clase Número 12
CLASE NÚMERO 12
Vimos la mitad de la película llamada "el Código Enigma" relacionando y entendiendo más a fondo la historia de la primera computadora.
Clase Número 11
CLASE NÚMERO 11
Empezamos a ver la temática de clases relacionada con la programación orientada a objetos (POO). También prácticas de constantes y clases en PHP.
Empezamos a ver la temática de clases relacionada con la programación orientada a objetos (POO). También prácticas de constantes y clases en PHP.
jueves, 18 de mayo de 2017
Clase Número 10
CLASE NÚMERO 10
Hicimos un repaso de las funciones que hemos visto hasta el momento de php y aclaramos dudas que habían quedado en las clases anteriores.
Hicimos un repaso de las funciones que hemos visto hasta el momento de php y aclaramos dudas que habían quedado en las clases anteriores.
Suscribirse a:
Entradas (Atom)