Attention! Your ePaper is waiting for publication!
By publishing your document, the content will be optimally indexed by Google via AI and sorted into the right category for over 500 million ePaper readers on YUMPU.
This will ensure high visibility and many readers!
✐ ✐ ✐ “Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 60 — #98 ✐ Capítulo 2. Construir y usar objetos no t<strong>en</strong>drá mucho trabajo y su programa resultante también será pot<strong>en</strong>te. En este proceso para mostrar la s<strong>en</strong>cillez de la POO cuando se usan librerías de clases, este capítulo, también introduce algunos de los tipos de datos más básicos y útiles de la Librería Estándar de <strong>C++</strong>: La familia de los iostreams (<strong>en</strong> particular aquellos que le<strong>en</strong> y escrib<strong>en</strong> <strong>en</strong> consola y ficheros), la clase string, y la plantilla vector. Ha visto lo s<strong>en</strong>cillo que es usarlos y ahora es probable que se imagine la de cosas que se pued<strong>en</strong> hacer con ellos, pero hay muchas más cosas que son capaces de realizar 6 . A pesar de estar usando un pequeño subconjunto de la funcionalidad de estas herrami<strong>en</strong>tas <strong>en</strong> este principio del libro, supone un gran avance fr<strong>en</strong>te a los rudim<strong>en</strong>tarios comi<strong>en</strong>zos <strong>en</strong> el apr<strong>en</strong>dizaje de un l<strong>en</strong>guaje de bajo nivel como C. Y aunque apr<strong>en</strong>der los aspectos de bajo nivel de C es educativo también lleva tiempo. Al final usted es mucho más productivo si ti<strong>en</strong>e objetos que manej<strong>en</strong> las características de bajo nivel. Después de todo, el principal objetivo de la POO es esconder los detalles para que usted pueda «pintar con una brocha más gorda». Sin embargo, debido al alto nivel que la POO int<strong>en</strong>ta t<strong>en</strong>er, hay algunos aspectos fundam<strong>en</strong>tales de C que no se pued<strong>en</strong> obviar, y de eso trata el sigui<strong>en</strong>te capítulo. 2.9. Ejercicios Las soluciones a los ejercicios se pued<strong>en</strong> <strong>en</strong>contrar <strong>en</strong> el docum<strong>en</strong>to electrónico titulado «The Thinking in <strong>C++</strong> Annotated Solution Guide», disponible por poco dinero <strong>en</strong> www.BruceEckel.com. 1. Modifique Hello.cpp para que imprima su nombre y edad (o tamaño de pie, o la edad de su perro, si le gusta más). Compile y ejecute el programa. 2. Utilizando Stream2.cpp y Numconv.cpp como guías, cree un programa que le pida el radio de un círculo y le muestre el área del mismo. Puede usar el operador * para elevar el radio al cuadrado. No int<strong>en</strong>te imprimir el valor <strong>en</strong> octal o <strong>en</strong> hexadecimal (sólo funciona con tipos <strong>en</strong>teros). 3. Cree un programa que abra un fichero y cu<strong>en</strong>te las palabras (separadas por espacios <strong>en</strong> blanco) que conti<strong>en</strong>e. 4. Cree un programa que cu<strong>en</strong>te el número de ocurr<strong>en</strong>cias de una palabra <strong>en</strong> concreto <strong>en</strong> un fichero (use el operador == de la clase string para <strong>en</strong>contrar la palabra) 5. Cambie Fillvector.cpp para que imprima las líneas al revés (de la última a la primera). 6. Cambie Fillvector.cpp para que concat<strong>en</strong>e todos los elem<strong>en</strong>tos de la clase vector <strong>en</strong> un único string antes de imprimirlo, pero no añada numeración de líneas 7. Muestre un fichero línea a línea, esperando que el usuario pulse Enter después de cada línea. 8. Cree un vector e introduzca <strong>en</strong> él 25 números <strong>en</strong> punto flotante usando un bucle for. Muestre el vector. 6 Si está especialm<strong>en</strong>te interesado <strong>en</strong> ver todas las cosas que se pued<strong>en</strong> hacer con los compon<strong>en</strong>tes de la Librería Estándar, vea el Volum<strong>en</strong> 2 de este libro <strong>en</strong> www.BruceEckel.com y también <strong>en</strong> www.dinkumware.com 60 ✐ ✐ ✐ ✐
✐ ✐ ✐ “Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 61 — #99 ✐ 2.9. Ejercicios 9. Cree tres objetos vector y rell<strong>en</strong>e los dos primeros como <strong>en</strong> el ejercicio anterior. Escriba un bucle for que sume los elem<strong>en</strong>tos correspondi<strong>en</strong>tes y los añada al tercer vector. Muestre los tres vectores. 10. Cree un vector e introduzca 25 números <strong>en</strong> él como <strong>en</strong> el ejercicio anterior. Eleve cada número al cuadrado y ponga su resultado <strong>en</strong> la misma posición del vector. Muestre el vector antes y después de la multiplicación. 61 ✐ ✐ ✐ ✐