miércoles, 2 de junio de 2010

unidad 4, lenguaje de programación C++



Estatuto while


          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

    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

int total, contador, calif;
double promedio;

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

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
    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 "<<<" digitos"<
       return 0;
    }

Ejemplo II: Validar que un número dado esté en el rango de 10 a 20.
   #include

    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

ESTATUTO FOR

         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;

         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
   long a, b, fibo;     //los defino long porque se generan numeros muy grandes
   int i;

   int main()
  {
     a = 1;
     b = 1;

     for (i = 3; i<= 30; i++)   // empiezo i en 3 porque ya mostre los 2 primeros
      {
              fibo = a + b;
              cout<<<"\t";
              a = b;
              b = fibo;
       }
     return 0;
   }

Ejemplo II: Sumar todos los números nones desde 1 hasta 30

   #include

   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;
   }


CICLO INFINITO

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
    }



No hay comentarios:

Publicar un comentario