Algoritmos iterativos
mirconer3 de Diciembre de 2013
716 Palabras (3 Páginas)239 Visitas
Algoritmos iterativos:
Sentencias de iteración
§1 Sinopsis
Las sentencias de iteración permiten repetir una sentencia o conjunto de ellas. Es lo que se denomina ejecutar un bucle. En C++ existen tres formas de iteraciones: los bucles while; do…while y for.
Observe que en todos los casos el bucle puede estar constituido por una sola sentencia o por varias. En cuyo caso se trata de un bloque de código delimitado por un par de corchetes { } ( 3.2.6). Si se trata de una sola sentencia, los corchetes no son necesarios.
§2 Bucle while
La sentencia while permite ejecutar repetidamente un bloque de código mientras se cumpla una determinada condición que es chequeada antes de cada iteración.
§2.1 Sintaxis
while ( <condicion> ) <sentencia> ;
§2.2 Descripción
La sentencia while ejecuta iterativamente el bucle definido por el bloque de código <sentencia> siempre que el valor devuelto por la expresión <condición> (que debe estar entre paréntesis) sea cierto.
Nota: recordemos que cierto (true) equivale numéricamente a distinto de cero ( 3.2.1b), mientras que falso (false) equivale al valor cero.
Puesto que la condición se evalúa antes que cada ejecución del bucle, si al comienzo <condicion> devuelve falso, <sentencia> no se ejecuta ninguna vez, y el control pasa a la siguiente sentencia. Si <condición> devuelve cierto se ejecuta el bucle <sentencia>, y a continuación se vuelve a evaluar <condicion> con lo que se repite el ciclo.
§2.3 Ejemplos
while (*p == ' ') p++;
while ( i <= j) i++;
La sentencia puede estar vacía, realizándose entonces toda la computación requerida en la cláusula <condición>. Ejemplo:
while ( getchar() != 'Z' );
Aunque lo normal es que la <sentencia> sea un bloque de código entre corchetes:
while (i < n) {
cout << i << endl;
++i;
}
Intente por sí mismo la explicación de las salidas del programa adjunto antes de leer el comentario final (esta disposición es muy utilizada en bucles que deben repetirse un número n de veces).
#include <iostream>
using namespace std;
int main() { // ==========
int x = 5, y = 5;
while ( x-- ) {
cout << "x = " << x << endl;
}
while ( --y ) {
cout << " y = " << y << endl;
}
cout << "Terminado!!" << endl;
}
Salida:
x = 4
x = 3
x = 2
x = 1
x = 0
y = 4
y = 3
y = 2
y = 1
Terminado!!
Comentario
En ambas iteraciones, la condición indicada en el paréntesis es chequeada antes de ejecutar la iteración (la salida en pantalla). La diferencia entre ambos es que el postdecremento (x--) se realiza después de la evaluación del paréntesis (comprobación de que su contenido es cierto). En consecuencia, el ciclo del primer bucle es como sigue:
ORDENACIÓN POR EL MÉTODO DE LA BURBUJA
Este método consiste en acomodar el vector moviendo el mayor hasta la última casilla comenzando desde la casilla cero del vector hasta haber acomodado el número más grande el la última posición, una vez acomodado el más grande, prosigue a encontrar y acomodar el siguiente más grande comparando de nuevo los numeros desde el inicio del vector, y así sigue hasta ordenar todo los elementos el arreglo. Este algoritmo es muy deficiente ya que al ir comparando las casillas para buscar el siguiente más grande, éste vuelve a comparar las ya ordenadas. A pesar de ser el algoritmo de ordenamiento
...