Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La Figura.- representa el diagrama del bucle while. El diagrama
indica que la ejecución de la sentencia o sentencias expresadas
serepite mientras la condición del bucle
permanece verdadera ytermina cuando se hace falsa.
También indica el diagrama anterior que la condición del bucle se
evalúa antes de que se ejecute el cuerpo del bucle y, por
consiguiente,
o si esta condición es inicialmente falsa, el cuerpo del bucle
no se ejecutará. En otras palabras, el cuerpo de un bucle
while se ejecutará cero o más veces.
While con sentencia simple
While (condición booleana) sentencia simple
Ej
while (5<10)
printf("hola"); Sentencia simple
While con sentencia compuesta
while (condición-bucle)
{
sentencia-1;
sentencia -2 ;
...
sentencia -n ;
}
Continua....
Funcionamiento: al llegar a una sentencia while … el compilador
1. Evalúa la condición booleana
2. Si el resultado es verdad ejecuta la(s) sentencia(s)
3. Si el resultado es falso … no ejecuta nada y continua la
secuencia del programa
Ejemplo /* visualizar n asteriscos */
contador = O;
n=10; // inicialización
while (contador < n) //evalua la condición (0<10)?
{
printf (" * \n") ;
contador++; //incrementa en 1 contador
} //fin de while
Continua...
_______________________________________
La variable que representa la condición del bucle se denomina
también variable de control del bucle debido a que su valor
determina si el cuerpo del bucle se repite.
La variable de control del bucle debe ser:
a. inicializada,
b. comprobada,
c. actualizada
para que el cuerpo del bucle se ejecute adecuadamente.
Cada etapa se resume así:
a. Inicialización. Contador se establece a un valor inicial (se
inicializa a cero, aunque podría ser otro su valor
b. Prueba/condición. Se comprueba el valor de contador
antes de que comience la repetición de cada bucle
c. Actualización. Contador se actualiza (su valor se
incrementa en 1, mediante el operador ++) durante cada
iteración
Si la variable de control no se actualiza el bucle se ejecutará
«siempre». Tal bucle se denomina bucle infinito.
En otras palabras un bucle infinito (sin terminación) se producirá
cuando la condición del bucle permanece verdadera y no se hace
falsa en ninguna iteración.
/* bucle infinito */
contador = 1;
while (contador < 100)
{
printf ("%d \n', contador);
contador- - ; //decrementa en 1 conductor
}
Ejemplo /* Bucle con while */
#include <stdio.h>
int main()
{
int contador = O; /* inicializa la condición */
while(contador < 5) /* condición de prueba */
{
contador ++; /* cuerpo del bucle */
printf ("contador: %d \n",contador) ;
}
printf("Termina Contador: %d \n",contador);
return 0;
}
EL BUCLE
FOR_______________________________________
El bucle for de C ofrece más control sobre la inicialización y el
incremento de las variables de control del bucle.
Además del bucle while, C proporciona otros dos tipos de bucles for
y do.
El bucle for el más adecuado para implementar bucles controlados
por contador que son bucles en los que un conjunto de sentencias
se ejecutan una vez por cada valor de un rango especificado, de
acuerdo al algoritmo:
por cada valor de una variable-contador de un rango especifico:
ejecutar sentencias
La sentencia for (bucle for) es un método para ejecutar un bloque
de sentencias un número fijo de veces.
El bucle for se diferencia del bucle while en que las operaciones de
control del bucle se sitúan en un solo sitio: la cabecera de la
sentencia.
Sintaxis
for ( Inicialización ; Condición ; Incremento) sentencias ;
Donde:
a. Inicialización.- Inicializa la variable de control del bucle
a. Debe ser tipo entero, (char)
b. Condición.- Expresión lógica que determina si las
sentencias se han de ejecutar mientras sea verdadera
c. Incremento.- Incrementa o decrementa la variable de
control del bucle
d. Sentencias.- sentencias a ejecutar en cada iteración del
bucle.
a. Simples
b. compuestas
ej.
//imprime "hola 10 veces"
for (i=0;i<10;i++)
printf("hola!\n");
int i;
for (i = 0; i < 10; i++)
{
printf ("Hola !" ) ;
printf("El valor del contador es = %d\n", i +1) ;
}
#include <math.h>
#include <stdio.h>
#define M 15
#define f(x) exp(2*x)-x
int main()
{
int i;
double x;
for (i = 1; i <= M; i++);
{
printf("Va1or de x: ");
scanf ("%f",&x) ;
printf ("f (%.f) = %f\n",x, f(x) );
}
return 0;
}
Ejemplo de formato descendente
int n;
for (n = 10; n> 5; n--)
printf("%d \t %d \n",n, n * n );
La salida de este bucle es:
10 100
9 81
8 64
7 49
6 36
Suma de los 10 primeros números pares CON FOR
Practica...
#include
int main()
{
int n,
suma = 0;
for (n = 1; n <= 10; n++)
{suma += 2*n; }
printf('La suma de los 10 primeros números pares: %d",suma);
return 0;
}
/*El bucle también lo podríamos haber diseñado con un
incremento de 2:
for (n = 2; n <= 20; n+=2)
suma += n; */
EL BUCLE do. .
.while____________________________________________
____
La sentencia do-while se utiliza para especificar un bucle
condicional que se ejecuta al menos una vez.
Esta situación se suele dar en algunas circunstancias en las que se
ha de tener la seguridad de que una determinada acción se
ejecutará una o varias veces, pero al menos una vez.
Sintaxis
Acción (sentencia) a ejecutar al menos una vez Expresión lógica que
determina si la acción se repite /
do Sentencia while (expresión)
do sentencia while (expresión)
i. do comienza ejecutando la(s) sentencia(s).
ii. a continuación Se evalúa expresión.
1. Si expresión es verdadera, entonces se repite la
ejecución de sentencia(s).
2. Este proceso continúa hasta que expresión
es falsa.
La semántica del bucle do se representa gráficamente:
Ej.1
Bucle para introducir un dígito.
char digito, op;
do
{
printf ("Introduzca un dígito (0-9) : ") ;
fflush( stdin );
scanf ("%c", &digito) ;
printf("digito capturado = %c\n",digito);
printf("deseas continuar [s/n] = ");
fflush( stdin ); //limpia el bufer
scanf("%c",op);
}
while (op!= 'n');
Este bucle se realiza mientras se introduzcan dígitos y se termina
cuando se introduzca un carácter que no sea un dígito de '0'a '9'.
ej. 2
#include
int main()
{
char opcion;
do
{
printf("Hola\n") ;
printf("¿Desea otro tipo de saludo?\n") ;
printf("Pulse s para si y n para no, ") ;
printf ("y a continuación pulse intro: ");
scanf ("%c", &opcion);
} while (opcion == 's' II opcion == 'S') ;
printf("adios");
return O;
}
Una sentencia do-while es similar a una sentencia while excepto
que el cuerpo del bucle se ejecuta siempre al menos una vez
Ejemplo
#include<stdio.h>
int main()
{
int x,y;
char op;
printf("que serie deseas = ");
fflush( stdin );
scanf("%i",&y);
x=y;
printf("\tserie del %i\n",y);
do
{
printf( "\t %d\n",y);
y=y+x;
printf("deseas ver el siguiente de la serie s/n] = ");
fflush(stdin); //limpieza al buffer
scanf("%c",&op);
}
while (op=='s');
return 0;
}
Visualizar las potencias de 2 cuyos valores estén en el rango 1 a
1000.
/* Realizado con do-while */
potencia = 1;
do
{
potencia =* 2;
printf (“%d \n”,potencia) ;
} while (potencia < 1000);
PRACTICAS PARA EL PRIMER PARCIAL
1. PROGRAMAS SECUENCIALES.- son aquellos programas que
se ejecutan línea por línea hasta el final. Ej. calcular el área
de un triangulo.
2. PROGRAMAS CON BIFURCACIÓN.- son los programas que
en sus sentencias cuentan al menos con una sentencia if o
switch.- calcular el área o el volumen de una figura
geométrica.
3. PROGRAMAS CON SENTENCIAS ITERATIVAS O
REPETITIVAS.-son los programas que en sus sentencias
cuentan al menos con una sentencia for , while , o do-
while. .- calcular las tablas de multiplicar (for, while, do-
while)