domingo, 30 de septiembre de 2012

LOS BUCLES WHILE, DO...WHILE Y EL FOR

El Bucle while o bucle mientras es una estructura de la mayoría de los lenguajes de programación estructurados cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera.


Condición

La condición ha de ser una sentencia que devuelva un valor booleano, y esta puede ser el valor booleano en sí, verdadero(true) si la condición se cumple, o falso si esta no se cumple(false). También puede contener el nombre de una variable booleana, y el valor de la expresión dependerá de su contenido. Se debe tener en cuenta que además de las variables también puede haber llamadas a funciones que devuelvan un valor.


Sentencias Comparativas

La forma más obvia tal vez, y la más usada sin duda, son las sentencias comparativas, que usan los operandos igual, diferente, menor o igual, mayor o igual, menor y mayor. En el caso del lenguaje C, se utilizan los siguientes símbolos para representar las comparaciones anteriores: ==, !=, <=, >=, <, >,

Particularidades de lenguajes

En algunos lenguajes, se pueden utilizar variables no booleanas en la comparación: Por ejemplo, si la variable vale 0 será como si la condición no se cumpliera, y siempre que sea diferente de 0, se considerará que la condición se cumple.

DO WHILE
El bucle do……while es la ultima de las estructuras para implementar  repeticiones de las que dispone Javascript. Se utiliza generalmente cuando no sabemos cuantas veces se habrá de ejecutar  el bucle, igual que el bucle While, con la diferencia de que sabemos seguro el bucle por lo menos se ejecutará una vez.

Este tipo de bucle se introdujo en el Javascript 1.2, por lo que no todos lo navegadores lo soportan, sólo los de versión 4 o superior. En cualquier caso, cualquier código que quieras escribir con Do……While  se puede escribir también utilizando un bucle WHILE, con lo que en navegadores antiguos deberás traducir  tu bucle Do….While por bucle While.
La sintaxis es la siguiente. 

do { 
    //sentencias del bucle 
} while (condición) 

FOR

 El bucle for o ciclo for es una estructura de control en la que se puede indicar el número mínimo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos

Elementos del bucle

  • 'Variable de control': prácticamente un mandato impuesto por el uso habitual es utilizar la letra i Iterador como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).
  • Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.
  • Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
  • Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitar se por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.
  • Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudo lenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.


 USOS
Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o consultar datos que se encuentren según el índice. Por esto último, una condición mínima del vector es que debe ser ordenado, por que si se intenta leer un dato inexistente, esto genera un error de programación.

For en pseudolenguaje

