martes, 25 de junio de 2013

ARREGLOS

Definición:
Es una colección de datos del mismo tipo. Sirve para manejar un número “n” de elementos en común, ya sea de tipos definidos por el Lenguaje,(“int”,”float”,”String”,etc…) así como aquellos definidos por el programador.

Clasificación:

Arreglos unidimensionales

Es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Están formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la posición que tiene cada elemento dentro del arreglo de datos. Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre único y la cantidad de elementos que va a contener.

Arreglos multidimensionales

Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión. El término dimensión representa el número de índices utilizados para referirse a un elemento particular en el arreglo. Los arreglos de más de una dimensión se llaman arreglos multidimensionales.

Arreglos con múltiple subíndices

Es la representación de tablas de valores, consistiendo de información arreglada en renglones y columnas. Para identificar un elemento particular de la tabla, deberemos de especificar dos subíndices; el primero identifica el renglón del elemento y el segundo identifica la columna del elemento. A los arreglos que requieren dos subíndices para identificar un elemento en particular se conocen como arreglo de doble subíndice. Note que los arreglos de múltiples subíndices pueden tener más de dos subíndices. El estándar ANSI indica que un sistema ANSI C debe soportar por lo menos 12 subíndices de arreglo.
Operaciones Básicas:
Las operaciones en arreglos pueden clasificarse de la siguiente forma:
  • Lectura: este proceso consiste en leer un dato de un arreglo y asignar un valor a cada uno de sus componentes
  • Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
  • Asignación: No es posible asignar directamente un valor a todo el arreglo
  • Actualización: Dentro de esta operación se encuentran las operaciones de eliminar, insertar y modificar datos. Para realizar este tipo de operaciones se debe tomar en cuenta si el arreglo está o no ordenado.
  • Ordenación.
  • Búsqueda.
  • Insertar.
  • Borrar.
  • Modificar.

Método de Ordenamiento:


Selección Directa
Este método consiste en seleccionar el elemento más pequeño de nuestra lista para colocarlo al inicio y así excluirlo de la lista.
Para ahorrar espacio, siempre que vayamos a colocar un elemento en su posición correcta lo intercambiaremos por aquel que la esté ocupando en ese momento.
El algoritmo de selección directa es el siguiente:
i <- 1
mientras i<= N haz
        min <-i
        j <- i + 1
        mientras j <= N haz
                si arreglo[j] < [min] entonces
                        min <-j
                j <- j + 1
        intercambia(arreglo[min],arreglo[i])
        i <- i +1
Ordenación por Burbuja
Es el método de ordenación más utilizado por su fácil comprensión y programación, pero es importante señalar que es el más ineficiente de todos los métodos .
Este método consiste en llevar los elementos menores a la izquierda del arreglo ó los mayores a la derecha del mismo. La idea básica del algoritmo es comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que todos se encuentren ordenados.
i <- 1
mientras i < N haz
        j <- N
        mientras j > i haz
                si arreglo[j] < arreglo[j-1] entonces
                        intercambia(arreglo[j],arreglo[j-1])
                j < j - 1
        i <- i +1
Ordenación por Mezcla
Este algoritmo consiste en partir el arreglo por la mitad, ordenar la mitad izquierda, ordenar la mitad derecha y mezclar las dos mitades ordenadas en un array ordenado. Este último paso consiste en ir comparando pares sucesivos de elementos (uno de cada mitad) y poniendo el valor más pequeño en el siguiente hueco.
procedimiento mezclar(dat,izqp,izqu,derp,deru)
inicio
        izqa <- izqp
        dera <- derp
        ind <- izqp
        mientras (izqa <= izqu) y (dera <= deru) haz
                si arreglo[izqa] < dat[dera] entonces
                        temporal[ind] <- arreglo[izqa]
                        izqa <- izqa + 1
                en caso contrario
                        temporal[ind] <- arreglo[dera]
                        dera <- dera + 1
                ind <- ind +1
        mientras izqa <= izqu haz
                temporal[ind] <- arreglo[izqa]
                izqa <- izqa + 1
                ind <- ind +1
        mientras dera <= deru haz
                temporal[ind] <=dat[dera]
                dera <- dera + 1
                ind <- ind + 1
        para ind <- izqp hasta deru haz
                arreglo[ind] <- temporal[ind]
