Tutorial de C++ - Iteraciones

8 - Iteraciones

[editar]
Tutorial creado por Peter Class; traducción por Pello Xabier Altadill Izura. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-tutorial-c++/html/
28 de Febrero de 2006

Iteracion con etiquetas es la manera primigenia de implementar iteraciones pero lo cierto es que el uso de etiquetas no se recomienda ya que es dificil de entender y mantener un programa con etiquetas. A ser posible hay que evitarlas.

/**
  * Loop.cpp
  * 
  * Programa que muestra como usar iteraciones
  * Pello Xabier Altadill Izura
  * Compilar: g++ Loop.cpp -o Loop
  */
  
  using namespace std;
  #include <iostream>
  
  // Programa principal
  int main () {
  
   cout << " Hola, vamos a mostrar un loop " << endl;
   
   //Inicializamos variables
   int i = 0;
   int max = 0;
  
   // Le pedimos al usuario que meta el total de iteraciones
   cout << " Cuantas vueltas damos? ";
   cin >> max;
  
   // Vamos a implementar una iteracion con etiquetas
   // en general no es recomendable usar etiquetas
   bucle: i++;
   cout << "Contador: " << i << endl;
   
   // si no superamos el tama&ntilde;o maximo, volvemos a la etiqueta
   if (i < max)
    goto bucle;
  
   // fin de programa
   
   return 0;
  
  }

Bucles Bueno, ahora en forma de clase vamos a ver una serie de iteraciones. No tienen ningun misterio se implementan como en c, php, perl, java, ...

/**
  * Bucles.hpp
  * 
  * Clase que muestra distintos tipos de iteraciones
  * Pello Xabier Altadill Izura
  */
  
  using namespace std;
  #include <iostream>
  
  class Bucles {
  
  private:
  
   int max;
  
  public:
  
   // Constructor
   Bucles();
  
   // Destructor
   ~Bucles();
   
   // Contructor parametrizado
   Bucles(int maximo);
  
   // Bucle tipo while
   void bucleWhile(int maximo);
  
   // Bucle tipo for
   void bucleFor(int maximo);
  
   // Bucle tipo do while
   void bucleDoWhile(int maximo);
  
  };
  

Y aqui la implementacion

/**
  * Bucles.cpp
  * 
  * Clase que muestra distintos tipos de iteraciones
  * Pello Xabier Altadill Izura
  * Compilar: g++ Bucles.cpp -o Bucles
  */
  
  #include "Bucles.hpp"
  
  // Constructor
  Bucles::Bucles(){}
  
  
  // Destructor
  Bucles::~Bucles(){}
  
  
  // Contructor parametrizado
  Bucles::Bucles(int maximo){}
  
  
  // Bucle tipo while
  void Bucles::bucleWhile(int maximo){
   
   int temp = 0;
   cout << " iniciamos el bucle WHILE: " << temp << " y 
   max " << maximo << endl;
  
   while (temp < maximo) {
    cout << temp << " es menor que " << maximo << endl;
    temp++;
   }
  
  }
  
  
  // Bucle tipo for
  void Bucles::bucleFor(int maximo){
  
   int temp = 0;
   cout << " iniciamos el bucle FOR: " << temp << " y max " << maximo << endl;
  
   for (temp=0; temp < maximo; temp++) {
  
    cout << temp << " es menor que " << maximo << endl;
  
   } 
  
  }
  
  
  // Bucle tipo do while
  void Bucles::bucleDoWhile(int maximo){
   
   int temp = 0;
   cout << " iniciamos e bucle: " << temp << " y max " << maximo << endl;
  
   do {
  
    cout << temp << " es menor que " << maximo << endl;
    temp++;
  
   } while (temp < maximo);
  
  }
  
  
  int main () {
  
   // Creamos dos instancias de la clase Bucles
   Bucles ciclador = Bucles();
   Bucles cicladorparam = Bucles(34);
  
   // Invocamos los metodos
   ciclador.bucleWhile(23);
   
   cicladorparam.bucleFor(10);
   
   ciclador.bucleDoWhile(5);
  
   return 0;
  
  }

Switch/case Por supuesto tenemos el clasico switch-case en c++ En este ejemplo creamos una clase para mostrar el funcionamiento de un menu de seleccion.

