Commits

David Villa Alises committed 93ea9ae

erratas arregladas

Comments (0)

Files changed (3)

 	lo que le preocupa es que eventualmente descubra todo sobre sus
 	objetos. Es bueno descubrirlos pronto pero la POO proporciona
 	suficiente estructura de modo que no es grave si los descubre
-	más tarde. De hecho, el diseño de un objeto suele ocurrir in cinco
+	más tarde. De hecho, el diseño de un objeto suele ocurrir en cinco
 	etapas, durante todo el proceso de desarrollo del programa.
       </para>
 
 	código compilable y ejecutable que se puede probar, y que
 	aprobará y desaprobará su arquitectura. No es un proceso en un
 	solo paso, más bien es el principio de una serie de pasos que
-	iterativamente construirán el sistema, como verá en el fase 4.
+	iterativamente construirán el sistema, como verá en la fase 4.
       </para>
 
 
     </para>
   </sect1>
 </chapter>
+
+<!--
+.. Local Variables:
+..  coding: utf-8
+..  mode: flyspell
+..  ispell-local-dictionary: "castellano8"
+..  fill-column: 90
+.. End:
+-->
       for the same function or variable.
       -->
       <para>
-	Se puede declarar una variable o una función en muchos sitios
-	diferentes, pero en C o en C++ sólo se puede definir una vez (a
-	se conoce a veces como Regla de Definición Única (ODR)
+	Se puede declarar una variable o una función en muchos sitios diferentes, pero en
+	C o en C++ sólo se puede definir una vez (se conoce a veces como Regla de
+	Definición Única (ODR)
 	<footnote>
 	  <para>
-	    <foreignphrase>one definition rule</foreignphrase>
+	    <foreignphrase>One Definition Rule</foreignphrase>
 	  </para>
-	</footnote>. Cuando el enlazador une todos los módulos objeto,
+	</footnote>). Cuando el enlazador une todos los módulos objeto,
 	normalmente se quejará si encuentra más de una definición para
 	la misma función o variable.
       </para>
 
 
 <programlisting>
-cout &lt;&lt; "¿Qué tal?";
+cout &lt;&lt; "howdy!";
 </programlisting>
 
 
       for ??console output??).
       -->
       <para>
-	envía la cadena <quote>¿Qué tal?</quote> al objeto llamado
+	envía la cadena <quote>howdy!</quote> al objeto llamado
 	<varname>cout</varname> (que es un diminutivo de <quote>console
 	output</quote> (salida por consola).
       </para>
       function definition:
       -->
       <para>
-	Como se mencionó anteriormente, una definición de función
-	consiste en un valor de retorno (que debe ser especificarse
-	obligatoriamente C++), un nombre de función, una lista de
-	argumentos, y el código de la función entre llaves. Aquí hay un
-	ejemplo de definición de función:
+	Como se mencionó anteriormente, una definición de función consiste en un valor de
+	retorno (que se debe especificar en C++), un nombre de función, una lista de
+	argumentos, y el código de la función entre llaves. Aquí hay un ejemplo de
+	definición de función:
       </para>
 
 
 	los argumentos de izquierda a derecha. La función especial
 	<function>endl</function> provoca un salto de línea. Con los
 	iostreams se puede encadenar una serie de argumentos como aquí,
-	lo que hace que se una clase fácil de usar.
+	lo que hace que sea una clase fácil de usar.
       </para>
 
       <!--
       -->
       <para>
 	El compilador pide espacio de memoria para los arrays de
-	caracteres y guarda el equivalente ASCII para cada caracter en
+	caracteres y guarda el equivalente ASCII para cada carácter en
 	este espacio. El compilador finaliza automáticamente este array
 	de caracteres añadiendo el valor 0 para indicar el final.
       </para>
 	libro, en <ulink
 	url="http://www.bruceeckel.com">www.BruceEckel.com</ulink>). La
 	primera línea también tiene el nombre y localización del
-	fichero, por lo que se puede localizar fácilmente en los fichero
-	de código fuente dele libro (que también se puede descargar de
+	fichero, por lo que se puede localizar fácilmente en los ficheros
+	de código fuente del libro (que también se puede descargar de
 	<ulink
 	url="http://www.BruceEckel.com">www.BruceEckel.com</ulink>).
       </para>
       octal, y hexadecimal usando <emphasis>manipuladores</emphasis>
       (los cuales no imprimen nada, pero cambian el estado del flujo de
       salida). El formato de los números en punto flotante lo determina
-      automáticamente el compilador. Además, cualquier se puede enviar
-      cualquier caracter a un objeto <classname>stream</classname>
+      automáticamente el compilador. Además, se puede enviar
+      cualquier carácter a un objeto <classname>stream</classname>
       usando un molde (<foreignphrase>cast</foreignphrase>) a
       <type>char</type> (un <type>char</type> es un tipo de datos que
-      manipula un sólo caracter). Este molde parece una llamada a
+      manipula un sólo carácter). Este molde parece una llamada a
       función: <code>char()</code>, devuelve un valor ASCII. En el
       programa de arriba, el <code>char(27)</code> envía un
       <quote>escape</quote> a <varname>cout</varname>.
     -->
     <para>
       <function>getline()</function> lee los caracteres de cada línea
