Ya habÃa escritos varios posts sobre las condiciones if else en c++, pero algo que hace falta saber es que dentro de una estructura if puede haber otra estructura if tantos veces como sea necesario. Es decir:
if ( condicion )
{
instrucciones
if ( condicion )
{
instrucciones
}
}
else
{
if ( condicion )
{
instrucciones
}
else
{
instrucciones
}
instrucciones
}
¿Y como para qué? Pues hay algunas situaciones que asà lo requieren. Por ejemplo:
“Si un alumno tiene un promedio mayor o igual a 9 se le hara un 20% de descuento en la colegiatura, si tiene un promedio mayor o igual a 8 pero menor que 9 el descuento será del 10%, si su promedio es menor que 8 pero mayor o igual a 7 el descuento será del 5% y si promedia con 7 o menos no tendrá descuento.”
La solución de este problema en c++ serÃa asÃ:
Seguir leyendo…
Ok, hasta hoy ya hemos visto las herramientas necesarias para hacer nuestro primer programa un poco más en serio. Este programa nos pide la medida de los tres lados de un triángulo y nos devuelve el tipo de triangulo que es (equilátero, isósceles o escaleno).
Para esto vamos a usar condiciones en C++ para comparar los lados de nuestro triángulo.
Un trÃangulo equilátero tiene sus tres lados iguales, por tanto, la condición quedarÃa asÃ:
“si el lado 1 es igual al lado 2 y el lado 2 es igual al lado 3, entonces es equilátero”
Un trÃangulo isósceles tiene solo dos lados iguales, por tanto, la condición quedarÃa asÃ:
“si el lado 1 es igual al lado 2 y el lado 2 es diferente al lado 3, o
el lado 2 es igual al lado 3 y el lado 3 es diferente al lado 1, o
el lado 3 es igual al lado 1 y el lado 1 es diferente al lado 2 entonces es isósceles”
Un trÃangulo escaleno tiene sus tres lados diferentes, por tanto, la condición quedarÃa asÃ:
“si el lado 1 es diferente al lado 2 y el lado 2 es diferente al lado 3 y el lado 3 es diferente al lado 1, entonces es escaleno”
Pero vamos a lo bueno. El programa completo en C++, serÃa asÃ:
#include<stdio.h>
#include<conio.h>
int main()
{
//Declaracion de variables
int lado1=0,lado2=0,lado3=0;
//Pedir los datos
printf("TIPOS DE TRIANGULOS");
printf("\nIntroduce el lado 1: ");scanf("%i",&lado1);
printf("\nIntroduce el lado 2: ");scanf("%i",&lado2);
printf("\nIntroduce el lado 3: ");scanf("%i",&lado3);
//Hacer comparaciones
if(lado1==lado2 && lado2==lado3)
{ printf("\n\tEs equilatero"); }
if(lado1==lado2 && lado2!=lado3 || lado2==lado3 && lado3!=lado1 || lado3==lado1 && lado1!=lado2)
{ printf("\n\tEs isosceles"); }
if(lado1!=lado2 && lado2!=lado3 && lado3!=lado1)
{ printf("\n\tEs escaleno"); }
//Pausa
getch();
}
Aprovecho para explicarles un detalle más. \n (alt+92 n) dentro de un printf(); indica un salto de lÃnea, y \t (alt+92 t) indica una sangrÃa o tabulado o algo de espacio.
¿Cómo harÃan para saber si alguien es mayor o menor de edad? Creo que los pasos serÃan:
- Preguntarle su edad
- Si tiene 18 o más entonces es mayor de edad
- Si no, es menor de edad
Metiendonos al lenguaje de C++, quedarÃa algo asÃ:
- scanf(“%d”, &edad);
- if(edad>=18) { printf(“Es mayor de edad”); }
- else { printf(“Es menor de edad”); }
if significa si y else significa si no
edad>=18 es una comparación. Si la variable ‘edad’ es mayor o igual a 18, se hacen las instrucciones que están entre las llaves {} del if; si no es asÃ, se realizan las instrucciones que están entre las llaves del else.
El programa en sà quedarÃa de la siguiente forma:
#include<stdio.h>
#include<conio.h>
int main()
{
int edad=0;
printf("Cual es tu edad?: "); scanf("%d",&edad);
if(edad>=18)
{
printf("Eres mayor de edad");
}
else
{
printf("Eres menor de edad");
}
getch();
}
Un if no tiene que tener un else ‘a fuerzas’, es opcional. Es muy importante que se fijen muy bien en las llaves, cada if tiene su llave de apertura y de cierre, al igual que el else.
Con operadores de relación nos referimos a los ya conocidos:
- < (mayor que)
- <= (mayor o igual que)
- > (menor que)
- >= (menor o igual que)
- == (igual)
- != (diferente)
Bueno, talvéz los operadores de igual (==) y diferente (!=) no los hayan visto escritos asÃ, pero en C++ asà se representan.
Una expresión con operadores de relación (por ejemplo: a<b, a!=b) únicamente nos dice si la evaluación es verdadera (true) o falsa (false).
También están estos otros:
- and, que significa ‘y’ y se representa con &&
- or, que significa ‘o’ y se representa con || (alt+124 dos veces)
Sirven para relacionar dos o más operaciones lógicas. Al usar && (y), las dos operaciones tienen que ser verdaderas para que arroje un resultado verdadero, si no, es falso. Al usar || (o), las dos operaciones tienen que ser falsas para que arroje un resultado falso, si no, es verdadero.
Ejemplos
Si a=4 y b=5 entonces,
- a==b es false
- a>b es false
- a!=b es true
- a==b && a<b es false
- a==b || a<b es true