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 136 — #174<br />

✐<br />

Capítulo 3. C <strong>en</strong> <strong>C++</strong><br />

3.12. Resum<strong>en</strong><br />

Este capítulo ha sido un repaso bastante int<strong>en</strong>so a través de todas las características<br />

fundam<strong>en</strong>tales de la sintaxis de <strong>C++</strong>, la mayoría heredada de C (y ello redunda<br />

la compatibilidad hacia atrás FIXME:vaunted de <strong>C++</strong> con C). Aunque algunas características<br />

de <strong>C++</strong> se han pres<strong>en</strong>tado aquí, este repaso está p<strong>en</strong>sado principalm<strong>en</strong>te<br />

para personas con experi<strong>en</strong>cia <strong>en</strong> programación, y simplem<strong>en</strong>te necesitan una introducción<br />

a la sintaxis básica de C y <strong>C++</strong>. Incluso si usted ya es un programador<br />

de C, puede que haya visto una o dos cosas de C que no conocía, aparte de todo lo<br />

refer<strong>en</strong>te a <strong>C++</strong> que probablem<strong>en</strong>te sean nuevas. Sin embargo, si este capítulo le ha<br />

sobrepasado un poco, debería leer el curso <strong>en</strong> CD ROM Thinking in C: Foundations for<br />

<strong>C++</strong> and Java que conti<strong>en</strong>e lecturas, ejercicios, y soluciones guiadas), que vi<strong>en</strong>e con<br />

este libro, y también está disponible <strong>en</strong> www.BruceEckel.com.<br />

3.13. Ejercicios<br />

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<br />

titulado «The Thinking in <strong>C++</strong> Annotated Solution Guide», disponible por poco<br />

dinero <strong>en</strong> www.BruceEckel.com.<br />

1. Cree un fichero de cabecera (con ext<strong>en</strong>sión «.h»). En este fichero, declare un<br />

grupo de funciones variando las listas de argum<strong>en</strong>tos y valores de retorno de<br />

<strong>en</strong>tre los sigui<strong>en</strong>tes: void, char, int y float. Ahora cree un fichero .cpp que<br />

incluya su fichero de cabecera y haga definiciones para todas esas funciones.<br />

Cada definición simplem<strong>en</strong>te debe imprimir <strong>en</strong> nombre de la función, la lista<br />

de argum<strong>en</strong>tos y el tipo de retorno para que se sepa que ha sido llamada. Cree<br />

un segundo fichero .cpp que incluya el fichero de cabecera y defina una int<br />

main(), que cont<strong>en</strong>ga llamadas a todas sus funciones. Compile y ejecute su<br />

programa.<br />

2. Escriba un programa que use dos bucles for anidados y el operador módulo<br />

(%) para detectar e imprimir números <strong>en</strong>teros (números <strong>en</strong>teros sólo divisibles<br />

<strong>en</strong>tre si mismos y <strong>en</strong>tre 1).<br />

3. Escriba un programa que utilice un bucle while para leer palabras de la <strong>en</strong>trada<br />

estándar (cin) y las guarde <strong>en</strong> un string. Este es un bucle while «infinito»,<br />

que debe romper (y salir del programa) usando la s<strong>en</strong>t<strong>en</strong>cia break. Por cada<br />

palabra que lea, evalúela primero usando una secu<strong>en</strong>cia de s<strong>en</strong>t<strong>en</strong>cias if para<br />

«mapear» un valor <strong>en</strong>tero de la palabra, y después use una s<strong>en</strong>t<strong>en</strong>cia switch<br />

que utilice ese valor <strong>en</strong>tero como selector (esta secu<strong>en</strong>cia de ev<strong>en</strong>tos no es un<br />

bu<strong>en</strong> estilo de programación; solam<strong>en</strong>te es un supuesto para que practique con<br />

el control de flujo). D<strong>en</strong>tro de cada case, imprima algo con s<strong>en</strong>tido. Debe decidir<br />

cuales son las palabras interesantes y qué significan. También debe decidir<br />

qué palabra significa el fin del programa. Pruebe el programa redireccionando<br />

un fichero como <strong>en</strong>trada (si quiere ahorrarse t<strong>en</strong>er que escribir, ese fichero<br />

puede ser el propio código fu<strong>en</strong>te del programa).<br />

4. Modifique M<strong>en</strong>u.cpp para usar s<strong>en</strong>t<strong>en</strong>cias switch <strong>en</strong> lugar de if.<br />

5. Escriba un programa que evalúe las dos expresiones de la sección llamada<br />

«preced<strong>en</strong>cia».<br />

6. Modifique YourPets2.cpp para que use varios tipos de datos distintos (char,<br />

int, float, double, y sus variantes). Ejecute el programa y cree un mapa del esquema<br />

de memoria resultante. Si ti<strong>en</strong>e acceso a más de un tipo de máquina,<br />

136<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!