fin
Método de Búsqueda:
Búsqueda Secuencial
A este método tambien se le conoce como búsqueda lineal y consiste en empezar al inicio del conjunto de elementos , e ir a travez de ellos hasta encontrar el elemento indicado ó hasta llegar al final de arreglo.
Este es el método de búsqueda más lento, pero si nuestro arreglo se encuentra completamente desordenado es el único que nos podrá ayudar a encontrar el dato que buscamos.
ind <- 1
encontrado <- falso
mientras no encontrado y ind < N haz
si arreglo[ind] = valor_buscado entonces
encontrado <- verdadero
en caso contrario
ind <- ind +1
Búsqueda Binaria
Las condiciones que debe cumplir el arreglo para poder usar búsqueda binaria son que el arreglo este ordenado y que se conozca el numero de elementos.
Este método consiste en lo siguiente: comparar el elemento buscado con el elemento situado en la mitad del arreglo, si tenemos suerte y los dos valores coinciden, en ese momento la búsqueda termina. Pero como existe un alto porcentaje de que esto no ocurra, repetiremos los pasos anteriores en la mitad inferior del arreglo si el elemento que buscamos resulto menor que el de la mitad del arreglo, o en la mitad superior si el elemento buscado fue mayor.
La búsqueda termina cuando encontramos el elemento o cuando el tamaño del arreglo a examinar sea cero.
encontrado <- falso
primero <- 1
ultimo <- N
mientras primero <= ultimo y no encontrado haz
mitad <- (primero + ultimo)/2
si arreglo[mitad] = valor_buscado entonces
encntrado <- verdadero
en caso contrario
si arreglo[mitad] > valor_buscado entonces
ultimo <- mitad - 1
en caso contrario
primero <- mitad + 1
Búsqueda por Hash
La idea principal de este método consiste en aplicar una función que traduce el valor del elemento buscado en un rango de direcciones relativas. Una desventaja importante de este método es que puede ocasionar colisiones.
funcion hash (valor_buscado)
inicio
hash <- valor_buscado mod numero_primo
fin
inicio <- hash (valor)
il <- inicio
encontrado <- falso
repite
si arreglo[il] = valor entonces
encontrado <- verdadero
en caso contrario
il <- (il +1) mod N
hasta encontrado o il = inicio

jueves, 25 de abril de 2013

PARTE 2

Introducción a la elaboración del manual del sistema, usuario y programas.

Manual de Usuario: Se explicará todas las posibles opciones que puederealizar el usuario con la aplicaciones de manera detallada, y mediante el usode capturas de pantalla. Este documento está dirigido al usuario final.

Partes del manual del usuario:

Portada: Describe de que se trata el documento.

Introducción: Describe el uso del documento, para que sirve y de que habla. 

Análisis y requerimientos del sistema: De que se ocupa, para poder instalarlo yusarlo.

Explicación del funcionamiento: Se describe paso a paso y con pantallas bienexplicadas como funciona el programa.

Glosario: definición de la terminología usada en el manual.Un Manual debe ser escrito de tal manera, que cualquier persona puedaentenderlo con la menor dificultad posible. Es recomendable detallar todosaquellos pasos que se llevan a cabo para usar el programa. Especificar losalcances y limitaciones que tiene el programa. Un buen punto de partida paraun manual, es hacer de cuenta que las personas que lo van a leer no tienen elmás mínimo conocimiento sobre computadoras

Tema 1 PARTE 1 (Estándares de Calidad en el Diseño de Algoritmos y Construcción de Programas)


Formas y técnicas de documentar algoritmos y programas.


Documentar el código de un programa es añadir suficiente información como para explicar lo que hace, punto por punto, de forma que no sólo los ordenadores sepan qué hacer, sino que además los humanos entiendan qué están haciendo y por qué.
Documentar un programa no es sólo un acto de buen hacer del programador por aquello de dejar la obra rematada. Es además una necesidad que sólo se aprecia en su debida magnitud cuando hay errores que reparar o hay que extender el programa con nuevas capacidades o adaptarlo a un nuevo escenario. Hay dos reglas que no se deben olvidar nunca:

1. todos los programas tienen errores y descubrirlos sólo es cuestión de tiempo y de que el programa tenga éxito y se utilice frecuentemente 

2. todos los programas sufren modificaciones a lo largo de su vida, al menos todos aquellos que tienen éxito 

