Ads 468x60px

Perfil

lunes, 18 de febrero de 2013

EStructura de Datos (Pilas)



1.- Recorrido

DefiniciĂłn:

Ya que las pilas son LIFO(Last in - First Out) el Recorrido se hace sacando el ultimo dato que se inserto hasta que no encuentre ningĂşn otro.

Detalle:

Apuntador toma el Top, después ve si la condición cumple para efectuar un Ciclo mientras Apuntador sea diferente de Nulo, si cumple lo que hace es que despliega el contenido de la Pila(Pila[Apuntador]), después Apuntador se le resta 1. Este proceso se repite hasta que Apuntador sea igual Nulo(Cuando llega a este punto la Pila ya fue Recorrida).

Algoritmo:

Recorrido(Pila, Top)

Apuntador ←- Top

Repetir mientras Apuntador ≠ Nulo

Imprimir Pila[Apuntador]

Apuntador ←- Apuntador - 1

Fin del ciclo

Salir

Diagrama:



Push

DefiniciĂłn:

Push es simplemente el método por el cual va agregando un Dato nuevo a la Pila tomando en cuenta la Capacidad Máxima (Max) de almacenar un dato.

Detalle:

Compara en un principio el Top con Max, si la condiciĂłn no cumple es imposible insertar mas datos a la Pila, de otra forma lo que hace es Incrementar el valor de Top, y copia el valor de Elemento en Pila[Top]. De esta forma el dato ya esta insertado.

Algoritmo:

Push(Pila, Top, Max, Elemento)

Si Top ≠ Max

Top ←- Top + 1

Pila[Top] ←- Elemento

Si no:

Imprimir “Pila Llena”

Salir

Diagrama:



Pop

DefiniciĂłn:

Pop es simplemente el método por el cual va sacando el ultimo Dato de la Pila, basándose únicamente en el Top.

Detalle:

Compara para determinar si la pila esta vacio, de otra forma lo que hace es Imprimir el valor de Pila[Top] (Que es el dato que esta apunto de Eliminar) y enseguida a Top le resta 1, de esta forma el dato ya no existe.

Algoritmo:

Pop(Pila, Top)

Si Top ≠ Nulo

Imprimir Pila[Top]

Top ←- Top - 1

Si no:

Imprimir “Pila VacĂ­a”

Salir

Diagrama:



BĂşsqueda

DefiniciĂłn:

Este método usa el recorrido para encontrar Elemento y desplegar un mensaje si la búsqueda es exitosa.

Detalle:

El algoritmo compara para determinar si la Pila tiene algĂşn dato, si no simplemente desplegara Lista VacĂ­a y saldrá. De otra manera hará un Recorrido y comparara con cada uno de los Datos de la Pila hasta encontrar el dato que desea buscar. Si lo encuentra desplegara “El Dato fue encontrado” de otra manera “El Dato no se encontrĂł”.

Algoritmo:

Busqueda(Pila, Top, Elemento)

Si Top ≠ Nulo

Apuntador ←- Top

Repetir mientras Apuntador ≠ Nulo

Si Pila[Apuntador] = Elemento

Imprimir “El Dato fue encontrado” y Salir

Apuntador ←- Apuntador - 1

Fin del ciclo

Imprimir “El Dato no se encontrĂł”

Si no:

Imprimir “Pila VacĂ­a”

Salir

Diagrama:



Eliminacion

DefiniciĂłn:

Este método busca un Dato dentro de la pila y lo elimina.

Detalle:

El algoritmo compara para determinar si la Pila tiene algĂşn dato, si no simplemente desplegara Pila VacĂ­a y saldrá. De otra manera hará un Recorrido y comparara con cada uno de los Datos de la Pila hasta encontrar el dato que desea eliminar, mientras hace esto copia cada uno de los datos a un arreglo Temp para cuando encuentre el Dato regresar esos valores a la Pila. Si lo encuentra desplegara “Eliminado el Dato” y le restara 1 a Top, de otra manera “El Dato no encontrado”.

