Ir al contenido principal

Entradas

Árbol binario de expresión y Notación Posfija (II)

En una publicación anterior, hablaba sobre que es la notación posfija, para que puede ser útil y mostraba un pequeño ejemplo con una expresión aritmética simple: (9 - (5 + 2)) * 3 Pues bien, hoy voy a mostraros como podemos crear el árbol binario correspondiente para analizar o evaluar esta expresión, haciendo uso del recorrido en postorden. Lo primero que debemos hacer es crear el árbol, respetando las siguientes reglas: ⦁ Los nodos con hijos (padres) representarán los operadores de la expresión. ⦁ Las hojas (terminales sin hijos) representarán los operandos. ⦁ Los paréntesis generan sub-árboles. A continuación podemos ver cómo queda el árbol para la expresión del ejemplo (9 - (5 + 2)) * 3: Si queremos obtener la notación postfija a partir de este árbol de expresión, debemos recorrerlo en postorden (nodo izquierdo – nodo derecho – nodo central), obteniendo la expresión: 952+-3x Así, si quisiéramos evaluar la expresión, podemos hacer ...

Apps de Android que acceden al IMEI

Que el sistema operativo Android, posee gran cuota del mercado de la telefonía móvil, además de encontrarse en otros muchos dispositivos, no es nada que no sepamos ya. Que precisamente esa es la razón por la que la plataforma Android cuenta con gran cantidad de aplicaciones en su haber y que por eso, existen multitud de virus y demás especímenes (adware, spyware, crapware, etc), tampoco es ninguna novedad. Y que este es el motivo por el que debemos extremar las precauciones a la hora de instalar una App en nuestro dispositivo (independientemente del SO), tampoco debiera ser nada nuevo. Pero, ¿Qué buscan todas estas aplicaciones "malas"? Pues el abanico de opciones es amplio, pero la inmensa mayoría van detrás de nuestros DATOS y buscan asaltar nuestra privacidad, los fines también son varios. En cualquier caso, lo que pretendo comentar hoy, es algo relacionado con el IMEI de nuestros dispositivos. Si, ese número cuya finalidad es identificarlo de manera ...

Expresiones Aritméticas en Notación Postfija (I)

La Notación Polaca Inversa, Notación Posfija o RPN (Reverse Polish Notation) no es más que una forma de representación de expresiones aritméticas. Se trata de una notación que permite omitir los paréntesis en las expresiones, pero manteniendo el orden o prioridad de los distintos operadores y los cálculos se van realizando de forma secuencial en el momento en que se introduce un operador. Si quieres programar una calculadora, un interprete, un evaluador de expresiones, un compilador, etc., sin duda te resultará muy interesante. A modo de ejemplo, consideremos la siguiente expresión aritmética simple para obtener su notación en postfijo: (9 - (5 + 2)) * 3 En primer lugar evaluamos el paréntesis interior, obteniendo la siguiente expresión: (9 - (52+)) * 3 Ahora evualuamos el paréntesis exterior: (952+-) y finalmente el producto: 952+-3* Con lo que finalmente hemos obtenido la notación posfija 952+-3* correspondiente a la expresión (9 - (5 + 2)) * 3 Ni que de...

Descargar un archivo utilizando PowerShell

Hace tiempo publiqué como descargar un archivo alojado en un servidor remoto desde una aplicación programada en C# ( Descargar archivo con C#) Pues bien, en esta ocasión vamos a ver lo sumamente sencillo que resulta hacer la misma operación desde un script en PowerShell: $url = " http://www.manuelvillasur.com " $localFolder = "C:\FileName.txt" $client = New-Object System.Net.WebClient $client.DownloadFile($url, $localFolder) Así de fácil. Obviamente en $url debéis escribir la uri completa en la que se encuentra el archivo a descargar y en $localFolder la ubicación o el path completo de vuestro disco duro o unidad local de almacenamiento en la que queráis que sea guardado el archivo.

Data Binding con C# directamente en el Code Behind

Trabajar con Data Binding directamente en XAML es algo bastante trivial, aunque también puede dar algún que otro quebradero de cabeza. En cualquier caso, no es la única forma de hacerlo puesto que siempre podemos recurrir al data binding desde el code behind directamente. Esto último quizás no sea muy recomendable cuando estamos trabajando con patrones de diseño como puede ser el MVVM por razones obvias propias del patrón, pero que no sea recomendable no significa que no podamos hacerlo o incluso que no sea conveniente hacerlo en determinados casos. El enlace a datos en C# y desde el code behind lo podemos hacer de muchas formas, aquí voy a exponer una (a modo de concepto) que he utilizado recientemente. El escenario es sencillo. Se tiene un control Grid al que queremos enlazar su propiedad Visibility con una propiedad de una clase de datos. Aquí podéis ver un extracto de código en donde se realiza la parte del DataBinding propiamente dicha:  // Se crea la instancia de l...

Nivel Técnico en Cursos, Charlas, Material ... de Microsoft

Cuando realizamos un curso o asistimos a una charla, webcast, etc. de Microsoft, es muy importante tener en cuenta el nivel técnico indicado en cada uno de estos eventos. Y es importante, porque no es muy recomendable realizar un curso de nivel 400, si se tiene por ejemplo un nivel 100 sobre el tema que trata dicho curso. Por esto, es necesario saber cuál es exactamente el estándar que define cada uno de estos niveles y actuar en consecuencia. A continuación tenemos la definición de cada uno de los niveles (100, 200, 300 y 400): Nivel 100: Este es el nivel de introducción y como tal se requerirá poca experiencia o ninguna. En este nivel se tratarán conceptos, funciones, características y beneficios sobre el tema en cuestión. Nivel 200: Este es el nivel medio. Supone un conocimiento de nivel 100 proporcionando además detalles más específicos sobre el tema. Nivel 300: Se trata de un nivel avanzado. Da por echo que se cuenta con el conocimiento de un nivel 200 y u...

Y el DRON llegó como todo: Sin legislación clara para el usuario

Antes de nada una pequeña introducción para que se entienda que me lleva a escribir esta opinión.   Parece ser, que los productos llegan al mercado y por tanto a manos de sus usuarios sin antes existir una legislación clara que contemple todo lo relacionado con su uso o incluso su posesión. Solamente cuando ya existen miles/millones de usuarios se crean las leyes al respecto y si no existen, pues simplemente se ponen multas y listo. Eso sí, cuando ya se ha implantado la necesidad, cuando la gente ya es tecno-dependiente, cuando ya no hay "marcha atrás" posible.   Pongamos por caso los GPS (Sistemas de Posicionamiento Global). Primero lo compran millones de usuarios y posteriormente se prohíbe su manipulación en el vehículo. ¿No habría que informar antes? ¿No sería conveniente que en el momento de su adquisición se facilitase también la normativa correspondiente? Ahora sí, ahora se "ADVIERTE", pero primero no se hizo nada.   Y ¿Qué sucede con los telé...