-      hasta que descubre un salto de línea (el caracter de terminación
+      hasta que descubre un salto de línea (el carácter de terminación
       se puede cambiar pero eso no se verá hasta el capítulo sobre
       <classname>iostreams</classname> del Volumen 2). Sin embargo,
-      descarta el caracter de nueva línea y no lo almacena en el objeto
+      descarta el carácter de nueva línea y no lo almacena en el objeto
       <classname>string</classname>. Por lo que si queremos copiar el
-      fichero de forma idéntica al original, debemos añadir el caracter
+      fichero de forma idéntica al original, debemos añadir el carácter
       de nueva línea como se muestra arriba.
     </para>
 
     <para>
       Debido a la naturaleza dinámica de los
       <classname>strings</classname>, no hay que preocuparse de la
-      cantidad de memoria que hay qye reservar para el
+      cantidad de memoria que hay que reservar para el
       <classname>string</classname>. Simplemente hay que añadir cosas y
       el <classname>string</classname> irá expandiéndose para dar cabida
       a lo que le introduzca.
       un significado obvio) El último trozo, usa el operador de
       <quote>autoincremento</quote> para aumentar en uno el valor de
       <varname>i</varname>. Efectivamente, <code>i++</code> dice
-      <quote>coge el valor de <varname>i</varname> añádele uno y guarad
+      <quote>coge el valor de <varname>i</varname> añádele uno y guarda
       el resultado en <varname>i</varname></quote>. Conclusión: el
       efecto del bucle <kw>for</kw> es aumentar la variable
       <varname>i</varname> desde cero hasta el tamaño del
     </orderedlist>
   </sect1>
 </chapter>
+
+
+<!--
+.. Local Variables:
+..  coding: utf-8
+..  mode: flyspell
+..  ispell-local-dictionary: "castellano8"
+..  fill-column: 90
+.. End:
+-->
   <para>
     El subconjunto de la Librería Estándar de C++ conocido como Standard Template Library
     (STL)<footnote><para>N. de T.: Librería Estándar de Plantillas.</para></footnote> fue
-    diseñado entorno a algoritmos genéricos ―código que procesa secuencias de cualquier
-    tipo de valores de un modo seguro. El objetivo era usar algoritmos predefinidos para
-    casi cualquier tarea, en lugar de codificar a mano cada vez que se necesitara procesar
-    una colección de datos. Sin embargo, ese potencial requiere cierto aprendizaje. Para
-    cuando llegue al final de este capítulo, debería ser capaz de decidir por sí mismo si
-    los algoritmos le resultan útiles o demasiado confusos de recordar. Si es como la
-    mayoría de la gente, se resistirá al principio pero entonces tenderá a usarlos más y
-    más con el tiempo.
+    diseñado entorno a algoritmos genéricos &mdash;código que procesa secuencias de
+    cualquier tipo de valores de un modo seguro. El objetivo era usar algoritmos
+    predefinidos para casi cualquier tarea, en lugar de codificar a mano cada vez que se
+    necesitara procesar una colección de datos. Sin embargo, ese potencial requiere cierto
+    aprendizaje. Para cuando llegue al final de este capítulo, debería ser capaz de
+    decidir por sí mismo si los algoritmos le resultan útiles o demasiado confusos de
+    recordar. Si es como la mayoría de la gente, se resistirá al principio pero entonces
+    tenderá a usarlos más y más con el tiempo.
   </para>
 
   <sect1>
       haciendo, y esas palabras son de un nivel mayor que las que tenía antes. No
       necesitará decir «Este bucle recorre y asigna de aquí a ahí... oh, ya veo, ¡está
       copiando!» En su lugar dirá simplemente <function>copy()</function>. Esto es lo que
-      hemos estado haciendo desde el principio de la programación de computadores ―creando
-      abstracciones de alto nivel para expresar lo que está haciendo y perder menos tiempo
-      diciendo cómo hacerlo. El «cómo» se ha resuelto una vez y para todo y está oculto en
-      el código del algoritmo, listo para ser reutilizado cuando se necesite.
+      hemos estado haciendo desde el principio de la programación de computadores
+      &mdash;creando abstracciones de alto nivel para expresar lo que está haciendo y
+      perder menos tiempo diciendo cómo hacerlo. El «cómo» se ha resuelto una vez y para
+      todo y está oculto en el código del algoritmo, listo para ser reutilizado cuando se
+      necesite.
     </para>
 
     <!-- Here’s an example of how to use the copy algorithm: -->
     </para>
 
 