Por una u otra razón, todo programa que tenga éxito será modificado en el futuro, bien por el programador original, bien por otro programador que le sustituya. Pensando en esta revisión de código es por lo que es importante que el programa se entienda: para poder repararlo y modificarlo.

¿Qué hay que documentar?
Hay que añadir explicaciones a todo lo que no es evidente.No hay que repetir lo que se hace, sino explicar por qué se hace.


eso se traduce en:‡ ¿de qué se encarga una clase? ¿un paquete?‡ ¿qué hace un método?‡ ¿cuál es el uso esperado de un método?‡ ¿para qué se usa una variable?‡ ¿cuál es el uso esperado de una variable?‡ ¿qué algoritmo estamos usando? ¿de dónde lo hemos sacado?‡ ¿qué limitaciones tiene el algoritmo? ¿... la implementación?‡ ¿qué se debería mejorar ... si hubiera tiempo

Tema 2 (Datos y Entidades Primitivas)

Datos

Un dato es un elemento que por si solo no dice nasa, pero al ser procesado genera información.Los datos son símbolos que se convierten en condiciones, hechos, situaciones o valores. Un dato puede significar un número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una medida, una palabra o una descripción. La
importancia de los datos está en su capacidad de asociarse dentro de un contexto para convertirse en información. Es decir, por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no pueden afectar el comportamiento de quien los
recibe. Para ser útiles, los datos deben convertirse en información que ofrezca un significado,  conocimiento, ideas o conclusiones.

Diferencia entre datos e información

 Los datos son símbolos que describen hechos, condiciones, valores o situaciones. Un dato puede ser una letra, un número, un signo ortográfico o cualquier símbolo y que representa una cantidad, una medida, una palabra o una descripción. Los datos se caracterizan por no contener ninguna información.

Los datos pueden asociarse dentro de un contexto para convertirse en información. Para ser útiles, los datos deben convertirse en información y ofrecer así un significado, conocimiento, ideas o conclusiones. Por sí mismos los datos no tienen capacidad de comunicar un significado.

En general, la información es un conjunto organizado de datos, que constituyen un mensaje sobre un determinado ente o fenómeno.

Los datos se perciben mediante los sentidos, éstos los integran y generan la información necesaria para producir el conocimiento que es el que finalmente permite tomar decisiones para realizar las acciones cotidianas que aseguran la existencia social.


Tipos estáticos

Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad.

Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuír.

Tipos dinámicos

Dentro de esta categoría entra sólamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando.

Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros.


Tipos simples

Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos.
Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.

Tipos estructurados
Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos.

Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.

Tipos ordinales

Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.


Tipos no-ordinales

Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los números reales.

A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una relación uno a uno entre ellos y los número naturales. Dicho de otra forma, para que un conjunto se considere ordinal se tiene que poder calcular la posición, el anterior elemento y el siguiente de un elemento cualquiera del conjunto

Operadores


En matemáticas, el término operador puede usarse con varios significados.

Algunas veces, un operador es un símbolo matemático que indica que debe ser llevada a cabo una operación especificada sobre un cierto número de operando (numero, función , vector, etc.).
Operadores de condición
Relacionan un término A con otro B estableciendo su igualdad, jerarquía o cualquier otra relación posible.

Operadores lógicos 
Producen un resultado booleano, y sus operando son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a verdadero o falso según su valor sea cero o distinto de cero). Por contra, recuerde que las operaciones entre bits producen valores arbitrarios.
Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unitario. Tienen una doble posibilidad de representación en el Estándar C++ actual: la representación tradicional que se indica a continuación, y la natural introducida recientemente que se detalla más adelante
Operadores aritméticos 
Nos permiten, básicamente, hacer cualquier operación aritmética, que necesitemos (ejemplo: suma, resta, multiplicación, etc).


domingo, 21 de abril de 2013

Router inalámbrico N portátil 3G / 4G alimentado por baterías


El TL-MR3040 de TP-LINK es una verdadera plataforma de red móvil inalámbrica que cuando se conecta con un módem USB 3G/4G, es capaz de transmitir una señal inalámbrica de hasta 150Mbps en una habitación, creando una oficina móvil o red de entretenimiento para que hasta cinco dispositivos que podrán tener acceso a internet simultáneamente. El dispositivo es el compañero de viaje ideal, con dimensiones de tamaño de bolsillo y alimentado por su propia y poderosa batería interna de 2000mAh, los usuarios pueden trabajar o jugar durante horas seguidas. El dispositivo también es increíblemente fácil de usar, permitiendo que los usuarios configuren rápidamente una red conectada a Internet en tan sólo el tiempo que toma conectar su router USB 3G/4G o cable WAN y cuando terminan, simplemente vuelven a colocar el dispositivo en sus bolsillos.  

