Este ciclo es uno de los mas usados para repetir una
secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de
veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
for (inicialización; condición; incremento)
{ instrucción(es); };
ejemplo:
for(x=1;x⇐10;x=x+1)
{ puts(” MAMA ”); };
En su forma simple la inicialización es una instrucción
de asignación que carga la variable de control de ciclo con un valor inicial.
La condición es una expresión relacional que evalúa la
variable de control de ciclo contra un valor final o de parada que determina
cuando debe acabar el ciclo.
El incremento define la manera en que la variable de
control de ciclo debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;)
EJEMPLO
Codigo prog6.cpp
#include <stdio.h>
#include
<conio.h>
#include
<string.h>
void main()
{
clrscr();
// declaracion
variables
int x;
// instruccion for
for(x=1;x<=10;x=x+1)
{ gotoxy(10, x+4);
printf("%d MAMA",x); };
getchar();
}
corrida:
Casos Particulares del ciclo for;
1.- El ciclo comienza en uno y se incrementa de uno en
uno este es el caso mas general.
2.- Pero el valor inicial puede se diferente de uno,
ejemplo;
for(x=5;x⇐15;x=x+1){ etc.};
3.- Incluso el valor inicial puede ser negativo, ejemplo;
for (x = -3 ;x⇐ 8; x=x+1) { etc.};
4.- Los incrementos también pueden ser diferentes al de
uno en uno, ej.;
for (x=1; x⇐ 20;
x=x+3){ etc. };
5.- Incluso pueden ser decrementos, solo que en este
caso, recordar;
5.1.-el valor inicial de la variable debe ser mayor que
el valor final.
5.2.-cambiar el sentido de la condición.
ejemplo;
for (x= 50 ; x >=
10; x= x-4 ) { etcétera };
SEGUN ESTA PAGINA http://fismat.umich.mx/mn1/tutor_fort/loops.html Los Ciclos sirven :
Para la repetir la ejecución de sentencias se usan los ciclos.
Si se esta familiarizado con otros lenguajes de programación se habrá escuchado
de los ciclos-for y de los ciclos-until, Fortran 77 tiene
solamente una construcción de ciclo, conocida como el ciclodo. El ciclo-do corresponde
al ciclo-for que existe en otros lenguajes de programación. Otros
ciclos pueden ser simulados usando las sentencias if y goto.
Ciclos-do
El ciclo-do es usado para repetir un conjunto de
sentencias una determinada cantidad de veces. Se muestra el siguiente ejemplo
donde se calcula la suma de los enteros desde el 1 hasta n (suponiendo
que a nse le ha asignado un valor previamente):
integer i, n,
suma
:
:
:
suma = 0
do 10 i = 1, n
suma = suma + i
write(*,*) 'i =', i
write(*,*) 'suma =', suma
10 continue
El número 10 es una sentencia de etiqueta.
Típicamente, podría haber varios ciclos y otras sentencias en un programa que
requierean una sentencia de etiqueta. El programador es responsable de asignar
un número único a cada etiqueta en cada programa (o subprograma). Recordar que
las posiciones de las columnas 2-5 son reservadas para sentencias de etiquetas.
El valor numérico de las sentencias de etiqueta no tienen ningún significado,
por lo que cualquier valor entero puede ser usado. Por lo general, los
programadores incrementan las etiquetas de 10 en 10 cada vez.
La variable en la sentencia do es incrementada
en 1 por default. Sin embargo, se puede usar cualquier otro entero para el paso
o incremento. El siguiente segmento de programa muestra los números pares
en forma decreciente entre el 1 y 10:
integer i
do 20 i = 10, 1, -2
write(*,*) 'i =', i
20 continue
La forma general del ciclo do es la siguiente:
do etiqueta var =
expr1, expr2, expr3
sentencias
etiq
continue
donde:
var es la variable del ciclo (conocida con frecuencia como el índice del ciclo) el cual deberá ser del tipo integer.
expr1 indica el valor inicial de var,
expr2 es el valor hasta el que llegará el índice, y
expr3 es el incremento (step).
var es la variable del ciclo (conocida con frecuencia como el índice del ciclo) el cual deberá ser del tipo integer.
expr1 indica el valor inicial de var,
expr2 es el valor hasta el que llegará el índice, y
expr3 es el incremento (step).
Nota: La variable del ciclo do nunca deberá ser
modificada por otras sentencias dentro del ciclo, ya que puede generar errores
de lógica.
Muchos compiladores de Fortran 77 permiten que los ciclos do sean
cerrados por la sentencia enddo. La ventaja es que la sentencia etiqueta puede
ser omitida, ya que en este caso la sentencia enddo cierra la
sentencia do más cercana. La construcción enddo es
ampliamente usada, pero no es parte del ANSI Fortran 77.
Ciclos while
La forma más intuitiva para escribir un ciclo while es
while (expr
lógica) do
sentencias
enddo
o de forma alterna
do while (expr
lógica)
sentencias
enddo
Las sentencias en el cuerpo serán repetidas mientras la
condición en el ciclo while sea verdadera. A pesar de que esta
sintaxis es aceptada por muchos compiladores (incluyendo el de Linux), no forma
parte del ANSI Fortran 77. La forma correcta es usando las sentencias if y goto:
etiq if (expr
lógica) then
sentencias
goto etiq
endif
A continuación se tiene un ejemplo que calcula y muestra
el doble de todos los número anterior comenzando con el 2 y que son menores a
100:
integer n
n = 1
10 if (n .lt. 100) then
n = 2*n
write (*,*) n
goto 10
endif
Ciclos-until
Es un ciclo el cual el criterio de terminación esta al
final en vez del inicio. En pseudocódigo tendríamos el siguiente formato:
haz
sentencias
hasta (expr
lógica)
lo cual nuevamente, puede ser implementado en Fortran 77
usando las sentencias if y goto:
etiq
continue
en resumidas cuentas :
Un ciclo Do se puede usar para ejecutar un bloque de
enunciados fijo, una cantidad infinita de veces.
Existen 4 tipos diferentes de ciclos Do
Tipo de ciclo Do
|
Explicación
|
Ejemplo
|
|
Do While … Loop
|
Do While ... Loop evalúa la condición y si ésta es
verdadera, entonces evalúa los enunciados que siguen a la condición.
Al terminar de hacer esto, evalúa nuevamente la
condición y si ésta es verdadera, vuelve a evaluar los enunciados.
Continúa repitiendo este proceso hasta que la condición
sea falsa.
|
Do While condition
statements
Loop
|
|
Do Until ... Loop
|
Do Until ... Loop
es similar a Do While ... Loop con la excepción de que sigue
evaluando los enunciados hasta que la condición es verdadera en vez de que
mientras sea verdadera.
|
Do Until condition
statements
Loop
|
|
Do ... Loop While
|
Do ... Loop While evalúa los enunciados solamente una
vez.
Luego evalúa la condición y si ésta es verdadera,
evalúa nuevamente los enunciados. Este proceso continúa hasta que la
condición sea falsa.
|
Do
statements
Loop While
condition
|
|
Do ... Loop Until
|
Similar a Do ... Loop While excepto que evalúa los
enunciados hasta que la condición sea verdadera.
|
Do
statements
Loop Until
condition
|
|
Los ciclos Do admiten un enunciado Exit Do para salir
inmediatamente del ciclo. La expresión Exit Do es similar a Exit For en los
ciclos For/Next.
|
|||
Ejemplo de fórmula Do While ... Loop
El siguiente ejemplo la primera repetición de un dígito en una
cadena de entrada. Si encuentra un dígito, devuelve su posición; de lo
contrario, devuelve -1. En este caso, la cadena de entrada se establece
explícitamente en una constante de cadena, pero podría establecerse igualmente
en un campo de base de datos de tipo de cadena.
Por ejemplo, para la cadena de entrada, "The 7
Dwarves", la fórmula devuelve 5, que es la posición del dígito 7.
Dim inString
inString = "The
7 Dwarves"
Dim i, strLen
i = 1
strLen = Len
(inString)
formula = -1
Do While i <=
strLen And formula = -1
Dim c As String
c = Mid (inString, i,
1)
If IsNumeric (c) Then
formula = i
i = i + 1
Loop
CICLO DO WHILE C++
Su diferencia básica con el ciclo while es que la prueba
de condición es hecha al finalizar el ciclo, es decir las instrucciones se
ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al
final evalúa la condición;
También se le conoce por esta razón como ciclo de
condición de salida.
Su formato general es :
cargar o inicializar variable de condición;
do {
grupo cierto de instrucción(es);
instrucción(es) de rompimiento de ciclo;
} while (condición);
prog8.cpp
#include
<stdio.h>
#include
<conio.h>
#include
<string.h>
void main()
{
clrscr();
// declaracion
variables
int x=1;
// instruccion do
while
do{
gotoxy(10, x+3);
printf("%d GATO",x);
x++; } while(x<=10);
getchar();
}
Corrida prog
Otra diferencia básica con el ciclo while es que, aunque
la condición sea falsa desde un principio el cuerpo de instrucciones se
ejecutara por lo menos una vez.



