<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Proyecto C++ Universidad Evangelica de El Salvador</title>
	<atom:link href="http://lenguajecmasmas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lenguajecmasmas.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 01 Oct 2007 06:21:12 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lenguajecmasmas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Proyecto C++ Universidad Evangelica de El Salvador</title>
		<link>http://lenguajecmasmas.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lenguajecmasmas.wordpress.com/osd.xml" title="Proyecto C++ Universidad Evangelica de El Salvador" />
	<atom:link rel='hub' href='http://lenguajecmasmas.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Apuntadores</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/apuntadores/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/apuntadores/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 06:19:26 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[Apuntadores]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/apuntadores/</guid>
		<description><![CDATA[Que es un puntero? Un puntero es un tipo especial de variable, que almacena el valor de una direccion de memoria, esta direccion puede ser la de una variable individual, pero mas frecuentemente sera la de un elemento de un array, una estructura u objeto de una clase. Los punteros, al igual que una variable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=11&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><font size="2">Que es un puntero?</font></h3>
<p><font size="2">Un puntero es un tipo especial de variable, que almacena el  valor de una <strong>direccion de memoria</strong>, esta direccion puede ser la de una  variable individual, pero mas frecuentemente sera la de un elemento de un array,  una estructura u objeto de una clase. Los punteros, al igual que una variable  comun, pertenecen a un tipo (type), se dice que un puntero &#8216;<strong>apunta a</strong>&#8216; ese  tipo al que pertenece. Ejemplos:</font></p>
<p><tt><font color="#0080c0" size="2">int* pint;            //Declara un puntero a  entero<br />
char* pchar;          //Puntero a char<br />
fecha*  pfecha;        //Puntero a objeto de clase 'fecha'</font></tt></p>
<p><font size="2">Independientemente del tamaño (sizeof) del objeto apuntado, el  valor almacenado por el puntero sera el de una unica direccion de memoria. En  sentido estricto un puntero no puede almacenar la direccion de memoria de &#8216;un  array&#8217; (completo), sino la de <em>un elemento</em> de un array, y por este motivo  no existen diferencias sintacticas entre punteros a elementos individuales y  punteros a arrays. La declaracion de un puntero a <em>char</em> y otro a <em>array  de char</em> es igual.</font></p>
<p><font size="2">Al definir variables o arrays hemos visto que el  tipo (type) modifica la cantidad de bytes que se usaran para almacenar tales  elementos, asi un elemento de tipo &#8216;char&#8217; utiliza 1 byte, y un entero 2 o 4. No  ocurre lo mismo con los punteros, el tipo no influye en la cantidad de bytes  asociados al puntero, pues todas las direcciones de memoria se pueden expresar  con solo 2 bytes (o 4 si es una direccion de otro segmento)</font></p>
<p><font size="2">Veamos los efectos de un codigo como el siguiente, en la zona de  almancenamiento de datos:</font></p>
<pre><font color="#0080ff" size="2">char cad[] = "hola";
 char * p;
 p = cad;           //Puntero 'p' apunta a 'cad'</font></pre>
<p><font size="2"><img src="http://www.wikilearning.com/imagescc/3872/mem1.gif" height="110" width="480" /></font></p>
<p><font size="2">El puntero esta en la direccion 0xffee pero el valor que hay en  esa localidad de memoria es otra direccion, los bytes &#8220;F0 FF&#8221; indican que el  puntero apunta a FFF0, donde comienza la cadena de caracteres &#8216;cad&#8217; con el  contenido &#8216;hola&#8217; mas el cero de fin de cadena.<br />
En las lineas de codigo no  hemos indicado a que caracter del array apunta el puntero, pero esa notacion es  equivalente a:</font></p>
<pre><font color="#0080ff" size="2">p = &amp;cad[0];</font></pre>
<p><font color="#000000" size="2">que indica de modo mas explicito que se trata de  la direccion del primer elemento de ese array de caracteres. El juego con las  direcciones puede ilustrarse tambien del siguiente modo:</font></p>
<p><font color="#000000" size="2"><tt>ffee     F0  </tt>     &lt;&#8212;&#8211; El puntero ocupa dos bytes para representar la direccion  FFF0, direccion a la que &#8216;apunta&#8217;.<br />
<tt>ffef     FF </tt>      &lt;&#8212;&#8211;</font></p>
<p><font color="#000000" size="2"><tt>fff0     61 </tt>    &lt;&#8212;&#8212; cad[0]. .Primer char del  array de caracteres, direccion apuntada por el  puntero<br />
<tt>fff1     61 </tt>    &lt;&#8212;&#8212;  cad[1]<br />
<tt>fff2     61  </tt>  &lt;&#8212;&#8212; cad[2]<br />
<tt>fff3      61  </tt>  &lt;&#8212;&#8212; cad[3]<br />
f<tt>ff4      0   </tt>&lt;&#8212;&#8212; cad[4]    Fin del array, caracter ascii = 0 de fin de cadena</font></p>
<p><font color="#000000" size="2">Puesto que un puntero tiene como valor una  direccion de memoria, es logico que al llamar a funciones de impresion con un  puntero como argumento, la salida en pantalla sea la de una direccion de  memoria. Para este tipo de pruebas es interesante usar la libreria  <em>iostream.h</em> de C++, pues no obliga a especificar el formato (como hace  <em>printf </em>). Para un puntero &#8216;p&#8217; la salida en pantalla sera algo similar a  lo siguiente:</font></p>
<p><tt><font color="#0080ff" size="2">cout&lt;&lt;p;           //sale:  0x8f82fff0;<br />
printf("%p",p)     //sale: FFF0</font></tt></p>
<p><font color="#000000" size="2">En este caso se trata de un puntero que almacena  en 2 bytes una direccion de memoria, la cual es FFF0. Porque razon la impresion  con &#8216;cout&#8217; nos da 4 bytes? Porque agrega 2 bytes (8f y 82) para indicar el  &#8216;segmento&#8217; donde se encuentra esa direccion. Se trata en todo caso de una misma  localidad de memoria, con distinto formato de presentacion en  pantalla.</font></p>
<p><font color="#000000" size="2">La salida en pantalla de un puntero a <em>char</em>  es diferente, pues es tratado como apuntando a una <em>cadena de caracteres</em>,  en tal caso no sale en pantalla una direccion de memoria, sino un conjunto de  caracteres hasta encontrar el &#8221;.</font></p>
<p><font color="#000000" size="2">Un puntero puede almacenar la direccion de  (&#8220;apuntar a&#8221;) muy diferentes entidades: una variable, un objeto, una funcion, un  miembro de clase, otro puntero, o un array de cada uno de estos tipos de  elementos, tambien puede contener un valor que indique que no apunta actualmente  a ningun objeto (puntero nulo).</font></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=11&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/apuntadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>

		<media:content url="http://www.wikilearning.com/imagescc/3872/mem1.gif" medium="image" />
	</item>
		<item>
		<title>MANEJO DE ARCHIVOS.</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/manejo-de-archivos/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/manejo-de-archivos/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 06:06:08 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[MANEJO DE ARCHIVOS.]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/manejo-de-archivos/</guid>
		<description><![CDATA[MANEJO DE ARCHIVOS. El estándar de C contiene funciones varias para la edición de ficheros, estas están definidas en la cabecera stdio.h y por lo general empiezan con la letra f, haciendo referencia a file. Adicionalmente se agrega un tipo FILE, el cual se usará como apuntador a la información del fichero. La secuencia que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=10&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:center;line-height:150%;" align="center"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">MANEJO DE ARCHIVOS.</span></strong></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">El estándar de C contiene funciones varias para la edición de ficheros, estas están definidas en la cabecera <em>stdio.h</em> y por lo general empiezan con la letra f, haciendo referencia a file. Adicionalmente se agrega un tipo FILE, el cual se usará como apuntador a la información del fichero. La secuencia que usaremos para realizar operaciones será la siguiente:</span></p>
<ul>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Crear un <a href="http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Punteros" title="Programación en C/Punteros">apuntador</a> del tipo FILE </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Abrir el archivo      utilizando la función fopen y asignándole el resultado de la llamada a      nuestro apuntador. </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Hacer las diversas      operaciones (lectura, escritura, etc). </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Cerrar el archivo      utilizando la función fclose. </span></li>
</ul>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Los prototipos correspondientes de fopen y fclose son:</span></p>
<p style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">FILE * fopen (const char *filename, const char *opentype);</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"></span></p>
<p style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">int fclose (FILE *stream);</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"></span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Un ejemplo pequeño para abrir y cerrar el archivo llamado fichero.in en modo lectura:</span></p>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> int main ( int argc, char **argv ) {</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> <span>  </span>FILE *fp;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>fp = fopen ( "fichero.in", "r" );</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>fclose ( fp );</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>return 0;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">}</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></pre>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Como vemos, en el ejemplo se utilizó el opentype &#8220;r&#8221;, que es para la lectura, aquí hay una lista de ellos:</span></p>
<ul>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;r&#8221; :      abrir un archivo para lectura </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;w&#8221; :      abrir un archivo para escritura </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;a&#8221; :      abrir un archivo para escritura al final del contenido </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;r+&#8221; :      abrir un archivo para lectura y escritura </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;w+&#8221; :      crear un archivo para lectura y escritura </span></li>
<li class="MsoNormal"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">&#8220;a+&#8221; :      abrir/crear un archivo para lectura y escritura al final del contenido </span></li>
</ul>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Adicionalmente hay tipos utilizando &#8220;b&#8221; (binary) los cuales no serán mostrados por ahora y que solo se usan en los sistemas operativos que no pertenecen a la familia de unix.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Un archivo debe verse como un string (una cadena de caracteres) que esta guardado en el disco duro. Para trabajar con los archivos existen diferentes formas y diferentes funciones. Las funciones que podríamos usar para leer un archivo son:</span></p>
<ul>
<li class="MsoNormal"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">int      fgetc(FILE *archivo)</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></li>
<li class="MsoNormal"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">char *fgets(char *buffer, int tamano, FILE      *archivo)</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></li>
<li class="MsoNormal"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">size_t fread(void *puntero, size_t tamano, size_t      cantidad, FILE *archivo);</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></li>
</ul>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Las primeras dos de estas funciones son muy parecidas entre si. Pero la tercera, por el numero y el tipo de parámetros, nos podemos dar cuenta de que es muy diferente, por eso la trataremos en una sección aparte junto al <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fwrite</span></code> que es su contraparte para escritura.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">La función <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgetc</span></code> es la más simple de las tres. Esta función lee un caracter a la vez del archivo que esta siendo señalado con el puntero <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">*archivo</span></code>. En caso de que la lectura sea exitosa devuelve el caracter leído y en caso de que no lo sea o de encontrar el final del archivo devuelve EOF. Esta función se usa generalmente para recorrer archivos de texto. A manera de ejemplo vamos a suponer que tenemos un archivo de texto llamado &#8220;prueba.txt&#8221; en el mismo directorio en que se encuentra el fuente de nuestro programa. Un pequeño programa que lea ese archivo será:</span></p>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span>#include &lt;stdio.h&gt;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">int main() {</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>FILE *archivo;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>char caracter;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">archivo = fopen("prueba.txt","r");</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>if (archivo == NULL)</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span>exit(1);</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>printf ("\nEl contenido del archivo de prueba es \n\n");</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">while (feof(archivo) == 0){</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span>caracter = fgetc(archivo);</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">printf ("%c",caracter);</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>}</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>return 0;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> }</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></pre>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">En este ejemplo lo que vemos ya ha sido explicado excepto por la función <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">feof</span></code>. Esta función sirve para determinar si el <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">cursor</span></code> dentro del archivo encontró el final (<strong>e</strong>nd <strong>o</strong>f <strong>f</strong>ile). Existe otra forma de verificar el final del archivo que es comparar el <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">caracter</span></code> que trae <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgetc</span></code> del archivo con el macro <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">EOF</span></code> declarado dentro de stdio.h, pero este método no ofrece la misma seguridad (en especial altratar con los archivos &#8220;binarios&#8221;). La función <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">feof</span></code> siempre devolverá 0 si no se encuentra al final del archivo.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Otra cosa importante es que el lenguaje C no tiene dentro de si una estructura para el manejo de excepciones o de errores, por eso es necesario comprobar que el archivo fue abierto con éxito &#8220;<code><span style="line-height:150%;font-family:'Verdana','sans-serif';">if (archivo == NULL)</span></code>&#8220;. Si <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fopen</span></code> pudo abrir el archivo con éxito devuelve la referencia al archivo (<code><span style="line-height:150%;font-family:'Verdana','sans-serif';">*FILE</span></code>), de lo contrario devuelve <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">NULL</span></code> y en este caso se debera revisar la direccion del archivo o los permisos del mismo. En estos ejemplos solo vamos a dar una salida con un retorno de <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">1</span></code> que sirve para señalar que el programa termino por un error.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">La otra función de la que hablábamos fue <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgets</span></code> que sirve para el mismo propósito. Existen algunas diferencias por supuesto y podemos empezar con sus tres parámetros. El primer parámetro <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">buffer</span></code> lo hemos llamado así porque es un puntero a un espacio de memoria del tipo char (podríamos usar un arreglo de char). El segundo parámetro es <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">tamano</span></code> que es el limite en cantidad de caracteres a leer para la funcion <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgets</span></code>. Y por ultimo el puntero del archivo por supuesto que es la forma en que <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgets</span></code> sabra a que archivo debe escribir.</span></p>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> int main() {</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>  </span><span> </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">FILE *archivo;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>char caracteres[100];</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>archivo = fopen("prueba.txt","r");</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>if (archivo == NULL)</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span>exit(1); printf ("\nEl contenido del archivo de prueba es \n\n");</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">while (feof(archivo) == 0){</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span>fgets(caracteres,100,archivo);</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>     </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">printf ("%s",caracteres);</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>}</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>return 0;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> }</span></code></pre>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Este es el mismo ejemplo de antes con la diferencia de que este hace uso de <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgets</span></code> en lugar de <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgetc</span></code>. La función <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">fgets</span></code> se comporta de la siguiente manera, leerá del archivo apuntado por <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">archivo</span></code> los caracteres que encuentre y a ponerlos en <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">buffer</span></code> hasta que lea un caracter menos que la cantidad de caracteres especificada en <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">tamano</span></code> o hasta que encuentre el final de una linea (<code><span style="line-height:150%;font-family:'Verdana','sans-serif';">\n</span></code>) o hasta que encuentre el final del archivo (<code><span style="line-height:150%;font-family:'Verdana','sans-serif';">EOF</span></code>). En este ejemplo no vamos a profundizar mas que para decir que <code><span style="line-height:150%;font-family:'Verdana','sans-serif';">caracteres</span></code> es un buffer, los pormenores seran explicados en la sección de <a href="http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_din%C3%A1mico_de_memoria" title="Programación en C/Manejo dinámico de memoria">manejo dinámico de memoria</a>.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">El beneficio de esta función es que se puede obtener una linea completa a la vez. Y resulta muy útil para algunos fines como la construcción de un parser de algún tipo de archivo de texto.</span></p>
<h2><span class="mw-headline"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">FREAD, FWRITE Y FCLOSE</span></span><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"></span></h2>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Para la lectura de ficheros se utilizará la función fread, la cual sirve para leer contenidos de un fichero.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Su prototipo es el siguiente:</span></p>
<p style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">size_t fread (void *data, size_t size, size_t count, FILE *stream);</span></code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"></span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">En estas definiciones se usa el tipo size_t, el cuál está definidio en <em>stddef.h</em> y sirve para definir tamaños de objetos.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Lo que recibe esta función es un puntero donde almacenaremos los datos leídos (comunmente llamado buffer), el tamaño de los datos a leer, la cantidad de esos datos a leer y el apuntador al fichero.</span></p>
<p style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Aquí hay un ejemplo simple para leer los primeros 100 caracteres de un fichero y almacenarlos en un buffer:</span></p>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span></span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> int main ( int argc, char **argv ) {</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>FILE *fp;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>char buffer[100];</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>fp = fopen ( "fichero.in", "r+" );</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>fread ( buffer, sizeof ( char ), 100, fp );</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span></span></code><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">fclose ( fp );</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>   </span>return 0;</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><code><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> }</span></code></pre>
<pre style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></pre>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span style="text-decoration:none;"> </span></span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=10&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/manejo-de-archivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>
	</item>
		<item>
		<title>ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/algoritmos-de-ordenacion-y-busqueda/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/algoritmos-de-ordenacion-y-busqueda/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 06:04:43 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[Ordenacion y busqueda]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/algoritmos-de-ordenacion-y-busqueda/</guid>
		<description><![CDATA[ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA EN VECTORES. 1. Algoritmos de ordenación y búsqueda en vectores:             1.1 Ordenación de vectores:   Ordenar un vector se trata de reorganizar sus elementos según alguna relación de orden. El objetivo de la ordenación es que la información se pueda recuperar fácil y rápidamente (por ejemplo, en una base [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=9&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1 align="center"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA EN</span></span></h1>
<h1 align="center"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">VECTORES.</span></span></h1>
<h1><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">1. Algoritmos de ordenación y búsqueda en vectores:</span></span></h1>
<h1><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span>            </span>1.1 Ordenación de vectores:</span></span></h1>
<p class="MsoNormal" style="line-height:150%;"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span style="text-decoration:none;"> </span></span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Ordenar un vector se trata de reorganizar sus elementos según alguna relación de orden. El objetivo de la ordenación es que la información se pueda recuperar fácil y rápidamente (por ejemplo, en una base de datos grande). La ordenación es bastante usual en programación, existiendo varios métodos o algoritmos distintos de ordenación. Cuando se selecciona el método a usar, debe tenerse en cuenta la eficacia del mismo en dos aspectos: </span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">• En la memoria que utiliza </span></p>
<p class="MsoNormal" style="line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">• En el tiempo de ejecución</span></p>
<p class="MsoNormal" style="line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Si <em>N </em>es el número de elementos que se quiere ordenar, los buenos algoritmos de ordenación realizan del orden de <em>N</em>log 2 <em>N </em>operaciones. En esta práctica vamos a estudiar algunos algoritmos que realizan del orden de <em>N </em>2<span>   </span>operaciones. Son métodos directos, que son más cortos y fáciles de entender, de tal forma que si <em>N </em>es pequeño, son lo suficientemente eficaces.</span></p>
<p class="MsoNormal" style="line-height:150%;"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span></span></strong></p>
<p class="MsoNormal" style="text-indent:35.4pt;line-height:150%;"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">1.1.1 Algoritmo de intercambio directo (burbuja) </span></strong></p>
<p class="MsoNormal" style="line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Básicamente consiste en realizar varias iteraciones que llevan el elemento menor del vector hasta su posición. Se considera el vector dividido en dos partes la parte ordenada y la parte desordenada. Inicialmente, se considera que todo el vector está desordenado. Se detecta el elemento menor del vector y se lleva a la posición más a la izquierda posible, quedando por tanto colocado en su posición definitiva. El elemento que estaba en ese extremo de la izquierda se desplaza, junto con los demás, hacia la derecha, hasta llegar donde estaba el elemento menor. Este método también se conoce como “método de la <em>burbuja</em>” ya que si imaginamos el vector en posición vertical y considerando los elementos como burbujas con “pesos” en proporción a su valor, en cada pasada sobre el vector ascenderá hasta el nivel superior la “burbuja” de menor peso, desplazando a las demás hacia abajo. </span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span style="text-decoration:none;"> </span></span></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-indent:35.4pt;line-height:150%;"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">1.2 Algoritmos de búsqueda:</span></strong></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span> </span></span></strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"></span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';">Existen dos métodos básicos de búsqueda de un elemento en un vector: <em>lineal </em>y <em>binaria</em>. La búsqueda lineal ya se ha estudiado en Fundamentos de Informática, y en ella no hace falta que el vector esté ordenado. El algoritmo de búsqueda binaria requiere que el vector esté ordenado. Consiste en situarse en el elemento central del vector, comparando el elemento buscado con el elemento central. Si coincide, se ha terminado la búsqueda con éxito. Si el elemento a buscar es menor, rechazamos los elementos de la derecha, si es mayor, rechazaremos los elementos de la izquierda, y así<span>  </span>sucesivamente. El algoritmo puede expresarse en C como sigue, donde se supone que este código forma parte de una función que devuelve –1 si la variable <em>dato </em>no se encuentra en el vector, y el índice correspondiente en caso contrario. </span></p>
<p class="MsoNormal" style="text-align:justify;line-height:150%;"><span class="TEMA"><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"><span style="text-decoration:none;"> </span></span></span></p>
<p class="MsoNormal" style="text-align:center;line-height:150%;" align="center"><strong><span style="font-size:9pt;line-height:150%;font-family:'Verdana','sans-serif';"> </span></strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=9&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/algoritmos-de-ordenacion-y-busqueda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>
	</item>
		<item>
		<title>ARGUMENTOS Y PARÁMETROS DE LAS FUNCIONES</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/argumentos-y-parametros-de-las-funciones/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/argumentos-y-parametros-de-las-funciones/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 05:59:57 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[Argumentos]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/argumentos-y-parametros-de-las-funciones/</guid>
		<description><![CDATA[ARGUMENTOS Y PARÁMETROS DE LAS FUNCIONES Supongamos que en un determinado programa debemos calcular repetidamente el valor medio de dos variables, una solución razonable sería crear una función que realice dicho cálculo, y llamarla cada vez que se necesite. Para ello será necesario, en cada llamada, pasarle los valores de las variables para que calcule [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=8&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="border-color:0 0 windowtext;border-style:none none solid;border-width:medium medium 1.5pt;padding:0 0 1pt;">
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';color:#17365d;letter-spacing:0.25pt;">ARGUMENTOS Y PARÁMETROS DE LAS FUNCIONES</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';color:#17365d;letter-spacing:0.25pt;"><br />
</span><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Supongamos que en un determinado programa debemos calcular repetidamente el valor medio de dos variables, una solución razonable sería crear una función que realice dicho cálculo, y llamarla cada vez que se necesite. Para ello será necesario, en cada llamada, pasarle los valores de las variables para que calcule su valor medio. Esto se define en la declaración de la función especificando, no solo su valor de retorno sino también el tipo de argumentos que recibe:</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double valor_medio(double x, double y) ;</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">De esta declaración vemos que la función valor_medio recibe dos argumentos ( x e y ) del tipo double y devuelve un resultado de ese mismo tipo .</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Cuando definamos a la función en sí, deberemos incluir parámetros para que alberguen los valores recibidos, así escribiremos:</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double valor_medio(double x, double y )</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">return ( (x + y) / 2.0 )</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">NOTA:</span></strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> No es necesario que los NOMBRES de los párametros coincidan con los declarados previamente, es decir que hubiera sido equivalente escribir: double valor_medio(double a, double b) etc, sin embargo es una buena costumbre mantenerlos igual. En realidad en la declaración de la función, no es necesario incluir el nombre de los parámetros, bastaría con poner solo el tipo, sin embargo es práctica generalizada, explicitarlos a fin de hacer más legible al programa .<br />
Aquí estamos utilizando la síntaxis moderna del lenguaje C, pudiendose encontrar en versiones arcaicas, definiciones equivalentes como :</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double valor_medio()<span>      </span>ó<span>     </span>double valor_medio(double, double)</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double x;<span>                      </span>double x ;</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double y;<span>                      </span>double y ;</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">{<span>                               </span>{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">&#8230;&#8230;&#8230;&#8230;<span>                    </span>&#8230;&#8230;&#8230;&#8230;..</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Sin embargo es preferible utilizar la nomenclatura moderna, ya que esta facilita la rápida comprensión del programa .<br />
Veamos un ejemplo, para determinar el comportamiento de los parámetros, Supongamos desear un programa que calcule el valor medio de dos variables incrementadas en un valor fijo, es decir:</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">( ( x + incremento ) + ( y + incremento ) ) / 2.0</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Lo podríamos resolver de la siguiente forma :</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p style="border:1pt solid windowtext;padding:1pt 4pt;">
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">/* Declaración de la función y el tipo de sus parámetros */</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double valor_medio(double p_valor, double s_valor, double inc) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">main()</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double x, y, z, resultado ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;Ingrese el primer valor: &#8220;) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">scanf(&#8220;%lf&#8221;, &amp;x ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\nIngrese el segundo valor: &#8220;);</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">scanf(&#8220;%lf&#8221;, &amp;y ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\nIngrese el incremento<span>    </span>: &#8220;);</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">scanf(&#8220;%lf&#8221;, &amp;z) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">resultado = valor_medio( x, y, z );<span>     </span>/* llamada a la función y</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"><span>                                              </span>pasaje de argumentos<span>   </span>*/</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\n\nResultado de la operación: %lf&#8221;, resultado) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\n\nValor con que quedaron las variables: &#8220;) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\n Primer valor : %lf &#8220;, x ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\n Segundo valor: %lf &#8220;, y ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">printf(&#8220;\n Incremento<span>   </span>: %lf &#8220;, z ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">/* Definición de la función y sus parámetros */</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">double valor_medio( double p_valor, double s_valor, double inc )</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">p_valor<span>  </span>+= inc ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">s_valor += inc ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">return ( (p_valor + s_valor ) / 2.0 ) ;</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">} </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=8&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/argumentos-y-parametros-de-las-funciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>
	</item>
		<item>
		<title>VARIABLES GLOBALES Y LOCALES</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/variables-globales-y-locales/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/variables-globales-y-locales/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 04:07:03 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/variables-globales-y-locales/</guid>
		<description><![CDATA[VARIABLES GLOBALES Y LOCALES VARIABLES GLOBALES Hasta ahora hemos diferenciado a las variable segun su &#8220;tipo&#8221; (int, char double, etc), el cual se refería, en última instancia, a la cantidad de bytes que la conformaban. Veremos ahora que hay otra diferenciación de las mismas, de acuerdo a la clase de memoria en la que residen. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=7&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="border-color:0 0 #4f81bd;border-style:none none solid;border-width:medium medium 1pt;padding:0 0 4pt;">
<p class="MsoTitle"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">VARIABLES GLOBALES Y LOCALES</span></p>
<p class="MsoSubtitle"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">VARIABLES GLOBALES</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Hasta ahora hemos diferenciado a las variable segun su &#8220;tipo&#8221; (int, char double, etc), el cual se refería, en última instancia, a la cantidad de bytes que la conformaban. Veremos ahora que hay otra diferenciación de las mismas, de acuerdo a la clase de memoria en la que residen.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Si definimos una variable AFUERA de cualquier función (incluyendo esto a main() ), estaremos frente a lo denominado VARIABLE GLOBAL. Este tipo de variable será ubicada en el segmento de datos de la memoria utilizada por el programa, y existirá todo el tiempo que esté ejecutándose este.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Este tipo de variables son automáticamente inicializadas a CERO cuando el programa comienza a ejecutarse.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Son accesibles a todas las funciones que estén declaradas en el mismo, por lo que cualquiera de ellas podrá actuar sobre el valor de las mismas. </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Por ejemplo:</span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p style="border:1pt solid windowtext;padding:1pt 4pt;">
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">double una_funcion(void);</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">double variable_global ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">main()</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">double i ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf(&#8220;%f&#8221;, variable_global );<span>       </span><span>      </span>/* se imprimirá 0 */</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">i = una_funcion() ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf(&#8220;%f&#8221;, i );<span>                    </span><span>    </span><span>            </span><span> </span>/* se imprimirá 1 */</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf(&#8220;%f&#8221;, variable_global );<span>     </span><span>        </span><span>  </span>/* se imprimirá 1 */</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">variable_global += 1 ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf(&#8220;%f&#8221;, variable_global );<span>     </span><span>        </span><span>  </span>/* se imprimirá 2 */</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">return 0 ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">double una_funcion(void)</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:35.4pt;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">return( variable_global<span>  </span>+= 1) ;</span></p>
<p class="MsoNoSpacing" style="border:medium none;text-indent:1cm;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p style="border:1pt solid windowtext;margin-left:1cm;margin-right:0;padding:1pt;">
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">int y;</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span> </span>/* Global. Conocida tanto por main() como por MiFuncion() */<strong></strong></span></em></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"> </span></em></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">main ()</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">{</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>int x;</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                                               </span>/* Esta x es local a main () */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>y = 100;</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>x = 1;</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>printf (&#8220;x=%d, y=%d&#8221;, x, y)</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>        </span>/* Visualiza x=1, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>{</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                                                      </span>/* Comienza bloque */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>          </span>int x;</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                                           </span>/* Esta x es local al bloque */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>          </span>x = 2;</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>          </span>printf (&#8220;x=%d, y=%d&#8221;, x, y)</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>               </span>/* Visualiza x=2, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>          </span>MiFuncion ()</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                              </span>/* Visualiza x=3, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>          </span>printf (&#8220;x=%d, y=%d&#8221;, x, y)</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>               </span>/* Visualiza x=2, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>}</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                                                      </span>/* Fin del bloque */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>printf (&#8220;x=%d, y=%d&#8221;, x, y)</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>        </span>/* Visualiza x=1, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">}</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"> </span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">MiFuncion ()</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">{</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>int x;</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>                                               </span>/* Local a MiFuncion() */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>x = 3;</span></strong></p>
<p class="MsoNormal" style="border:medium none;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>     </span>printf (&#8220;x=%d, y=%d&#8221;, x, y)</span></strong><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"><span>        </span>/* Visualiza x=3, y=100 */</span></em><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></strong></p>
<p class="MsoNormal" style="border:medium none;margin-bottom:2.7pt;padding:0;"><strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;">}</span></strong><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';letter-spacing:-0.15pt;"></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Observemos que la variable_global está definida afuera de las funciones del programa, incluyendo al main(), por lo que le pertenece a TODAS ellas. En el primer printf() del programa principal se la imprime, demostrandose que está automaticamente inicializada a cero .</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Luego es incrementada por una_funcion() que devuelve ademas una copia de su valor, el cual es asignado a i ,la que, si es impresa mostrará un valor de uno, pero tambien la variable_global ha quedado modificada, como lo demuestra la ejecución de la sentencia siguiente. Luego main() tambien modifica su valor , lo cual es demostrado por el printf() siguiente.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Esto nos permite deducir que dicha variable es de uso público, sin que haga falta que ninguna función la declare, para actuar sobre ella.</span></p>
<p class="MsoNormal" style="text-align:justify;"><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';color:#4f81bd;letter-spacing:0.75pt;">VARIABLES LOCALES</span></em></p>
<p class="MsoNormal" style="text-align:justify;"><em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';color:#4f81bd;letter-spacing:0.75pt;"><br />
</span></em><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">A diferencia de las anteriores, las variables definidas DENTRO de una función, son denominadas VARIABLES LOCALES a la misma, a veces se las denomina también como AUTOMÁTICAS, ya que son creadas y destruidas automáticamente por la llamada y el retorno de una función, .</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">respectivamente.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Estas variables se ubican en la pila dinámica (stack) de memoria , destinándosele un espacio en la misma cuando se las define dentro de una función, y borrándose cuando la misma devuelve el control del programa, a quien la haya invocado. </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;line-height:115%;font-family:'Verdana','sans-serif';">Este método permite que, aunque se haya definido un gran número de variables en un programa, estas no ocupen memoria simultáneamente en el tiempo, y solo vayan incrementando el stack cuando se las necesita, para luego, una vez usadas desaparecer, dejando al stack en su estado original.<br />
El identificador ó nombre que se la haya dado a una variable es sólo relevante entonces, para la función que la haya definido, pudiendo existir entonces variables que tengan el mismo nombre, pero definidas en funciones distintas, sin que haya peligro alguno de confusión .<br />
La ubicación de estas variables locales, se crea en el momento de correr el programa, por lo que no poseen una dirección prefijada, esto impide que el compilador las pueda inicializar previamente. Recuérdese entonces que, si no se las inicializa expresamente en el momento de su definición, su valor será indeterminado (basura).</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=7&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/variables-globales-y-locales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>
	</item>
		<item>
		<title>Creación de funciones definidad por el usuario</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funciones-definidad-por-el-usuario/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funciones-definidad-por-el-usuario/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 02:56:53 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funciones-definidad-por-el-usuario/</guid>
		<description><![CDATA[Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que siempre tienen que devolver algún valor. Las dos principales diferencias entre procedimientos y funciones son: Las funciones siempre devuelven un valor al programa que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=6&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que siempre tienen que devolver algún valor. </span></p>
<p><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Las dos principales diferencias entre <a href="http://teleformacion.edu.aytolacoruna.es/PASCAL/document/modular.htm#procedimientos#procedimientos">procedimientos</a> y <span>funciones</span> son:</span></p>
<ul>
<li class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Las funciones siempre devuelven      un valor al programa que las invocó. </span></li>
<li class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Para llamar a un procedimiento      se escribe su nombre en el cuerpo del programa, y si los necesita, se      incluyen los parámetros entre paréntesis. Para invocar una función es      necesario hacerlo en una expresión. </span></li>
</ul>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Las funciones de usuario vienen definidas por un nombre, seguidas de dos paréntesis <strong>()</strong> entre los que puede haber o no argumentos. Los argumentos son valores que se le pasan a la función cuando se llama.</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Un ejemplo de una función sin argumentos:<strong><span style="color:black;"></span></strong></span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">main ()</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nEste mensaje lo muestra la función main()&#8221;);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">MiFuncion ();</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">/* Definición de la función MiFuncion() */</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">MiFuncion ()</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nEste otro lo muestra MiFuncion()&#8221;);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">En este ejemplo se utiliza la función MiFuncion() para mostrar en pantalla una frase. Como se ve, MiFuncion() se invoca igual que printf() o scanf(), es decir, simplemente se escribe el nombre de la función y los paréntesis. La definición de MiFuncion() tiene el mismo aspecto que main<strong>()</strong>: el nombre de la función con los paréntesis y, seguidamente, el cuerpo de la función encerrado entre llaves.</span><span style="font-size:9pt;font-family:'Verdana','sans-serif';"></span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Un ejemplo de una función con argumentos. El programa visualiza el cuadrado de un número entero por medio de una función que recibe dicho número como argumento.</span></p>
<p class="MsoNormal" style="margin-left:18pt;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">main ()</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">int num;</span></p>
<p class="MsoNormal" style="margin-left:18pt;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nTeclee un número entero: &#8220;);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">scanf (&#8220;%d&#8221;, &amp;num);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">cuadrado (num);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal" style="margin-left:18pt;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">/* Definición de la función cuadrado() */</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">cuadrado (int x)</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nEl cuadrado de %d es %d\n&#8221;, x, x * x);</span></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Es la declaración de la función <strong>cuadrado()</strong>. Dentro de los paréntesis se pone la variable que recibirá el valor pasado a <strong>cuadrado()</strong> y de qué tipo es. Así, si se teclea el valor <strong>6</strong>, se almacena en <strong>num</strong> y al hacer la llamada <strong>cuadrado (num),</strong> la variable <strong>num</strong> se copia en la variable <strong>x</strong>, que es con la que trabaja internamente la función <strong>cuadrado()</strong>.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Es importante mantener claros dos términos:</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;vertical-align:baseline;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:'Verdana','sans-serif';"><span>1.<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">    </span></span></span><!--[endif]--><span style="font-size:9pt;font-family:'Verdana','sans-serif';">El término <strong>Argumento</strong> se refiere a la variable usada al llamar la función.</span></p>
<p class="MsoNormal" style="margin-left:36pt;text-align:justify;text-indent:-18pt;vertical-align:baseline;"><!--[if !supportLists]--><span style="font-size:9pt;font-family:'Verdana','sans-serif';"><span>2.<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">    </span></span></span><!--[endif]--><span style="font-size:9pt;font-family:'Verdana','sans-serif';">El término <strong>Parámetro Formal</strong> se refiere a la variable de una función que recibe el valor de los argumentos.</span></p>
<p class="MsoNormal" style="text-align:justify;vertical-align:baseline;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">También es importante tener claro que la copia de variables se hace sólo en una dirección: del argumento al parámetro formal. Cualquier modificación del parámetro formal realizado dentro de la función no tiene ninguna influencia en el argumento.</span></p>
<p class="MsoNormal" style="border:medium none;text-align:justify;padding:0;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Hay que tener en cuenta es que el tipo de argumento que se utiliza para llamar a una función debe ser el mismo que el del parámetro formal que recibe el valor. Así, no debe llamarse a la función cuadrado con un argumento de tipo float.</span></p>
<p class="MsoNormal" style="border:medium none;text-align:justify;padding:0;"> <img src="http://decacross.com/cmas/imagen/funciones.JPG" align="middle" border="1" height="222" width="451" /></p>
<p class="MsoNormal" style="border:medium none;text-align:justify;padding:0;">&nbsp;</p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">Un ejemplo que utiliza una función que devuelve un valor. El siguiente programa lee dos números enteros del teclado y muestra su producto en pantalla. Para el cálculo se usa una función que recibe los dos números y devuelve el producto de ambos.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">main ()</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">int a, b, producto;</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nTeclee dos números enteros: &#8220;);</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">scanf (&#8220;%d %d&#8221;, &amp;a, &amp;b);</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">producto = multiplica (a, b);</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">printf (&#8220;\nEl resultado es %d&#8221;, producto);</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">/* Definición de la función multiplica() */</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">multiplica (int x, int y)</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">{</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';"><span>                   </span>return (x * y);</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:9pt;font-family:'Verdana','sans-serif';">}</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=6&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funciones-definidad-por-el-usuario/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>

		<media:content url="http://decacross.com/cmas/imagen/funciones.JPG" medium="image" />
	</item>
		<item>
		<title>Arreglos bidimensionales (matrices)</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/10/01/arreglos-bidimensionales-matrices/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/10/01/arreglos-bidimensionales-matrices/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 01:55:54 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/10/01/arreglos-bidimensionales-matrices/</guid>
		<description><![CDATA[Es un arreglo de dos dimensiones. Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas. ü Declaración: Tipo_dato nombre_matriz [índice fila] [índice [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=5&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">Es un arreglo de dos dimensiones.</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre.</span><span style="font-family:'Verdana','sans-serif';"> </span><span style="font-family:'Verdana','sans-serif';">Se usan para representar datos que pueden verse como una tabla con filas y columnas.</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';"> </span></p>
<p style="text-align:justify;text-indent:-18pt;margin:0 0 0.0001pt 36pt;"><!--[if !supportLists]--><span style="font-family:Wingdings;"><span>ü<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">  </span></span></span><!--[endif]--><span style="font-family:'Verdana','sans-serif';">Declaración:</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';"> </span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">Tipo_dato<span>    </span>nombre_matriz<span>    </span><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">[índice fila]</span></span><span class="pcomentario1"><span style="font-family:'Verdana','sans-serif';"> </span></span><span> </span><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">[índice columna]</span></span><span>  </span><span class="pcodigo1"><strong><span style="font-family:'Verdana','sans-serif';color:windowtext;"></span></strong></span></span></p>
<p style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span class="pcomentario1"><span style="font-family:Wingdings;"><span>ü<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">  </span></span></span></span><!--[endif]--><span class="pcomentario1"><span style="font-family:'Verdana','sans-serif';">Uso:</span></span></p>
<p style="text-align:justify;"><span class="pcomentario1"><span style="font-family:'Verdana','sans-serif';">Nombre_matriz<span>    </span></span></span><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">[subíndice1]</span></span><span style="font-family:'Verdana','sans-serif';"> <span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">[subíndice2]</span></span></span></p>
<p style="text-align:justify;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int matriz [2][2]</span></span></p>
<p style="text-align:justify;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">char mapa [100][100]</span></span></p>
<p style="text-align:justify;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int certamen [60][4]</span></span></p>
<p style="text-align:justify;"><span class="pcomentario1"><span style="font-family:'Verdana','sans-serif';">Declara una matriz de 3 filas por 4 columnas:</span></span><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;"></span></span></p>
<p style="text-align:justify;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int matriz [3][4]; </span></span></p>
<p style="margin-left:36pt;text-align:justify;text-indent:-18pt;"><!--[if !supportLists]--><span class="pcodigo1"><span style="font-family:Wingdings;color:windowtext;"><span>ü<span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;">  </span></span></span></span><!--[endif]--><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">Declaración e iniciación:</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int matriz [2][2]={1,2,3,4</span></span><span style="font-family:'Verdana','sans-serif';">}</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';"> </span></p>
<table class="MsoTableGrid" style="border:medium none;border-collapse:collapse;" border="1" cellpadding="0" cellspacing="0">
<tr style="height:16.6pt;">
<td style="border:1pt solid windowtext;width:63.2pt;height:16.6pt;padding:0 5.4pt;" valign="top" width="84">
<p style="text-align:center;margin:0 0 0.0001pt;" align="center"><span style="font-family:'Verdana','sans-serif';">1</span></p>
</td>
<td style="width:63.2pt;height:16.6pt;border-color:windowtext windowtext windowtext #000000;border-style:solid solid solid none;border-width:1pt 1pt 1pt medium;padding:0 5.4pt;" valign="top" width="84">
<p style="text-align:center;margin:0 0 0.0001pt;" align="center"><span style="font-family:'Verdana','sans-serif';">2</span></p>
</td>
</tr>
</table>
<p style="text-align:justify;"><span style="font-family:'Verdana','sans-serif';">Para referenciar un elemento de la matriz, debe darse un nombre de la matriz y el índice de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los índices de las matrices tanto de las filas como de las columnas empiezan en 0 y terminan en tamaño fila-1 y tamaño columna-1 respectivamente.</span></p>
<p style="text-align:justify;"><span style="font-family:'Verdana','sans-serif';"> </span></p>
<p class="estilo23"><span class="estilo401"><span style="font-size:10pt;font-family:'Verdana','sans-serif';">A las matrices se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:</span></span><span style="font-size:10pt;font-family:'Verdana','sans-serif';"></span></p>
<ul>
<li class="MsoNormal"><span style="font-size:10pt;font-family:'Verdana','sans-serif';">Si el tipo del arreglo es <strong><span style="font-family:'Verdana','sans-serif';">numérico,</span></strong> a sus      elementos se les asigna el valor <strong><span style="font-family:'Verdana','sans-serif';">cero</span></strong>.      </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:'Verdana','sans-serif';">Si el tipo del arreglo es <strong><span style="font-family:'Verdana','sans-serif';">char</span></strong>, a sus      elementos se les asigna el valor<strong><span style="font-family:'Verdana','sans-serif';">      &#8216;\u0000&#8242;</span></strong>. </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:'Verdana','sans-serif';">Si el tipo del arreglo es <strong><span style="font-family:'Verdana','sans-serif';">bool</span></strong>, a sus      elementos se les asigna el valor <strong><span style="font-family:'Verdana','sans-serif';">false</span></strong>.      </span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:'Verdana','sans-serif';">Si el tipo del arreglo es una <strong><span style="font-family:'Verdana','sans-serif';">clase</span></strong>, a sus      elementos se les asigna el valor<strong><span style="font-family:'Verdana','sans-serif';">      null</span></strong>. </span></li>
</ul>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">Ejemplo:</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">#include &lt;stdio.h&gt;</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">int main()</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">{</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int fila, columna;</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">int matriz</span></span><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">[2][2];</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">for(fila=0; fila&lt;2; fila++)</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">for(columna=0; columna&lt;2; columna++)</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">printf(“%d”, matriz[fila][columna]);</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span class="pcodigo1"><span style="font-family:'Verdana','sans-serif';color:windowtext;">return 0;</span></span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><span style="font-family:'Verdana','sans-serif';">}</span></p>
<p style="text-align:justify;margin:0 0 0.0001pt;">&nbsp;</p>
<p style="text-align:justify;margin:0 0 0.0001pt;">Ejercicios</p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><a href="http://decacross.com/cmas/ejemplos/bidimensionales1.zip">EJEMPLO 1</a></p>
<p style="text-align:justify;margin:0 0 0.0001pt;"><a href="http://decacross.com/cmas/ejemplos/bidimensionales2.zip">EJMEPLO 2 </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=5&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/10/01/arreglos-bidimensionales-matrices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>
	</item>
		<item>
		<title>Arreglos unidimensionales</title>
		<link>http://lenguajecmasmas.wordpress.com/2007/09/30/arreglos-unidimensionales/</link>
		<comments>http://lenguajecmasmas.wordpress.com/2007/09/30/arreglos-unidimensionales/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 03:14:22 +0000</pubDate>
		<dc:creator>decacross</dc:creator>
				<category><![CDATA[Arrayas]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[universidad evangelica]]></category>

		<guid isPermaLink="false">http://lenguajecmasmas.wordpress.com/2007/09/30/arreglos-unidimensionales/</guid>
		<description><![CDATA[Bienvenido a continuación aprenderemos juntos un poco mas del lenguaje c++, recuerda que nos basamos en el compilador DEV-C++, en esta ocasión aprenderemos de los arreglos.. comenzaremos por los arreglos Unidimensionales En programación, un vector, array, arreglo o alineación es un conjunto o agrupación de variables del mismo tipo cuyo acceso se realiza por índices. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=3&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> Bienvenido a continuación aprenderemos juntos un poco mas del lenguaje c++, recuerda que nos basamos en el compilador DEV-C++, en esta ocasión aprenderemos de los arreglos.. comenzaremos por los arreglos Unidimensionales</p>
<p>En <a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n" title="Programación">programación</a>, un <strong>vector</strong>, <strong>array</strong>, <strong>arreglo</strong> o <strong>alineación</strong> es un conjunto o agrupación de variables del mismo tipo cuyo acceso se realiza por índices.</p>
<p style="text-align:center;"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/328px-Array1.svg.png" alt="Un arreglo unidimensional de 10 elementos" border="1" height="56" width="328" /></p>
<p style="text-align:center;">Los arreglos permiten agrupar datos usando un mismo identificador. Todos los elementos de un arreglo son del mismo tipo, y para acceder a cada elemento se usan subíndices. En el siguiente capítulo se presentan los arreglos y las cadenas. Las cadenas se consideran como un arreglo de tipo char.</p>
<p style="text-align:center;">ejemplo de esto seria</p>
<p style="text-align:center;">Vector [ tamaño ]</p>
<p style="text-align:center;"> A los arreglos unidimensionales se les llama vectores, se puede decir que son un grupo de variables que se relacionan por un nombre en común, un arreglo consta  de una posición de memoria contigua,es decir un orden de menor a mayor, así podemos afirmar que la mas baja corresponde al primero y la mayor al ultimo, para acceder a una sección de un arreglo en especifico se utiliza el indice, a continuación mostramos un ejemplo:</p>
<p style="text-align:center;">aplicado en c++</p>
<p style="text-align:center;">int can[9]   //un vector llamado can con diez de tamaño</p>
<p style="text-align:center;">el vector o arreglo unidimensional llamado can(cantidad)  tiene cantidad diez porque se inicia en 0 y es tomado en cuenta-</p>
<p style="text-align:center;">es decir un arreglo con diez elementos enteros de así desde can[0]-can[9]</p>
<p style="text-align:center;">La forma por la cual pueden ser accesados es la siguiente:*en este caso aportaremos una cantidad a un elemento de la lista &#8220;can&#8221;</p>
<p style="text-align:center;">ca[5]= 15</p>
<p style="text-align:center;">¡para ser claros!  un ejemplo sencillo aplicado a la vida cotidiana, supongamos que tenemos diez niños( 0-9) y a cada uno le daremos cierta cantidad de dinero..(daremos un valor)  y si decimos. el niño numero 5 (can[5]) tendrá $15* en nuestro ejemplo seria niño[5]=15*</p>
<p style="text-align:center;">también podemos guardar en una variable el contenido de un elemento</p>
<p style="text-align:center;">así  cantidad=can[5] tomando en cuenta lo anterior podemos decir que cantidad=15</p>
<p style="text-align:center;">Los arreglos o arrays corresponden a la &#8220;Estructura de Datos estáticas&#8221;: son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa.</p>
<p style="text-align:center;">&nbsp;</p>
<p class="parrafo"><span style="font-size:14pt;font-family:'Times New Roman','serif';font-weight:normal;">En lenguaje C/C++ es posible inicializar un arreglo con una lista de valores, de la siguiente forma:</span></p>
<p class="pcodigo"><span style="font-size:14pt;font-family:'Times New Roman','serif';color:windowtext;">int Vector[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};<span class="pcodigo1"><span style="font-family:'Times New Roman','serif';color:windowtext;"></span></span></span></p>
<p class="estilo23"><span class="estilo401"><span style="font-size:14pt;font-family:'Times New Roman','serif';">A los vectores se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:</span></span><span style="font-size:14pt;font-family:'Times New Roman','serif';"></span></p>
<p><span style="font-size:14pt;">Si el tipo del arreglo es numérico, a sus      elementos se les asigna el valor cero. </span><br />
<span style="font-size:14pt;">Si el tipo del arreglo es char, a sus elementos      se les asigna el valor &#8216;\u0000&#8242;. </span><br />
<span style="font-size:14pt;">Si el tipo del arreglo es bool, a sus elementos      se les asigna el valor false. </span><br />
<span style="font-size:14pt;">Si el tipo del arreglo es una clase, a sus      elementos se les asigna el valor null.</span><strong><span style="font-size:14pt;"> </span></strong></p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;"> Download</p>
<p style="text-align:center;">Baja ejercicios-  <a href="http://decacross.com/cmas/ejemplos/ejercicio1.zip">ejercicio 1</a></p>
<p style="text-align:center;" align="center">                             <a href="http://decacross.com/cmas/ejemplos/ejercicio2.zip" title="Bajar">ejercicio 2</a></p>
<p style="text-align:center;">&nbsp;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/lenguajecmasmas.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/lenguajecmasmas.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lenguajecmasmas.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lenguajecmasmas.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lenguajecmasmas.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lenguajecmasmas.wordpress.com&amp;blog=1814423&amp;post=3&amp;subd=lenguajecmasmas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lenguajecmasmas.wordpress.com/2007/09/30/arreglos-unidimensionales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/860f902bc76f7f6824ac2d3a9b345422?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">decacross</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/328px-Array1.svg.png" medium="image">
			<media:title type="html">Un arreglo unidimensional de 10 elementos</media:title>
		</media:content>
	</item>
	</channel>
</rss>
