Universidad de Costa Rica
|
|
Tome como base el artículo sobre la
recursividad mencionado
abajo y úselo para explicar qué hacen los programas
EnPile.cpp
y Numeral.cpp
. Documente y
ejecute esos programas, y arréglelos si es necesario.
Hágales la documentación usando
Doxygen.
Documente su experiencia.
// Numeral.cpp (C) 2006 adolfo@di-mare.com #include <iostream> void Numeral(long n) { long i = 1; bool esta = false; while ( (!esta) && (i < n / 2)) { ++i; esta = (n % i == 0); } if (esta) { cout << i << endl; Numeral(n / i); } } int main() { int N; N = 512; cout << "==>" << endl; Numeral(N); N = 10000; cout << "==>" << endl; Numeral(N); N = 420; cout << "==>" << endl; Numeral(N); return 0; } // EOF: Numeral.cpp |
http://www.di-mare.com/adolfo/p/recurse1.htm
// EnPile.cpp (C) 2005 adolfo@di-mare.com /** \file EnPile.cpp \brief Un ejemplo interesante de recursividad \author Adolfo Di Mare <adolfo@di-mare.com> \date 2005 \remark Di Mare, Adolfo: - "Tres formas diferentes de explicar la recursividad" - Revista Ingeniería, Facultad de Ingeniería, Universidad de Costa Rica, Volumen 6, Número 2, pp [31-44], 1996. - http://www.di-mare.com/adolfo/p/recurse1.htm#otros */ #include <iostream> /** Invierte una hilera de letras que lee de \c "cin" \code C:\TMP>EnPile Digite la hilera a invertir: adolfo. .ofloda \endcode */ void EnPile() { char ch; // variable local ==> 1 nueva en cada invocación cin >> ch; // lee otra letra if (ch != '.') { EnPile(); } cout << ch; } /** No invierte una hilera de letras que lee de \c "cin" \code C:\TMP>EnPile Digite la hilera a invertir: adolfo. ....... \endcode */ void EnPile(char & ch) { cin >> ch; // lee otra letra cout << ch; // la graba if (ch != '.') { EnPile(ch); } cout << ch; } int main() { char ch; EnPile(); EnPile(ch); return 0; } // EOF: EnPile.cpp |
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
Tiempo de entrega: | 1 semana | |
Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|