0% encontró este documento útil (0 votos)
286 vistas12 páginas

Introducción a Bucles en Programación

El documento trata sobre los diferentes tipos de bucles en programación, incluyendo while, do-while y for. Explica la estructura y funcionamiento de cada bucle, así como variables de control, incrementos y bucles controlados por centinela. También discute bucles con cero iteraciones y la importancia de un diseño de bucles adecuado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
286 vistas12 páginas

Introducción a Bucles en Programación

El documento trata sobre los diferentes tipos de bucles en programación, incluyendo while, do-while y for. Explica la estructura y funcionamiento de cada bucle, así como variables de control, incrementos y bucles controlados por centinela. También discute bucles con cero iteraciones y la importancia de un diseño de bucles adecuado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Taller de bucles

 Que es un bucle:

Un bucle es una secuencia que repite varias veces un mismo trozo de


código, hasta que la condición asignada al bucle deja de cumplirse.

 Que es el ciclo while:

El bucle while se encuentra en la mayoría de los lenguajes de


programación. Y se encarga de ejecutar un trozo de código mientras la
condición del while sea verdadera.

La condición del bucle ha de devolver un valor booleano, es decir un


true o false, si se cumple o no la condición. O también se puede usar
una variable booleana o una función que devuelva un booleano.

 Como funciona la sentencia while:

La sentencia while ejecuta continuamente un bloque de instrucciones


mientras sea verdadera una determinada condición. Su sintaxis es la
siguiente:

while (expresion) {
sentencia(s)
}

La sentencia while evalúa la expresión, que debe devolver un valor


booleano. Si es verdadero, la sentencia while ejecuta las instrucciones
dentro del bloque. La sentencia while sigue evaluando la expresión y
ejecutando el bloque hasta que la expresión evaluada sea falsa.

 Repetición del ciclo do – while:

Su sintaxis es:

do {
sentencia1;
sentencia2;
} while (condición);
Con esta sentencia se controla la condición al final del bucle. Si ésta
se cumple, el programa vuelve a ejecutar las sentencias del bucle.

 Cual es la diferencia entre el bucle while  for do while:

La única diferencia entre las sentencias while y do...while es que con la


segunda el cuerpo del bucle se ejecutará por lo menos una vez.

 Cuales son las variable es de control de un bucle:

El rendimiento del programa mejora si las variables de control de


bucle son uno de los tipos que se recogen en la siguiente lista.
Normalmente no debería utilizar otro tipo de variable.

FIXED BINARY con factor de escala cero


FLOAT
ORDINAL
HANDLE
POINTER
OFFSET

El rendimiento también mejora si las variables de control de bucle

no son miembros de matrices, estructuras ni uniones. El compilador emite


un mensaje de aviso cuando lo son. Las variables de control de bucle
AUTOMATIC no se utilizan con ningún otro fin que conseguir la mejor
generación de código.

El rendimiento disminuye si el programa depende no solo del valor de


la variable de control de bucle, sino también de su dirección. Por ejemplo,
si la función incorporada se aplica a la variable o si la variable se pasa
BYADDR a otra rutina.

 Cuales es la estructura del ciclo while:

La sintaxis de un ciclo while es incluso más simple y "legible" que la


del ciclo for en C++, pues simplemente requerimos tener clara una
condición de parada. En realidad, en la mayoría de los lenguajes de
alto nivel la manera de escribir un ciclo while (la sintaxis) es incluso
muy similar, así que con tan solo tener bien clara una condición de
finalización para el ciclo tendremos prácticamente todo hecho.
while(condición de finalización) //por ejemplo numero == 100
{
....
....
Bloque de Instrucciones....
....
....
}

Ej: #include "iostream"

using namespace std;


int main()
{
int numero;
cout << "Ingrese un numero ";
cin >> numero;
while(numero <= 100)
{
cout << "Ingrese un numero ";
cin >> numero;
}
system("PAUSE");
return 0;
}

 Cuales es la estructura del ciclo do-while:

La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo


while en C++, sin embargo, no se hace más complicado, de hecho, con
tan solo tener bien clara una condición de finalización para el ciclo
tendremos prácticamente todo terminado.

do
{
....
....
Bloque de Instrucciones....
....
....
}
while(condición de finalización); //por ejemplo numero != 23

 Realizar un ejemplo del ciclo while:

Ej: #include "iostream"

using namespace std;