Algoritmo:

Borrar(Pila, Temp, Top, Elemento)

Si Top ≠ Nulo

Apuntador1 ←- Top

Repetir mientras Apuntador1 ≠ Nulo

Si Pila[Apuntador1] = Elemento

Imprimir “Eliminando el Dato…”

Repetir mientras Apuntador2 ≠ Nulo

Pila[Apuntador1]=Temp[Apuntador2]

Fin del ciclo

Top ←- Top - 1 y Salir

Si No:

Temp[Apuntador2] ←- Pila[Apuntador1]

Apuntador1 ←- Apuntador1 - 1

Apuntador2 ←- Apuntador2 + 1

Fin del ciclo

Imprimir “Dato no encontrado”

Si no:

Imprimir “Pila VacĂ­a”

Salir

Diagrama:


Consejo rápido: Una visión rápida de Querious (MySQL Manager)

En punta vĂ­deo rápido de hoy, vamos a tener un rápido (no patrocinado) visiĂłn general de un gestor de base de datos MySQL para Mac que me encontrĂ© ayer, llamado Querious . Como menciono en el screencast, me gusta especialmente esta, porque simplemente funciona - sin ser demasiado complicado o abrumador en la forma en que phpMyAdmin puede ser para algunos.


Algunos ejercicios de programacion para principiantes


Ejercicios Programacion

1.- Conocidos cada uno de los 150 nĂşmeros enteros de un conjunto, desarrolle un algoritmo para determinar:
a.) Cuantos son menores que -5
b.) Cuantos son mayores que 30
c.) Cuantos están comprendidos entre -25 y 35
d.) Cual es el mayor de todos
e.) Cual es el menor de todos
f.) Cual es el promedio de todos ellos
g.) ¿Hay mas positivos que negativos en el conjunto?
h.) Calcular el valor de: (numero – 1)2
i.) Cuantos nĂşmeros son pares y cuantos son impares negativos.

2.- Una empresa arrendadora de automĂłviles, necesita automatizar la facturaciĂłn de manera que cuando cada cliente que entregue el auto alquilado se de entrada a la siguiente informaciĂłn: Nombre del Cliente, NĂşmero de KilĂłmetros que marcaba el odĂłmetro cuando este recibiĂł el auto y cuando lo entregĂł. Elabore un algoritmo que permita:

a.)    Emitir la factura inmediatamente a cada cliente que entregue un auto, indicando el monto a pagar de acuerdo a la siguiente tarifa:
Bs. 6500                                                                Si recorriĂł hasta un máximo de 560Km.
Bs. 6500 + 2000 Bs./cada Km. Adicional                        Si recorriĂł entre 560 y 720 Km (inclusive) Bs. 6500 + (2000 Bs,/cada Km entre 560 y 720)+           Si recorriĂł mas de 720 Km.
                               1200 Bs./cada Km adicional)

b.)    Obtener el total recaudado en Bs.
c.)    Obtener el nĂşmero de clientes que pagĂł la tarifa mĂ­nima
d.)    Obtener el cliente que pago la mayor factura
e.)    Obtener el porcentaje de clientes que pagaron entre 10350 y 18450 Bs.

3.- El conductor de un vehĂ­culo llega a una EstaciĂłn de Servicio a solicitar que le sea llenado el tanque de combustible. En la estaciĂłn se despacha gasolina de tres tipos de octanaje “A”, “B” y “C”; de los que se conoce su precio en Bs./litro. Una vez que el conductor solicite uno de los tipos y conocida la capacidad del tanque en litros, elabore un algoritmo que calcule el monto a pagar por el conductor, en Bs.

4.-  En vista de la poca asistencia de pĂşblico, un cine ha decidido ofrecer determinadas ofertas para llamar la atenciĂłn, sobre todo en algunos dĂ­as de la semana. El cine tiene dos salas disponible (A y B) y en cada una ofrece una pelĂ­cula distinta, con precios de entrada diferente, pero conocidos.

