Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
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 />
✐