EnPile.cpp

Ir a la documentación de este archivo.
00001 // EnPile.cpp (C) 2005  [email protected]
00002 
00003 /** \file  EnPile.cpp
00004     \brief Un ejemplo interesante de recursividad
00005         
00006         \author Modificaciones por Cristopher Rojas Salas <>
00007     \author Adolfo Di Mare <[email protected]>
00008     \date   2005
00009 
00010     \remark Di Mare, Adolfo:
00011      - "Tres formas diferentes de explicar la recursividad"
00012        - Revista Ingeniería, Facultad de Ingeniería,
00013          Universidad de Costa Rica,
00014          Volumen 6, Número 2, pp [31-44], 1996.
00015        - http://www.di-mare.com/adolfo/p/recurse1.htm#otros
00016 */
00017 
00018 #include <iostream>
00019 using namespace std;// Usamos el namespace std que agrupa todas la entidades de la libreria standard c++
00020 
00021 
00022 /** Invierte una hilera de letras que lee de \c "cin"
00023     \code
00024     C:\TMP>EnPile
00025     Digite la hilera a invertir:
00026     adolfo.
00027     .ofloda
00028     \endcode
00029 */
00030 
00031 void EnPile() {
00032     /** va leyendo de una palabra introducida una a una las letras y las introduce en la 
00033             variablar tipo char (caracter) una a una cada vez que entra en EnPile */
00034         char ch;   // variable local ==> 1 nueva en cada invocación
00035     cin >> ch; // lee otra letra
00036         
00037         /** condicion para que volver a llamar a EnPile hasta que encuentre el "." */
00038     if (ch != '.') {
00039         EnPile();
00040     }
00041         /** hasta que encuentra el punto en la palabra empieza el proceso de mostrar letra a letra
00042             en pantalla en orden inverso */
00043     cout << ch;/// muestra el valor de la variable ch en pantalla
00044 }
00045 
00046 /** No invierte una hilera de letras que lee de \c "cin"
00047     \code
00048     C:\TMP>EnPile
00049     Digite la hilera a invertir:
00050     adolfo.
00051     .......
00052     \endcode
00053 */
00054 
00055 /** Este metodo recibe un char referenciado por lo cual al cambiar todos los valores referenciados
00056     no se invierte la cadena */
00057 void EnPile(char ch) {
00058     cin  >> ch; // lee otra letra
00059     cout << ch; // la graba
00060     if (ch != '.') {
00061         EnPile(ch);
00062     }
00063         /** Al mostrar los valores que contiene ch todos han sido cambiados al ultimo valor asignado 
00064             al uso de la variable ch referenciada */
00065     cout << ch;
00066 }
00067 
00068 
00069 /** Metodo principal del programa donde se ejecutan EnPile() y EnPile(ch) */
00070 int main() {
00071     char ch=0;
00072     //EnPile();
00073     EnPile(ch);
00074 
00075         system("PAUSE");/// instruccion para que pause el programa al llegar a este punto
00076     return 0;
00077 }
00078 
00079 // EOF: EnPile.cpp
00080 

Generado el Mon Aug 28 18:18:36 2006 para Enpile por  doxygen 1.4.7
Hosted by www.Geocities.ws

1