UNIVERSIDAD DE COSTA RICA I CICLO DE 2000 ESCUELA DE CIENCIAS DE LA Prof. Adolfo Di Mare COMPUTACION E INFORMATICA CI-0202 Principios de Informática Examen #3 Grupos 08 y 09 De estas tres preguntas, conteste dos 1) [50 pts] Use dos ejemplos específicos para explicar qué es una macro Excel. Para cada caso, describa en detalle los pasos que se necesita seguir para registrar la macro. 2) [50 pts] Un cuadrado mágico es una matriz en que la suma los números de las filas y las columnas, o de la diagonal, siempre es la misma. Por ejemplo, los siguientes son cuadrados mágicos: +---+---+---+ | 8 | 1 | 6 | 1 1 1 1 1 +---+---+---+ 1 1 1 1 1 | 3 | 5 | 7 | 1 1 1 1 1 +---+---+---+ 1 1 1 1 1 | 4 | 9 | 2 | 1 1 1 1 1 +---+---+---+ Para este problema use la siguiente definición del objeto TMagico: class TMagico { enum { MxSize = 200 }; private: int _m[MxSize][MxSize]; // matriz int _n; // tamaño de la matriz _m[] public: // ... etc ... int Ok(); }; // TMagico Implemente el método TMagico::Ok(), que retorna TRUE cuando los valores almacenados en el objeto TMagico forman un cuadrado mágico, y FALSE en caso contrario. 3) [50 pts] Considere el siguiente programa: #include #include int main(void) { int ln = 0; for (int i = (5 % 4); i <= (555 / 11); ++i) { if ((i % 7) == 3) { cout << " ==> " << setw(2) << i; ++ln; if (ln==3) { cout << endl; ln = 0; } } } return 0; } 3.a [15 pts] Indique cuál es el rango que recorre la variable "i". 3.b [10 pts] Explique para qué sirve la variable "ln". 3.c [25 pts] Muestre cuál es el resultado de ejecutar este programa. 4) [50 pts] Considere el siguiente programa: #include #include int main(void) { int ln = 0; for (int i = (1 % 1); i <= (1000 / 9); ++i) { if ((i % 7) == 3) { cout << " ==> " << setw(3) << i; ++ln; if (ln==6) { cout << endl; ln = 0; } } } return 0; } 4.a [15 pts] Indique cuál es el rango que recorre la variable "i". 4.b [10 pts] Explique para qué sirve la variable "ln". 4.c [25 pts] Muestre cuál es el resultado de ejecutar este programa. 5) [50 pts] El ICE acaba de contratarlo para automatizar el cobro de las tarifas de llamadas por teléfono celular, para lo que usted debe aplicar la siguente tabla: Desde Hasta Tarifa --------------- ------ [1] 00:00 --> 07:59 0.25 [2] 08:00 --> 11:59 0.75 [3] 12:00 --> 16:59 1.00 [4] 17:00 --> 23:59 0.35 Las tarifas son en colones por minuto. Si una llamada comienza a las 07:45 y termina a las 08:15, entonces para calcular el costo usted tiene que contar cuántos minutos en cada rango usó el cliente, y retornar el acumulado. En este caso se han usado [07:45--->07:59] = 15 minutos en el rango [1], y [08:00-->08:15] = 16 minutos en el rango [2], por lo que el costo total de la llamada será ¢15.75: (15 * 0.25) + (16 * 0.75) = 3.75 + 12.00 = 15.75 Implemente el método TTarifa.Calcule(desde, hasta), que retorna el valor de la costo de una llamada que comienza en la hora "desde" y termina en la hora "hasta". Ninguna llamada cruza la media noche. Use las horas en el formato militar: 800 es las 8:00 am, y 1315 es 13:15 o sea 1:15 pm.