En la Sala A, se ofrece un 5% de descuento: para las mujeres, sĂłlo los dĂ­as miĂ©rcoles y jueves, mientras que para los hombres se da solo el dĂ­a viernes.
En la Sala B, se ofrece un 12% de descuento, el dĂ­a martes, sĂłlo para mujeres.

A cada persona que llega a la taquilla se le solicita: a que sala desea entrar y se toma nota de su sexo. Considerando que al menos una persona vaya a cine, diseñe un algoritmo que permita atender a todas las personas que lleguen un dĂ­a conocido, a solicitar entrada al cine y determine:
a) El precio definitivo que debe pagar cada persona
b) La sala más visitada, ese dĂ­a, una vez finalizado el ingreso de personas
c) El porcentaje de mujeres que ingreso en cada sala


5.- En un laboratorio de FĂ­sica, se lleva a cabo un experimento en donde un dispositivo lanza burbujas (esferas) de aire dentro de un campo elĂ©ctrico. Para cada burbuja, el dispositivo muestra el valor de su radio en mm., y la velocidad que Ă©sta adquiere en cm/s. Una burbuja se considera válida si cumple lo indicado en cualquiera de los casos, especificados en la siguiente tabla

Caso
Volumen (mm3)
Velocidad (cm/s)
A
Hasta 0.015
Entre 0.1 y 0.3  (ambos inclusive)
B
Más de 0.015
Entre 0.05 y 0.095 (ambos inclusive)

El experimento se considera comprobado si se cumple:
  • Se lacen al menos 45 burbujas, considerando que por motivos de calibraciĂłn del dispositivo, no se deben tomar en cuenta las primeras cinco
  • El 78% de las burbujas, como mĂ­nimo, sean validas.

Diseñe un algoritmo que permita, tomar como datos de entrada los valores que suministra el dispositivo y verifique si un experimento puede considerar o no comprobado, tomando en cuenta que el dispositivo se encuentre averiado y no haya sido posible el lanzamiento de alguna esfera.

Nota: Volumen de una esfera: V=4/3 * Pi * r3

Los porqués y cuandos para patrones de diseño en PHP


Hay un montón de artículos que explican qué son los patrones de diseño, y cómo ponerlas en práctica, la web no tiene todavía otro de esos artículos! En su lugar, en este artículo, vamos a discutir más el cuando ypor qué , en lugar de la que y cómo .

Voy a presentar diferentes situaciones y casos de uso para los patrones, y también proporcionará definiciones cortas para ayudar a aquellos de ustedes que no están tan familiarizados con estos patrones específicos. Vamos a empezar.

Utilice un patrón de la fábrica
El patrón de la fábrica se inventó para ayudar a los programadores organizar la información relativa a la creación de objetos. Objetos veces tienen muchos parámetros del constructor, en otras ocasiones, se debe llenarse con información predeterminada inmediatamente después de su creación. Estos objetos deben ser creados en las fábricas, manteniendo toda la información relativa a su creación e inicialización contenido en un solo lugar.

Cuando se utilice un patrĂłn de fábrica cuando se encuentre escribiendo cĂłdigo para reunir la informaciĂłn necesaria para crear objetos.
Por quĂ©: Las fábricas ayudan a contener la lĂłgica de la creaciĂłn de objetos en un solo lugar.TambiĂ©n pueden romper dependencias para facilitar el acoplamiento suelto y la inyecciĂłn de dependencia para permitir un mejor análisis.

El patrĂłn de puerta de enlace

Este patrón define un canal de comunicación entre una solución de persistencia y la lógica de negocio.Para aplicaciones más sencillas, se puede recuperar o recrear objetos completos por sí mismo, sino la creación de objetos es la responsabilidad de las fábricas en la mayoría de aplicaciones complejas.Gateways simplemente recuperar y conservar los datos en bruto.