Activación 4G - Inalámbrico Ultra rápido

Al soportar el estándar más reciente de comunicación inalámbrica - 4G LTE, con alta velocidad de descarga de hasta 100Mbpsy una velocidad de carga de hasta 50Mbps, el nuevo TL-MR3040 puede proporcionar a los usuarios una velocidad extraordinaria y una experiencia de navegación por internet fluida.

Alimentado por Batería – Hecho para Moverse

El TL-MR3040 es alimentado por una batería interna de 2000mAh capaz de alimentar una red 3G/4G compartida a 150Mbps durante hasta por 4 horas a una velocidad y rango total de 802.11n. El dispositivo puede ser alimentado mediante su cable USB y el adaptador incluido al conectarlo a una Laptop o puerto USB de una computadora portátil o PC. Con su poderosa batería interna y diseño compacto, el TL-MR3040 está diseñado para ser colocado en su bolsillo y llevarlo a cualquier lugar. El elegante exterior del router portátil 3G/4G mejora cualquier escritorio, tablero de instrumentos o mesa de tv en donde se coloque, con curvas delgadas y su fino acabado brillante en color blanco piano.  
                                               src=
Jimmy Becerra

El mundo de la fibra óptica


La fibra óptica es un medio de transmisión empleado habitualmente en redes de datos; un hilo muy fino de material transparente, vidrio o materiales plásticos, por el que se envían pulsos de luz que representan los datos a transmitir. El haz de luz queda completamente confinado y se propaga por el interior de la fibra con un ángulo de reflexión por encima del ángulo límite de reflexión total, en función de la ley de Snell. La fuente de luz puede ser láser o un LED.
Las fibras se utilizan ampliamente en telecomunicaciones, ya que permiten enviar gran cantidad de datos a una gran distancia, con velocidades similares a las de radio y superiores a las de cable convencional. Son el medio de transmisión por excelencia al ser inmune a las interferencias electromagnéticas, también se utilizan para redes locales, en donde se necesite aprovechar las ventajas de la fibra óptica sobre otros medios de transmisión


Funcionamiento
Los principios básicos de su funcionamiento se justifican aplicando las leyes de la óptica geométrica, principalmente, la ley de la refracción (principio de reflexión interna total) y la ley de Snell.
Su funcionamiento se basa en transmitir por el núcleo de la fibra un haz de luz, tal que este no atraviese el revestimiento, sino que se refleje y se siga propagando. Esto se consigue si el índice de refracción del núcleo es mayor al índice de refracción del revestimiento, y también si el ángulo de incidencia es superior al ángulo límite.



Kevin Blanco

Kingston lanza el primer pendrive con mayor capacidad del mercado: DataTraveler HyperX Predator de 1 terabyte

Las unidades Flash han estado ganando capacidad y velocidad en forma sostenida. La conveniencia de los pendrives ha dejado virtualmente obsoletos a otros medios de almacenamiento, y con la llegada del USB 3.0, cualquier detalle relacionado con demoras en la transferencia de datos debería quedar resuelto. Haciendo acto de presencia en el CES 2013, la gente de Kingston presentó a su nueva versión del DataTraveler HyperX Predator, un pendrive USB 3.0 con una escalofriante capacidad de un terabyte.

Así es como nos encontramos a Kingston, con su nuevo pendrive DataTraveler HyperX Predator. Por un lado, el Predator posee una interfaz USB 3.0, alcanzando unos 240 megabytes de lectura y 160 MB de escritura en sistemas compatibles (baja a unos 30 MB en lectura y escritura cuando se utiliza bajo USB 2.0). Pero la novedad aquí es que el nuevo representante de la familia Predator tiene una capacidad de un terabyte. Definitivamente se trata de un producto “premium” orientado a entornos de negocios, y dentro de ese “premium” aparece una carcasa de aleación de zinc, y unos nada despreciables cinco años de garantía.

Fuente: www.neoteo.com
Beyker Guerrero