13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 137 — #175<br />

✐<br />

3.13. Ejercicios<br />

sistema operativo, o compilador, int<strong>en</strong>te este experim<strong>en</strong>to con tantas variaciones<br />

como pueda manejar.<br />

7. Cree dos funciones, una que tome un string* y una que tome un string&. Cada<br />

una de estas funciones debería modificar el objeto externo a su manera. En m-<br />

ain(), cree e inicialice un objeto string, imprímalo, después páselo a cada una<br />

de las dos funciones, imprimi<strong>en</strong>do los resultados.<br />

8. Escriba un programa que use todos los trígrafos para ver si su compilador los<br />

soporta.<br />

9. Compile y ejecute Static.cpp. Elimine la palabra reservada static del código,<br />

compile y ejecútelo de nuevo, y explique lo que ocurre.<br />

10. Int<strong>en</strong>te compilar y <strong>en</strong>lazar FileStatic.cpp con FileStatic2.cpp. ¿Qué<br />

significan los m<strong>en</strong>sajes de error que aparec<strong>en</strong><br />

11. Modifique Boolean.cpp para que funcione con valores double <strong>en</strong> lugar de<br />

int.<br />

12. Modifique Boolean.cpp y Bitwise.cpp de modo que us<strong>en</strong> los operadores<br />

explícitos (si su compilador es conforme al Estándar <strong>C++</strong> los soportará).<br />

13. Modifique Bitwise.cpp para usar las funciones de Rotation.cpp. Asegúrese<br />

de que muestra los resultados que deje claro qué ocurre durante las rotaciones.<br />

14. Modifique Ifth<strong>en</strong>.cpp para usar el operador if-else ternario(:).<br />

15. Cree una struct que cont<strong>en</strong>ga dos objetos string y uno int. Use un typedef<br />

para el nombre de la struct. Cree una instancia de la struct, inicialice<br />

los tres valores de la instancia, y muestrelos <strong>en</strong> pantalla. Tome la dirección de<br />

su instancia y asígnela a un puntero a tipo de la struct. Usando el puntero,<br />

Cambie los tres valores de la instancia y muestrelos.<br />

16. Cree un programa que use un <strong>en</strong>umerado de colores. Cree una variable de este<br />

tipo <strong>en</strong>um y, utilizando un bucle, muestre todos los números que correspond<strong>en</strong><br />

a los nombres de los colores.<br />

17. Experim<strong>en</strong>te con Union.cpp eliminando varios elem<strong>en</strong>tos de la union para<br />

ver el efecto que causa <strong>en</strong> el tamaño de la union resultante. Int<strong>en</strong>te asignar<br />

un elem<strong>en</strong>to (por tanto un tipo) de la union y muéstrelo por medio de un<br />

elem<strong>en</strong>to difer<strong>en</strong>te (por tanto, un tipo difer<strong>en</strong>te) para ver que ocurre.<br />

18. Cree un programa que defina dos arrays de int, uno a continuación del otro.<br />

Indexe el primer array más allá de su tamaño para caer sobre el segundo, haga<br />

una asignación. Muestre el segundo array para ver los cambios que eso ha<br />

causado. Ahora int<strong>en</strong>te definir una variable char <strong>en</strong>tre las definiciones de los<br />

arrays, y repita el experim<strong>en</strong>to. Quizá quiera crear una función para imprimir<br />

arrays y así simplificar el código.<br />

19. Modifique ArrayAddresses.cpp para que funcione con los tipos de datos<br />

char, long int, float y double.<br />

20. Aplique la técnica de ArrayAddresses.cpp para mostrar el tamaño de la<br />

struct y las direcciones de los elem<strong>en</strong>tos del array de StructArray.cpp.<br />

21. Cree un array de objetos string y asigne una cad<strong>en</strong>a a cada elem<strong>en</strong>to. Muestre<br />

el array usando un bucle for.<br />

137<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!