<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-6689817991103114953</atom:id><lastBuildDate>Fri, 25 Dec 2009 17:57:44 +0000</lastBuildDate><title>INFORMATICA PARA TODOS</title><description></description><link>http://informaticaeninternet.blogspot.com/</link><managingEditor>noreply@blogger.com (cristobal)</managingEditor><generator>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-1997236343995919957</guid><pubDate>Mon, 18 May 2009 11:13:00 +0000</pubDate><atom:updated>2009-05-18T04:24:21.291-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>funciones en C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C. FUNCIONES DE BIBLIOTECA.</title><description>C ofrece un conjunto de funciones estándar que dan soporte a las operaciones que se realizan con más frecuencia. Estas funciones están agrupadas en bibliotecas. Para utilizar cualquiera de las funciones que forman parte de C, solo hace falta realizar una llamada a esa función.&lt;br /&gt;     Las funciones que forman parte de la biblioteca estándar de C, funciones estándar o predefinidas, están divididas en grupos. Todas las funciones que pertenecen a un mismo grupo se definen en el mismo fichero de cabecera.&lt;br /&gt;     Cuando deseamos utilizar cualquiera de las funciones estandar de C, primero debemos usar la directiva de precompilación #include para incluir los ficheros cabecera en nuestro programa. Por otra parte, antes de utilizar una función, primero debemos conocer las características de dicha función, es decir, el número y tipo de datos de sus argumentos y el tipo de valor que devuelve. Esta información es proporcionada por los prototipos de función.&lt;br /&gt;     Los grupos de funciones estándar más comunes son:&lt;br /&gt;     - entrada/ salida estándar.&lt;br /&gt;     - matemáticas.&lt;br /&gt;     - de conversión.&lt;br /&gt;     - diagnóstico.&lt;br /&gt;     - de manipulación de memoria.&lt;br /&gt;     - control de procesos.&lt;br /&gt;     - ordenación.&lt;br /&gt;     - directorios.&lt;br /&gt;     - fecha y hora.&lt;br /&gt;     - búsqueda.&lt;br /&gt;     - manipulación de cadenas.&lt;br /&gt;     - gráficos.&lt;br /&gt;     Podemos incluir tantos ficheros de cabecera como nos haga falta, incluyendo los ficheros de cabecera que hemos creado y donde hemos definido nuestras funciones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-1997236343995919957?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/05/curso-funciones-en-c-funciones-de.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-6884945225285093702</guid><pubDate>Wed, 13 May 2009 09:06:00 +0000</pubDate><atom:updated>2009-05-13T02:12:14.663-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>funciones en C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C. RECURSIVIDAD. ( 3º PARTE)</title><description>En muchas ocasiones, la resolución de un problema mediante un afuncion recursiva resulta conceptualmente más clara que la resolución mediante una función interactiva. Tal es el caso de algunas estructuras de datos como los árboles binarios, cuyo manejo es sencillo mediante una función recursiva. Sin embargo, la función interactiva resulta mucho más compleja. Es evidente que hay tareas que se pueden resolver mediante funciones recursivas o funciones interactivas, aunque es el programador el que tiene que optar por una solución u otra.&lt;br /&gt;&lt;br /&gt;Autor: "Fundamentos de programación" de J.M.Molina y F.Chamorro, ed.McGraw-Hill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-6884945225285093702?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/05/curso-funciones-en-c-recursividad-3.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-6600209973177273765</guid><pubDate>Fri, 01 May 2009 14:29:00 +0000</pubDate><atom:updated>2009-05-13T02:06:12.989-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C.  RECURSIVIDAD ( 2º PARTE)</title><description>En la función, en el caso de que el argumento utilizado en la llamada sea 1, ésta devuelve 1, y en caso contrario se calcula un producto que involucra a la variable número y una nueva llamada a la función cuyo argumento es menor en una unidad (número -1).&lt;br /&gt;    El funcionamiento de una función recursiva se realiza almacenando las llamadas pendientes, con sus argumentos, en la pila en tiempo de ejecución.&lt;br /&gt;Autor: Curso Fundamentos de programación de J.M.Molina y F.Chamorro , ed. McGraw-Hill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-6600209973177273765?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/05/curso-funciones-en-c-recursividad-2.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-213828356473825931</guid><pubDate>Tue, 28 Apr 2009 16:23:00 +0000</pubDate><atom:updated>2009-04-28T09:31:32.235-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C. RECURSIVIDAD  ( 1º PARTE)</title><description>Las funciones en C pueden ser recursivas, en otras palabras, pueden llamarse a si mismas directa o inidrectamente. La recursividad directa es el proceso mediante el que una función se llama a si misma desde el propio cuerpo de la función, mientras que la recursividad indirecta implica más de una función.&lt;br /&gt;     Un proceso recursivo tiene que tenr una condicion de finalización, ya que de lo contrario podria continuar infinitamente.&lt;br /&gt;     Un ejemplo típico de aplicación de la recursividad es el cálculo del factorial de un número entero.&lt;br /&gt;     Autor: Fundamentos de Programación de J.M.Molina y F.Chamorro. Ed. McGrill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-213828356473825931?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/04/curso-funciones-en-c-recursividad-1.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-5197974998452277921</guid><pubDate>Thu, 16 Apr 2009 17:47:00 +0000</pubDate><atom:updated>2009-04-16T11:05:06.868-07:00</atom:updated><title>CURSO FUNCIONES EN C. PASO DE ARGUMENTOS Y PUNTEROS (CUARTA PARTE)</title><description>Si a continuación asignamos un valor a la variable dato, éste se almacenaría en la dirección de memoria bffff120. En el caso de puntero, si le asignamos un  contenido (la dirección de la variable dato), la dirección en memoria de la variabl e dato se almacenaría en la dirección 0012fed4. Supongamos que realizamos las sigguientes asignaciones:&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_Bold" title="Negrita" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 3);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Negrita" class="gl_bold" border="0" /&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;dato&lt;span style="font-weight: bold;"&gt;= 99&lt;br /&gt;puntero = &amp;dato;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Debemos &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;re&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;cordar que mediante el operador &amp;amp; obtenemos la dirección de una variable.&lt;br /&gt;&lt;br /&gt;     Una vez realizada la asignación anterior,disponemos de dos maneras de acceder al contenido de la variable dato. La primera forma de acceder es mediante el nombre de la variable y la segunda mediante el puntero que apunta a dicha variable. Para acceder a la variable dato mediante puntero, se utiliza el operador *.&lt;br /&gt;     Una utilidad del paso de argumentos por referencia  se relaciona con la devolución de valores  desde una función. Como ya sabemos, en C una función solo puede devolver un único valor. Sin embargo, a menudo se hace necesario que una función devuelva más de un valor, y aquí es donde podemos utilizar el paso de argumentos por referencia.&lt;br /&gt;     Además, la utilización del paso de argumentos por referencia nos permite ahorrar tiempo y espacio. En el caso que deseáramos pasar algo a una función cuyo tamaño sea grande, por ejemplo una estructura, seria conveniente pasarla por referencia, ya que si lo hacemos por valor, se tiene que realizar una copia de la misma y colocarla en la pila, lo que implica consumo de tiempo y espacio.&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;utor: Fundamentos de programación, de J.M.Molina y F.Chamorro, ed. McGraw-Hill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-5197974998452277921?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/04/curso-funciones-en-c-paso-de-argumentos.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-1592480407908836846</guid><pubDate>Thu, 09 Apr 2009 11:54:00 +0000</pubDate><atom:updated>2009-04-16T10:40:29.117-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><title>CURSO FUNCIONES EN C. PASO DE ARGUMENTOS Y PUNTEROS (TERCERA PARTE)</title><description>Como se puede observar el valor de i ha cambiado puesto que la función &lt;span style="font-style: italic;"&gt;modificar&lt;/span&gt;  ha utilizado la dirección de memoria de esta variable en la sentencia de asignación * variable = 9. Analicemos detenidamente este ejemplo. Lo primero que tenemos que tener en cuenta es la premisa de que en C todos los argumentos se pasan por valor sigue siendo cierta. Lo que sucede es que en este caso estamos pasando el valor  de la dirección de memoria de la variable i y no el valor de su contenido. Para pasar la dirección de memoria de una variable se utiliza el operador &amp;amp;. Al finalizar la función, el valor ded dicha dirección permanece igual y lo que se ha modificado es el contenido de esa dirección de memoria. Dentro de la función se utilizan los punteros para tabajar con las direcciones de memoria (*&lt;span style="font-style: italic;"&gt;variable).&lt;br /&gt;   &lt;/span&gt;Dado que el paso de argumentos por referencia es común en C, conviene que en este punto ampliemos el concepto de puntero.&lt;br /&gt;   Consideremos las siguientes declaraciones:&lt;br /&gt;&lt;br /&gt;   &lt;span style="font-weight: bold;"&gt;int dato;&lt;br /&gt;   int * puntero;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;La primera de las declaraciones reserva memoria para almacenar una variable de tipo entero (&lt;span style="font-style: italic;"&gt;int) &lt;/span&gt;mientras que la segunda declaración reseva memoria para almacenar una dirección. A pesar de que apuna a una variable de tipo entero, lo que se va a almacenar es una dirección. Como en el fundo un puntero puede apuntar a cualquier cosa., C permite la declaración de punteros tipo void. Supongamos que el compilador reserva la dirección en hexadecimal bffff120 para la variable dato y la dirección en hexadecimal 0012fed4 para el puntero.&lt;br /&gt;   Autor: Fundamentos de Programación, de J.M.Molina y F.Chamorro ed.McGraw Hill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-1592480407908836846?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/04/curso-funciones-en-c-paso-de-arguimento.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-2386339747867964504</guid><pubDate>Fri, 27 Mar 2009 18:43:00 +0000</pubDate><atom:updated>2009-03-27T11:54:02.796-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. PASO DE ARGUMENTOS Y PUNTEROS . 2' PARTE</title><description>Como ya hemos visto, cuando se pasa un argumento por valor, realmente se pasa una copia de&lt;br /&gt;éste, y si esta copia se modifica el argumento general no se ve modificado. Sin embargo, em muchas ocasiones lo que queremos es que una función cambie los valores del los argumentos que le pasamos. Para lograrlo se utiliza lo que se conoce como paso de argumentos por referencia. En estos casos, no se pasa una copia del argumento, sino el argumento mismo.&lt;br /&gt;     Cuando realizamos un paso de argumentos por referencia en C, realmente lo que estamos pasando son direcciones de memoria. En otras palabras, lo que le pasamos a la función son las direcciones de memoria de los argumentos. Esta operación se logra mediante la utilización de punteros. De este modo,cuando llamamos a una función, lo que realmente le pasamos son punteros a los argumentos que deseamos modificar.&lt;br /&gt;&lt;br /&gt;Autor:" Fundamentos de programación" de autor J.M.Molina y F.Chamorro, Ed.McGraw Hill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-2386339747867964504?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-paso-de-argumentos_27.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-511871935880814259</guid><pubDate>Thu, 19 Mar 2009 17:28:00 +0000</pubDate><atom:updated>2009-03-19T10:34:59.829-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. PASO DE ARGUMENTOS Y PUNTEROS ( 1º PARTE)</title><description>En C todos los argumentos que se pasan a una función se pasan pon valor. En otras palabras, se pasa una copia del valor del argumento y no el argumento en sí (por ello, este procedimiento se conoce en algunas ocasiones como paso por copia). Al pasar una copia del argumento original a la función, cualquier modificación que se realice sobre esta copia no tendrá efecto sobre el argumento original utilizado en la llamada de la función. Se puede considerar un argumento pasado por valor como una variable local de la función a la que se ha pasado, de tal modo que los cambios que los cambios que se realicen sobre ésta tendrán efecto sólo dentro de la función.&lt;br /&gt;     Dado que lo que se pasa a la función modificar es una copia de la variable i, el valor de esta función en la función main no se ve alterado cuando dentro de la función modificar se cambia el valor de la variable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-511871935880814259?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-paso-de-argumentos.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-4497282609553879004</guid><pubDate>Thu, 12 Mar 2009 18:43:00 +0000</pubDate><atom:updated>2009-03-12T12:00:47.316-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. VARIABLES DE REGISTRO.</title><description>Cuando declaremos una función como variable de registro, le estamos diciendo al compilador que queremos que la variable se almacene en un lugar de rápido acceso, generalmente en los registros de la unidad central de procesamiento del ordenador.&lt;br /&gt;     Para declarar una variable como variable de registro, debemos colocar la palabra reservada &lt;span style="font-style: italic;"&gt;register&lt;/span&gt; antes de la cdeclaración de la variable. Veamos algunos ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;register int contador:&lt;br /&gt;register char a ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    S&lt;/span&gt;&lt;/span&gt;ólo se pueden declarar variables como &lt;span style="font-style: italic;"&gt;register&lt;/span&gt; si son variables automáticas (locales) o argumentos formales de una función.&lt;br /&gt;     Cuando se utiliza una variable de tipo &lt;span style="font-style: italic;"&gt;register&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;, &lt;/span&gt;no está garantizado&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;q&lt;/span&gt;&lt;/span&gt;ue sun valor se almacene en un registro. Para que el valor de dicha variable se almacene en un registro, debe haber alguno disponible, de lo contrario C ignora el calificador &lt;span style="font-style: italic;"&gt;register&lt;/span&gt; y crea la variable localmente.&lt;br /&gt;     Debido a restricciones de hardware, existen ciertas limitaciones al utilizar variables &lt;span style="font-style: italic;"&gt;register. &lt;/span&gt;Por esta razón, sólo un número determinado de variables puede declararse como &lt;span style="font-style: italic;"&gt;register&lt;/span&gt; dentro de una función.&lt;br /&gt;     También existen limitaciones en cuanto al tipo de las variables. Es el compilador el que se encarga de ignorar el calificador &lt;span style="font-style: italic;"&gt;register&lt;/span&gt; si existe un número excesivo de declaraciones o los tipos utilizados no están permitidos.&lt;br /&gt;     Autor: Fundamentos de programación. J.M.Molina y F.Chamorro. Ed. McGraw Hill&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-4497282609553879004?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-variables-de.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-3277211830217220660</guid><pubDate>Mon, 09 Mar 2009 16:40:00 +0000</pubDate><atom:updated>2009-03-12T11:43:02.761-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. VARIABLES ESTÁTICAS ( 2º PARTE).</title><description>Como hemo visto, el valor de la variable contador se mantiene de una llamada a la otra de la función&lt;em&gt; imprimeValor. &lt;/em&gt;Esto quiere decir que las variables locales estáticas proporcionan un medio privado de almanamiento permanente en una función.&lt;br /&gt;   Por otro lado la aplicación del calificador &lt;em&gt;static &lt;/em&gt;a variables locales hace que a éstas solo se pueda acceder desde el fichero fuente donde se definieron y no desde ningún otro fichero fuente. Por ejemplo, si definimos las variaables globales tiempo y reloj en el siguiente fihero fuente:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;static int tiempo;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;static in reloj ;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;main ();&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;                   ...&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;void función1() ;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;                    ...&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;cualquier otra función que forme parte de a aplicación y que no forme parte de este fichero fuente no podrá tener acceso a tiempo ni a reloj. Es más, se puden utilizar lo mismos nombres para definir variables en funciones en otros ficheros sin ningún tipo de problema.&lt;br /&gt;    Al igual que las variables locales, las funciones son objetos externos cuyos nombres, generalmente, se desea que se conozcan de manera global. Sin embargo, en algunas situaciones resulta deseable limitar ese acceso al fichero en el que se declara la función. En estos casos, se utiliza la palabra reservada static y su mecanismo de aplicación es similar al caso de las variables, como podemos apreciar en el siguiente ejemplo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;statit in cuadrado ( int numero)&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;                  int calculo = 0 ;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;                  calculo = número * numero&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;                  return calculo ;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Limitar el acceso tanto a variables locales como a funciones, mediante su declaración como estáticas, resulta útil en algunas situaciones en las que se quiere evitar que entren en conflicto con otras variables o funciones incluso inadvertidamente.&lt;br /&gt;&lt;br /&gt;Fuente: Fundamentos de programación de J.M.Molina y F. Chamorro, ed.McGraw Hill&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-3277211830217220660?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-variables_09.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-663968467588065694</guid><pubDate>Fri, 06 Mar 2009 17:34:00 +0000</pubDate><atom:updated>2009-03-06T09:49:43.823-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. VARIABLES ESTÁTICAS ( 1º PARTE)</title><description>Otro tipo de almacenamiento son las variables estáticas indentificadas por la palabra reservada &lt;span style="font-style: italic;"&gt;static&lt;/span&gt;. Las variables estátitas pueden ser tanto locales como globales. Una variable estática local, al igual que una variable automática, está unicamente asociada a la función en la que se declara con la salvedad de su existencia es permanente.&lt;br /&gt;     En otras palabra, su contenido no se borra al finalizar la función, si no que mantiene su valor hasta el final del programa. Por ejemplo, en el siguiente programa declaramos la variante contador como estática dentro de la función &lt;span style="font-style: italic;"&gt;imprit imprimevalor&lt;/span&gt; y desde la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; llamamos a esta función varias veces-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# include &lt;stdio.h&gt;&lt;br /&gt;voin imprimeValor () ;&lt;br /&gt;main ()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;      imprimeValor () ;&lt;br /&gt;      imprimeValor () ;&lt;br /&gt;      imprimeValor () ;&lt;br /&gt;      imprimeValor () ;&lt;br /&gt;      return () ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void imprimeValor ();&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;      static in contador = 0 ;&lt;br /&gt;      printf ("El valor de contador es: %d\n, contador) ;&lt;br /&gt;      contador ++ ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;La primera vez que se llama a la función &lt;span style="font-style: italic;"&gt;imprimeValor&lt;/span&gt; se inicializa su valor a 0, y trás imprimir su valor se incrementa éste. En las sucesivas llamadas, el valor de la variable contador se mantiene y el resultado es el siguiente:&lt;br /&gt;&lt;br /&gt;     El valor de contador es: 0&lt;br /&gt;     El valor de contador es: 1&lt;br /&gt;     El valor de contador es: 2&lt;br /&gt;     El valor de contador es: 3&lt;br /&gt;&lt;br /&gt;Autor: Fundamentos de programación, de J.M.Molina, F.Chamorro. Ed.McGraw Hill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-663968467588065694?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-variables.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-8112584716804514819</guid><pubDate>Thu, 05 Mar 2009 17:48:00 +0000</pubDate><atom:updated>2009-03-05T10:07:41.175-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. EJERCICIO PRÁCTICO 5</title><description>Utilización del modificador de tipo &lt;span style="font-style: italic;"&gt;extern.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;     #i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;nclude &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     void unaFuncion () ;&lt;br /&gt;&lt;br /&gt;     void otraFuncion () ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     main ()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;          extern variable ;&lt;br /&gt;&lt;br /&gt;          variable = 9&lt;br /&gt;&lt;br /&gt;          printf (" El valor de variable es: %d\n", variable ) ;&lt;br /&gt;          unaFuncion () ;&lt;br /&gt;          printf (" Ahora el valor de variable es: %d\n", variable) ;&lt;br /&gt;          return () ;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void unaFuncion () ;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;           extern variable;&lt;br /&gt;           printf ("En la funcion unaFuncion, variable es: %d\n", variable) ;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int variable ;&lt;br /&gt;&lt;br /&gt;Su salida es&lt;br /&gt;&lt;br /&gt;           Su valor de variale es 9&lt;br /&gt;           En la funcion unaFuncion, variable es: 9&lt;br /&gt;           Ahora el valor de variable es 9&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/span&gt;uente: Fundamentos de Programación,  de J.M.Molina y F.Chamorro, ed. McGraw Hill&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-8112584716804514819?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-ejercicio-practico_05.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-545090436289623561</guid><pubDate>Wed, 04 Mar 2009 11:47:00 +0000</pubDate><atom:updated>2009-03-05T09:47:47.228-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C.  EJERCICIO PRÁCTICO 4</title><description>Utilización de variables locales como mecanismo de intercambio de información entre funciones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;void unaFuncion () ;&lt;br /&gt;void otraFuncion () ;&lt;br /&gt;int variable;&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;             variable = 9&lt;br /&gt;              printf (" El valor de variable es: %d\n", variable) ;&lt;br /&gt;              unaFuncion()&lt;br /&gt;              otraFuncion ()&lt;br /&gt;              printf ("Ahora el valor de variable es: %d\n", variable) ;&lt;br /&gt;              return ()&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void unaFuncion ()&lt;br /&gt;{&lt;br /&gt;             printf (" En la función unaFuncion, variable es: %d\n", variable) ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void otraFuncion ()&lt;br /&gt;{&lt;br /&gt;             variable ++ ;&lt;br /&gt;             printf (" En la funcion otraFuncion, variable es:%d\n", variable) ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;La salida es:&lt;br /&gt;           &lt;br /&gt;             El valor de variable es : 9&lt;br /&gt;             En la funcion unaFuncion, variable es : 9&lt;br /&gt;             En la funcion otraFuncion, variable es : 10&lt;br /&gt;             Ahora el valor de variable es : 10&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/stdio.h&gt;&lt;/span&gt;uente: Fundamentos de programación de J.M. Molina y F.Chamorro,  ed.McGraw Hill.&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;            &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-545090436289623561?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-ejercio-pratico-4.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-3823337602783591790</guid><pubDate>Tue, 03 Mar 2009 14:11:00 +0000</pubDate><atom:updated>2009-03-03T06:59:05.096-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C. VARIABLES GLOBALES.</title><description>A diferencia de las variables locales cuyo ámbito estuvo confinado a la función donde estaban declaradas, el ámbito de las variables globales se extienden desde el punto en el que se definen hasta el final del programa. En otras palabras, si definimos una variable al principio del programa, cualquier función que forme parte de éste podrá utilizarla simplemente haciendo uso de su nombre.&lt;br /&gt;     La utilización de variables globales porporciona un mecanismo de intercambio de información entre funciones sin necesidad de utilizar argumentos. Por otra parte,las variables globales mantienen el valor que se les ha asignado dentro de su ámbito, incluso después de finalizar las funciones que modifican dicho valor. Debemos tener en cuenta que el uso de variables globales para el intercambio de informaciones entre funciones puede resultar útil en algunas situaciones ( como cuando se desea transferir más de un valor desde una función), pero su utilización podría llevarnos a programas de dificil interpretación y complejos de depurar.&lt;br /&gt;     Cuando trabajamos con variables globales debemos distinguir entre la definición de una variable global y su declaración. Cuando definamos una variable local, lo hacemos de la misma forma en que se declara una variable ordinaria. La definición de una variable global se realiza fuera de cualquier función. Además, las definiciones de  variables globales suelen aparecer antes de cualquier función que desee utilizar dicha variable. La razón es que una variable global se identifica por la localización de su definición dentro del programa. Cuando se defina una variable global automáticamente, se reserva memoria para el almacenamiento de ésta.Además, podemos asignarle un valor inicial a la misma.&lt;br /&gt;     Si una función desea utilizar una variable global previamente definida, basta con utilizar su nombre sin realizar ningún tipo de declaración especial dentro de la función. Sin embargo, si la definición de la función aparece antes de la definición de la variable local, se requiere incluir una declaración de la variable global dentro de la función.&lt;br /&gt;     Para declarar una variable global se utiliza la palabra reservada &lt;span style="font-style: italic;"&gt;extern&lt;/span&gt;. Al utilizar &lt;span style="font-style: italic;"&gt;extern, &lt;/span&gt;le estamos diciendo al compilador que el espacio de memoria de esa variable está definido en otro lugar. Es más, en la declaración de una variable externa ( extern) no se puede incluir la asignación de un valor a dicha variable. Por otro lado, el nombre y el tipo de dato utilizados en la declaración de una variable global debe coincidir con el nombre y el tipo de dato de la variable global definida fuera de la función.&lt;br /&gt;     Debemos recordar que sólo se puede inicializar una variable global en su definición. El valor inicial que se le asigne a la variable global debe expresarse como una constante y no como una expresión. Es importante señalar que si no se asigna un valor inicial a la variable global, automaticamente se le asigna el valor 0 (0). De esta manera, las variables globales siempre cuentan con un valor inicial.&lt;br /&gt;     Cabe señalar que la declaración de una variable global puede hacer referencia a una variable que se encuentra definida en otro fichero. Por esta razón, podemos decir que el especificador de tipo extern hace referencia a una variable que ha sido definida en un lugar distinto al punto en el que se está declarando y donde se va a utilizar.&lt;br /&gt;    En aplicaciones grandes compuestas de varios ficheros, es común que las definiciones de las variables globales estén agrupadas y separadas del resto de ficheros fuente. Cuando se desea utilizar cualquiera de las variables globales en un fichero fuente, se debe incluir el fichero en el que están definidas las variables mediante la directiva de precompilación &lt;span style="font-style: italic;"&gt;#include.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-3823337602783591790?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-variables-globales.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-8738572445354472938</guid><pubDate>Mon, 02 Mar 2009 18:04:00 +0000</pubDate><atom:updated>2009-03-02T10:35:48.178-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C: EJERCICIO PRÁCTICO   3</title><description>Utilización del mismo indentificador de variable en diferentes funciones mostrando su localidad.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;void imprimeValor () ;&lt;br /&gt;main ()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;          int contador = 0 ;&lt;br /&gt;          contador ++ ;&lt;br /&gt;          printf ("El valor de contador es :  %d\n", contador) ;&lt;br /&gt;          imprimeValor () ;&lt;br /&gt;          printf ("Ahora el valor de contador es : %d\n", contador) ;&lt;br /&gt;return 0 ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void  imprimeValor ()&lt;br /&gt;{&lt;br /&gt;           int contador  = 5 ;&lt;br /&gt;           printf (" El valor de contador es : %d\n", contador ) ;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;La salida es&lt;br /&gt;&lt;br /&gt;          El valor de contador : 1&lt;br /&gt;          El valor de contador : 5&lt;br /&gt;          Ahora el valor de contador es:  1&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;span&gt;&lt;stdio.h&gt;uente: Fundamentos de programación, de J.M.Molina, F.Chamorro   ed.McGraw Hill&lt;/stdio.h&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;stdio.h&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-8738572445354472938?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/03/curso-funciones-en-c-ejercicio-practico.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-5561871174466072945</guid><pubDate>Sat, 28 Feb 2009 18:18:00 +0000</pubDate><atom:updated>2009-02-28T10:55:20.362-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. VARIABLES LOCALES</title><description>Cuando declaramos variables dentro de la función principal del programa, es decir, dentro de la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt;, están unicamente asociadas a esta función, en otras palabras, son variables locales de la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; y no se puede acceder a ella a traves de ninguna otra función.&lt;br /&gt;     Al igual que sucede con las variables declaradas dentro de la función &lt;span style="font-style: italic;"&gt;main,&lt;/span&gt; cualquier variable que declaremos dentro de una función, es local a esa función, es decir, su ámbito está confinado a dicha función. Esta situación permite que existan variables con el mismo nombre en diferentes funciones y que no mantengan  ninguna relación entre si.&lt;br /&gt;     Debemos tener en cuenta que cualquier variable declarada dentro de una función se considera como una variable automática ( auto) a menos que utilicemos algún modificador de tipo. Una variable se considera automática porque cuando se accede a la función se le asigna espacio en la memoria automaticamente y se libera dicho espacio tan pronto se sale de la función. En otras palabras, una variable automática  no conserva un valor entre dos llamadas sucesivas a la misma función. Con el propósito de garantizar el contenido de las variables automáticas, estas deben inicializarse al entrar a la función para evitar que su valor sea indeterminado.&lt;br /&gt;     Todas las variables que hemos utilizado en los ejemplos vistos hasta ahora son variables automáticas. La utilización de la  palabra reservada auto es opcional, aunque normalmente no se utiliza, por ejemplo:&lt;br /&gt;     &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;    auto int contador;&lt;br /&gt;&lt;br /&gt;    equivale a&lt;br /&gt;&lt;br /&gt;    int contador;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/span&gt;uente: Fundamentos de Mercadeo de J.M.Molina y F.Chamorro, ed. McGraw Hill&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-5561871174466072945?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-variables-locales.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-7386337842914701340</guid><pubDate>Fri, 27 Feb 2009 13:55:00 +0000</pubDate><atom:updated>2009-02-27T06:07:01.853-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>curso programación en C</category><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C. ÁMBITOS Y CLASES DE ALMACENAMIENTO.</title><description>Como se ha visto ,en C,  las variables se pueden clasificar de acuerdo a su tipo de  dato. Por ejemplo, una variable puede ser de tipo entero ( int) o de tipo carácter (char). Sin embargo, las variables también pueden clasificarse de acuerdo a su ámbito, es decir, la parte del programa en la que la variable es reconocida. De acuerdo con su ámbito, la variables pueden ser locales o globales. Por otro lado, existen los modificadores de tipo o clases de almacenamiento que permiten modificar el ámbito y la permanencia de una variable dentro de un programa. Existen cuatro modificadores de tipo, automático, externo, estático y registro, que se corresponden con las palabras reservadas  &lt;span style="font-style: italic;"&gt;auto,extern, static y register&lt;/span&gt;, respectivamente.&lt;br /&gt;&lt;br /&gt;Fuente: Principios de programación, de J.M.Molina y F. Chamorro, ed. McGraw Hill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-7386337842914701340?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-ambitos-y-clases.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-1780374206065981819</guid><pubDate>Thu, 26 Feb 2009 12:42:00 +0000</pubDate><atom:updated>2009-02-26T05:05:42.383-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. EJEMPLO PRÁCTICO 2</title><description>Vamos a acceder a las funciones&lt;span style="font-style: italic;"&gt; primera y segunda&lt;/span&gt; desde la función &lt;span style="font-style: italic;"&gt;main.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;# &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;include &lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void primera  (void) ;&lt;br /&gt;&lt;br /&gt;void segunda (void) ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;        printf ("la primera función llamada, main\n") ;&lt;br /&gt;        primera () ;&lt;br /&gt;        segunda () ;&lt;br /&gt;        printf ("Final de la función main\n")&lt;br /&gt;        return 0 ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void primera (void) ;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;     printf ("Llamada a la función segunda \ n") ;&lt;br /&gt;     return ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;    La salida es:&lt;br /&gt;&lt;br /&gt;                        La primera función llamada main.&lt;br /&gt;                        Llamada a la función primera.&lt;br /&gt;                        Llamada a la función segunda.&lt;br /&gt;                        Final de la función main.&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;F&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;uente: Fundamentos de Programación, J.M.Molina; F.Chamorro, ed. McGraw Hill.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-1780374206065981819?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-ejemplo-practico-2.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-4814188857040070102</guid><pubDate>Wed, 25 Feb 2009 17:21:00 +0000</pubDate><atom:updated>2009-02-25T09:49:33.816-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso programación</category><title>CURSO FUNCIONES EN C.  ACCESO A UNA FUNCIÓN.</title><description>Para que una función realice la tarea para la que fue creada, debemos acceder o llamar a la misma. Cuando se llama a una función dentro de una expresión, el control del programa se pasa a ésta y solo regresa a la siguiente expresión de la que ha realizado la llamada cuando encuentra una instrucción &lt;span style="font-style: italic;"&gt;return&lt;/span&gt; , o en su defecto, la llave de cierre al final de la función.&lt;br /&gt;     Generalmente, se suele llamar a las funciones desde la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; , lo que no implica que dentro de una función se pueda acceder a otra función.&lt;br /&gt;     Cuando queremos acceder a una función,debemos hacerlo mediante su nombre seguido de la lista de argumentos que utiliza dicha función encerrado entre paréntesis. En caso de que la función a la que se queire acceder no utilice argumentos, se deben colocar los paréntesis vacios.&lt;br /&gt;     Cualquier expresión puede contener una llamada a una función. Esta llamada puede ser parte de una expresión simple, como una asignación, o puede ser uno de los operandos de una expresión más completa. Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;a = cubo (2) ;&lt;br /&gt;calculo = b + c / cubo ( 3 ) ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     D&lt;/span&gt;&lt;/span&gt;ebemos&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;r&lt;/span&gt;&lt;/span&gt;ecordar que los argumentos que utilizamos en la llamada a una función se denominan argumentos reales. Estos argumentos debe coincidir en el  número y tipo con los argumentos formales o parámetros de la función. No olvidemos que los argumentos formales son los que se utilizan en la definición y/o declaración de una función.&lt;br /&gt;     Los argumentos reales pueden ser variables, constantes o incluso expresiones más complejas. El valor de cada argumento real en la llamada a una función se tranfiere a dicha función y se le asigna el argumento formal correspondiente.&lt;br /&gt;     Generalmente, cuando una función devuelve un valor, la llamada a una función suele estar dentro de una expresión de asignación, como operando de una expresión compleja o como argumento real de otra función.&lt;br /&gt;     Sin embargo, cuando la función no devuelve ningún valor, la llamada a la función suele aparecer sola. Un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;z = potencia (a,b)&lt;br /&gt;imprime_valores (x, y, z)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/span&gt;uente: Fundamentos de programación de J.M.Molina y F.Chamorro Ed. McGraw Hill&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-4814188857040070102?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-acceso-una-funcion.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-8998619378645788904</guid><pubDate>Tue, 24 Feb 2009 18:30:00 +0000</pubDate><atom:updated>2009-02-24T11:59:08.566-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. DEVOLUCIÓN DE VALORES.</title><description>Una función en C solo puede devolver un valor. Para delvolver dicho valor se utiliza la palabra reservada&lt;span style="font-style: italic;"&gt; return&lt;/span&gt; cuya sintaxis es la siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;return &lt;expresión&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;d&lt;/span&gt;&lt;/expresión&gt;&lt;/span&gt;onde &lt;expresión&gt; pued ser cualquier tipo de datos menos un array o una función. Además, el valor de la expresión debe coincidir con el tipo de dato declarado en el prototipo de la función. Por otro lado, existe la posibilidad de devolver múltiples valores mediante la utilización de punteros o estructuras.&lt;br /&gt;   Dentro de una función pueden existir varios &lt;span style="font-style: italic;"&gt;return &lt;/span&gt;dado que el programa devolverá el control a la sentencia que ha llamado a la función en cuento encuentre la primera sentencia&lt;span style="font-style: italic;"&gt; return.&lt;br /&gt;   &lt;/span&gt;Si no existe &lt;span style="font-style: italic;"&gt;return&lt;/span&gt;, la ejecución de la función contínua hasta la llave del final del cuerpo de la función (}). Hay que tener en cuenta que existen funciones que no devuelven ningún valor. El tipo de dato devuelto por estas funciones puede ser &lt;span style="font-style: italic;"&gt;void&lt;/span&gt;, considerado como un tipo especial de dato. En estos casos, la sentencia&lt;span style="font-style: italic;"&gt; return&lt;/span&gt; se puede escribir como &lt;span style="font-style: italic;"&gt;return &lt;/span&gt;o se puede omitir  directamente. Por ejemplo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;void imprime_cabecera ();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;          &lt;span style="font-weight: bold;"&gt;{&lt;br /&gt;                 printf ("esta función sólo imprime esta linea");&lt;br /&gt;                 return;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;equivale a:&lt;br /&gt;&lt;br /&gt;void imprime_cabecera()&lt;br /&gt;           {&lt;br /&gt;                 printf ("esta función sólo imprime esta lines");&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/span&gt;&lt;span&gt;UENTE: Fundamentos de Programación, de J.M.Molina, F.Chamorro. Ed. McGraw-Hill&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/expresión&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-8998619378645788904?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-devolucion-de.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-4160766184518647945</guid><pubDate>Mon, 23 Feb 2009 15:53:00 +0000</pubDate><atom:updated>2009-02-23T08:05:14.575-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. EJEMPLO PRÁCTICO  1</title><description>Ejemplo práctico 1.&lt;br /&gt;     1.- El siguiente programa calcula el cubo de los números del 1 al 5 utilizando una función definida por el usuario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int cubo (int base) ;&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt;        int numero&lt;br /&gt;        for (numero=1; numero &lt;=5; numero ++) {&lt;br /&gt;             printf ("El cubo del numero  %d es %d\n", numero, cubo (numero)) ;&lt;br /&gt;        }&lt;br /&gt;        return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int cubo (int base)&lt;br /&gt;{&lt;br /&gt;         int potencia ;&lt;br /&gt;         potencia = base*base*base&lt;br /&gt;         retunr potencia;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;La salida es&lt;br /&gt;&lt;br /&gt;         El cubo del numero 1 es 1&lt;br /&gt;         Elcubo del numero 2 es 8&lt;br /&gt;         Elcubo del numero 3 es 27&lt;br /&gt;         El cubo del numero 4 es 64&lt;br /&gt;         Elcubo del numero 5 es 125&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-4160766184518647945?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-ejemplo-practico-1.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-7841061603791433298</guid><pubDate>Sat, 21 Feb 2009 11:50:00 +0000</pubDate><atom:updated>2009-02-21T04:40:21.199-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. DEFINICIÓN.</title><description>Tras declarar una función, el siguiente paso es implementarla. Generalmente, este paso se conoce como definición. Es precisamente en la definición de una función donde se especifican las instrucciones que forman parte de las mismas y que se utilizan para llevar a cabo la tarea específica de la función. La definición de una función consta de dos partes, el encabezado y el cuerpo de la función. En el encabezado de la función, al igual que en el prototipo de la misma, se tienen que especificar  los parámetros de la función, si los utiliza y el tipo de datos que devuelve,mientras que el cuerpo se compone de las instrucciones necesarias para realizar la tarea para lo cual se crea la función. La sintaxis de la definición de una función es como sigue:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tipo_de_retorno nombre_de_la_fu&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_Italic" title="Cursiva" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 4);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Cursiva" class="gl_italic" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ncion (lista_de_parámetros)&lt;br /&gt;{&lt;br /&gt;             sentencias ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     E&lt;/span&gt;&lt;/span&gt;l tipo_de_retorno representa el tipo de dato del valor que devuelve la función. Este tipo debe ser uno de los tipos simples de C, un puntero a un tipo de C o bien un tipo struct. De forma predeterminada, se considera que toda función devuelve un tipo entero (int). En otras palabras,si en la declaración o en la definición de una función no se especifica el &lt;span style="font-style: italic;"&gt;tipo_de_retorno&lt;/span&gt;, el compilador asume que devuelve un valor de tipo int. El &lt;span style="font-style: italic;"&gt;nombre_de_la_funcion &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;r&lt;span style="font-weight: bold;"&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;presenta el nombre que se le asigna a la función.&lt;br /&gt;     Se recomienda que el nombre de la función esté relacionado con la tarea que lleva a cabo. En caso de que la función utilice parámetros, éstos deben estar listados entre parentesis a continuación del nombre de la función, especificando el tipo de dato y el nombre de cada parámetro. En caso de que una función no utilice parámetros, se pueden dejar los paréntesis vacios o incluir la palabra &lt;span style="font-style: italic;"&gt;void&lt;/span&gt;, que indica que la función no utiliza parámetros. Después del encabezado de la función, debe aparecer delimitado por llaves ( { y }), el cuerpo de la función compuesto por las sentencias que llevan a cabo la tarea específica de la función. Veamos la definición de la función &lt;span style="font-style: italic;"&gt;cubo&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int cubo (int base)&lt;br /&gt;{&lt;br /&gt;      int potencia ;&lt;br /&gt;      potencia = base *  base * base&lt;br /&gt;      return potencia ;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;      &lt;/span&gt;Como ya se ha visto, a los argumentos que recibe la función también se les suele llamar parámetros. Sin embargo, algunos autores consideran como parámetros a la lista de variables entre paréntesis utilizada en la declaración o en la definición de la función, y como argumentos los valores utilizados cuando se llama a la función, y como argumentos los valores utilizados cuando se llama a la función. También se utilizan los términos argumentos formales y argumentos reales, respectivamente, para hacer esta distinción.&lt;br /&gt;     Cuando un programa utiliza un número elevado de funciones, se suele separar las declaraciones de función de las definiciones de las mismas. Al igual que con las funciones de biblioteca, las declaraciones pasan a formar parte de un fichero cabecera (extensión .h), mientras que las definiciones se almacenan en un fichero con el mismo nombre que el fichero .h, pero con la extensión .c. En algunas ocasiones, un programador no desea divulvar el código fuente de sus funciones. En estos casos, se suele proporcionar al usuario el fichero de cabecera, el fichero compilado de las definiciones ( con extensión .o , de objeto) y una documentación de las mismas. De esta manera, cuando el usuario desea hacer uso de cualquiera de las funciones, sabe que argumentos pasarle y qué tipo de datos devuelve, pero no tiene acceso a la definición de las funciones.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;&lt;/span&gt;uente:" Fundamentos de programación"&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;d&lt;/span&gt;&lt;/span&gt;e J.M.Molina y F.Chamorro . Ed.McGraw-Hill&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-7841061603791433298?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-definicion.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-4377264222185079766</guid><pubDate>Fri, 20 Feb 2009 13:45:00 +0000</pubDate><atom:updated>2009-02-20T06:20:22.585-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><category domain='http://www.blogger.com/atom/ns#'>curso lenguaje C</category><title>CURSO FUNCIONES EN C. DECLARACIÓN DE FUNCIONES.</title><description>Antes de empezar a utilizar una función debemos declararla. La declaración de una función es conocida también como prototipo de una función. En el prototipo de una fución debe estar especificado los parámetros de la función, así como el tipo de dato que devuelve.&lt;br /&gt;     Los prototipos de funciones que son utilizadas en un programa se incluyen generalmente en la cabecera del programa y presentan la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tipo_de_retorno nombre_de_la_función (li&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;sta_de_parámetros) ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;n el prototipo de una función no se especifican las sentencias que forman parte de la misma, sino sus características. Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int cubo (int) ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     E&lt;/span&gt;&lt;/span&gt;n este caso se declara la función &lt;span style="font-style: italic;"&gt;cubo&lt;/span&gt; que recibe como parámetro una variable de tipo entero (&lt;span style="font-style: italic;"&gt;número)&lt;/span&gt; y devuelve un valor del mismo tipo. En ningún momento se está especificando qué se va a hacer con la variable &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;número.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;solo declaramos las características de la función &lt;span style="font-style: italic;"&gt;cubo.&lt;br /&gt;     &lt;/span&gt;Cabe señalar que el nombre de los parámetros es opcional y se utiliza para mejorar la comprensión del código fuente. De esta manera, el prototipo de la función cubo podría expresarse como sigue:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int potencia ( int base, int exponente) ;&lt;br /&gt;double area_rectángulo (float base,  float altura) ;&lt;br /&gt;int mayor (int, int) ;&lt;br /&gt;struct dirección entrada (void) ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     L&lt;/span&gt;&lt;/span&gt;os prototipos de las funciones son utilizados por el compilador para verificar que se accede a la función de la manera adecuada con respecto al número y tipo de parámetros, y al tipo de valor de retorno de la misma. Algunos ejemplos de prototipos de funciones:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int potencia (int base, int exponente) ;&lt;br /&gt;double area_rectangulo (float base, float altura) ;&lt;br /&gt;int mayor (int, int) ;&lt;br /&gt;struct direccion entrada (void) ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     L&lt;/span&gt;&lt;/span&gt;as funciones  de biblioteca se declaran en lo que se conoce como ficheros de cabecera o ficheros .h. Cuando deseamos utilizar algunas de las funciones de biblioteca, debemos especificar el fichero .h en que se encuentra declarada la función, al inicio de nuestro programa. Por ejemplo, si deseamos utilizar la función &lt;span style="font-style: italic;"&gt;printf&lt;/span&gt; en nuetro programa, debemos incluir el fichero stdio&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;.&lt;/span&gt;h que contiene el prototipo de esta función.&lt;br /&gt;Fuente: "Fundamentos de programación" de J.M.Molina, F.Chamorro. Ed.McGraw-Hill.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-4377264222185079766?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-declaracion-de.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-1598082786685758958</guid><pubDate>Thu, 19 Feb 2009 17:13:00 +0000</pubDate><atom:updated>2009-02-19T10:47:52.619-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>curso informática</category><title>CURSO FUNCIONES EN C. INTRODUCCIÓN. SEGUNDA PARTE</title><description>La estructura de una función C es más o menos de esta manera:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     tipo_de_retorno nombre_de_la_función (lista_de_parámetros)&lt;br /&gt;     {&lt;br /&gt;                  cuerpo_de_la_función&lt;br /&gt;                   return expresión&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;Donde:&lt;br /&gt;     - tipo_de_retorno: es el tipo de valor devuelto por la función, o, en caso de que la función no devuelva valor alguno, la palabra reservada void.&lt;br /&gt;     - nombre_de_la_función: es el nombre o identificador dado a la función.&lt;br /&gt;     - lista_de_parámetros: es la lista de declaración de los parámetros que son pasados a la función. Éstos se separan por comas. Debemos tener en cuanta que pueden haber funciones que no utilicen parámetros.&lt;br /&gt;     - cuerpo_de_la_función: está compuesto por un conjunto de sentencias que llevan a cabo la tarea específica para lo cual ha sido creada la función.&lt;br /&gt;     - return expresión: mediante la palabra reservada return, se devuelve el valor de la función, en este caso representado por expresión. Vamos a suponer que  queremos crear un programa para calcular el precio de un producto basándose en el precio base del mismo y el impuesto practicable. A continuación el código fuente de dicho programa:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#include &lt;&gt;&lt;br /&gt;float precio (float base, float impuesto) ; /* declaracion*/&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt;            float importe = 2.5 ;&lt;br /&gt;            float tasa = 0.07&lt;br /&gt;            printf ("El precio a pagar es:  %.2f\n" , precio (importe, tasa )) ;&lt;br /&gt;            return 0;&lt;br /&gt;}&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_Bold" title="Negrita" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 3);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Negrita" class="gl_bold" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;float precio (float base, float impuesto) /*impuesto */&lt;br /&gt;{&lt;br /&gt;            float calculo&lt;br /&gt;            calculo = base + (base * impuesto) ;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_Italic" title="Cursiva" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 4);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Cursiva" class="gl_italic" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            return calculo&lt;br /&gt;}&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_Italic" title="Cursiva" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 4);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Cursiva" class="gl_italic" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;          &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;E&lt;/span&gt;l ejemplo anterior se compone de dos funciones, la función requerida &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; y la función creada por el usuario&lt;span style="font-style: italic;"&gt; precio&lt;/span&gt;, que calcula el precio de un producto tomando como parámetros&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;/span&gt; su precio base y el impuesto aplicable. La función&lt;span style="font-style: italic;"&gt; precio&lt;/span&gt; calcula el precio de un producto sumándole el impuesto correspondiente al precio base y devuelve el valor calculado mediante la sentencia &lt;span style="font-style: italic;"&gt;return.&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_Italic" title="Cursiva" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 4);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;     &lt;/span&gt;Por otra parte en la función &lt;span style="font-style: italic;"&gt;main &lt;/span&gt;declaramos dos variales  de tipo &lt;span style="font-style: italic;"&gt;float&lt;/span&gt; que contienen el precio base del producto y el impuesto aplicable. La siguiente sentencia dentro de la función es la llamada a  la función de biblioteca &lt;span style="font-style: italic;"&gt;printf&lt;/span&gt;, que recibe como parámetro una llamada a la función &lt;span style="font-style: italic;"&gt;precio&lt;/span&gt;, que devuelve un valor de tipo&lt;span style="font-style: italic;"&gt; float. &lt;/span&gt;De esta manera, la función &lt;span style="font-style: italic;"&gt;printf, &lt;/span&gt;imprime por la salida estandar el valor devuelto por la función &lt;span style="font-style: italic;"&gt;precio.&lt;/span&gt; Es importante tener en cuenta que las variables importe y tasa (argumentos) dentro de la función &lt;span style="font-style: italic;"&gt;main &lt;/span&gt;tienen una correspondencia con las variables  base e impuesto (parámetros) dentro de la función&lt;span style="font-style: italic;"&gt; precio&lt;/span&gt; respectivamente.&lt;br /&gt;     En el ejemplo anterior,justo antes de la función &lt;span style="font-style: italic;"&gt;main, &lt;/span&gt;hemos declarado la función&lt;span style="font-style: italic;"&gt; precio. &lt;/span&gt;La intención es que la función &lt;span style="font-style: italic;"&gt;main &lt;/span&gt;sea capaz de reconocerla. Sin embargo, la definición de dicha función aparece después de la función&lt;span style="font-style: italic;"&gt; main.&lt;/span&gt; Las definiciones de función pueden aparecer en cualquier orden dentro de uno o más ficheros fuentes. Más adelante, en esta unidad,, veremos en detalle la declaración y definición de funciones. Por otra parte, hemos añadido la sentencia &lt;span style="font-style: italic;"&gt;return 0&lt;/span&gt; al final de la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt;, puesto que se trata de una función como otra cualquiera y puede devolver un valor a quien la ha llamado, en este caso en el entorno en el que se ejecuta el programa. Generalmente, el valor 0 implica un fin de ejecución normal, mientras que otro valor diferente implica un final de ejecución inusual o erróneo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-1598082786685758958?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-introduccion_19.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6689817991103114953.post-1158732293590597815</guid><pubDate>Tue, 17 Feb 2009 16:59:00 +0000</pubDate><atom:updated>2009-02-17T09:26:55.415-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programación en lenguaje C</category><category domain='http://www.blogger.com/atom/ns#'>programacion en C</category><category domain='http://www.blogger.com/atom/ns#'>software de programación</category><title>CURSO FUNCIONES EN C. INTRODUCCIÓN. PRIMERA PARTE</title><description>Una función es un fragmento de código que realiza una tarea bien definida. Por ejemplo la función&lt;span style="font-style: italic;"&gt; printf&lt;/span&gt; imprime por la salida estándar los argumentos que le pasamos. Al igual que esta función, existen otras funciones que realizan otras funciones ya definidas en el estándar ANSI C y que pueden ser utilizadas por el programador. Este tipo de funciones definidas se denominan funciones de biblioteca. Cada programador, puede definir sus propias funciones de acuerdo a sus necesidades. Las fuciones definidas por el programador se denominan como funciones de usuario.&lt;br /&gt;     La utilización de funciones nos permite dividir un programa extenso en pequeños segmentos que realizan tareas concretas. Probablemente, dentro de un mismo programa se realizan las mismas tareas varias veces, lo que se facilita mediante el uso de funciones.Es probable, que ciertas funciones no sean reutilizables, pero al usarlas se mejora la legibilidad del programa.&lt;br /&gt;     La filosofía en la que se basa el diseño de C es el empleo de funciones. Por esta razón, un programa en C, contiene al menos una función, la función &lt;span style="font-style: italic;"&gt;main.&lt;/span&gt; Esta función es  particular dado que la ejecución del programa se inician con las instrucciones contenidas en su interior. Una vez iniciada la ejecución del programa, desde la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; se puede llamar a otras funciones y, posiblemente, desde estas funciones a otras. Otra particularidad de la función &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; es que se llama directamente desde el sistema operativo y no desde ninguna otra función. De esta manera, un programa en C sólo puede contener una función &lt;span style="font-style: italic;"&gt;main.&lt;/span&gt;&lt;br /&gt;     Con el propósito de mantener un manejo eficiente de los datos, las funciones en C no se pueden anidad. En otras palabras, una función no se puede declarar dentro de otra función, por lo que todas las funciones son globales o externas, lo que hacen que puedan llamarse desde cualquier parte del programa.&lt;br /&gt;     Se puede acceder a una determinada función desde cualquier parte de un programa. Cuando se llama a una función, se ejecutan las instrucciones que constituyen dicha función. Una vez que se ejecutan  las instrucciones de la función, se devuelve el control del programa a la siguiente instrucción inmediatamente después de la que provocó la llamada a la función.&lt;br /&gt;     Cuando se accede  una función desde un determinado punto del programa, se le puede pasar información mediante unos identificadores especiales conocidos como argumentos (parámetros). Una vez que la función procesa esta información, devuelve un valor mediante la instrucción &lt;span style="font-style: italic;"&gt;return.&lt;/span&gt;&lt;br /&gt;    Fuente: Fundamentos de programación de J.M.Molina, F.Chamorro. Ed. Mcgraw-Hill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6689817991103114953-1158732293590597815?l=informaticaeninternet.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://informaticaeninternet.blogspot.com/2009/02/curso-funciones-en-c-introduccion.html</link><author>noreply@blogger.com (cristobal)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>