-//: C06:CopyInts.cpp
+//: V2C06:CopyInts.cpp
 
 
     <!--
     -->
     <para>
       Los dos primeros parámetros de <function>copy</function> representan el rango de la
-      secuencia de entrada ―en este caso del array <varname>a</varname>. Los rangos se
-      especifican con un par de punteros. El primero apunta al primer elemento de la
+      secuencia de entrada &mdash;en este caso del array <varname>a</varname>. Los rangos
+      se especifican con un par de punteros. El primero apunta al primer elemento de la
       secuencia, y el segungo apunta una posición después del final del array (justo
       después del último elemento). Esto puede parecer extraño al principio, pero es una
       antigua expresión idiomática de C que resulta bastante práctica. Por ejemplo, la
     </para>
 
 
-//: C06:CopyStrings.cpp
+//: V2C06:CopyStrings.cpp
 
 
     <!--
       correcto:
     </para>
 
-<programinglisting>
+<programlisting>
   template&lt;typename T> void copy(T* begin, T* end, T* dest) {
   while(begin != end)
     *dest++ = *begin++;
   }
-</programinglisting>
+</programlisting>
 
     <!--
     We say “almost” because copy( ) can process sequences delimited by anything that acts
     </para>
 
 
-//: C06:CopyVector.cpp
+//: V2C06:CopyVector.cpp
 
 
     <!--
       vector de salida, <varname>v2</varname>, antes de tiempo.
     </para>
 
-//: C06:InsertVector.cpp
+//: V2C06:InsertVector.cpp
 
 
     <!--
 	<function>remove_copy_if()</function> puede hacer el trabajo, tal que así:
       </para>
 
-//: C06:CopyInts2.cpp
+//: V2C06:CopyInts2.cpp
 
 
       <!--
 	El siguiente programa ilustra otra variación más del algoritmo de copia.
       </para>
 
-//: C06:CopyStrings2.cpp
+//: V2C06:CopyStrings2.cpp
 
 
       <!--
 	el siguiente programa:
       </para>
 
-//: C06:ReplaceStrings.cpp
+//: V2C06:ReplaceStrings.cpp
 
 
     </sect2>
 	programa <filename>CopyInts2.cpp</filename>, puede hacer algo como lo siguiente:
       </para>
 
-//: C06:CopyInts3.cpp
+//: V2C06:CopyInts3.cpp
 
 
       <!--
 	asociado a un fichero en lugar de <varname>cout</varname>.
       </para>
 
-//: C06:CopyIntsToFile.cpp
+//: V2C06:CopyIntsToFile.cpp
 
 
       <!--
 	siguiente programa.
       </para>
 
-//: C06:CopyIntsFromFile.cpp
+//: V2C06:CopyIntsFromFile.cpp
 
 
       <!--
 	<classname>istream_iterator</classname>. Esta llamada construye un valor especial
 	de <function>istream_iterator</function> que indica el fin de fichero, de modo que
 	cuando el primer iterador encuentra el final del fichero físico, se compara con el
-	valor de <code>istream_iterator<int>()</code>, permitiendo al algoritmo terminar
+	valor de <code>istream_iterator&lt;int>()</code>, permitiendo al algoritmo terminar
 	correctamente. Fíjese que este ejemplo evita usar un array explícito.
       </para>
 
 
     </para>
 
-//: C06:GreaterThanN.cpp
+//: V2C06:GreaterThanN.cpp
 
 
     <!--
 
       </para>
 
-//: C06:CopyInts4.cpp
+//: V2C06:CopyInts4.cpp
 
 
       <!--
 
       </para>
 
-//: C06:CountNotEqual.cpp
+//: V2C06:CountNotEqual.cpp
 
 
       <!--
 
       </para>
 
-//: C06:Generators.h
-
-
-//: C06:Generators.cpp {O}
+//: V2C06:Generators.h
+
+
+//: V2C06:Generators.cpp {O}
 
 
       <!--
 
       </para>
 
-//: C06:FunctionObjects.cpp {-bor}
+//: V2C06:FunctionObjects.cpp {-bor}
 
 
       <!--
 
       </para>
 
-//: C06:FBinder.cpp
+//: V2C06:FBinder.cpp
 
 
       <!--
 
       </para>
 
