26 de agosto de 2007

Pseudocodigo para encontrar el resultado de una raiz cuadrada

Comenzaremos ientificando el numero y lo dividiremos de derecha a izquierda de dos en dos unidades o en parejas, despues al tener el primer conjunto de izquerda a derecha.
Ahora se buscara un numero del 1-9 que multiplidado por si mismo nos de el valor exacto o mas cercano a dicho conjunto de numeros, si no llegase a ser exacto se le restara este valor a el 1er valor del conjunto, colocando el residuo de este primer conjunto, y bajaremos a su lado derecho la segunda pareja de numeros, haciendo un nuevo conjunto el cual tomaremos y comenzaremos a dividir de dos en dos o por parejas pero ahora de izquierda a derecha; el primer resultado se bajara pero multiplicado por dos obteniendo un nuevo numero, ahora se buscara otro numero del 1-9 que multiplicado por el mismo se acerque lo mas posible a la segnda pareja del nuevo conjunto de numeros el cual se colocarà junto a l primer resultado, y para encontrar el resultado serà necesario multiplicar este numero por si mismo, y por el doble del primer resultado, este producto se le restara al segundo conjunto de numeros obtenidos teniendo otro residuo, este se pondrà debajo del segundo conjunto, y bajando la tercera pareja del conjunto inicial quedando un tercer conjunto el cual se dividirà en parejas de dos en dos apartit del lado izquierdo al derecho.
en la parte del resultado el segundo valor se multiplicara por dos y bajara a un tercer nivel mientras el primer resultado ya antes multiplicado por dos bajara con dicho valor y de nuevo, se buscara un numero del 1-9 que multiplicado por si mismo me de un resulatdo igual o que se acerque mas a el valor de nuestro tercer conjunto, este numero se multipicara por el doble del segundo resultado y el 2º valor del primer resultado y por si mismo y se restara el producto al valor del tercer conjunto y los numeros del primer nivel seran nuestro resultado

Pseudocogigo para sacar el volumen del cono

Cono: se entendera como cono el cuerpo geometrico engendrado por la revoluciòn d eun triangulo rectangulo alrededor de uno sus catetos.

Para sacra el volumen del cono es igual a un tercio de su altura; (entenderemos como altura la dedia de la base que serà la parte mas ancha de la figura, a la punta o parte mas pequeña de la figura), esta sera multiplicadapor el area de la base que sera la de un circulo la cual sabremos es A= Pi(r2) sabiendo el valor de Pi= 3.1416, y radio es la medida sel centro del circulo a cualquier punto de la circunferencia quedando nuestra formula (Pi(r2)h)/3 ó 1/3h(pi(r2))

Pseudocodigo para sacar el area de un triangulo

Una figura compuesta por tres lados formando angulos entre si, que su suma de angulos interiores den a 180º para sacar su area tenemos que A=bh/2

Entenderemos como base la parte paralela a una linea horizontal y como altura a la medida que este paralela a una linea perpendicular a la base, a su vez teniendo multiplicado estos dos valores y obteniendo su producto se dividira entre dos obteniendo el resultado de A.

Pseudocodigo para sacar el area de un circulo

