Universidad de Costa Rica
|
|
Traduzca y compile este programa. Documente su experiencia.
Explique qué hizo, cómo lo hizo y por qué lo
hizo. Para trabajar use el
ambiente de desarrollo DrJava, disponible en
http://www.DrJava.org/
junto con la herramienta de visualización de la ejecución
Jeliot.
// Armstrong.cpp (C) 2010 adolfo@di-mare.com /** \file Armstrong.cpp \brief Traducción de \c Armstrong.java. Contiene todos los componentes principales de un algoritmo: - Secuenciación - Asignación y expresiones - Decisiones if() - Ciclos for(;;) y while() - Uso de vectores o matrices - Subrutinas y parámetros \author Adolfo Di Mare <adolfo@di-mare.com> \date 2010 */ #include <iostream> // cout void esArmstrong( int N, const int VAL[] , bool res[] ); /** Determina si una lista de números son de Armstrong. */ int main( int argc , char* argv[] ) { int VEC[] = { 456 , 9 , 555 , 370 , 371 , 12 , 407 , 0 , 1 }; const int DIM = ( sizeof(VEC) / sizeof(VEC[0]) ); bool *B = new bool[DIM]; // vector paralelo a VEC[] esArmstrong( DIM , VEC , B ); cout << "\nNúmeros de Armstrong:\n"; for ( int i=0; i<DIM; ++i ) { if ( B[i] ) { cout << VEC[i] << "\n"; } } return 0; } /** Retorna <code> res[i]==true </code> si \c VAL[i] es un número de Armstrong. - Un número es de Armstrong si la suma de los dígitos que lo componen elevados al cubo es igual al número. - Por ejemplo 153 es un número de Armstrong porque: <PRE> 3 3 3 153 == 1 + 5 + 3 == 1^3 + 5^3 + 3^3 == 1 + 125 + 27 </PRE> - Falla si <code> DIM(VAL) > DIM(res) </code> <br> <code>#define DIM(VEC) ( sizeof(VEC) / sizeof(VEC[0]) )</code> */ void esArmstrong( int N, const int VAL[] , bool res[] ) { int numero, suma, digito, temp; for ( int i=0; i<N; ++i ) { numero = VAL[i]; // recuerda el número temp = VAL[i]; // le saca todos los dígitos suma = 0; while ( temp != 0 ) { // suma de dígitos digito = temp % 10; // al cubo suma = suma + (digito * digito * digito); temp = temp / 10; } if ( suma == numero ) { res[i] = true; } else { res[i] = false; } } } // Armstrong.cpp |
Visualización de la Ejecución con Jeliot 1) Jale el Jeliot 2) Jale el programa de Armstrong 3) Ejecución Jeliot 1) Jale el Jeliot - http://cs.joensuu.fi/jeliot/ - Seleccione "Java Web Start" - Abra el programa [Java(TM) Web Start Launcher] - Se descarga jeliot.njlp - Web Start inicia la aplicación y jala el resto del programa - Advertencia de seguridad - Firma digital - [Ejecutar] 2) Jale el programa de Armstrong - En el hojeador (Mozilla, Explorer, Opera, etc.) - http://www.di-mare.com/adolfo/cursos/2009-2/Lab01.java.txt - Seleccione todo ( Select All ) - Copiar ( Copy ) - En Jeliot - Seleccione todo ( Select All ) - Pegar ( Paste ) - Guardar ( Save ) - Nombre de archivo [Lab01.java] [Guardar] 3) Ejecución Jeliot - Compilar - Animar - Velocidad de Animación [----------+---------] - Pausa - Rebobinar - etc. |
Tiempo de entrega: | 7 días | |
Modalidad: | Individual |
http://www.di-mare.com/adolfo/p/convpas.htm
http://java.sun.com/docs/codeconv/CodeConventions.pdf
|
Adolfo Di Mare <adolfo@di-mare.com>.
|