Вы находитесь на странице: 1из 23

Tema

• Estatuto while

Repeticiones
 Un ciclo es cualquier construcción de programa
que repite una sentencia o secuencia de
sentencias un número de veces.
 La sentencia o grupo de sentencias que se repite
en un bloque se denomina cuerpo del ciclo y
cada repetición del cuerpo del ciclo se llama
iteración del ciclo.
Estatuto while

 Un ciclo while tiene una condición del ciclo, una


expresión lógica que controla la secuencia de
repetición.
 La posición de esta condición del ciclo es delante del
cuerpo del ciclo y significa que un ciclo while es un
ciclo de preverificación de modo que cuando se
ejecuta el mismo, se evalúa la condición antes de
que se ejecute el cuerpo del ciclo.

Sintaxis
while ( condición )
estatuto;
 Si se requiere realizar más de un estatuto se deben
utilizar llaves.

while ( condición )
{
bloque de estatutos;
}

Aquí se ejecuta el (los) estatuto (s) mientras la condición


es verdadera; al momento de ser falsa termina el ciclo.
Si la condición es falsa la primera vez nunca se
ejecuta(n) el (los) estatuto(s).
Ejemplos: Ejemplo I: Programa que pide 10 números y calcula y muestra
la suma de todos los que fueron pares.
#include <iostream.h>

int suma=0, cont= 10, num;


int main()
{
while (cont > 0)
{
cout << "Dame el numero " << endl;
cin >> num;
if (num % 2 == 0 ) // verificamos que sea un número par
suma += num; // recordemos que suma+= num es equivalente a suma
= suma + num (ver modulo1 sección 3)
cont--;
}
cout << "La suma de los numeros pares proporcionados es " << suma << endl;
return 0;
}
Ejemplo II : Obtener el promedio de calificaciones de un grupo de 20 estudiantes
#include <iostream.h>

int total, contador, calif;


double promedio;

int main()
{
total = 0;
contador = 1;
while (contador <= 20 )
{
cout<<" Dame la calificacion "<<endl;
cin >> calif;
total = total + calif;
contador ++;
}
promedio = total / 20.0;
cout<<"El promedio es "<< promedio<<endl;
return 0;
}
Temas
• Estatuto do - while

Repeticiones
Estatuto do – while
 El estatuto do-while se utiliza para especificar un
ciclo condicional que se ejecuta al menos una vez.
 Este ciclo se presenta en algunas circunstancias en
las que se ha de tener la seguridad de que una
determinada acción se ejecutara una o más veces,
pero al menos una vez.

Sintaxis
do
estatuto;
while ( condición );
 Si se requiere realizar más de un estatuto se deben utilizar llaves.
do
{
bloque de estatutos;
}
while ( condición ); // nota que lleva ;
 Se realizan los estatutos y se verifica la condición, mientras sea
verdadera se sigue ejecutando; al momento de ser falsa termina el
ciclo.
 Dado que la condición se revisa al final del ciclo el (los) estatuto(s)
se realizan al menos una vez a diferencia del while
Ejemplo I: Dado un número de tipo long decir
cuántos dígitos tiene
#include <iostream.h>
long num;
int cant = 0, x;
int main()
{
cout<<"Teclea un numero ";
cin>>num;
x = num; // guardo el numero en otra variable para no perderlo (por si luego lo ocupo)
do
{
x = x / 10;
cant++;
} while (x > 0);
cout<<"El numero tiene "<<cant <<" digitos"<<endl;
return 0;
}
Ejemplo II: Validar que un número dado esté en el rango de
10 a 20.
#include <iostream.h>

int num;

int main()
{
do
{
cout << "Dame el numero " << endl;
cin >> num;
}
while ( (num <10) || (num > 20) );
cout << "Numero dentro de rango" << endl;
return 0;
}

donde si la condición es falsa la primera vez no se ejecuta lo que esté dentro del ciclo.
Tema
• Estatuto for

Repeticiones
 El estatuto for es un método para ejecutar un bloque de
sentencias un número fijo de veces.
 El ciclo for se diferencia del ciclo while, do- while en que
las operaciones de control del ciclo se sitúan en un solo
sitio: la cabecera de l estatuto.

Sintaxis

for (inicialización ; condición ; incremento )


estatuto;
 Si se requiere realizar más de un estatuto se deben utilizar llaves.

for (inicialización ; condición ; incremento )


{
bloque de estatutos;
}

 Funcionamiento del For

1. Ejecuta el o los estatutos de inicialización


2. Evalúa la condición, si es verdadera entra al ciclo
3. Ejecuta el o los estatutos
4. Incrementa o decrementa el o los estatutos de
inicialización y regresa al paso 2
Notas sobre el for

 Las 3 partes del for son opcionales, si no se pone


condición se toma como verdadero.

 Si no se incluye la inicialización o condición, la


condición y el incemento o decremento deben de ir.
Ejemplo: for ( ; a > 10 ; a--)

 Si la primera vez la condición es falsa no se ejecuta


ningún estatuto y termina el for
 Si se pone más de una inicialización o acción, estas
deben ir separadas por coma
Ejemplo: for ( x=0, y= 3; x < 4 ; x++ )

 Una variable puede declararse en la sección de


inicialización, solo hay que tomar en cuenta que esta
variable solo es reconocida dentro del ciclo.

Ejemplo: for (int num = 1; num < = 10;


num++)
Ejemplo I: Mostrar los 30 primeros números de la serie de Fibonacci. La serie es
1,1,2,3,5,8,13....

#include <iostream.h>
long a, b, fibo; //los defino long porque se generan numeros muy grandes
int i;

int main()
{
a = 1;
b = 1;
cout<<a<<"\t"<<b<<"\t"; // "\t" sirve para poner un tab en la pantalla
for (i = 3; i<= 30; i++) // empiezo i en 3 porque ya mostre los 2 primeros
{
fibo = a + b;
cout<<fibo<<"\t";
a = b;
b = fibo;
}
return 0;
}
Ejemplo II: Sumar todos los números nones desde 1 hasta 30

#include <iostream.h>

int num, suma = 0;

int main()
{
for (num = 1; num <= 30; num+=2) // incremento de 2 en 2 para asegurar
suma += num; // números nones
cout << " La suma es " << suma;
return 0;
}
Tema
• Ciclos infinitos

Repeticiones
Ciclo infinito

 Cuando en un ciclo la condición siempre es verdadera se dice


que es un ciclo infinito, pues nunca saldrá del ciclo y el
programa no termina. Para evitarlos hay que estar seguros que
en el bloque de estatutos haya un estatuto que modifique el
valor de la condición de tal modo que llegue a ser falsa.
Ejemplo I

while ( calificacion != -1)


total = total + calificacion; // dado que no hay llaves la
lectura del número
contador ++; // no se realiza y el valor de la
calificación no
cout << "Da un -1 para terminar el ciclo" << endl; // cambia, por
ende la
cin >> calificacion // la condición siempre es verdadera
Ejemplo II

cont = 6;
a = 10;
while ( cont > 1)
{
suma = suma + cont;
a--;
cont++; // cont cada vez es mayor por lo que
// siempre será mayor a 1
}
Repeticiones

Вам также может понравиться