Para sacra el area de un circulo primero teclearas el valor de Pi=3.1416 esto es que el diametro cabra tres veces en la circunferencia y sobrarà una secciòn la cual serà el 0.1416 .Entenderemos como diametro como el segmento de recta que une dos puntos de circunferencia pasando por el centro y a su vez el radio serà el segmento de recta que un el centro ocn u punto cualquiera de la circunferencia, asi tendremos que, A= Pi(r2), A serà igual al valor de 3.1416 por radio al cuadrado( el valor del radio multiplicado por si mismo

Efecto Casimir

En física, el efecto Casimir o la fuerza de Casimir-Polder es una fuerza física ejercida entre objetos separados debido a la resonancia de los campos energéticos en el espacio entre los objetos. A veces, esto se describe en términos de partículas virtuales que interaccionan con los objetos, debido a una de las formulaciones matemáticas posibles para calcular la fuerza del efecto. Como la intensidad de la fuerza cae rápidamente con la distancia, es solamente mesurable cuando la distancia entre los objetos es extremadamente pequeña. En una escala por debajo del micrón, esta fuerza llega a ser tan fuerte que se convierte en la fuerza dominante entre dos conductores neutros. De hecho en separaciones de 10 nanómetros - alrededor de cientos veces el tamaño típico de un átomo - el efecto Casimir produce el equivalente de 1 atmósfera de presión (101.3 kPa).
Los físicos holandeses Hendrik B.G. Casimir y Dirk Polder fueros los primeros en proponer la existencia de esta fuerza en 1948 y formularon un experimento para detectarla mientras participaban en la investigación en los laboratorios de investigación de Philips. La forma clásica del experimento utiliza un par de placas paralelas de metal neutras en el vacío, y demostró con éxito la fuerza a dentro del 15% del valor predicho por la teoría.
La fuerza de Van der Waals entre un par de átomos neutros es un efecto similar. En la física teórica moderna, el efecto Casimir desempeña un papel importante en el modelo chiral del nucleón; y en la física aplicada, está llegando a ser cada vez más importante en el desarrollo de los componentes de las nano-tecnologías cada vez más miniaturizados.


El efecto Casimir se puede entender por la idea que la presencia de metales conductores y dieléctricos alteran el valor esperado del vacío para la energía del segundo campo electromagnético cuántico. Puesto que el valor de esta energía depende de las formas y de las posiciones de los conductores y de los dieléctricos, el efecto Casimir se manifiesta como fuerza entre tales objetos.


El efecto Casimir es un resultado de la teoría cuántica de campos, que indica que todos los campos fundamentales, tales como el campo electromagnético, debe ser quánticos en cada punto del espacio. De manera muy simple, un campo en la física puede ser previsto como si el espacio estuviera lleno de bolas y de resortes que vibraban interconectados, y la fuerza del campo se puede visualizar como la dislocación de una bola de su posición de resto. Las vibraciones en este campo se propagan y están gobernadas por la ecuación de onda apropiada para el campo particular. El segundo campo electromagnético cuántico de la teoría cuántica de campos requiere que cada combinación bola-resorte sea cuántica, es decir, que la fuerza del campo será cuántica en cada punto en espacio. Canónicamente, el campo en cada punto del espacio es un oscilador armónico simple. Las excitaciones del campo corresponden a partículas elementales de la física de partículas. Sin embargo, incluso el vacío tiene una estructura sumamente compleja. Todos los cálculos de la teoría cuántica de campos se deben hacer referentes a este modelo de vacío.
El vacío tiene, implícito, todas las características que una partícula pueda tener: spin, polarización en el caso de la luz, energía, y así sucesivamente. En promedio, todas estas características se cancelan: el vacío es después de todo, vacío en este sentido. Una excepción importante es la energía del vacío o el valor de la expectativa de la energía del vacío. La cuantización de un oscilador armónico simple indica que la energía posible más baja o la energía del punto cero que tal oscilador puede tener es:
Al sumar sobre todos los osciladores posibles en todos los puntos en espacio da una cantidad infinita. Para quitar este infinito, uno puede decir que solamente las diferencias en energía son físicamente mensurables; este principio es la base de la teoría de la renormalización. En los cálculos prácticos, así es cómo el infinito se maneja siempre. En un sentido más profundo, sin embargo, la renormalización no es satisfactoria, y el eliminar este infinito es uno de los desafíos en la búsqueda de una teoría del todo. No hay actualmente una explicación fuerte sobre cómo este infinito se debe tratar como esencialmente cero; un valor diferente a cero es esencialmente la constante cosmológica y cualquier valor grande causa problemas en la cosmología.

Benchmarck

El benchmark es una técnica utilizada para medir el rendimiento de un sistema o componente de un sistema, frecuentemente en comparación con algún parámetro de referencia. También puede encontrarse como benchmarking, el cual se refiere específicamente a la acción de ejecutar un benchmark. La palabra benchmark es un anglicismo traducible al castellano como comparativa. Si bien también puede encontrarse esta palabra haciendo referencia al significado original en la lengua anglosajona, es en el campo informático donde su uso está más ampliamente extendido. Más formalmente puede entenderse que un benchmark es el resultado de la ejecución de un programa informático o un conjunto de programas en una máquina, con el objetivo de estimar el rendimiento de un elemento concreto o la totalidad de la misma, y poder comparar los resultados con máquinas similares. En términos de ordenadores, un benchmark podría ser realizado en cualquiera de sus componentes, ya sea CPU, RAM, tarjeta gráfica, etc. También puede ser dirigido específicamente a una función dentro de un componente, por ejemplo, la unidad de coma flotante de la CPU; o incluso a otros programas.

La tarea de ejecutar un benchmark originalmente se reducía a estimar el tiempo de proceso que lleva la ejecución de un programa (medida por lo general en miles o millones de operaciones por segundo). Con el correr del tiempo, la mejora en los compiladores y la gran variedad de arquitecturas y situaciones existentes convirtieron a esta técnica en toda una especialidad. La elección de las condiciones bajo la cual dos sistemas distintos pueden compararse entre sí es especialmente ardua, y la publicación de los resultados suele ser objeto de candentes debates cuando estos se abren a la comunidad.

También puede realizarse un "benchmark de software", es decir comparar el rendimiento de un software contra otro o de parte del mismo, por ejemplo, comparar distintas consultas a una base de datos para saber cual es la más rápida o directamente partes de código.

El término inglés benchmark proviene de las palabras bench (banquillo, mesa) y mark (marca, señal). En la acepción original del inglés la palabra compuesta sin embargo podría traducirse como medida de calidad. El uso del término provendría de la Inglaterra del siglo XIX, cuando los agrimensores hacían un corte o marca en una piedra o en un muro para medir la altura o nivel de una extensión de tierra. El corte servía para asegurar un soporte llamado bench, sobre el cual luego se apoyaba el instrumento de medición, en consecuencia, todas las mediciones posteriores estaban hechas en base a la posición y altura de dicha marca..

Los benchmark se utilizan comúnmente:

  • Comprobar si las especificaciones de los componentes están dentro del margen propio del mismo
  • Maximizar el rendimiento con un presupuesto dado
  • Minimizar costes manteniendo un nivel mínimo de rendimiento
  • Obtener la mejor relación costo/beneficio (con un presupuesto o unas exigencias dadas)



¿Que es un UML?

El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación.

UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas en los cuales modelar sistemas.

UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares.

En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de semántica y notación estándares. UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG llama a este documento OMG UML versión 1.1. El OMG está actualmente en proceso de mejorar una edición técnica de esta especificación, prevista su finalización para el 1 de abril de 1999.

Algoritmos

Un algoritmo (del latín, dixit algorithmus y éste del matemático persa al-Jwarizmi) es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Es decir, que un algoritmo es un método para encontrar la solución a algún problema. Los algoritmos son el objeto de estudio de la algoritmia y su definición queda formalizada por la Máquina de Turing.

Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver problemas matemáticos; al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida ("efecto caja negra"). Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser definido, finito y eficiente. Por eficiente se entiende que las instrucciones encuentran la solución en el menor tiempo posible; finito implica que tiene un determinado número de pasos, es decir, que termina; y definido, que si se sigue el mismo proceso más de una vez se llega siempre al mismo resultado.

En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemática, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.


Algoritmo Deterministico

En Ciencias de la computación, un algoritmo determinístico es un algoritmo que, en términos informales, es completamente predictivo si se conocen las entradas al mismo. Dicho de otra forma, si se conocen las entradas del algoritmo siempre producirá la misma salida, y la máquina interna pasará por la misma secuencia de estados. Este tipo de algoritmos ha sido el más estudiado durante la historia y por lo tanto resulta ser el tipo más familiar de los algoritmos, así como el más práctico ya que puede ejecutarse en las máquinas eficientemente.

Un modelo simple de algoritmo determinístico es la función matemática, de esta forma se puede establecer el siguiente paralelismo: la función extrae la misma salida para una entrada dada, al igual que los algoritmos determinísticos. La diferencia es que un algoritmo describe explícitamente como la salida se obtiene de la entrada, mientras que las funciones definen implícitamente su salida.

Formalmente los algoritmos determinísticos se pueden definir en términos de una máquina de estado: un estado describe que está haciendo la máquina en un instante particular de tiempo. Justo cuando se produce la entrada, la máquina comienza en su estado inicial y, posteriormente, si la máquina es determinística, comenzará la ejecución de la secuencia de estados predeterminados. Una máquina puede ser determinística y no tener límite temporal para la ejecución o quedarse en un bucle de estados cíclicos eternamente.

Algoritmos heuristicos

En computación, dos objetivos fundamentales para la mayoría de casos son encontrar algoritmos con buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas. Una heurística es un algoritmo que ofrece uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque en ocasiones no hay pruebas de que la solución no pueda ser arbitrariamente errónea; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que deba ser así.

A menudo, pueden encontrarse instancias concretas del problema donde la heurística producirá resultados muy malos o se ejecutará muy lentamente. Aún así, estas instancias concretas pueden ser ignoradas porque no deberían ocurrir nunca en la práctica por ser de origen teórico, y el uso de heurísticas es muy común en el mundo real.



Maquina de turing

a máquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo “On computable numbers, with an application to the Entscheidungsproblem”, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no.

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a:

  • avanzar el cabezal lector/escritor para la derecha.
  • avanzar el cabezal lector/escritor para la izquierda.

El cómputo es determinado a partir de una tabla de estados de la forma:

(estado, valor) \rightarrow (\nuevo estado, \nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a ser escrito en la cinta.

Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar.

Mediante este modelo teórico y el análisis de complejidad de algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones en tiempo polinómico son encontradas según el determinismo y no determinismo respectivamente de la máquina de Turing.

De hecho, se puede probar matemáticamente que para cualquier programa de computadora es posible crear una máquina de Turing equivalente. Esta prueba resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX.

Analizadores sintacticos y semanticos

Análisis Sintáctico
El analizador sintáctico, también llamado parser, recibe como entrada los tokens que le pasa el Analizador Léxico (el analizador sintáctico no maneja directamente caracteres) y comprueba si esos tokens van llegando en el orden correcto (orden permitido por el lenguaje). La salida "teórica" de la fase de análisis sintáctico sería un árbol sintáctico.
Así pues, sus funciones son:

  • Aceptar lo que es válido sintácticamente y rechazar lo que no lo es.
  • Hacer explícito el orden jerárquico que tienen los operadores en el lenguaje de que se trate. Por ejemplo, la cadena A/B*C es interpretada como (A/B)*C en FORTRAN y comoA/(B*C) en APL.
  • Guiar el proceso de traducción (traducción dirigida por la sintaxis).

Análisis Semántico
El análisis semántico es posterior al sintáctico y mucho más difícil de formalizar que éste. Se trata de determinar el tipo de los resultados intermedios, comprobar que los argumentos que tiene un operador pertenecen al conjunto de los operadores posibles, y si son compatibles entre sí, etc. En definitiva, comprobará que el significado de lo que se va leyendo es válido.
La salida "teórica" de la fase de análisis semántico sería un árbol semántico. Consiste en un árbol sintáctico en el que cada una de sus ramas ha adquirido el significado que debe tener. En el caso de los operadores polimórficos (un único símbolo con varios significados), el análisis semántico determina cuál es el aplicable. Por ejemplo, consideremos la siguiente sentencia de asignación:
A := B + C
En Pascal, el signo "+" sirve para sumar enteros y reales, concatenar cadenas de caracteres y unir conjuntos. El análisis semántico debe comprobar que B y C sean de un tipo común o compatible y que se les pueda aplicar dicho operador. Si B y C son enteros o reales los sumará, si son cadenas las concatenará y si son conjuntos calculará su unión.