Diferencia entre revisiones de «Programación en C/Expresiones»
Contenido eliminado Contenido añadido
Una referencia a la tabla con la precedencia de operadores en los anexos |
Sin resumen de edición |
||
Línea 1:
<noinclude>
{{Navegar|anterior=Interacción con el usuario
|siguiente=Instrucciones de control
|reducido=Si
}}
</noinclude>
Vamos a tratar ahora de que el ordenador haga un poco de matemáticas para nosotros. Por ejemplo, que realice unas pocas sumas, restas multiplicaciones y divisiones.
<source lang=c>
#include <stdio.h>
int main(void)
<code>{</code>▼
{
int resultado;
resultado=5+2;
printf("Resultado de la suma: %i\n",resultado);
resultado=5-2;
printf("Resultado de la resta: %i\n",resultado);
resultado=5*2;
printf("Resultado de la multiplicación: %i\n",resultado);
resultado=5/2;
printf("Resultado de la división: %i\n",resultado);
return(0);
}
</source>
Después de grabarlo (por ejemplo, con el nombre <code>ejemplo.c</code>), lo compilamos y ejecutamos, con (respectivamente):
Línea 34 ⟶ 40:
Fijémonos en la línea del principio de la función <code>main</code>:
<source lang=c>
int resultado;
</source>
Esta línea lo que hace es reservar un trozo de memoria, del tamaño de un <
Las líneas con <code>printf()</code> ya las conocemos, pero hay algo en ellas que no habíamos visto antes. Esos <
La función <code>printf()</code> no sólo sabe imprimir cadenas simples, como <
▲La función <code>printf()</code> no sólo sabe imprimir cadenas simples, como <font color="red"><code>"Hola Mundo</code><font color="purple"><code>\n</code></font><code>"</code></font>, sino también imprimir variables. Para ello, en el lugar de la cadena donde queremos que aparezca el valor de la variable, introducimos lo que se llama una cadena de conversión de <code>printf()</code>. Estas cadenas siempre empiezan por <font color="purple"><code>%</code></font>, siendo <font color="purple"><code>%i</code></font> la cadena para imprimir un entero, como es en nuestro caso <font color="green"><code>int</code></font><code> resultado</code>. Finalmente, <code>printf()</code> debe saber qué valor escribir, por eso le damos otro argumento (u otros), usando <code>,</code> como separador, que contienen las variables cuyos valores queremos mostrar.
En el resto del programa hemos visto cómo decirle al ordenador que ejecute una suma, una resta, una multiplicación y una división entera, con los operadores <code>+</code>, <code>-</code>, <code>*</code> y <code>/</code>. Es de notar que el resultado de una operación como estas entre números enteros será siempre otro entero, como se puede observar en la división, en la que no obtenemos un bonito decimal, sino un resultado entero. Además, hemos visto que el resultado de esas operaciones, que llamamos expresiones, puede ser asignado a una variable:
{|
|Resultado
|-
|7
|}
Esa asignación se hace mediante el operador de asignación: <code>=</code>. Con él, ya conocemos cinco operadores.
Pero, como <code>=</code> también es un operador, ¿cómo sabe el ordenador qué operador debe ejecutar primero? Y si es un operador, ¿por qué no da un resultado? ¿No crea una expresión?
{|
|-
|}
Empezando por las últimas preguntas, el operador de asignación sí crea una expresión, como los operadores de suma, resta, multiplicación y división, y esa expresión tiene un resultado, que es el valor que obtiene el lado izquierdo al realizar la operación. En cuanto a saber qué se debe ejecutar primero, el ordenador tiene una lista de precedencia, según la cual siempre ejecuta primero las multiplicaciones y divisiones, de izquierda a derecha, a continuación las sumas y restas, de izquierda a derecha, y a continuación las asignaciones, de derecha a izquierda. Para mas detalles acerca de la precedencia de los operadores ver el [[Programación en C/Referencia#Operadores|anexo de los operadores]].▼
▲Empezando por las últimas preguntas, el operador de asignación sí crea una expresión, como los operadores de suma, resta, multiplicación y división, y esa expresión tiene un resultado, que es el valor que obtiene el lado izquierdo al realizar la operación. En cuanto a saber qué se debe ejecutar primero, el ordenador tiene una lista de precedencia, según la cual siempre ejecuta primero las multiplicaciones y divisiones, de izquierda a derecha, a continuación las sumas y restas, de izquierda a derecha, y a continuación las asignaciones, de derecha a izquierda. Para
En cuanto a los caracteres de punto y coma, notamos aquí que una expresión también puede ser una sentencia por sí misma, sin necesidad de que haya ninguna función. De hecho, una sentencia puede no tener siquiera una expresión. La línea:▼
▲En cuanto a los caracteres de punto y coma, notamos aquí que una expresión también puede ser una sentencia por sí misma, sin necesidad de que haya ninguna función. De hecho, una sentencia puede no tener siquiera una expresión. La línea:
<code>;</code>
es una sentencia perfectamente válida, la sentencia vacía, que sera útil en puntos donde el lenguaje requiera una sentencia pero no sea necesaria para nuestro programa.
<noinclude>
{{Navegar|anterior=Interacción con el usuario
|siguiente=Instrucciones de control
|reducido=Si
}}
</noinclude>
|