:D

Sonrie

:p

La evolucion de los Ing. Sistemas

:)

No te rindas

;D

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

:D

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

lunes, 26 de agosto de 2013

Incertar antes de - Nodo Simple - Nodo Doble

Premisa
"x = dato."

 "y = dato"

Incertar antes de - Nodo Simple

if(p!=null){
      if(s!=null){
            s.setsig(new Nodo (y, r));
      }else{
            p=new Nodo (y,p);
      }
}else{
      s.o.p("Lista vacia");
}

Incertar antes de - Nodo Simple

if(r!=null){
      r.getant.setsig( new NodoDoble (y.rgetant,r));
      r.setant(r.getant().getsig());
}

Incertar al final - Nodo Simple - Nodo Doble

Premisa
"x = dato."

Incertar al final - Nodo Simple

if(q!=null){
      q.setsig(new Nodo(x,null));
      q=q.getsig();
      }else{
            p=q= new Nodo (x,null);
      }

 Incertar al final - Nodo Doble


if(q!=null){
      q.setsig(new NodoDoble (x,q,null));
      q=q.getsig();
      }else{
            p=q= new NodoDoble (x,null);
      }

Insertar al inicio - Nodo Simple -Nodo Doble

Premisa
"x = dato."

Insertar al inicio - Nodo Simple

p = new Nodo (x,p);

Sirve para p = null.



Insertar al inicio - Nodo Doble

if(p != null){
      p.setant(new NodoDoble(x,null,p));
      p = p.getant();
      }else{
            p = new NodoDoble(x,null,p);
      }

Operaciones entre Nodos - Listas Enlasadas

Operaciones entre Nodos - Listas Enlazadas

En las listas enlazadas se pueden realizar siertos tipos de operaciones las cuales son:

1) Insertar - al inicio
                 - al final
                 - antes de
                 - después de

2) Buscar  - consultar
                 - modificar
                 - eliminar

3) Ordenar


Mas adelante veremos como se convierten estas operaciones en codigo y como se aplican.

Nodos

Nodo

En términos generales, un nodo es un espacio real o abstracto en el que confluyen parte de las conexiones de otros espacios reales o abstractos que comparten sus mismas características y que a su vez también son nodos. Todos se interrelacionan de una manera no jerárquica y conforman lo que en términos sociológicos o matemáticos se llama red. El concepto de red puede definirse como "conjunto de nodos interconectados.
En programación, concretamente en estructuras de datos, un nodo es uno de los elementos de una lista enlazada, de un árbol o de un grafo. Cada nodo será una estructura o registro que dispondrá de varios campos, y al menos uno de esos campos será un puntero o referencia a otro nodo, de forma que, conocido un nodo, a partir de esa referencia, será posible en teoría tener acceso a otros nodos de la estructura. Los nodos son herramientas esenciales para la construcción de estructuras de datos dinámicas.

Ya que el nodo es una clase que crea el programador esta puede ser modificada segun las nesesidades que tenga, estos son algunos de los tipos de nodos que se pueden presentar:
 
Nodo Simple

Este nodo esta compuesto por dos partes, una parte que es dato y una parte en la cual se encuentra la direccion del siguiente.

Nodo Doble

Este nodo esta compuesto por tres partes, una parte que es dato y dos partes de direccion las cuales guardan la direccion del nodo anterior y la del nodo siguiente.

Nodo Multiple

Este nodo esta formado por diversas partes las cuales son definidas por el programador y pueden ser de datos o de direccion, las cuales son definidas por el programador al momento de crearlos.

Tecnicas de Programacion

código spaghetti


El código spaghetti es un término peyorativo para los programas de computación que tienen una estructura de control de flujo compleja e incomprensible. Su nombre deriva del hecho que este tipo de código parece asemejarse a un plato de espaguetis, es decir, un montón de hilos intrincados y anudados.
Tradicionalmente suele asociarse este estilo de programación con lenguajes básicos y antiguos, donde el flujo se controlaba mediante sentencias de control muy primitivas como goto y utilizando números de línea. Un ejemplo de lenguaje que invitaba al uso de código spaghetti es el QBasic de Microsoft en sus primeras versiones.

Programación estructurada


La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.


Programación modular

Diagrama del funcionamiento de un subprograma.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down).


Programación orientada a objetos


La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

lunes, 12 de agosto de 2013

Estructura de datos y analisis de algoritmos

En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.
Una estructura de datos define la organización e interrelación de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:
  • Alta, adicionar un nuevo valor a la estructura.
  • Baja, borrar un valor de la estructura.
  • Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).
Otras operaciones que se pueden realizar son:
  • Ordenamiento, de los elementos pertenecientes a la estructura.
  • Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.
Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos.

Estructura de datos y analisis de algoritmos

"La mayoría de los programadores profesionales que me he encontrado, no están bien preparados para atacar problemas de diseño de algoritmos. Esto es una lástima, ya que las técnicas de diseño de algoritmos son una de las tecnologías prácticas medulares de ciencias de la computación."
                                                                Steven S. Skiena, The Algorithm Design Manual, 1997 (Prefacio)