-//: C06:BinderValue.cpp
+//: V2C06:BinderValue.cpp
 
 
       <!--
 
       </para>
 
-//: C06:PtrFun1.cpp
+//: V2C06:PtrFun1.cpp
 
 
       <!--
 
       </para>
 
-//: C06:PtrFun2.cpp {-edg}
+//: V2C06:PtrFun2.cpp {-edg}
 
 
       <!--
 
       </para>
 
-//: C06:MemFun1.cpp
+//: V2C06:MemFun1.cpp
 
 
       <!--
 
       </para>
 
-//: C06:MemFun2.cpp
+//: V2C06:MemFun2.cpp
 
 
       <!--
 
       </para>
 
-//: C06:FindBlanks.cpp
+//: V2C06:FindBlanks.cpp
 
 
       <!--
 
       </para>
 
-//: C06:NumStringGen.h
+//: V2C06:NumStringGen.h
 
 
       <!--
 
       </para>
 
-//: C06:MemFun3.cpp
+//: V2C06:MemFun3.cpp
 
 
       <!--
 
       </para>
 
-//: C06:ComposeTry.cpp
+//: V2C06:ComposeTry.cpp
 
 
       <!--
 
       </para>
 
-//: C06:ComposeFinal.cpp {-edg}
+//: V2C06:ComposeFinal.cpp {-edg}
 
 
       <!--
     <!--
     BidirectionalIterator. Effectively, this is a ForwardIterator that can also go
     backward. That is, a BidirectionalIterator supports all the operations that a
-    ForwardIterator does, but in addition it has an operator--.
+    ForwardIterator does, but in addition it has an operator - -.
     -->
     <para>
 
 
       </para>
 
-//: C06:PrintSequence.h
+//: V2C06:PrintSequence.h
 
 
       <!--
 
         </para>
 
-//: C06:NString.h
+//: V2C06:NString.h
 
 
         <!--
 
         </para>
 
-//: C06:FillGenerateTest.cpp
+//: V2C06:FillGenerateTest.cpp
 
 
         <!--
 
         </para>
 
-//: C06:Counting.cpp
+//: V2C06:Counting.cpp
 
 
         <!--
 
         </para>
 
-//: C06:Manipulations.cpp
+//: V2C06:Manipulations.cpp
 
 
         <!--
 
         </para>
 
-//: C06:SearchReplace.cpp
+//: V2C06:SearchReplace.cpp
 
 
         <!--
 
         </para>
 
-//: C06:Comparison.cpp
+//: V2C06:Comparison.cpp
 
 
         <!--
 
         </para>
 
-//: C06:Removing.cpp
+//: V2C06:Removing.cpp
 
 
         <!--
 
         </para>
 
-//: C06:SortedSearchTest.cpp
+//: V2C06:SortedSearchTest.cpp
 
 
         <!--
 
         </para>
 
-//: C06:MergeTest.cpp
+//: V2C06:MergeTest.cpp
 
 
         <!--
 
         </para>
 
-//: C06:SetOperations.cpp
+//: V2C06:SetOperations.cpp
 
 
         <!--
 
         </para>
 
-//: C06:Counted.h
+//: V2C06:Counted.h
 
 
         <!--
 
         </para>
 
-//: C06:ForEach.cpp {-mwcc}
+//: V2C06:ForEach.cpp {-mwcc}
 
 
         <!--
 
         </para>
 
-//: C06:Transform.cpp {-mwcc}
+//: V2C06:Transform.cpp {-mwcc}
 
 
         <!--
 
         </para>
 
-//: C06:Inventory.h
+//: V2C06:Inventory.h
 
 
         <!--
 
         </para>
 
-//: C06:CalcInventory.cpp
+//: V2C06:CalcInventory.cpp
 
 
         <!--
 
         </para>
 
-//: C06:TransformNames.cpp
+//: V2C06:TransformNames.cpp
 
 
         <!--
 
         </para>
 
-//: C06:SpecialList.cpp
+//: V2C06:SpecialList.cpp
 
 
         <!--
 
         </para>
 
-//: C06:NumericTest.cpp
+//: V2C06:NumericTest.cpp
 
 
         <!--
 
     </para>
 
-//: C06:copy_if.h
+//: V2C06:copy_if.h
 
 
     <!-- Notice that the increment of begin cannot be integrated into the copy expression. -->
 </chapter>
 
 
-<!-- Local Variables: -->
-<!--  coding: utf-8 -->
-<!--  mode: flyspell -->
-<!--  ispell-local-dictionary: "castellano8" -->
-<!-- End: -->
+<!--
+..Local Variables:
+.. coding: utf-8
+.. mode: flyspell
+.. ispell-local-dictionary: "castellano8"
+..End:
+-->