viernes, 16 de mayo de 2008

Bucle For, While e Interación

si x= 1 mc 1 x= x2345
z= z + 1 z= 012345
si x=5 ---- FIN

Hacer mientras "X" sea menor o igual = 5
z= z+ 1
x= x - 1

Caracteristicas del ciclo for y while
definicion de iteracion

CICLO FOR
El bucle for o ciclo for es una estructura de control en la que se puede indicar el número máximo 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 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 explicitarse 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 pseudolenguaje 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.
BUCLE WHILE

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.

Sintaxis

La sintaxis en pseudocódigo es la siguiente:

 while '''(Condición)'''
Operación
Operación
Operación
Operación
...
fin while

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 y también pueden haber allí 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 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.

Ejemplo (usando sintaxis de C)

 int Tecla = 0;
while(Tecla == 0)
{
Tecla = readkey(); /* Intentamos leer una pulsación de tecla*/
}

En este ejemplo lo que hacemos es que el programa se ature hasta que el usuario pulse una tecla, con lo que cambiará el valor de la variable "Tecla".

Ejemplo

Genera y muestra los primeros 10 números naturales:

tarea
{
el objeto número_natural es una cantidad
copie 0 en número_natural
mientras número_natural < 10 haga:
{
copie número_natural + 1 en número_natural
muestre número_natural
}

}


INTERACION

Iteración se refiere a la acción de repetir una serie de pasos un cierto número de veces.

Iteración en matemática se refiere al proceso de iteración de una función o a las técnicas que se usan en métodos iterativos para la resolución de problemas numéricos.

En programación [editar]

Iteración en programación es la repetición de una serie de instrucciones en un programa de computadora. Puede usarse tanto como un término genérico (como sinónimo de repetición) así como para describir una forma específica de repetición con un estado mutable.

Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.

Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el estilo de programación usado en lenguajes de programación imperativa. Esto está en contraposición de la recursividad, la cual tiene un enfoque más declarativo.

He aquí un ejemplo de iteración, en pseudocódigo imperativo:

 var i, a := 0        // inicializo a antes de comenzar la iteración
for i from 1 to 3 { // ciclo 3 veces
a := a + i // incremento a con el valor actual de i
}
print a // se imprime el número 6

En este fragmento de programa, el valor de la variable i cambia a medida que la ejecución del programa progresa, tomando los valores 1, 2 y 3. Este cambio de valor —o estado mutable— es característico de una iteración.

La iteración puede aproximarse por medio de técnicas recursivas en lenguages de programación funcional. El ejemplo que sigue está escrito en Scheme. Nótese que es un código recursivo (un caso especial de iteración), pues la definición de "cómo iterar", la función iter, se llama a sí misma de manera de solucionar la instancia del problema. Específicamente, usa recursión al final de la cola, la cual está presente en lenguajes como Scheme para que no se requiera usar grandes cantidades de espacio del stack.

(define (sum n)
(define (iter n i)
(if (= n 1)
i
(iter (- n 1)(+ n i))
))
(iter n 1))

Un iterador es un objeto que engloba la iteración.

No hay comentarios: