<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programación y desarrollo web &#187; Codigos C#</title>
	<atom:link href="http://www.puntopeek.com/category/codigos-c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.puntopeek.com</link>
	<description>Programación en C#, PHP y software libre</description>
	<lastBuildDate>Thu, 29 Jul 2010 18:18:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ejercicios resueltos de string en C#</title>
		<link>http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/</link>
		<comments>http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 21:33:35 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[ejemplos C#]]></category>
		<category><![CDATA[ejercicios C#]]></category>
		<category><![CDATA[string]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=283</guid>
		<description><![CDATA[Aquí les pongo unos cuantos ejercicios resueltos y códigos escritos en C# relacionados con el manejo de strings (cadenas) que seguro te ayudará de muchas formas a mejorar el uso de este popular tipo de dato. Pero primero veamos cuales son los métodos y propiedades de esta clase String.
Métodos y propiedades fundamentales
public char this[int index] [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/' rel='bookmark' title='Permanent Link: Combinaciones posibles. Recursividad C#'>Combinaciones posibles. Recursividad C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Aquí les pongo unos cuantos ejercicios resueltos y códigos escritos en C# relacionados con el manejo de strings (cadenas) que seguro te ayudará de muchas formas a mejorar el uso de este popular tipo de dato. Pero primero veamos cuales son los métodos y propiedades de esta clase String.<span id="more-283"></span></p>
<p><strong>Métodos y propiedades fundamentales</strong></p>
<p><em>public char this[int index] {get;} </em><br />
Devuelve el caracter de la posición especificada de la cadena.</p>
<p><em>public int Length {get;}</em><br />
Devuelve la longitud de la cadena (cantidad de caracteres que contiene) empezando a contar desde 1.</p>
<p><em>public string Insert(int startIndex, string value); </em><br />
Inserta la cadena especificada a partir de la posición dada.</p>
<p><em>public string Remove(int startIndex,int count);</em><br />
Elimina el número especificado de caracteres a partir de la posición dada.</p>
<p><em>public string[] Split(params char[] separator); </em><br />
Busca las subcadenas contenidas dentro de la cadena, delimitándolas por los separadores que se le especifiquen, y las copia a un arreglo de cadenas.</p>
<p><em>public string Substring(int startIndex);</em><br />
Devuelve la subcadena contenida a partir de la posición especificada.</p>
<p><em>public string Substring(int index, int length);</em><br />
Devuelve la subcadena que empieza a partir del índice específico, y tiene la longitud indicada.</p>
<p><strong>Ejercicios resueltos</strong></p>
<p>1- Implemente un método que dado un string s cualquiera, devuelva un nuevo string que se el inverso de s. (ej: entrada: “puntopeek”; salida: “keepotnup”)</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">public string Invierte(string a)
{
  string b = &quot;&quot;;
  for (int i = 0; i &amp;lt; a.Length ; i++)
    b = a[i] + b;
  return b;
}</pre></div></div>

<p>2- Implemente una función que dado un string, una posición de comienzo y una cantidad de caracteres, devuelva una subcadena (substring) de una cadena dada a partir de los parámetros dados (ej: entrada: “puntopeek”, pos= 2, cant= 4; salida: “ntop”.)</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">public string SubString(string a, int pos, int cant)
{
   string pedazo = &quot;&quot; ;
   if((pos + cant) &amp;gt; a.Length)
      throw new Exception(&quot;&quot;);
   else
   {
      for (int j = pos; j &amp;lt; cant + pos ; j ++ )
         pedazo += a[j];
      return pedazo;
   }
}</pre></div></div>

<p>3- Implemente un método Replace, que reciba un string s, y dos caracteres old y new. Dicha función debe reemplazar todas las ocurrencias del caracter old por el carácter new, y devolver un nuevo string con dicha característica.  (ej: entrada: “programacion”, old= ‘a’, new=’i’; salida: “progrimicion”)</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">public string Replace (string a, char old, char new)
{
   string result = &quot;&quot;;
   for (int i = 0; i &amp;lt; a.Length ; i++)
   {
      if(a[i] == old)
         result += new;
      else
         result += a[i];
   }
   return result;
}</pre></div></div>

<p>4*- Implemente un método Combinar, que dado un string s, devuelva todas las combinaciones posibles que se pueden formar a partir de los caracteres de s. Este método es un poco más complicado, pero muy útil y práctico. Para esto usaremos recursividad, para ir generando todas las posibles combinaciones.<br />
(ej: entrada: “hoy”; salida: “hoy”, “hyo”, “ohy”, “oyh”, “yho”, “yoh”)</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">public void Combina(string s)
{
   bool[] marcas = new bool[s.Length];
   Combina(s, &quot;&quot;, marcas);
}
void Combina(string original, string combinado, bool[] marcas)
{
   if (original.Length == combinado.Length)
      Console.WriteLine(combinado);
   for (int i = 0; i &amp;lt; marcas.Length; i++)
   {
      if (!marcas[i])
      {
         marcas[i] = true;
         Combina(original, combinado + original[i], marcas);
         marcas[i] = false;
      }
   }
}</pre></div></div>

<p>Si tienes alguna duda sobre los códigos anteriores, o quieres agregar algo, en los comentarios.<br />
Bueno, hasta aquí esta entrega de ejercicios resueltos. Espero que te sirva, y si quieres practicar, guíate por estos ejemplos y trata de implementar otros métodos relacionados con string, como son:<br />
1- Eliminar un carácter dado de una cadena.</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">    public string Eliminar(string s, char c).</pre></div></div>

<p>2- Ver si un string es palíndromo ó no, o sea, se escribe igual al derecho que al revés.</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">    public  bool EsPalindromo(string s)</pre></div></div>

<p>3- Ver cuál es el letra que más se repite en una cadena.</p>

<div class="wp_syntax"><div class="code"><pre class="c-sharp" style="font-family:monospace;">    public char MasPopular(string s)</pre></div></div>

<p>Es muy aconsejable que traten de hacer estos ejercicios solos, auxiliándose de los ejemplos anteriores. De todos modos pondré la respuesta de estos ejercicios en una próxima entrega la semana que viene.</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;title=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;bodytext=Aqu%C3%AD%20les%20pongo%20unos%20cuantos%20ejercicios%20resueltos%20y%20c%C3%B3digos%20escritos%20en%20C%23%20relacionados%20con%20el%20manejo%20de%20strings%20%28cadenas%29%20que%20seguro%20te%20ayudar%C3%A1%20de%20muchas%20formas%20a%20mejorar%20el%20uso%20de%20este%20popular%20tipo%20de%20dato.%20Pero%20primero%20veamos%20cuales%20son%20los%20m%C3%A9t" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;title=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;notes=Aqu%C3%AD%20les%20pongo%20unos%20cuantos%20ejercicios%20resueltos%20y%20c%C3%B3digos%20escritos%20en%20C%23%20relacionados%20con%20el%20manejo%20de%20strings%20%28cadenas%29%20que%20seguro%20te%20ayudar%C3%A1%20de%20muchas%20formas%20a%20mejorar%20el%20uso%20de%20este%20popular%20tipo%20de%20dato.%20Pero%20primero%20veamos%20cuales%20son%20los%20m%C3%A9t" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;t=Ejercicios%20resueltos%20de%20string%20en%20C%23" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;title=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;annotation=Aqu%C3%AD%20les%20pongo%20unos%20cuantos%20ejercicios%20resueltos%20y%20c%C3%B3digos%20escritos%20en%20C%23%20relacionados%20con%20el%20manejo%20de%20strings%20%28cadenas%29%20que%20seguro%20te%20ayudar%C3%A1%20de%20muchas%20formas%20a%20mejorar%20el%20uso%20de%20este%20popular%20tipo%20de%20dato.%20Pero%20primero%20veamos%20cuales%20son%20los%20m%C3%A9t" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;title=Ejercicios%20resueltos%20de%20string%20en%20C%23" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;title=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Aqu%C3%AD%20les%20pongo%20unos%20cuantos%20ejercicios%20resueltos%20y%20c%C3%B3digos%20escritos%20en%20C%23%20relacionados%20con%20el%20manejo%20de%20strings%20%28cadenas%29%20que%20seguro%20te%20ayudar%C3%A1%20de%20muchas%20formas%20a%20mejorar%20el%20uso%20de%20este%20popular%20tipo%20de%20dato.%20Pero%20primero%20veamos%20cuales%20son%20los%20m%C3%A9t" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&title=Ejercicios%20resueltos%20de%20string%20en%20C%23" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Ejercicios%20resueltos%20de%20string%20en%20C%23&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Ejercicios resueltos de string en C#" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F&amp;t=Ejercicios%20resueltos%20de%20string%20en%20C%23" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Ejercicios%20resueltos%20de%20string%20en%20C%23%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fejercicios-resueltos-string-en-c-sharp%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/' rel='bookmark' title='Permanent Link: Combinaciones posibles. Recursividad C#'>Combinaciones posibles. Recursividad C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tres formas de Invertir un String</title>
		<link>http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/</link>
		<comments>http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 06:09:00 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Tutoriales C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[string]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=261</guid>
		<description><![CDATA[Estos son algunos ejemplos para que vean que en la programación hay muchas formas de hacer las cosas, aunque siempre hay una que es la más eficiente, aunque casi nunca es muy evidente.
Veamos como invertir un string de tres formas distintas. Por ejemplo, si tenemos el string &#8220;puntopeek&#8221;, el método devolvería &#8220;keepotnup&#8221;.
Veamos el primer ejemplo, [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/' rel='bookmark' title='Permanent Link: Estructuras de C#. Pila (Stack)'>Estructuras de C#. Pila (Stack)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/' rel='bookmark' title='Permanent Link: Combinaciones posibles. Recursividad C#'>Combinaciones posibles. Recursividad C#</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Estos son algunos ejemplos para que vean que en la programación hay muchas formas de hacer las cosas, aunque siempre hay una que es la más eficiente, aunque casi nunca es muy evidente.</p>
<p>Veamos como invertir un <a href="http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/">string</a> de tres formas distintas. Por ejemplo, si tenemos el string &#8220;puntopeek&#8221;, el método devolvería &#8220;keepotnup&#8221;.<span id="more-261"></span></p>
<p>Veamos el primer ejemplo, es el que casi todos conocemos, y es muy fácil de implementar, vamos recorriendo la palabra desde el ultimo caracter hasta el primero y vamos guardando cada letra en un nuevo string, que es el que devolverá el método. El código sería algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Invertir<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> s<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #FF0000;">string</span> aux <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//Recorremos el string en orden inverso</span>
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> s.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i<span style="color: #008000;">--</span><span style="color: #000000;">&#41;</span>
aux <span style="color: #008000;">+=</span> s<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//retornamos la nueva cadena</span>
<span style="color: #0600FF;">return</span> aux<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Otra opción (pero hay que <a href="http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/">conocer que es una pila</a>), es ir guardando cada letra en una pila (stack), y luego cuando esten todas las letras las sacamos de la pila. Noten que en esta estructura, el primer elemento que entra, es el último en salir, por eso nos sirve también para invertir un string. El código sería este:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Invertir2<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> s<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #008080; font-style: italic;">//Declaramos una pila usando genericidad.</span>
<span style="color: #008080; font-style: italic;">//Esto se puede hacer con el framework 2.0</span>
Stack stack <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Stack<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//Recorremos el string y vamos metiendo en la pila</span>
<span style="color: #008080; font-style: italic;">//cada caracter</span>
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> s.<span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
stack.<span style="color: #0000FF;">Push</span><span style="color: #000000;">&#40;</span>s<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #FF0000;">string</span> aux <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//Vamos sacando de la pila los caracteres y los</span>
<span style="color: #008080; font-style: italic;">//ponemos uno a uno en un nuevo string</span>
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> s.<span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
aux <span style="color: #008000;">+=</span> stack.<span style="color: #0000FF;">Pop</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">return</span> aux<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Ahora veremos la versión recursiva del problema. Si lo analizan paso a paso, verán que hace practicamente lo mismo que Invertir2. Como verán, este método no necesita almacenar ningun caracter, ni copiar, <a href="http://www.puntopeek.com/tutoriales-c/recursividad-con-c-1/">la recursividad</a> se encarga de todo. En realidad la recursividad funciona como una pila (Invertir2) pero no hay que declarar variables ni nada de eso. A veces algunos métodos recursivos parecen mágicos, pero una vez dominemos esta técnica dominaremos el arte de programar. Al menos lo esencial. Veamos el código:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Invertir3 <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> s, <span style="color: #FF0000;">int</span> lenght<span style="color: #000000;">&#41;</span>
<span style="color: #008080; font-style: italic;">//El parametro lenght es el tamaño del string s</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #008080; font-style: italic;">//Condicion de parada</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>lenght <span style="color: #008000;">==</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">return</span> s<span style="color: #008000;">;</span>
<span style="color: #0600FF;">else</span>
<span style="color: #008080; font-style: italic;">//Llamado recursivo</span>
<span style="color: #0600FF;">return</span> Invertir3 <span style="color: #000000;">&#40;</span>s.<span style="color: #0000FF;">Substring</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span>, s.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>, lenght <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>
<span style="color: #008000;">+</span> s<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Para que se den cuenta de lo que hace el método, es necesario que le hagan un debug paso a paso, y vayan viendo como se transforman las variables locales. Si tienen alguna otra solución de como Invertir un string pueden ponerla en los comentarios. Y hasta aquí este post, espero escribir un poco más seguido, pero estoy con muchos proyectos en la universidad y mucho trabajo. Han oido hablar del WinZip o el WinRar? Proximamente estaremos hablando del Algoritmo de Huffman, que se utiliza mucho en el compactación de texto y archivos.</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;title=Tres%20formas%20de%20Invertir%20un%20String&amp;bodytext=Estos%20son%20algunos%20ejemplos%20para%20que%20vean%20que%20en%20la%20programaci%C3%B3n%20hay%20muchas%20formas%20de%20hacer%20las%20cosas%2C%20aunque%20siempre%20hay%20una%20que%20es%20la%20m%C3%A1s%20eficiente%2C%20aunque%20casi%20nunca%20es%20muy%20evidente.%0D%0A%0D%0AVeamos%20como%20invertir%20un%20string%20de%20tres%20formas%20distintas.%20Por" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;title=Tres%20formas%20de%20Invertir%20un%20String&amp;notes=Estos%20son%20algunos%20ejemplos%20para%20que%20vean%20que%20en%20la%20programaci%C3%B3n%20hay%20muchas%20formas%20de%20hacer%20las%20cosas%2C%20aunque%20siempre%20hay%20una%20que%20es%20la%20m%C3%A1s%20eficiente%2C%20aunque%20casi%20nunca%20es%20muy%20evidente.%0D%0A%0D%0AVeamos%20como%20invertir%20un%20string%20de%20tres%20formas%20distintas.%20Por" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;t=Tres%20formas%20de%20Invertir%20un%20String" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Tres%20formas%20de%20Invertir%20un%20String&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;title=Tres%20formas%20de%20Invertir%20un%20String&amp;annotation=Estos%20son%20algunos%20ejemplos%20para%20que%20vean%20que%20en%20la%20programaci%C3%B3n%20hay%20muchas%20formas%20de%20hacer%20las%20cosas%2C%20aunque%20siempre%20hay%20una%20que%20es%20la%20m%C3%A1s%20eficiente%2C%20aunque%20casi%20nunca%20es%20muy%20evidente.%0D%0A%0D%0AVeamos%20como%20invertir%20un%20string%20de%20tres%20formas%20distintas.%20Por" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;title=Tres%20formas%20de%20Invertir%20un%20String" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;title=Tres%20formas%20de%20Invertir%20un%20String&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Estos%20son%20algunos%20ejemplos%20para%20que%20vean%20que%20en%20la%20programaci%C3%B3n%20hay%20muchas%20formas%20de%20hacer%20las%20cosas%2C%20aunque%20siempre%20hay%20una%20que%20es%20la%20m%C3%A1s%20eficiente%2C%20aunque%20casi%20nunca%20es%20muy%20evidente.%0D%0A%0D%0AVeamos%20como%20invertir%20un%20string%20de%20tres%20formas%20distintas.%20Por" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Tres%20formas%20de%20Invertir%20un%20String&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&title=Tres%20formas%20de%20Invertir%20un%20String" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Tres%20formas%20de%20Invertir%20un%20String&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Tres formas de Invertir un String" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F&amp;t=Tres%20formas%20de%20Invertir%20un%20String" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tres%20formas%20de%20Invertir%20un%20String%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Ftres-formas-de-invertir-un-string%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/' rel='bookmark' title='Permanent Link: Estructuras de C#. Pila (Stack)'>Estructuras de C#. Pila (Stack)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/' rel='bookmark' title='Permanent Link: Combinaciones posibles. Recursividad C#'>Combinaciones posibles. Recursividad C#</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Combinaciones posibles. Recursividad C#</title>
		<link>http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/</link>
		<comments>http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 05:20:23 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ejemplos C#]]></category>
		<category><![CDATA[recursividad]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=251</guid>
		<description><![CDATA[Muchas veces para resolver algunos problemas, necesitamos saber cuantas formas posibles hay de escribir un número, una palabra. A través de los algoritmos de combinaciones podemos resolver muchos problemas, que no podemos hacer facilmente con una calculadora, o con la mente. Por ejemplo, de cuantas formas posibles se puede descomponer un número en sumandos? De [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/recursividad-con-c-3/' rel='bookmark' title='Permanent Link: Recursividad con C# (3)'>Recursividad con C# (3)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/recursividad-con-c-2/' rel='bookmark' title='Permanent Link: Recursividad con C# (2)'>Recursividad con C# (2)</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Muchas veces para resolver algunos problemas, necesitamos saber cuantas formas posibles hay de escribir un número, una palabra. A través de los algoritmos de combinaciones podemos resolver muchos problemas, que no podemos hacer facilmente con una calculadora, o con la mente. Por ejemplo, de cuantas formas posibles se puede descomponer un número en sumandos? De cuantas formas posibles podemos combinar ciertas letras? Este tipo de problemas son los que trataremos en este post.<span id="more-251"></span></p>
<p>Primero veremos y comentaremos el algoritmo que nos permite saber cuantas combinaciones posibles se pueden hacer con ciertas letras.</p>
<p>Veamos el código:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Combina<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> s<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">//Iniciamos este array auxiliar para</span>
        <span style="color: #008080; font-style: italic;">//marcar los caracteres que ya combinamos</span>
	<span style="color: #FF0000;">bool</span> <span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span>marcas <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">bool</span><span style="color: #000000;">&#91;</span>s.<span style="color: #0000FF;">Length</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">//Llamamos al método recursivo</span>
	Combina<span style="color: #000000;">&#40;</span>s, <span style="color: #666666;">&quot;&quot;</span>, marcas<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Combina<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> original, <span style="color: #FF0000;">string</span> combinado, <span style="color: #FF0000;">bool</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span>marcas<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">//Imprimimos la combinación si ya cambiamos</span>
        <span style="color: #008080; font-style: italic;">//todas las letras una vez</span>
	<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>original.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> combinado.<span style="color: #0000FF;">Length</span><span style="color: #000000;">&#41;</span>
		Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>combinado<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">for</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> marcas.<span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
           <span style="color: #008080; font-style: italic;">//Vemos si está marcada para no volverla a combinar</span>
	   <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">!</span>marcas<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>
	   <span style="color: #000000;">&#123;</span>
                <span style="color: #008080; font-style: italic;">//Marcamos el caracter que vamos a combinar</span>
		marcas<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> true<span style="color: #008000;">;</span>
                <span style="color: #008080; font-style: italic;">//Invocamos al metodo recursivo añadiendo</span>
                <span style="color: #008080; font-style: italic;">//un caracter al string que combinamos</span>
		Combina<span style="color: #000000;">&#40;</span>original, combinado <span style="color: #008000;">+</span> original<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>, marcas<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #008080; font-style: italic;">//Desmarcamos el caracter para poder usarlo</span>
                <span style="color: #008080; font-style: italic;">//en otras combinaciones</span>
		marcas<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> false<span style="color: #008000;">;</span>
	   <span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Como ven es un algoritmo muy sencillo, y no tan largo, donde usamos la técnica de backtracking, o vuelta atrás, que vimos hace un tiempo en <a href="http://www.puntopeek.com/programacion/recursividad-con-c-3/">este post</a>. Espero les halla servido de ayuda este problemita, con esto podrá por ejemplo, saber de cuantas formas posibles se pueden combinar las letras a, n y c.</p>
<p>Si hacemos algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Combina<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;abc&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
Console.<span style="color: #0000FF;">ReadLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>esto es lo que devolvería el programa:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">abc
acb
bac
bca
cab
cba</pre></div></div>

<p>Ya se encargarán ustedes de buscarle las aplicaciones que lleva, también pueden tratar de hacer este algoritmo un poco más eficientes, piensen un poco en el como&#8230;</p>
<p>En el proximo post, veremos entonces todas las permutaciones que podemos hacer para descomponer un número en sumandos.</p>
<p>dudas=&gt; comentarios</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;title=Combinaciones%20posibles.%20Recursividad%20C%23&amp;bodytext=Muchas%20veces%20para%20resolver%20algunos%20problemas%2C%20necesitamos%20saber%20cuantas%20formas%20posibles%20hay%20de%20escribir%20un%20n%C3%BAmero%2C%20una%20palabra.%20A%20trav%C3%A9s%20de%20los%20algoritmos%20de%20combinaciones%20podemos%20resolver%20muchos%20problemas%2C%20que%20no%20podemos%20hacer%20facilmente%20con%20una%20c" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;title=Combinaciones%20posibles.%20Recursividad%20C%23&amp;notes=Muchas%20veces%20para%20resolver%20algunos%20problemas%2C%20necesitamos%20saber%20cuantas%20formas%20posibles%20hay%20de%20escribir%20un%20n%C3%BAmero%2C%20una%20palabra.%20A%20trav%C3%A9s%20de%20los%20algoritmos%20de%20combinaciones%20podemos%20resolver%20muchos%20problemas%2C%20que%20no%20podemos%20hacer%20facilmente%20con%20una%20c" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;t=Combinaciones%20posibles.%20Recursividad%20C%23" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Combinaciones%20posibles.%20Recursividad%20C%23&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;title=Combinaciones%20posibles.%20Recursividad%20C%23&amp;annotation=Muchas%20veces%20para%20resolver%20algunos%20problemas%2C%20necesitamos%20saber%20cuantas%20formas%20posibles%20hay%20de%20escribir%20un%20n%C3%BAmero%2C%20una%20palabra.%20A%20trav%C3%A9s%20de%20los%20algoritmos%20de%20combinaciones%20podemos%20resolver%20muchos%20problemas%2C%20que%20no%20podemos%20hacer%20facilmente%20con%20una%20c" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;title=Combinaciones%20posibles.%20Recursividad%20C%23" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;title=Combinaciones%20posibles.%20Recursividad%20C%23&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Muchas%20veces%20para%20resolver%20algunos%20problemas%2C%20necesitamos%20saber%20cuantas%20formas%20posibles%20hay%20de%20escribir%20un%20n%C3%BAmero%2C%20una%20palabra.%20A%20trav%C3%A9s%20de%20los%20algoritmos%20de%20combinaciones%20podemos%20resolver%20muchos%20problemas%2C%20que%20no%20podemos%20hacer%20facilmente%20con%20una%20c" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Combinaciones%20posibles.%20Recursividad%20C%23&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&title=Combinaciones%20posibles.%20Recursividad%20C%23" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Combinaciones%20posibles.%20Recursividad%20C%23&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Combinaciones posibles. Recursividad C#" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F&amp;t=Combinaciones%20posibles.%20Recursividad%20C%23" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Combinaciones%20posibles.%20Recursividad%20C%23%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fcombinaciones-posibles-recursividad-c%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
<li><a href='http://www.puntopeek.com/programacion/recursividad-con-c-3/' rel='bookmark' title='Permanent Link: Recursividad con C# (3)'>Recursividad con C# (3)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/recursividad-con-c-2/' rel='bookmark' title='Permanent Link: Recursividad con C# (2)'>Recursividad con C# (2)</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/codigos-c/combinaciones-posibles-recursividad-c/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Calcular el día de la semana con C#</title>
		<link>http://www.puntopeek.com/programacion/calcular-el-dia-de-la-semana-con-c/</link>
		<comments>http://www.puntopeek.com/programacion/calcular-el-dia-de-la-semana-con-c/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 08:36:46 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ejemplos C#]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=236</guid>
		<description><![CDATA[Hoy les traigo un sencillo ejemplo, y muy usado en C# y otros lenguajes de programación. Es una sencilla pregunta, pero la respuesta no es tan sencilla.
Que día de la semana cae el 20 de abril del 2020?
Que día de la semana será el 12 de agosto del 2011?
Estas respuestas sin la ayuda de la [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Hoy les traigo un sencillo ejemplo, y muy usado en C# y otros lenguajes de programación. Es una sencilla pregunta, pero la respuesta no es tan sencilla.</p>
<p>Que día de la semana cae el 20 de abril del 2020?</p>
<p>Que día de la semana será el 12 de agosto del 2011?</p>
<p>Estas respuestas sin la ayuda de la computadora solo algunos eruditos pueden responderlas (yo conozco a uno). El problema no es tan sencullo como dividir y hallar restos de división.<span id="more-236"></span></p>
<p>Primero hay que buscar una forma de guardar cuantos días tiene cada mes, teniendo en cuenta claro, si el año es bisiesto o no&#8230;</p>
<p>Recuerden que <strong>un año es bisiesto si es divisible entre 400 ó es divisible entre 4 y no entre 100</strong>.</p>
<p>Bueno, vamos a hacer un programa de consola, que primero le pida al usuario que entre una fecha válida, con su día, mes y año y luego imprimiremos en consola que día de la semana será o fue la fecha recibida.</p>
<p>Vamos al código:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> DiaDeLaSemana
<span style="color: #000000;">&#123;</span>
   <span style="color: #FF0000;">class</span> Class1
   <span style="color: #000000;">&#123;</span>
      <span style="color: #008080; font-style: italic;">//Esta es la aplicación de entrada</span>
      <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
         <span style="color: #0600FF;">while</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span>
	 <span style="color: #000000;">&#123;</span>
		<span style="color: #008080; font-style: italic;">//Pedimos que entre la fecha y validamos que</span>
                <span style="color: #008080; font-style: italic;">//los datos sean correctos</span>
                Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Escribe una fecha&quot;</span><span style="color: #008000;">+</span><span style="color: #666666;">'<span style="color: #008080; font-weight: bold;">\n</span>'</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		Console.<span style="color: #0000FF;">Write</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Dia: &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #FF0000;">int</span> d <span style="color: #008000;">=</span> <span style="color: #FF0000;">int</span>.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>Console.<span style="color: #0000FF;">ReadLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>d<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;=</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> break<span style="color: #008000;">;</span>
		Console.<span style="color: #0000FF;">Write</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Mes: &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #FF0000;">int</span> m <span style="color: #008000;">=</span> <span style="color: #FF0000;">int</span>.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>Console.<span style="color: #0000FF;">ReadLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>m<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;=</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> break<span style="color: #008000;">;</span>
		Console.<span style="color: #0000FF;">Write</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Año: &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #FF0000;">int</span> a <span style="color: #008000;">=</span> <span style="color: #FF0000;">int</span>.<span style="color: #0000FF;">Parse</span><span style="color: #000000;">&#40;</span>Console.<span style="color: #0000FF;">ReadLine</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>a<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;=</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> break<span style="color: #008000;">;</span>
                <span style="color: #008080; font-style: italic;">//Creamos un array con los días de la semanas</span>
		<span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> days <span style="color: #008000;">=</span> <span style="color: #000000;">&#123;</span><span style="color: #666666;">&quot;Domingo&quot;</span>, <span style="color: #666666;">&quot;Lunes&quot;</span>, <span style="color: #666666;">&quot;Martes&quot;</span>,
                <span style="color: #666666;">&quot;Miercoles&quot;</span>, <span style="color: #666666;">&quot;Jueves&quot;</span>, <span style="color: #666666;">&quot;Viernes&quot;</span>, <span style="color: #666666;">&quot;Sabado&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
           <span style="color: #008080; font-style: italic;">//Esta es la respuesta, usando el método DayOfWeek()</span>
	   Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Ese dia es &quot;</span><span style="color: #008000;">+</span>days<span style="color: #000000;">&#91;</span>DayOfWeek<span style="color: #000000;">&#40;</span>d,m,a<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	 <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">int</span> DayOfWeek<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> day, <span style="color: #FF0000;">int</span> month, <span style="color: #FF0000;">int</span> year<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
	<span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> mesCode <span style="color: #008000;">=</span> <span style="color: #000000;">&#123;</span><span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">6</span>,<span style="color: #FF0000;">2</span>,<span style="color: #FF0000;">2</span>,<span style="color: #FF0000;">5</span>,<span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">3</span>,<span style="color: #FF0000;">5</span>,<span style="color: #FF0000;">1</span>,<span style="color: #FF0000;">4</span>,<span style="color: #FF0000;">6</span>,<span style="color: #FF0000;">2</span>,<span style="color: #FF0000;">4</span><span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
     <span style="color: #FF0000;">int</span> result <span style="color: #008000;">=</span> year<span style="color: #008000;">%</span>100 <span style="color: #008000;">+</span> <span style="color: #000000;">&#40;</span>year<span style="color: #008000;">%</span>100<span style="color: #000000;">&#41;</span><span style="color: #008000;">/</span><span style="color: #FF0000;">4</span> <span style="color: #008000;">+</span> day <span style="color: #008000;">+</span> mesCode<span style="color: #000000;">&#91;</span>month<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">17</span><span style="color: #000000;">&#41;</span> result <span style="color: #008000;">+=</span> <span style="color: #FF0000;">5</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">18</span><span style="color: #000000;">&#41;</span> result <span style="color: #008000;">+=</span> <span style="color: #FF0000;">3</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">19</span><span style="color: #000000;">&#41;</span> result <span style="color: #008000;">+=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span> result <span style="color: #008000;">+=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">21</span><span style="color: #000000;">&#41;</span> result <span style="color: #008000;">+=</span> <span style="color: #008000;">-</span><span style="color: #FF0000;">2</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">else</span> <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>year<span style="color: #008000;">/</span><span style="color: #FF0000;">100</span><span style="color: #008000;">==</span><span style="color: #FF0000;">22</span><span style="color: #000000;">&#41;</span>  result <span style="color: #008000;">+=</span> <span style="color: #008000;">-</span><span style="color: #FF0000;">4</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">//Vemos si es bisiesto y quitamos un día si</span>
        <span style="color: #008080; font-style: italic;">//el mes es enero o febrero</span>
	<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>EsBisiesto<span style="color: #000000;">&#40;</span>year<span style="color: #000000;">&#41;</span> <span style="color: #008000;">&amp;</span>amp<span style="color: #008000;">;&amp;</span>amp<span style="color: #008000;">;</span> <span style="color: #000000;">&#40;</span>month<span style="color: #008000;">==</span><span style="color: #FF0000;">1</span> <span style="color: #008000;">||</span> month<span style="color: #008000;">==</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	    result <span style="color: #008000;">+=</span> <span style="color: #008000;">-</span><span style="color: #FF0000;">1</span><span style="color: #008000;">;</span>	
&nbsp;
        <span style="color: #008080; font-style: italic;">//Esto devuelve un número entre 0 y 7</span>
        <span style="color: #008080; font-style: italic;">//que nos dá el día de la semana</span>
	<span style="color: #0600FF;">return</span> result<span style="color: #008000;">%</span>7<span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">//Método para saber si un año es bisiesto</span>
    <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">bool</span> EsBisiesto<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> a<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
	<span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span>a<span style="color: #008000;">%</span>4<span style="color: #008000;">==</span><span style="color: #FF0000;">0</span> <span style="color: #008000;">&amp;</span>amp<span style="color: #008000;">;&amp;</span>amp<span style="color: #008000;">;</span> a<span style="color: #008000;">%</span>100<span style="color: #008000;">!=</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">||</span> a<span style="color: #008000;">%</span>400<span style="color: #008000;">==</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Interesante verdad? Pues ya saben algo nuevo, si quieren este método puede ser un poco más elegante y con menos código, piensen en alguna otra solución y la discutimos en los comentarios.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 509px; width: 1px; height: 1px;">

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #666666;">'<span style="color: #008080; font-weight: bold;">\n</span>'</span></pre></div></div>

</div>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;bodytext=Hoy%20les%20traigo%20un%20sencillo%20ejemplo%2C%20y%20muy%20usado%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Es%20una%20sencilla%20pregunta%2C%20pero%20la%20respuesta%20no%20es%20tan%20sencilla.%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20cae%20el%2020%20de%20abril%20del%202020%3F%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20ser%C3%A1%20el%2012%20de%20ag" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;notes=Hoy%20les%20traigo%20un%20sencillo%20ejemplo%2C%20y%20muy%20usado%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Es%20una%20sencilla%20pregunta%2C%20pero%20la%20respuesta%20no%20es%20tan%20sencilla.%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20cae%20el%2020%20de%20abril%20del%202020%3F%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20ser%C3%A1%20el%2012%20de%20ag" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;t=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;annotation=Hoy%20les%20traigo%20un%20sencillo%20ejemplo%2C%20y%20muy%20usado%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Es%20una%20sencilla%20pregunta%2C%20pero%20la%20respuesta%20no%20es%20tan%20sencilla.%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20cae%20el%2020%20de%20abril%20del%202020%3F%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20ser%C3%A1%20el%2012%20de%20ag" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Hoy%20les%20traigo%20un%20sencillo%20ejemplo%2C%20y%20muy%20usado%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Es%20una%20sencilla%20pregunta%2C%20pero%20la%20respuesta%20no%20es%20tan%20sencilla.%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20cae%20el%2020%20de%20abril%20del%202020%3F%0D%0A%0D%0AQue%20d%C3%ADa%20de%20la%20semana%20ser%C3%A1%20el%2012%20de%20ag" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&title=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Calcular el día de la semana con C#" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F&amp;t=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Calcular%20el%20d%C3%ADa%20de%20la%20semana%20con%20C%23%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Fcalcular-el-dia-de-la-semana-con-c%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-string-en-c-sharp/' rel='bookmark' title='Permanent Link: Ejercicios resueltos de string en C#'>Ejercicios resueltos de string en C#</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/programacion/calcular-el-dia-de-la-semana-con-c/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Estructuras de C#. Pila (Stack)</title>
		<link>http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/</link>
		<comments>http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 07:06:05 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[estructuras C#]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/</guid>
		<description><![CDATA[Esta estructura es bastante usada para simular métodos recursivos y resolver algunos tipos de problemas. Esto viene simulando como un montón de objetos que se van apilando (uno encima de otro). La filosofía de una pila (stack) es &#8220;El último que entra es el primero que sale&#8221;. Pueden ver un poco más de que se [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/la-clase-linkednode-en-c-interfaz-ilist/' rel='bookmark' title='Permanent Link: La clase LinkedNode en C#. Interfaz Ilist'>La clase LinkedNode en C#. Interfaz Ilist</a></li>
<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Esta estructura es bastante usada para simular métodos recursivos y resolver algunos tipos de problemas. Esto viene simulando como un montón de objetos que se van apilando (uno encima de otro). La filosofía de una pila (stack) es &#8220;El último que entra es el primero que sale&#8221;. Pueden ver un poco más de que se trata en la figura. Es importante también señalar que esta clase implementa la interfaz IEnumerable.<span id="more-210"></span></p>
<p>Una pila tiene un constructor con tres sobre cargas:</p>
<p>Contructor por defecto que crea una pila vacía</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Stack s <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Stack<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Podemos indicar la cantidad inicial de elementos que tendrá la pila</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Stack s <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Stack<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> initialCapacity<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Podemos también pasarle una colección de elementos (List, Quee, ArrayList). Este constructor copiará todos estos elementos a la pila iniciará</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Stack s <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Stack<span style="color: #000000;">&#40;</span>ICollection col<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Además de los métodos de la interfaz ICollection (Contains, Remove, GetEnumerator, etc), encontramos básicamente 3 métodos que explico ahora:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">object</span> Peek<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #008080; font-style: italic;">//Retorna el último elemento que se agregó en la pila.</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">object</span> Pop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #008080; font-style: italic;">// Retorna el último elemento de la pila al igual que Peek(), pero elimina dicho elemento de la pila una vez devuelto.</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Push<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> x<span style="color: #000000;">&#41;</span>
<span style="color: #008080; font-style: italic;">//Agrega un nuevo elemento a la pila</span></pre></div></div>

<p>Ahora veamos la implementación de la clase Pila (Stack) de CSharp:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Pila<span style="color: #008000;">:</span> IEnumerable
<span style="color: #000000;">&#123;</span>
    Node primero<span style="color: #008000;">;</span>
    <span style="color: #FF0000;">int</span> cambios<span style="color: #008000;">;</span>
    <span style="color: #FF0000;">int</span> contador
&nbsp;
    <span style="color: #008080; font-style: italic;">//El constructor</span>
    <span style="color: #0600FF;">public</span> Pila<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        contador<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        cambios<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">object</span> Peek<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
     <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>count<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;=</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
         <span style="color: #0600FF;">throw</span> <span style="color: #008000;">new</span> InvalidOperationException<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;La pila esta vacia&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
     <span style="color: #0600FF;">return</span> primero.<span style="color: #0000FF;">value</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">object</span> Pop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
     <span style="color: #FF0000;">object</span> temp<span style="color: #008000;">=</span>primero.<span style="color: #0000FF;">value</span><span style="color: #008000;">;</span>
     primero<span style="color: #008000;">=</span>primero.<span style="color: #0000FF;">next</span><span style="color: #008000;">;</span>
     contador<span style="color: #008000;">--;</span>
     cambios<span style="color: #008000;">++;</span>
     <span style="color: #0600FF;">return</span> temp<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Push<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> x<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>primero<span style="color: #008000;">==</span><span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
        primero<span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Node<span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">else</span>
    <span style="color: #000000;">&#123;</span>
        primero<span style="color: #008000;">=</span><span style="color: #008000;">new</span> Node<span style="color: #000000;">&#40;</span>x,primero<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        cambios<span style="color: #008000;">++;</span>
        contador<span style="color: #008000;">++;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Count
<span style="color: #000000;">&#123;</span>
    get<span style="color: #000000;">&#123;</span>
       <span style="color: #0600FF;">return</span> contador<span style="color: #008000;">;</span>
   <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">bool</span> Contiene<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> x<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    Node temp<span style="color: #008000;">=</span> primero<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">for</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>contador<span style="color: #008000;">;</span>i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
       <span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>temp.<span style="color: #0000FF;">value</span>.<span style="color: #0000FF;">Equals</span><span style="color: #000000;">&#40;</span>x<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
          <span style="color: #0600FF;">return</span> true<span style="color: #008000;">;</span>
       temp<span style="color: #008000;">=</span>temp.<span style="color: #0000FF;">next</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
    <span style="color: #0600FF;">return</span> false<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Por supuesto, le faltan algunos métodos de la interfaz ICollection, pero esos ya los vimos cuando hablamos de <a href="http://www.puntopeek.com/codigos-c/la-clase-linkednode-en-c-interfaz-ilist/" target="_blank"> la clase LinkedNode en C# y la Interfaz Ilist.</a></p>
<p>También implementé esta clase usando <a href="http://www.puntopeek.com/codigos-c/la-clase-linkednode-en-c-interfaz-ilist/" target="_blank">nodos enlazables</a>, pero por supuesto sería mucho más sencillo con arrays o listas&#8230;</p>
<p>Si tienen alguna duda o creen que falta algo, ya saben, comenten&#8230;</p>
<p>Proximamente hablaremos de otras dos estructuras (colas, lista generica) y de genericidad.</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;bodytext=Esta%20estructura%20es%20bastante%20usada%20para%20simular%20m%C3%A9todos%20recursivos%20y%20resolver%20algunos%20tipos%20de%20problemas.%20Esto%20viene%20simulando%20como%20un%20mont%C3%B3n%20de%20objetos%20que%20se%20van%20apilando%20%28uno%20encima%20de%20otro%29.%20La%20filosof%C3%ADa%20de%20una%20pila%20%28stack%29%20es%20%22El%20%C3%BAltimo%20que%20e" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;notes=Esta%20estructura%20es%20bastante%20usada%20para%20simular%20m%C3%A9todos%20recursivos%20y%20resolver%20algunos%20tipos%20de%20problemas.%20Esto%20viene%20simulando%20como%20un%20mont%C3%B3n%20de%20objetos%20que%20se%20van%20apilando%20%28uno%20encima%20de%20otro%29.%20La%20filosof%C3%ADa%20de%20una%20pila%20%28stack%29%20es%20%22El%20%C3%BAltimo%20que%20e" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;t=Estructuras%20de%20C%23.%20Pila%20%28Stack%29" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;annotation=Esta%20estructura%20es%20bastante%20usada%20para%20simular%20m%C3%A9todos%20recursivos%20y%20resolver%20algunos%20tipos%20de%20problemas.%20Esto%20viene%20simulando%20como%20un%20mont%C3%B3n%20de%20objetos%20que%20se%20van%20apilando%20%28uno%20encima%20de%20otro%29.%20La%20filosof%C3%ADa%20de%20una%20pila%20%28stack%29%20es%20%22El%20%C3%BAltimo%20que%20e" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Esta%20estructura%20es%20bastante%20usada%20para%20simular%20m%C3%A9todos%20recursivos%20y%20resolver%20algunos%20tipos%20de%20problemas.%20Esto%20viene%20simulando%20como%20un%20mont%C3%B3n%20de%20objetos%20que%20se%20van%20apilando%20%28uno%20encima%20de%20otro%29.%20La%20filosof%C3%ADa%20de%20una%20pila%20%28stack%29%20es%20%22El%20%C3%BAltimo%20que%20e" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&title=Estructuras%20de%20C%23.%20Pila%20%28Stack%29" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Estructuras%20de%20C%23.%20Pila%20%28Stack%29&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Estructuras de C#. Pila (Stack)" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F&amp;t=Estructuras%20de%20C%23.%20Pila%20%28Stack%29" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Estructuras%20de%20C%23.%20Pila%20%28Stack%29%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fprogramacion%2Festructuras-de-c-pila-stack%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/codigos-c/tres-formas-de-invertir-un-string/' rel='bookmark' title='Permanent Link: Tres formas de Invertir un String'>Tres formas de Invertir un String</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/la-clase-linkednode-en-c-interfaz-ilist/' rel='bookmark' title='Permanent Link: La clase LinkedNode en C#. Interfaz Ilist'>La clase LinkedNode en C#. Interfaz Ilist</a></li>
<li><a href='http://www.puntopeek.com/tutoriales-c/la-clase-string-en-c/' rel='bookmark' title='Permanent Link: La clase String en C#'>La clase String en C#</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/programacion/estructuras-de-c-pila-stack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ejercicios de array con C# (3ra. parte)</title>
		<link>http://www.puntopeek.com/codigos-c/ejercicios-resueltos-de-c-3ra-parte/</link>
		<comments>http://www.puntopeek.com/codigos-c/ejercicios-resueltos-de-c-3ra-parte/#comments</comments>
		<pubDate>Tue, 12 May 2009 20:02:18 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Tutoriales C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=158</guid>
		<description><![CDATA[Bueno, seguimos con algunos ejercicios resueltos en C#. Esta vez implementamos algunos métodos un poco más complejos, pero muy útiles para resolver distintos problemas. Empezamos desde lo más sencillo hasta lo más complejo&#8230;Aunque no son muy complicados los ejercicios, te aconsejo que leas primero estos tres:
Arrays en C# (Para que veas bien que es un [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Bueno, seguimos con algunos <strong>ejercicios resueltos en C#</strong>. Esta vez implementamos algunos métodos un poco más complejos, pero muy útiles para resolver distintos problemas. Empezamos desde lo más sencillo hasta lo más complejo&#8230;<span id="more-158"></span>Aunque no son muy complicados los ejercicios, te aconsejo que leas primero estos tres:</p>
<p><a href="http://www.puntopeek.com/programacion/arrays-en-c/" target="_blank">Arrays en C# </a>(Para que veas bien que es un array)</p>
<p><a href="http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/" target="_blank">Ejercicios resueltos de arrays en C#</a> (Primera parte)</p>
<p><a href="http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/" target="_blank">Más ejercicios resueltos de arrays en C#</a> (Segunda parte)</p>
<p>1- <strong>Saber si una cadena es palíndromo o no.</strong><br />
Una cadena es palíndromo si se puede leer igual de derecha a izquierda que de izquierda a derecha, por ej: otto, sacas,  etc. El método, que en este caso sería recursivo tendría la siguiente signatura:<br />
<strong>public bool EsPalindromo(string s).</strong> Vamos a la implementación:</p>
<p><a href="http://www.puntopeek.com/wp-content/uploads/2009/05/espalindromo.png"><img class="alignnone size-full wp-image-161" title="espalindromo" src="http://www.puntopeek.com/wp-content/uploads/2009/05/espalindromo.png" alt="espalindromo Ejercicios de array con C# (3ra. parte)" width="481" height="237" /></a></p>
<p>Como vemos, es un método muy sencillo haciendo uso de la recursividad, teniendo en cuenta que una cadena es palíndromo si al quitar los extremos del texto, este sigue siendo palíndromo, y así sucesivamente hasta que quede de longitud 1, que por supuesto es palíndromo. De todas formas traten de hacerlo iterativo, para que vean como se extiende un poco más el código&#8230; jjeje. Si quieren, pueden ver un poco más sobre recursividad <a href="http://www.puntopeek.com/tutoriales-c/recursividad-con-c-1/"><strong>aquí.</strong></a></p>
<p><strong>Invertir un array</strong> es algo que puede que hagamos muy seguido en nuestros programas, a través del siguiente método vemos <strong>como invertir un array de números enteros</strong>, de tal forma que si nos pasan un array de enteros con 1,2,3,4,5, este método devuelva 5,4,3,2,1&#8230; vamos al código:</p>
<p><a href="http://www.puntopeek.com/wp-content/uploads/2009/05/invertir.png"><img class="alignnone size-full wp-image-162" title="invertir" src="http://www.puntopeek.com/wp-content/uploads/2009/05/invertir.png" alt="invertir Ejercicios de array con C# (3ra. parte)" width="373" height="194" /></a></p>
<p>Como vemos, lo único que va a tener este método que puede no entiendas es <strong>números[numeros.Lenght-i-1]</strong>. Si le vamos dando valores a la <strong>i</strong> a partir de 0, vemos como a medida que aumenta<strong> i</strong>, nos movemos un paso antes en el array <strong>numeros</strong>. Recuerden también que la ultima posición de un array es <strong>array[array.Lenght-1]</strong>, que es cuando la<strong> i</strong> vale 0.</p>
<p><strong>Buscar un elemento en un array bidimensional (tabla)</strong></p>
<p>Método muy sencillo que nos muestra como <strong>movernos por un array </strong>bidimensional buscando si contiene un elemento dado. Veamos este ejemplo rápidamente:</p>
<p><a href="http://www.puntopeek.com/wp-content/uploads/2009/05/buscar.png"><img class="alignnone size-full wp-image-160" title="buscar" src="http://www.puntopeek.com/wp-content/uploads/2009/05/buscar.png" alt="buscar Ejercicios de array con C# (3ra. parte)" width="427" height="148" /></a></p>
<p>Vemos como con dos ciclos <strong>for</strong> nos podemos mover fácilmente por todas las posiciones de la tabla. El método retornará<strong> true</strong> solamente si encuentra el elemento <strong>n</strong> en la tabla. Aclarar que la propiedad <strong>GetLenght(int dimension)</strong>, nos da el ancho o el alto dependiendo de la dimensión. <strong>1</strong> es para el alto, y <strong>0</strong> es para el ancho.</p>
<p><strong>Rotar un array</strong><br />
Entenderemos por<strong> rotar un array n veces</strong>, trasladar el elemento de la primera posición <strong>n </strong>veces a la derecha  si n&gt;0 o a la izquierda si n&lt;0. Por ejemplo, si rotamos 3 veces el array 1,3,2,4,5 devolvería  2,4,5,1,3. Esto se puede lograr de varias formas, pero proponemos una muy poco costosa, calculando la posición del array donde debería caer el primer elemento del array que se desea rotar. Bueno, vamos a la práctica, el código es:</p>
<p><a href="http://www.puntopeek.com/wp-content/uploads/2009/05/rotar.png"><img class="alignnone size-full wp-image-164" title="rotar" src="http://www.puntopeek.com/wp-content/uploads/2009/05/rotar.png" alt="rotar Ejercicios de array con C# (3ra. parte)" width="476" height="415" /></a></p>
<p>Vemos que es un poquito complicado esto de <strong>rotar un array</strong> calculando la posición a partir del resto de <strong>n</strong> con la longitud del array, pero si se ponen a analizar linea por línea se darán cuenta que no es tan difícil. Haciendo <strong>n%array.Lenght</strong>, calculamos la nueva posición donde quedaría el primer elemento del array. Interesante verdad? Ya veremos próximamente como armar un diccionario donde poder agregar y leer datos fácilmente sin necesidad de buscar por todos sus elementos utilizando mucho este operador % para el resto. Entonces practiquen con estos métodos, hagan modificaciones, busquen otras ideas, traten de mejorarlos&#8230; y todo lo que se les ocurra.<br />
Para aprender a programar hay que &#8220;leer y escribir código&#8221;. Si tienen alguna duda, dejen un comentario. <strong>Próximamente</strong> estaremos viendo la clase Matriz con todos sus métodos y propiedades.  Determinante, multiplicación escalar, multiplicación por otra matriz, suma, resta, etc&#8230;</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;bodytext=Bueno%2C%20seguimos%20con%20algunos%20ejercicios%20resueltos%20en%20C%23.%20Esta%20vez%20implementamos%20algunos%20m%C3%A9todos%20un%20poco%20m%C3%A1s%20complejos%2C%20pero%20muy%20%C3%BAtiles%20para%20resolver%20distintos%20problemas.%20Empezamos%20desde%20lo%20m%C3%A1s%20sencillo%20hasta%20lo%20m%C3%A1s%20complejo...Aunque%20no%20son%20muy%20co" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;notes=Bueno%2C%20seguimos%20con%20algunos%20ejercicios%20resueltos%20en%20C%23.%20Esta%20vez%20implementamos%20algunos%20m%C3%A9todos%20un%20poco%20m%C3%A1s%20complejos%2C%20pero%20muy%20%C3%BAtiles%20para%20resolver%20distintos%20problemas.%20Empezamos%20desde%20lo%20m%C3%A1s%20sencillo%20hasta%20lo%20m%C3%A1s%20complejo...Aunque%20no%20son%20muy%20co" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;t=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;annotation=Bueno%2C%20seguimos%20con%20algunos%20ejercicios%20resueltos%20en%20C%23.%20Esta%20vez%20implementamos%20algunos%20m%C3%A9todos%20un%20poco%20m%C3%A1s%20complejos%2C%20pero%20muy%20%C3%BAtiles%20para%20resolver%20distintos%20problemas.%20Empezamos%20desde%20lo%20m%C3%A1s%20sencillo%20hasta%20lo%20m%C3%A1s%20complejo...Aunque%20no%20son%20muy%20co" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Bueno%2C%20seguimos%20con%20algunos%20ejercicios%20resueltos%20en%20C%23.%20Esta%20vez%20implementamos%20algunos%20m%C3%A9todos%20un%20poco%20m%C3%A1s%20complejos%2C%20pero%20muy%20%C3%BAtiles%20para%20resolver%20distintos%20problemas.%20Empezamos%20desde%20lo%20m%C3%A1s%20sencillo%20hasta%20lo%20m%C3%A1s%20complejo...Aunque%20no%20son%20muy%20co" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&title=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Ejercicios de array con C# (3ra. parte)" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F&amp;t=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Ejercicios%20de%20array%20con%20C%23%20%283ra.%20parte%29%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fejercicios-resueltos-de-c-3ra-parte%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (2da. parte)'>Ejercicios de array con C# (2da. parte)</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/codigos-c/ejercicios-resueltos-de-c-3ra-parte/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Ejercicios de array con C# (2da. parte)</title>
		<link>http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/</link>
		<comments>http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/#comments</comments>
		<pubDate>Sun, 03 May 2009 16:56:56 +0000</pubDate>
		<dc:creator>Tomy</dc:creator>
				<category><![CDATA[Codigos C#]]></category>
		<category><![CDATA[Tutoriales C#]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ejemplos C#]]></category>

		<guid isPermaLink="false">http://www.puntopeek.com/?p=149</guid>
		<description><![CDATA[Esta es la segunda entrega de ejercicios resueltos con array para dominar de una vez esta estructura tan usada en C# y otros lenguajes de programación. Saber trabajar eficientemente con arrays es algo sumamente importante, ya que es la base de muchas otras estructuras de datos. Pueden ver la primera entrega de esta colección de [...]


Entradas relacionadas<li><a href='http://www.puntopeek.com/codigos-c/ejercicios-resueltos-de-c-3ra-parte/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (3ra. parte)'>Ejercicios de array con C# (3ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/programacion/la-clase-random-con-c/' rel='bookmark' title='Permanent Link: La clase Random con C#'>La clase Random con C#</a></li>
]]></description>
			<content:encoded><![CDATA[<p>Esta es la segunda entrega de ejercicios resueltos con array para dominar de una vez esta estructura tan usada en C# y otros lenguajes de programación. Saber trabajar eficientemente con arrays es algo sumamente importante, ya que es la base de muchas otras estructuras de datos. Pueden ver la <a href="http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c"><strong>primera entrega</strong></a> de esta colección de ejercicios resueltos.</p>
<p><span id="more-149"></span><strong>Crear un array de números aleatorios</strong></p>
<p>Una buena práctica para probar nuestros algoritmos, ya sean de búsqueda, de ordenación, o cualquiera de los que hagamos aquí es <strong>crear un array de números aleatorios a partir de un tamaño</strong>. Veamos como hacer esto con la clase <strong>system.Random</strong> de <strong>C#</strong>. Veamos el código:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> ArrayAleatorio<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> longitud<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
<span style="color: #008080; font-style: italic;">//Creamos un nuevo array del tamaño especificado</span>
<span style="color: #FF0000;">int</span> <span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> a <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>longitud<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">//Inicializamos la clase Random</span>
Random r <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Random<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">int</span> aleatorio <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">//ahora en cada posición del array insertaremos</span>
<span style="color: #008080; font-style: italic;">//un numero aleatorio entre -20, y 20</span>
<span style="color: #0600FF;">for</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>a.<span style="color: #0000FF;">Lenght</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
a<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #008000;">=</span>aleatorio.<span style="color: #0000FF;">Next</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">-</span><span style="color: #FF0000;">20</span>, <span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Vemos como cada vez que aumenta <strong>i</strong> dentro del ciclo <strong>for</strong> creamos un nuevo número aleatorio. Así tendremos un array con numeros aleatorios entre -20 y 20. El método <strong>Next</strong> de la clase <strong>Random</strong> tiene varios constructores, nosotros usamos uno que permite crear un número en un intervalo especificado. Como funcionará la clase <strong>Random</strong>? Interesante verdad? Este método lo podemos usar de cierta forma para probar algún que otro método, y hacemos algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> numeros <span style="color: #008000;">=</span> ArrayAleatorio<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">8</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
Ordenar<span style="color: #000000;">&#40;</span>numeros<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
Buscar<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">3</span>, numeros<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p><strong>Invertir un array</strong></p>
<p>Bueno, veamos ahora como <strong>invertir un array de numeros</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Invertir<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> <span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> a<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #008080; font-style: italic;">//Creamos un nuevo array del mismo tamaño</span>
<span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> b <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>a.<span style="color: #0000FF;">Lenght</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">//Empezamos a copiar desde la última</span>
<span style="color: #008080; font-style: italic;">//posición de a en la primera</span>
<span style="color: #0600FF;">for</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i
<span style="color: #000000;">&#123;</span>
b<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #008000;">=</span> a<span style="color: #000000;">&#91;</span>a.<span style="color: #0000FF;">Lengt</span><span style="color: #008000;">-</span>i<span style="color: #008000;">-</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #008080; font-style: italic;">//Como el método no retorna nada</span>
<span style="color: #008080; font-style: italic;">//guardamos en a el array b</span>
a<span style="color: #008000;">=</span>b<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Tener en cuenta que cuando hacemos <strong>a[a.Lenght -i -1]</strong>, a medida que aumenta <strong>i</strong> nos vamos moviendo por a desde la ultima posición (a.Lenght -1) hasta la primera.</p>
<p><strong>Calcular la suma de un array</strong></p>
<p>Ahora veremos como calcular la suma de todos los elementos de un array.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> CalculaSuma<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> <span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> a<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
<span style="color: #FF0000;">int</span> suma<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">for</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i<span style="color: #008000;">&lt;</span>a.<span style="color: #0000FF;">Lenght</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
suma<span style="color: #008000;">+=</span> a<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0600FF;">return</span> suma<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Como ven es un método muy sencillo donde solo tenemos que recorrer el array e ir aumentando la variable suma con el operador <strong>+=</strong>, que es lo mismo que hacer <strong>suma = suma+a[i]</strong>.</p>
<p>Si tienen alguna duda, ya saben, comenten&#8230; y practiquen. En la próxima entrega veremos ejercicios un poco más complejos. Pronto estaremos buscando y ordenando elementos en un array de forma más eficiente.</p>



Comparte este post:


	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Meneame"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;bodytext=Esta%20es%20la%20segunda%20entrega%20de%20ejercicios%20resueltos%20con%20array%20para%20dominar%20de%20una%20vez%20esta%20estructura%20tan%20usada%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Saber%20trabajar%20eficientemente%20con%20arrays%20es%20algo%20sumamente%20importante%2C%20ya%20que%20es%20la%20base%20de%20mucha" title="Digg"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;notes=Esta%20es%20la%20segunda%20entrega%20de%20ejercicios%20resueltos%20con%20array%20para%20dominar%20de%20una%20vez%20esta%20estructura%20tan%20usada%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Saber%20trabajar%20eficientemente%20con%20arrays%20es%20algo%20sumamente%20importante%2C%20ya%20que%20es%20la%20base%20de%20mucha" title="del.icio.us"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;t=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29" title="Facebook"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;story=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="BarraPunto"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;annotation=Esta%20es%20la%20segunda%20entrega%20de%20ejercicios%20resueltos%20con%20array%20para%20dominar%20de%20una%20vez%20esta%20estructura%20tan%20usada%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Saber%20trabajar%20eficientemente%20con%20arrays%20es%20algo%20sumamente%20importante%2C%20ya%20que%20es%20la%20base%20de%20mucha" title="Google Bookmarks"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29" title="Reddit"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Technorati"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Wikio"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;source=Programaci%C3%B3n+y+desarrollo+web+Programaci%C3%B3n+en+C%23%2C+PHP+y+software+libre&amp;summary=Esta%20es%20la%20segunda%20entrega%20de%20ejercicios%20resueltos%20con%20array%20para%20dominar%20de%20una%20vez%20esta%20estructura%20tan%20usada%20en%20C%23%20y%20otros%20lenguajes%20de%20programaci%C3%B3n.%20Saber%20trabajar%20eficientemente%20con%20arrays%20es%20algo%20sumamente%20importante%2C%20ya%20que%20es%20la%20base%20de%20mucha" title="LinkedIn"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Netvibes"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Bitacoras.com"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diggita.it/submit.php?url=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&title=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29" title="Diggita"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/diggita.png" title="Diggita" alt="Diggita" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29&amp;body=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="email"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email link Ejercicios de array con C# (2da. parte)" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F&amp;t=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29" title="MySpace"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Ejercicios%20de%20array%20con%20C%23%20%282da.%20parte%29%20-%20http%3A%2F%2Fwww.puntopeek.com%2Fcodigos-c%2Fmas-ejercicios-de-array-en-c%2F" title="Twitter"><img src="http://www.puntopeek.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>


<br/><br/>

<p>Entradas relacionadas<li><a href='http://www.puntopeek.com/codigos-c/ejercicios-resueltos-de-c-3ra-parte/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (3ra. parte)'>Ejercicios de array con C# (3ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/programacion/ejercicios-resueltos-de-array-en-c/' rel='bookmark' title='Permanent Link: Ejercicios de array con C# (1ra. parte)'>Ejercicios de array con C# (1ra. parte)</a></li>
<li><a href='http://www.puntopeek.com/programacion/la-clase-random-con-c/' rel='bookmark' title='Permanent Link: La clase Random con C#'>La clase Random con C#</a></li>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.puntopeek.com/codigos-c/mas-ejercicios-de-array-en-c/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.237 seconds -->