La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de laprogramación estructurada, y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.
El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin
MIENTRAS NoFinDeTabla(tabla) HACER
 PróximoRegistro(tabla)
 HacerAlgo(ElementoActual(tabl
FIN MIENTRAS





10 comentarios:

  1. Un Árbol Binario es un conjunto de finito de Elementos, de nombre Nodos de forma que:

    El Árbol Binario es Vació si no tiene ningún elemento en el.

    El Árbol Binario contiene un Nodo Raíz y los dos que parten de él, llamados Nodo Izquierdo y Nodo Derecho.

    Los Árboles tiene 3 Recorridos Diferentes los cuales son:

    Pre-Orden

    In-Orden

    Post-Orden

    Pre-Orden

    Definición:

    El Recorrido “Pre-Orden” lo recorre de la siguiente manera, viaje a través del Árbol Binario desplegando el Contenido en la Raíz, después viaje a través del Nodo Izquierdo y después a través del Nodo Derecho.

    Detalle:

    Temp toma el Valor de la Raíz y compara si el Árbol tiene algún Elemento, de otra manera Desplegara “Árbol Vació…” y terminara el método. Si el Árbol tiene elementos dentro de él, lo recorrerá y viajara a través de los Arreglos Izq y Der para determinar que valor meter en la Pila y en Temp para de esta manera imprimir el siguiente Elemento correspondiente.

    Algoritmo:

    PreOrd(Arbol, Der, Izq, Pila, Raiz)

    Temp → Raiz

    Top →

    Pila[Top] → Nulo

    Si Raiz = Nulo

    Imprimir “Árbol Vació…” y Salir

    Repetir mientras Temp ≠ Nulo

    Imprimir Arbol[Temp]

    Si Der[Temp] ≠ Nulo

    Top → Top + 1

    Pila[Top] → Der[Temp]

    Si Izq[Temp] ≠ Nulo

    Temp → Izq[Temp]

    Si no:

    Temp → Pila[Top];

    Top → Top - 1

    Fin del ciclo

    Salir

    Diagrama:

    image593.jpg

    ResponderEliminar
  2. CLASES PARA LA IMPLEMENTACION DE LISTAS
    LISTAS ENLAZADAS SIMPLES

    Definicion:

    Recorrido simplemente despliega los datos almacenados en el arreglo Info, con ayuda de un segundo arreglo llamado Indice el cual guarda el orden en el que encuentran enlazados cada uno de los datos.

    Explicacion:

    Apuntador toma el valor de Inicio, despu¨¦s ve si la condici¨®n cumple para efectuar un Ciclo mientras Apuntador sea diferente de 0, si cumple lo que hace es que despliega la Info[Apuntador], despu¨¦s Apuntador toma el valor de Indice[Apuntador] (El cual nos indica el siguiente nodo que sigue en la lista) y hace esto hasta que Apuntador sea igual a 0 (Cuando llega a este punto a llegado al fin de la Lista Enlazada).

    3.1.2 LISTAS ENLAZADAS DOBLES

    Una lista doble , ó doblemente ligada es una colección de nodos en la cual cada nodo tiene dos punteros, uno de ellos apuntando a su predecesor (li) y otro a su sucesor(ld). Por medio de estos punteros se podrá avanzar o retroceder a través de la lista, según se tomen las direcciones de uno u otro puntero.

    La estructura de un nodo en una lista doble es la siguiente:

    Existen dos tipos de listas doblemente ligadas:

    Listas dobles lineales. En este tipo de lista doble, tanto el puntero izquierdo del primer nodo como el derecho del último nodo apuntan a NIL.
    Listas dobles circulares. En este tipo de lista doble, el puntero izquierdo del primer nodo apunta al último nodo de la lista, y el puntero derecho del último nodo apunta al primer nodo de la lista.

    Debido a que las listas dobles circulares son más eficientes, los algoritmos que en esta sección se traten serán sobre listas dobles circulares.



    ResponderEliminar
  3. REPRESENTACION DE MEMORIA DE ARBOLES
    Representación en Memoria

    Hay dos formas tradicionales de representar un árbol binario en memoria:

    Por medio de datos tipo punteros también conocidos como variables dinámicas o listas.
    Por medio de arreglos.

    Sin embargo la más utilizada es la primera, puesto que es la más natural para tratar este tipo de estructuras.

    Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subarbol izquierdo y derecho del subarbol en cuestión.

    Cada nodo se representa gráficamente de la siguiente manera:

    El algoritmo de creación de un árbol binario es el siguiente:


    Procedimiento crear(q:nodo)
    inicio
    mensaje("Rama izquierda?")
    lee(respuesta)
    si respuesta = "si" entonces
    new(p)
    q(li) <-- nil
    crear(p)
    en caso contrario
    q(li) <-- nil
    mensaje("Rama derecha?")
    lee(respuesta)
    si respuesta="si" entonces
    new(p)
    q(ld)<--p
    crear(p)
    en caso contrario
    q(ld) <--nil
    fin
    INICIO
    new(p)
    raiz<--p
    crear(p)
    FIN
    ARBOLES BINARIOS
    A los arboles ordenados de grado dos se les conoce como arboles binarios ya que cada nodo del árbol no tendrá más de dos descendientes directos. Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos.

    La representación gráfica de un árbol binario es la siguiente:

    Monografias.com
    Representación en Memoria

    Hay dos formas tradicionales de representar un árbol binario en memoria:

    Por medio de datos tipo punteros también conocidos como variables dinámicas o listas.

    Por medio de arreglos.

    Sin embargo la más utilizada es la primera, puesto que es la más natural para tratar este tipo de estructuras.

    Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subarbol izquierdo y derecho del subarbol en cuestión.

    Cada nodo se representa gráficamente de la siguiente manera:



    El algoritmo de creación de un árbol binario es el siguiente:

    Procedimiento crear(q:nodo)

    inicio

    mensaje("Rama izquierda?")

    lee(respuesta)

    si respuesta = "si" entonces

    new(p)

    q(li) <-- nil

    crear(p)

    en caso contrario

    q(li) <-- nil

    mensaje("Rama derecha?")

    lee(respuesta)

    si respuesta="si" entonces

    new(p)

    q(ld)<--p

    crear(p)

    en caso contrario

    q(ld) <--nil

    fin

    INICIO

    new(p)

    raiz<--p

    crear(p)

    FIN

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. GRAFOS
    En matemáticas y ciencias de la computación, un grafo (del griego grafos: dibujo, imagen) es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto. Son objeto de estudio de la teoría de grafos.

    Típicamente, un grafo se representa gráficamente como un conjunto de puntos (vértices o nodos) unidos por líneas (aristas).

    Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. Por ejemplo, una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vértices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cables o conexiones inalámbricas).

    Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales.

    RICARDO RUIZ SANDOVAL
    ISRAEL BACILIO HERNANDEZ

    ResponderEliminar
  6. Un árbol binario es una estructura de datos útil cuando se trata de hacer modelos de procesos en donde se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso. Por ejemplo, supongamos que tenemos un arreglo en donde queremos encontrar todos los duplicados. Esta situación es bastante útil en el manejo de las bases de datos, para evitar un problema que se llama redundancia.

    QUE ES UN RECORRIDO DE UN ARBOL BINARIO RESUMIDO
    Una manera de encontrar los elementos duplicados en un arreglo es recorrer todo el arreglo y comparar con cada uno de los elementos del arreglo. Esto implica que si el arreglo tiene n elementos, se deben hacer n comparaciones, claro, no es mucho problema si n es un número pequeño, pero el problema se va complicando más a medida que n aumenta.

    ResponderEliminar
  7. CLASES PARA LA IMPLEMENTACION DE LISTAS
    Un tipo de dato abstracto (TDA) o Tipo abstracto de datos (TAD) es un modelo matemático compuesto por una colección de operaciones definidas sobre un conjunto de datos para el modelo.
    En el mundo de la programación existen diversos lenguajes que se han ido creando con el paso del tiempo y que se han perfeccionado debido a las necesidades de los programadores de la época a la que pertenecen. Los primeros lenguajes de programación eran de tipo lineal, ya que un programa se recorría desde un punto marcado como Inicio hasta llegar a un punto Fin. Con el tiempo se fueron creando nuevos lenguajes y en nuestros días los más utilizados son los llamados “Orientados a Objetos”

    ResponderEliminar
  8. repreentacion de memorias de arboles
    Hay dos formas tradicionales de representar un árbol binario en memoria:

    Por medio de datos tipo punteros también conocidos como variables dinámicas o listas.
    Por medio de arreglos.

    Sin embargo la más utilizada es la primera, puesto que es la más natural para tratar este tipo de estructuras.

    Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subarbol izquierdo y derecho del subarbol en cuestión.

    ResponderEliminar
  9. CLASIFICACION DE ARBOLES BINARIOS
    Un árbol binario es una estructura de datos útil cuando se trata de hacer modelos de procesos en donde se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso. Por ejemplo, supongamos que tenemos un arreglo en donde queremos encontrar todos los duplicados. Esta situación es bastante útil en el manejo de las bases de datos, para evitar un problema que se llama redundancia.

    Una manera de encontrar los elementos duplicados en un arreglo es recorrer todo el arreglo y comparar con cada uno de los elementos del arreglo. Esto implica que si el arreglo tiene n elementos, se deben hacer n comparaciones, claro, no es mucho problema si n es un número pequeño, pero el problema se va complicando más a medida que n aumenta.

    ResponderEliminar
  10. RECORRIDO DE ARBOLES

    Árbol binario

    Preorden: (raíz, izquierdo, derecho). Para recorrer un árbol binario no vacío en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz:

    Visite la raíz
    Atraviese el sub-árbol izquierdo
    Atraviese el sub-árbol derecho

    Inorden: (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío en inorden (simétrico), hay que realizar las siguientes operaciones recursivamente en cada nodo:

    Atraviese el sub-árbol izquierdo
    Visite la raíz
    Atraviese el sub-árbol derecho

    Postorden: (izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío en postorden, hay que realizar las siguientes operaciones recursivamente en cada nodo:

    Atraviese el sub-árbol izquierdo
    Atraviese el sub-árbol derecho
    Visite la raíz

    ResponderEliminar