/**
  * Menu.hpp
  * 
  * Clase que especifica un menu de seleccion de opciones
  * que implementaremos con un case
  * Pello Xabier Altadill Izura
  */
  
  using namespace std;
  #include <iostream>
  
  class Menu {
   
  private:
  
    int resultado;
  
  public:
   
   // Constructor
   Menu();
  
   // Destructor
   ~Menu();
  
   // Menu tipo case 
   int menu();
  
  };
  

Y su implementacion

/**
  * Menu.cpp
  * 
  * Clase que implementa Menu.hpp
  * Pello Xabier Altadill Izura
  * Compilar: g++ Menu.cpp -o Menu
  */
  
  #include "Menu.hpp"
  
  // Constructor
  Menu::Menu(){}
  
  
  // Destructor
  Menu::~Menu(){}
  
  
  // Menu tipo case
  int Menu::menu(){
   
   int temp = 0;
   
   // Iniciamos un bucle que no para hasta que se seleccione 
   // algo distinto de 0.
  
   do {
    cout << " MENU Seleccion." << endl;
    cout << " 1. Ensalada" << endl;
    cout << " 2. Cordero " << endl;
    cout << " 3. Merluza " << endl;
    cout << " 4. Pato " << endl;
    cout << " Elije algo: ";
    cin >> temp;
  
    // Segun lo elegido sacamos algo.
  
    switch (temp) {
     case 0 : 
      cout << " Nos vamos " << endl;
      break;
   
     case 1 : 
      cout << " Estas a dieta? " << endl;
      break;
     
     case 2 : 
      cout << " Vaya digestion... " << endl;
      break;
   
     case 3 : 
      cout << " Que sano eres " << endl;
      break;
   
     case 4 : 
      cout << " Vaya finolis esta hecho " << endl;
      break;
    
     default :
      cout << " Chico, decidete." << endl;
      temp = 0;
    } //end switch
  
   } while(!temp);
   
   return temp;
  
  }
  
  
  int main () {
  
   // Aqui guardaremos el resultado
   int resultado = 0;
   
   cout << " Vamos a sacar el menu." << endl;
   
   // Creamos dos instancias de la clase Menu
   Menu menutero = Menu();
  
   // Invocamos los metodos
   resultado = menutero.menu();
  
   cout << " El resultado es: " << resultado << endl;
  
   return 0;
  
  }
  

Largo es el camino. Bueno, aun queda un huevo por recorrer...
[editar]

23 opiniones

yery cruz

12345
DamiaN

Mal exlicado :S,
no dice nada

agan algo de servicio por favor no mas estupidos
alegoria

cuando uno va a esplicar de progamacion primero se esplican los concepto, delas intrucciones,para que el estudiante sepa lo que se dice o de lo que se esta hablando, si es que esta pagina intructiva, sinoo no pongan estos ejemplo pues son tan astracto para los principiates que lo que hacen es asustarlos y seban , para esto de maestro, hay que ser humilde yno creer que como ya yo se no me importa lo que venga, no tomen esto, como algo mejoren, mejoren,mejoren, los quiero mucho migel.
Sobre nombre de array.

Hola, peter. Respecto a tu primera pregunta sobre cómo nombrar lo que en el código aparece como "array" en inglés, te puedo decir que no es correcta ninguna de las dos opciones que ofreces. Si se usa "arrays" se está españolizando la palabra inglesa "array". No muy conveniente, porque en español ya existe la palabra adecuada para ese concepto: "vector". De todos modos, españolizar una palabra inglesa en argot técnico no es tan grave como usar la palabra española traducida según una acepción inglesa incorrecta. Nunca se debería usar "arreglo".
1 2 3 4 5 | siguiente >

Tutoriales relacionados con 'Tutorial de C++'

Este es el diario de Peter Class sobre sus dias aprendizaje de una disciplina de... Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una... Más »
Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesivo". Excesivo puesto... Más »
La red telefónica básica se creó para permitir las comunicaciones de voz a distancia. Esto... Más »
Bienvenidos al manual de HTML de Indaya.A través de todos estos capítulos vamos a descubrir... Más »

Autor y licencia de 'Tutorial de C++'


Tutorial de Peter Class; traducción por Pello Xabier Altadill Izura. Extraido de: http://es.tldp.org/Manuales-LuCAS/doc-tutorial-c++/html/ CopyLeft
Este documento se cede al dominio publico.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.