Commits

David Villa Alises committed 878ae80

comenzando traducción V2-C06

Comments (0)

Files changed (4)

+2012-01-10 David Villa
+	* V2-C06 asignado a David Villa
+
 2011-06-19 David Villa
 	* V1-C12 Revisión completada (David Villa)
 
 ----------------------------------------------------------------------
  5    227-321    94   -    n   S   n   David Tardio
 ----------------------------------------------------------------------
- 6    325-421    96
+ 6    325-421    96   -    -   S   -   David Villa
 ----------------------------------------------------------------------
  7    429-546   117
 ----------------------------------------------------------------------
       doesn’t call new to initialize itself.
       -->
 	  <para>
-	  AquĂ­ <p></p>uede verse la forma general de sobrecarga de operadores <kw>new</kw> y
+	  AquĂ­ puede verse la forma general de sobrecarga de operadores <kw>new</kw> y
 	  <kw>delete</kw>.  Estos operadores sustitutivos usan las funciones
 	  <function>malloc()</function> y <function>free()</function> de la biblioteca
 	  estĂĄndar de C, que es probablemente lo que ocurre en los operadores
 <!-- -*- sgml; coding: utf-8 -*- -->
 <!--
   Editor:              Emacs 23/PSGML
-  TraducciĂłn original:
+  TraducciĂłn original: David Villa <David.Villa@uclm.es>
 -->
 
 <!-- original de referencia en:
   development.
   -->
   <para>
-
+    Los algoritmos son la base de la computaciĂłn. Ser capaz de escribir un algoritmo que
+    funcione con cualquier tipo de se secuencia hace que sus programas sean simples y
+    seguros. La habilidad para adaptar algoritmos en tiempo de ejecuciĂłn a revolucionado
+    el desarrollo de software.
   </para>
 
   <!--
   first but then tend to use them more and more as time goes on.
   -->
   <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.
   </para>
 
   <sect1>
     <!-- A first look -->
-    <title> </title>
+    <title>Un primer vistazo</title>
 
     <!--
     Among other things, the generic algorithms in the standard library provide a
     ready to be reused on demand.
     -->
     <para>
-
+      Entre otras cosas, los algoritmos genĂŠricos de la librerĂ­a estĂĄndar proporcionan un
+      vocabulario con el que desribir soluciones. Una vez que los algoritmos le sean
+      familiares, tendrĂĄ un nuevo conjunto de palabras con el que discutir que estĂĄ
+      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.
     </para>
 
     <!-- Here’s an example of how to use the copy algorithm: -->
     <para>
-
+      Vea aquĂ­ un ejemplo de cĂłmo utilizar el algoritmo <function>copy</function>:
     </para>
 
 
     enough space to receive the copied elements.
     -->
     <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, 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
+      diferencia entre esos dos punteros devuelve el nĂşmero de elementos de la
+      secuencia. MĂĄs importante, en la implementaciĂłn de <function>copy()</function>, el
+      segundo puntero puede actual como un centinela para para la iteraciĂłn a travĂŠs de la
+      secuencia. El tercer argumento hace referencia al comienzo de la secuencia de
+      salida, que es el array <varname>b</varname> en el ejemplo. Se asume que el array
+      <varname>b</varname> tiene suficiente espacio para recibir los elementos copiados.
     </para>
 
     <!--
     objects:
     -->
     <para>
-
+      El algotirmo <function>copy()</function> no parece muy excitante if solo puediera
+      procesar enteros. Puede copiar cualquier tipo de secuencia. El siguiente ejemplo
+      copia objetos <classname>string</classname>.
     </para>
 
 
     explicit loop!
     -->
     <para>
-
+      Este ejmeplo presenta otro algoritmo, <function>equal()</function>, que devuelve
+      cierto solo si cada elemento de la primera secuencia es igual (usando su
+      <function>operator==()</function>) a su elemento correspondiente en la segunda
+      secuencia. Este ejemplo recorre cada secuencia 2 veces, una para copiar, y otra para
+      comparar, sin ningĂşn bucle explĂ­cito.
     </para>
 
     <!--
     following, you’re almost right:
     -->
     <para>
-
+      Los algoritmos genĂŠricos consiguen esta flexibilidad porque son funciones
+      parametrizadas (plantillas). Si piensa en la implementaciĂłn de
+      <function>copy()</function> verĂĄ que es algo como lo siguiente, que es ÂŤcasiÂť
+      correcto:
     </para>
 
+<programinglisting>
+  template&lt;typename T> void copy(T* begin, T* end, T* dest) {
+  while(begin != end)
+    *dest++ = *begin++;
+  }
+</programinglisting>
+
     <!--
-    template<typename T> void copy(T* begin, T* end, T* dest) {
-    while(begin != end)
-    *dest++ = *begin++;
-    }
+    We say “almost” because copy( ) can process sequences delimited by anything that acts
+    like a pointer, such as an iterator. In this way, copy( ) can be used to duplicate a
+    vector, as in the following example:
     -->
     <para>
-
+      Decimos ÂŤcasiÂť porque <function>copy()</function> puede procesas secuencias
+      delimitadas por cualquier cosas que actĂşe como un puntero, tal como un iterador. De
+      ese modo, <function>copy()</function> se puede utilizar para duplicar un
+      <classname>vector</classname>, como en el siguiente ejemplo.
     </para>
 
-    <!--
-    We say “almost” because copy( ) can process sequences delimited by anything that
-    acts like a pointer, such as an iterator. In this way, copy( ) can be used to
-    duplicate a vector:
-    -->
-    <para>
-
-    </para>
 
 //: C06:CopyVector.cpp
 
     integers).
     -->
     <para>
-
+      El primer vector, <varname>v1</varname>, es inicializado a partir de una secuencia
+      de enteros en el array <varname>a</varname>. La definiciĂłn del vector
+      <varname>v2</varname> usa un contructor diferente de <classname>vector</classname>
+      que reserva sitio para <constant>SIZE</constant> elementos, inicializados a cero (el
+      valor por defecto para enteros).
     </para>
 
     <!--
     </para>
   </sect1>
 </chapter>
+
+
+<!-- Local Variables: -->
+<!--  coding: utf-8 -->
+<!--  mode: flyspell -->
+<!--  ispell-local-dictionary: "castellano8" -->
+<!-- End: -->
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.