Tag Archives: condiciones

if else anidados en c++

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í:

Continue reading if else anidados en c++

Advertisements

Programa: ¿Qué tipo de triángulo es?

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("ntEs equilatero"); }
  if(lado1==lado2 && lado2!=lado3 || lado2==lado3 && lado3!=lado1 || lado3==lado1 && lado1!=lado2)
  { printf("ntEs isosceles"); }
  if(lado1!=lado2 && lado2!=lado3 && lado3!=lado1)
  { printf("ntEs 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.

Condiciones (decisiones) en C++ – if, else

¿Cómo harían para saber si alguien es mayor o menor de edad? Creo que los pasos serían:

  1. Preguntarle su edad
  2. Si tiene 18 o más entonces es mayor de edad
  3. Si no, es menor de edad

Metiendonos al lenguaje de C++, quedaría algo así:

  1. scanf(“%d”, &edad);
  2. if(edad>=18) { printf(“Es mayor de edad”); }
  3. 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.

Operadores lógicos en C++

Con operadores de relación nos referimos a los ya conocidos:

  • < (menor que)
  • <= (menor o igual que)
  • > (mayor que)
  • >= (mayor 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