Cuándo: Cuando usted necesita para recuperar o conservar la informaciĂłn.
Por quĂ©: Ofrece una interfaz sencilla pĂşblica para las operaciones de persistencia complicados. TambiĂ©n encapsula conocimiento persistencia y la lĂłgica de negocios desacopla de la lĂłgica de persistencia.
De hecho, el patrón de puerta de enlace es sólo una implementación particular de otro patrón de diseño que vamos a discutir en breve: el patrón del adaptador.

Vaya con el Proxy

Hay momentos en los que no pueden (o no quieren) exponer el conocimiento de la capa de persistencia a las clases de su negocio. El patrón de poder es una buena manera de engañar a sus clases de negocios en el pensamiento de que están utilizando objetos ya existentes.
Cuándo: Usted tiene que recuperar informaciĂłn de una capa de persistencia o una fuente externa, pero no quiere que su lĂłgica de negocio para saber esto.
Por quĂ©: Para ofrecer un enfoque no invasivo para la creaciĂłn de objetos detrás de las escenas. TambiĂ©n se abre la posibilidad de recuperar estos objetos sobre la marcha, perezosamente, y de diferentes fuentes.
La representaciĂłn efectiva implementa la misma interfaz que un objeto real e imita su funcionalidad. La lĂłgica de negocio simplemente se utiliza como si fuera un objeto real, pero de hecho, el proxy crea el objeto si no existe uno.

Conecte un adaptador
El patrĂłn adaptador simplemente se crea una correspondencia entre la lĂłgica de negocio y algo más. Ya hemos visto un patrĂłn en acciĂłn: el patrĂłn de puerta de enlace.
Cuándo: Es necesario crear una conexiĂłn con un mĂłdulo de pre-existente y cambiar potencialmente, una biblioteca o API.
Por quĂ©: Para que la lĂłgica empresarial a confiar sĂłlo en los mĂ©todos pĂşblicos del adaptador ofrece, y permite el cambio del otro lado del adaptador fácilmente.
Si cualquiera de los modelos anteriores no se ajuste a su situaciĂłn, entonces usted podrĂ­a usar ...

El patrĂłn de puente

Este es un patrĂłn muy complicado. Yo personalmente no me gusta porque por lo general es más fácil tomar un enfoque diferente. Pero para aquellos casos especiales, cuando otras soluciones fallen, se puede considerar el patrĂłn de puente.
Cuándo: El patrĂłn adaptador no es suficiente, y que cambiar de clase en ambos lados de la tuberĂ­a.
Por quĂ©: Para ofrecer una mayor flexibilidad a costa de una complejidad considerable.

O acepte una visitantes

Si su problema de extender la funcionalidad es diferente - por ejemplo, usted tiene un complejo árbol-como la estructura de los objetos, y desea agregar funcionalidad a muchos nodos a la vez - una iteraciĂłn simple no es posible, pero un visitante podrĂ­a ser una soluciĂłn viable. La desventaja, sin embargo, es que un patrĂłn de aplicaciĂłn visitante requiere una modificaciĂłn a la vieja clase si no se ha diseñado para aceptar un visitante.
Cuándo: Un decorador no es adecuada y cierta complejidad adicional es aceptable.
Por quĂ©: Para que organizĂł y enfoque para definir la funcionalidad de varios objetos, pero a costa de una mayor complejidad.




domingo, 17 de febrero de 2013

Aplicaciones Creadas con Adobe Air


Adobe Air es un software multiplataforma, que funciona en Windows, Mac y Ăşltimamente tambiĂ©n en Linux, este permite crear aplicaciones que combinan los beneficios de las aplicaciones enriquecidas de internet (RIA) con las cualidades de las aplicaciones de escritorio.
Según los especialistas las aplicaciones web serían el futuro, por lo mismo las empresas están migrando sus sistemas a la web, mientras que las aplicaciones estáticas de PC estarían perdiendo terreno.
El cliente de Adobe Air se instala de igual forma que Flash y Shockwave, lo distinto es que este pesa más o menos 11 MB, pero con eso podrĂ­as tener una aplicaciĂłn tan poderosa como Google Analytics de Adobe Air en el escritorio tan solo utilizando 1 MB.
Ya existen muchas aplicaciones creadas con Adobe Air, algunas de ellas muy interesantes para utilizar en nuestro escritorio, por mencionar brevemente algunas de estas tenemos:

TWHIRL:

twhirlPor el nombre es fácil adivinar sobre su funciĂłn, es una aplicaciĂłn creada con el fin de comunicarse con el API de Twitter. Además, tiene más opciones Ăştiles al momento de Twittear. TambiĂ©n destaca el soporte de idioma español y el soporte para cambiar de apariencia.

ALERTTHINGY:

AlertThingyPodremos ver toda la actividad de nuestros contactos en FriendFeed, además de escribir nuevos mensajes, compartir links así como comentar o guardar en favoritos alguna de las actualizaciones de nuestros amigos. También incorpora un buscador que nos hace más fácil algunas tareas comunes.

GOOGLE ANALYTICS VĂŤA AIR:

analyticsNace esta aplicación para los que están cansados de usar un navegador para revisar Google Analytics. La idea es proveer de toda la comodidad de las aplicaciones de escritorio, su funcionamiento es bastante sencillo, para toda la información que maneja la herramienta de Analytics.

POWNCE:

pownceEs una herramienta que te permite mantenerte en contacto con otras personas. Puedes enviar archivos de personas, eventos, enlaces y mensajes que superan los 144 caracteres. El servicio tiene su versiĂłn en lĂ­nea pero su aplicaciĂłn de escritorio es muy recomendada.

ADOBE TV:

Adobe tvEs una aplicación Adobe como una especie de Media Player pero de Adobe, esta aplicación reproduce contenido directo de internet, por streaming o bien descargándolos, aunque no todos los vídeos permiten esta última opción. Adobe TV es un canal donde se pueden encontrar vídeos sobre diseño y aplicaciones como Flash o PhotoShop.

AOL VIDEO:

aolEsta aplicación muestra una serie de vídeos (top 100 de AOL), que se pueden ver con mucha calidad y con una velocidad de descarga muy buena. El vídeo es de alta definición y las descargas se hacen por streaming, no queda congelada la imagen mientras está descargando el vídeo, lo que hace de esta una alternativa bastante interesante para los amantes de los vídeos.

WEBKUT:

WebKutEsta es una fantástica aplicación que realiza una captura de cualquier web, teniendo la opción capturar la imagen completa, una selección o una vista. WebKut nos permite guardar la imagen resultante en formato jpg, png y pdf. Podemos escoger el tamaño de la imagen o la proporción de ella.

TUMBLEWEED:

TumbleweedEs una aplicación de escritorio creada con el fin de facilitar la administración de nuestros blog. Tumblr nos permite agregar artículos, imágenes, vídeos sin necesidad de abrir un navegador web y realizar la tarea de actualización de forma más rápida.

DIGG RSS READER:

DiggComo su nombre lo dice esta aplicación toma como base el RSS de Digg, permitiendote mantener tu contenido favorito en pestañas o filtrar eligiendo las noticias, imágenes, vídeos, para ver más del contenido basta con hace clic en la selección.

CLEVR STITCHER:

clevrNunca fue tan fácil hacer panoramas, con esta aplicación desarrollada en Adobe AIR basta con tomar las fotografías arrastrarlas a la aplicación y en minutos tendremos un panorama perfecto.

COLOR BROWSER:

color browserEs una herramienta para inspirarte, con ella puedes crear y organizar las paletas de colores a tu preferencia, esta sencilla aplicación es lo que todo diseñador debe tener a mano.

JOOMEDIT:

Esta aplicaciĂłn te permite administrar los sitios que utilizan el gestor de contenidos Joomla cĂłmodamente desde el escritorio.
Te invitamos a que agregues más aplicaciones creadas con Adobe Air que hayas utilizado y que consideres importante mencionarlas y si estás interesado en más aplicaciones puedes revisar la lista de Adobe.