2 de mayo de 2010

Condicionales

Si en nuestro programa queremos que haya división de flujos, es interesante la opción del if / else / else if. Son instrucciones de C que permiten realizar unas lineas de codigo si se cumple una condición y otras si no se cumple. Vamos a verlo en detalle.

IF
El if permite realizar una serie de lineas del código si se cumple la condición especificada. Su sintaxis es:
  1. if (condición){
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Con esto, si se cumple la condición, se  realizan las instrucciones entre {} . Si no, esas lineas de código se "ignoran".
Si solo se va a ejecutar una instrucción en caso de que se cumpla la condición, se puede prescindir de los {}.
La condición se debe especificar mediante los operadores lógicos. Veamos un ejemplo:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7. }  

 Con este código conseguimos que si nuestra edad es 18 o más, nos diga que somos mayores de edad, ya que se cumple la condición y se realiza la instrucción.


ELSE
El else complementa al if. Debe ir siempre tras un if o un else if. Permite que en el caso de que no se cumpla la condición establecida en el if o el else if, se realicen otras instrucciones. Veamos su sintaxis:

  1. else {
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Al igual que con el if, si sólo hay una instrucción se puede prescindir de los {}.
Veamos un ejemplo con el código anterior:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7.      else printf("Eres menor de edad\n");
  8. }  
 En este caso, si somos mayores de edad (18 años a más) nos dice "Eres mayor de edad". Si no, nos dice "Eres menor de edad".

ELSE IF
El else if es un condicionante como el if, pero que a la vez excluye a otro if. Es decir, va tras otro else if u otro if. Si el if / else if no se cumple, comprueba si se cumple este. Siempre se puede sustituir por varios if consecutivos, pero así el programa tiene que comprobar todos los condicionantes, mientras que con else if, si uno se cumple los demas else if no los mira. Veamos la sintaxis:
 
  1. else if(condición) {
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Con ejemplos de código lo entendereís mejor:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7.      else if(edad<10)printf("Eres menor de 10 años\n"); 
  8.      else if(edad>=10 && edad<=15) printf("Tienes entre 10 y 15 años\n");
  9.      else if(edad>15 && edad<18) printf("Tienes más de 15 años pero eres menor de edad\n");
  10. }
En este caso  hay un primer if, si la edad es mayor de 18 escribe "Eres mayor de edad". Si esta condicion NO se cumple, comprueba la siguiente: else if. Quiere decir "sino si", es decir, sino se cumple que edad>18, if es menor de 10 escribe "Eres menor de 10 años". Si esta se cumple, los demas else if no los comprueba. En el caso de que no se cumpla, va comprobando los demas sucesivamtente. Si no se cumpliera ninguno, no mostraria nada. Terminaria el programa sin más.


En el caso del else if(edad>=10 && edad<=15) deben cumplirse ambas condiciones para que realice la instruccion.

26 de abril de 2010

Operadores y resumen

Llegados a este punto vamos a hacer un pequeño resumen de las funciones aprendidas para poder complicarnos más la existencia.



Por ahora sabemos:

FUNCIONES
printf: permite mostrar información por pantalla, ya sea mediante variables o texto escrito.
scanf: permite recoger información introducida por teclado en variables.

VARIABLES
Declaramos variables y las definimos mediante int, char, float... Esto nos permite recoger información para nuestro programa.

COMENTARIOS
Sabemos escribir comentarios en el código fuente de nuestro programa para aclararlo sin entorpecer la compilación. Recuerdo que es recomendable incluirlos.


 Para poder realizar operaciones con las variables voy a explicar los operadores aritméticos y lógicos.

Operadores aritméticos son aquellos que nos permiten realizar las operaciones básicas:
      + para sumar valores                                              /  para dividir valores
      - para restar valores                                               * para multiplicar valores

Veamos ejemplos:
  1. int a=5, b=10, c; //definimos dos variables de número con valor y otra más sin valor
  2. c=a+b;//c vale la suma de a y b (15)
  3. c=c/5;//c vale lo que valia antes divido por 3 (3);
Operadores lógicos son los que permiten comparar valores:
      >  mayor que                                             >=  mayor o igual que
      <  menor que                                             <= menor o igual que
     ==  igual que                                               !=  distinto que
     && además/y                                             || o
    
Estos operadores se usan con la funcion if. Esta funcion permite realizar una serie de instrucciones o otra en funcion de las comparaciónes. Lo veremos en detalle en la siguiente entrada.

Con esto podemos hacer programas sencillos que recojan información del usuario e informen. Vamos a ver otro ejemplo en el que se almacenan datos numéricos en variables y se devuelven proporcionando más información. De paso veremos como se puede operar con variables int.

  1. #include
  2. int main(){
  3.     int edad;//recoge la edad del usuarioaños o más
  4.     printf("Escribe tu edad: ");
  5.     scanf("%d", &edad);//se almacena la edad en la variable
  6.     //Se comprueba si se es mayor de edad o no
  7.     if (edad>=18) printf("Eres mayor de edad\n");
  8.     else printf("Eres menor de edad\n");
  9.     //Pausa para ver el mensaje
  10.     system("pause");
  11.     return 0;}