int main()
{
int numero;
cout << "Ingrese un numero ";
cin >> numero;
while(numero <= 100)
{
cout << "Ingrese un numero ";
cin >> numero;
}
system("PAUSE");
return 0;
}

 Que es el ciclo for:

La estructura repetitiva for ( “desde…”) se utiliza generalmente


cuando tenemos bien determinada la cantidad de repeticiones a
realizar. Se diferencia de las anteriores en que se debe incluir en la
propia instrucción una variable de control, la cual se incrementa o
decrementa de forma automática. La estructura de estas
instrucciones viene a ser muy similar a la anterior.
 Cuales es la estructura del ciclo for:

for (inicialización;condición;incremento) {
sentencia1;
sentencia2;
}

 Cuales son los operadores de incremento:

El operador de incremento de prefijo ( ++ ) agrega uno a su


operando; este valor incrementado es el resultado de la expresión. El
operando debe ser un valor l que no sea de tipo const . El resultado
es un valor L del mismo tipo que el operando.

 Cuales son lo bucles controlados por centinela:

Los bucles controlados por centinela se utilizan cuando no se sabe con


anticipación, el número exacto de iteraciones a realizar.

Existen dos técnicas para realizar este bucle controlado por condición:

1. Bucle controlado por el usuario

Este método consiste simplemente en preguntar al usuario si existen más


entradas. Se sale del bucle cuando el usuario lo decide.  El bucle se realiza
mientras haya más entradas, usando una expresión booleana Si/No. Si el
usuario no desea continuar repitiendo el bucle, digita N o No, según se
haya establecido la condición de respuesta del usuario.

2. Bucle controlado por un valor centinela.

Un centinela es un valor especial utilizado para señalar el final de una


lista de datos. El valor elegido debe ser totalmente distinto de los posibles
valores de la lista, para que se pueda utilizar para señalar el final de la
lista. Es decir que no debe pertenecer al rango de datos         válido.
Al momento de escribir código no se conoce con exactitud cuantos
elementos de datos se van a procesar antes de comenzar la ejecución del
programa, una forma de medir correctamente esta situación sería instruir
al usuario para que introduzca un único dato definido y específico. Este
valor sería nuestra centinela, debemos tomar en cuenta que la condición
del bucle comprueba cada dato y este finalizará cuando se lea el valor
centinela, este se debe seleccionar con mucho cuidado y debe ser un valor
que no pueda producirse como dato, el centinela es un dato que nos
permita acabar con el proceso del bucle. Para nuestro siguiente ejemplo
vamos a integrar un bucle con centinela, vamos a ir introduciendo notas
mientras que ésta sea distinta de centinela.

Código

int main(){
/*entrada de datos numéricos
centinela -1*/
const int centinela = -1;
printf("Introduzca primera nota: ");
scanf("%d",&nota);
while(nota != centinela)
{
cuenta++;
suma += nota;
printf("Introduzca la siquiente nota: ");
scanf("%d",&nota);
}/* fin de while */
puts("Final");
return 0;
}

Para la ejecución de este pequeño ejemplo se lee el primer valor de


nota, como por ejemplo 25, luego se ejecuta la salida que podría ser
la siguiente:

Introduzca primera nota: 25


Introduzca siguiente nota: 30
Introduzca siguiente nota: 90
Introduzca siguiente nota: -1 /* Valor del centinela */
Final
 Cuales son lo bucles while con cero iteraciones:

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.

 Diseño de bucles:

El diseño de un bucle require tres partes:

1. El cuerpo del bucle


2. Las sentencias de inicialización
3. Las condiciones para la terminación del bucle.
 Terminación anormal de un ciclo:

En el momento que estamos programando, podemos encontrarnos


errores comunes ubicados en nuestros ciclos, específicamente en la
manera que lo estamos diseñando, un ejemplo de esto sería en una
sentencia while, el error se produce cuando el bucle solamente le
agregamos una sentencia en vez de varias sentencias como lo hemos
planeado, vamos a visualizar el siguiente ejemplo para analizar lo
que podría o no podría ocurrir:

contador = 1;
while (contador < 25)
printf ("%d\n",contador);
contador++;

Este programa básicamente lo que nos va a imprimir como resultado


es un montón de 1 infinitamente, lo que entra en un bucle infinito
del cual nunca va a salir ya que no se modifica la variable de control
contador, podemos ver que en la tercera línea de código existe un
punto y coma que termina con el ciclo, al escribir correctamente el
programa podemos darnos cuenta de una manera más rápida del
error, haciendo uso de una correcta sintaxis con respecto a la
sangría.

 Diseño eficiente de bucles:

Tenemos que tener en cuenta que es analizar y diseñar, para el


análisis de nuestras operaciones en un bucle y para el diseño de
nuestros propios bucles y determinar su eficiencia, los principios
que vamos a resaltar son los siguientes:

Análisis de requisitos para un nuevo bucle para determinar su


inicialización

Desarrollar patrones estructurales de los bucles que se usan


frecuentemente
 Bucles controlados por indicadores (banderas):

Una bandera, indicador o interruptor (flag) es una variable que se


utiliza para conservar el estado (verdadero o falso) de una condición.
Se denomina bandera o interruptor debido a que puede ser asociado
a un interruptor (encendido / apagado) o a una bandera (arriba /
abajo). Se pueden utilizar variables lógicas cuando el lenguaje las
provea, o bien se pueden simular con variables enteras a las que se
le asignan valores 0 (falso) o 1/-1 (verdadero). Con frecuencia se
desea repetir una serie de acciones mientras que una determinada
condición sea verdadera. Entonces el bucle se controla por el valor
verdadero de la condición. Se puede utilizar una bandera de
programa para almacenar este valor verdadero.

Ejemplo de bucle controlado por bandera Supongamos que se


necesita un proceso para buscar un valor x en una lista de n datos,
que están almacenados en un vector Dato( ). La búsqueda debe
terminar si se encuentra el valor x o bien si la lista de datos se
agota.

- La variable bandera f comienza el proceso con un 0.

- Si se encuentra el valor x dentro del vector Dato( ) la variable


bandera f cambia su valor a 1.

- La condición de salida del bucle será la comparación de la cantidad


de datos leídos y además la verificación del valor bandera
almacenado en la variable f.

 Estructura de break:

La instrucción de salto break se usa para interrumpir (romper) la


ejecución normal de un bucle, es decir, la instrucción break finaliza
(termina) la ejecución de un bucle y, por tanto, el control
del programa se transfiere (salta) a la primera instrucción después
del bucle.

Ejemplo 1: 
#include <stdio.h>

int main()
{
   int n, a;

   a = 0;
   do
   {
      printf( "Introduzca un numero entero: " );
      scanf( "%d", &n );

      if ( n == 0 )
      {
         printf( "ERROR: El cero no tiene opuesto.\n" );
         break;
         /* En el caso de que n sea un cero,
            el bucle se interrumpe. */
      }
      printf( "El opuesto es: %d\n", -n );
      a += n;
   } while ( n >= -10 && n <= 10 );

   printf( "Suma: %d", a );

   return 0;
}

 Bucles while (true):

En el caso de while True la expresión siempre va a ser evaluada


como verdadera por definición. Volviendo a nuestra traducción
equivaldría a:

mientras verdadero sea verdadero:

hacer algo

Por lo que estamos ante un ciclo infinito que iterará hasta el fin de
los tiempos (o la CPU entre en combustión...ツ), a no ser que usemos
un break, return (dentro de una función/método) o terminemos el
proceso de forma forzada. Lo mismo ocurre con cualquier objeto que
sea evaluado como verdadero (while "a", while 0.1, while 1 etc)

En cuanto a while False, es sintaxis válida pero el ciclo no va a


iniciarse siquiera ya que su condición de control es falsa de inicio
obviamente. Lo mismo ocurre con cualquier objeto que sea evaluado
como falso (while "", while 0, while None, etc)

Como True siempre seguirá siendo verdadero hasta el fin de los


tiempo podemos deducir que:

while True:

[cuerpo]

Es un bucle infinito a menos, obviamente, que exista una condición


para terminarlo dentro de su propio cuerpo (usando break, por
ejemplo):

while True:

# ...

if [condicion] == False:

break

 Cuales son los bucles infinitos:

bucle infinito en programación es un error que consiste en realizar


un ciclo que se repite de forma indefinida ya que su condición para
finalizar nunca se cumple.1

Por definición un bucle debe contener condiciones que establezcan


cuándo empieza y cuándo acaba, de manera que, mientras las
condiciones se cumplan, ejecute una secuencia de código de manera
repetitiva. En el caso de ciclo infinito, como la condición de
finalización no se alcanza, el bucle sigue ejecutando el segmento de
código indefinidamente.

 Los bucles for vacios:

 sentencias nulas en bucle for:

La sentencia nula consiste en un único ";". Sirve para usarla en los


casos en los que el compilador espera que aparezca una sentencia,
pero en realidad no pretendemos hacer nada.

También podría gustarte