UNIVERSIDAD DE COSTA RICA CI-0202 Principios de Informática ESCUELA DE CIENCIAS DE LA Profesor Adolfo Di Mare COMPUTACION E INFORMATICA Tarea programada Nº 9 Intercalables() Carnet: ________ Nombre: __________________________________ /** Determina si las hileras \c s1 y \c s2 son inmediatamente intercalables. - Retorna \c true si es si es posible intercalar, letra por letra y en orden estrictamente ascendente, las 2 hileras "s1" y "s2". Estas son algunas condiciones necesarias para que las 2 hileras sean intercalables: - La longitud de las hileras no puede diferir en más de uno (1). - Ambas hileras deben estar ordenadas ascendentemente. \par Ejemplos: \code s1 => "1357" 1 3 5 7 Intercalables( "1357", "246" ) ==> true s2 => "246" 2 4 6 ==> "1234567" s1 => "dil" d i l Intercalables( "dil", "bfjm" ) ==> true s2 => "bfjm" b f j m ==> "bdfijlm" s1 => "adfm" a d f m Intercalables( "adfm", "beip" ) ==> true s2 => "beip" b e i p ==> "abdefimp" Intercalables( "" , "" ) ==> "" ==> true Intercalables( "z", "" ) ==> "z" ==> true Intercalables( "" , "h" ) ==> "h" ==> true Intercalables( "135", "24689" ) ==> false Intercalables( "" , "1457" ) ==> false Intercalables( "420", "3" ) ==> false \endcode */ bool Intercalables( const char s1[], const char* s2 ); Inserte su función en el archivo Intercalables.cpp aquí incluido. NOTA: Este programa trabaja sólo con la pantalla. No escribe en la impresora. ================================= Políticas de Corrección de Tareas ================================= 1) Correcta indentación del código fuente. 2) Correcto espaciado del código fuente. 3) Código fuente escrito de manera que se legible y claro. 4) Uso de indentificadores significativos. 5) Uso de Doxygen para la especificación de todos los métodos, funciones y campos de clase. ::::::::::::::::: Intercalables.cpp ::::::::::::::::: // Intercalables.cpp (C) 2006 adolfo@di-mare.com /** \file Intercalables.cpp \brief Programa para ejercitar la función \c Intercalables(). \author Adolfo Di Mare \date 2006 */ #include // cin && cout #include // setw() #include #include // strlen() #include // toupper() bool Intercalables( const char s1[], const char* s2 ) { return false; } /** Ejecuta Intercalables( s1, s2 ) y reporta el resultado en \c cout. - Usa un formato bonito: - Intercalables( false, "135", "24689" ) ==> false - Intercalables( true, "1357", "246" ) ==> true - Intercalables( true, "dil", "bfjm" ) ==> true Se supone que el valor correcto a calcular es \c res. - De lo contrario, pone el mensaje " ==> BOOOM !!!". */ void Reporta_Intercalables( bool res, const char *s1, const char s2[] ) { bool real_res = Intercalables( s1, s2 ); cout << "Intercalables(" << '"' << s1 << '"' << ", " << '"' << s2 << '"' << ") ==> "; if (real_res) { cout << "true"; } else { cout << "false"; } if (res != real_res) { cout << " ==> BOOOM !!!"; } cout << endl; } /// Programa principal. /// - Invoca \c Reporta_Intercalables() con varios datos de prueba. int main() { cout << endl << endl; Reporta_Intercalables( true, "1357", "246" ); Reporta_Intercalables( true, "246" , "1357" ); Reporta_Intercalables( true, "bfjm", "dil" ); Reporta_Intercalables( true, "dil" , "bfjm" ); Reporta_Intercalables( true, "adfm", "beip" ); Reporta_Intercalables( true, "beip", "adfm" ); Reporta_Intercalables( true, "" , "" ); Reporta_Intercalables( true, "z", "" ); Reporta_Intercalables( true, "" , "z" ); Reporta_Intercalables( false, "135", "24689" ); Reporta_Intercalables( false, "24689", "135" ); Reporta_Intercalables( false, "" , "1457" ); Reporta_Intercalables( false, "1457", "" ); Reporta_Intercalables( false, "420", "3" ); Reporta_Intercalables( false, "3" , "420" ); Reporta_Intercalables( false, "123", "4567" ); Reporta_Intercalables( false, "4567" , "123" ); Reporta_Intercalables( false, "1346" , "257" ); Reporta_Intercalables( false, "257" , "1346" ); return 0; } // EOF: Intercalables.cpp