• Blog
  • Acerca
  • Autor
  • Contacto
  • 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í:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      float promedio=0,descuento=0,colegiatura=1500,total=0;
      printf("\n\tCual fue tu promedio?: ");scanf("%f",&promedio);
      if(promedio>=9)
      {
        descuento=0.2;
      }
      else
      {
        if(promedio>=8 && promedio <9)
        {
          descuento=0.1;
        }
        else
        {
          if(promedio>=7 && promedio <8)
          {
            descuento=0.05;
          }
          else
          {
            descuento=0;
          }
        }
      }
      total=colegiatura-colegiatura*descuento;
      printf("\n\tTu colegiatura sera de %.2f",total);
      getch();
    }

    Ya que sabemos esto podemos ahorrarnos algunas llaves {} usando el else if, vean:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      float promedio=0,descuento=0,colegiatura=1500,total=0;
      printf("\n\tCual fue tu promedio?: ");scanf("%f",&promedio);
      if(promedio>=9)
      {
        descuento=0.2;
      }
      else if(promedio>=8 && promedio <9)
      {
        descuento=0.1;
      }
      else if(promedio>=7 && promedio <8)
      {
        descuento=0.05;    
      }
      else
      {
        descuento=0;
      }
      total=colegiatura-colegiatura*descuento;
      printf("\n\tTu colegiatura sera de %.2f",total);
      getch();
    }
    1. omar dice:

      Man me sacaste de un apuro…
      se agradece un buennnn …

      los if anidados son la ley …!

    2. italo dice:

      EEE Muy interesante me gustaria conocer mas sobre los vectores y el metodo burbuja… suerte q “DIOS LOS VENDIGA”

    3. freddy dice:

      muy bueno prof

    4. pancho dice:

      esto me es muy util. GRACIAS.

    5. essik dice:

      necesito saber ue es el if
      el else y el
      if else

    6. Diana Lopez dice:

      necesito que me digas como hacer un programa donde pida 3 cantidades y luego mostrarlas en forma ascendente y descendente te lo agradeceria mucho…..

    7. raul dice:

      me sirvio , muchas gracias

    8. cristian dice:

      hola, me gustaria saber por que no funsiona el verdadero de esta pregunta:
      char x
      if (x=”carlos”)
      {
      cuando es verdadero e ingresamos carlos solo va por el falso
      que se puede ghacer para q esta condicion sea valida
      gracias

      • THEbatzuk dice:

        es porque a las variables tipo char solo les cabe un caracter, si tu condición fuera x=’c’ funcionaria (comillas simples). O puedes declarar x como tipo string: string x ; y hacer la condición como tu la hiciste: if(x = “carlos”) con comillas dobles. Aunque ahora que estoy escribiendo esto estoy sospechando que tu pregunta iba enfocada hacia otra cosa ¿no?

        • cristian dice:

          si no deje muy clara la pregunta pero es asi..
          char o[30];
          gotoxy(30,5);cout<<"* 1-RENAULT SANDERO *";
          gotoxy(30,6);cout<<"* 2-TOYOTA COROLA *";
          gotoxy(30,7);cout<<"* 3-VOLWSWAGEN *";
          gotoxy(30,8);cout<<"* 4-CORSA *";
          gotoxy(10,11);cout<>o;
          if(o!=”RENAULT sandero”)
          {
          gotoxy(10,8);cout<>op;
          if(op==1)
          {
          gotoxy(10,10);cout<>p;
          gotoxy(10,11);cout<>c;
          v=p*c;
          d=v*25/100;
          vt=v-d;
          gotoxy(10,13);cout<<"El descuento es..";
          gotoxy(55,13);cout<<d;
          gotoxy(10,14);cout<<"El valor final pagar es..";
          gotoxy(55,14);cout<<vt;
          }
          else
          {
          clrscr();
          gotoxy(10,15);cout<<"Marca de vehiculo incorrecta..";
          }
          ahora le en la variable O le coloque !, y me corre en verdadero, pero ya no en falso todas las palabras que coloque son verdaderas…
          te agradesco la ayuda q me brindas..

    9. FUNEZ dice:

      #include
      using namespace std;
      int main()
      {

      double num_metros,precio,subtotal,descuento,total_pagar,codigo;
      cout<<"**Bienvenidos a empresa maderera**";

      cout<<"productos disponible";
      cout<<"-1.-pino";
      cout<<"-2.-cedro";
      cout<<"-3.-roble";
      cout<>codigo;
      cout<>num_metros;
      if (codigo=1)
      {precio=256;
      subtotal=num_metros*precio;
      descuento=0;
      total_pagar=subtotal-descuento;
      cout<=150)
      {precio=567;
      descuento=(num_metros*precio)*0.30;
      subtotal=(num_metros*precio)-descuento;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es cedro:";}
      else
      {

      if (codigo=2 & num_metros<150)
      {precio=567;
      descuento=0;
      subtotal=(num_metros*precio)-descuento;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es cedro:";}
      else
      {

      if (codigo=3)
      { precio=345;
      subtotal=num_metros*precio;
      descuento=0;
      total_pagar=subtotal-descuento;
      cout<<"el producto adqirido es roble:";}
      }
      }
      }

      cout<<"cantidad de metros comprados:"<<num_metros<<endl;
      cout<<"el descuento es de:"<<descuento<<endl;
      cout<<"subtotal:"<<subtotal<<endl;
      cout<<"total a pagar:"<<total_pagar<<endl;
      cout<<"***gracias por su compra****";

      system("pause");
      return 0;
      }

      TENGO PROBLEMAS CON ESTE PROGRAMITA ALGIEN ME PUEDE AYUDAR

    10. Anthonny dice:

      POR FAVOR AYUDENME A VER QUE ESTÁ MAL..U.U

      #include
      #include
      void main()
      {
      int numhij,prestamo;
      float s;
      cout<>s;
      cout<>numhij;
      if (s>12000 & numhij=0)
      cout<<"se le aprueba el prestamo"<<endl;
      else if(10000<s<12000 & numhij=1)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el prestamo"<<endl;
      else if (10000<s<12000 & numhij=2)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el credito"<<endl;
      else if(8000<s<10000 & numhij=0)
      cout<<"se le concede el prestamo"<<endl;
      else
      cout<<"no se le concede el prestamo"<<endl;
      getch();
      }

    11. lauritaa dice:

      alguien me podria ayudar con este problema de if
      x fiiss se los agradeceria muchiixximoo
      En un hospital se han realizado analisis a pacientes en los ultimos años, con el objetivo de hacer una aproximacion a los costos por paciente.
      se obtuvo un costo diario segun el tipo de analisis, ademas se determina que los pacientes con edad de entre 14 y 22 años implican un costo adicional del 10%
      la siguiente tabla expresa los costos diarios de acuerdo a los analisis realizados.
      Dar solucion al problema que permita calcular y mostrar el costo total que representa un pciente
      tipos de analisis 1=250 2=365 3=500

    12. pollitaa dice:

      super bna onda me ayudo mucho con mi tarea gracias por crear esta pagina enserio muchas gracias

    13. Luis Ramírez dice:

      Como puedo hacer un programa usando if anidado en donde si la persona es mayor o igual a 18 años tiene derecho a hamburguesa y parqueo gratis y es mayor de edad que no obtenga nada, y q este anidado a esto q si tambien es mujer pueda tener bebida y papas gratis, y si no es mujer solo recibe lo primero
      porfa

    14. Luis Ramírez dice:

      si no es mayor de edad no obtiene nada es al final de la segunda linea perdon

    15. milena dice:

      como puedo desarrollar un programa usando condicines sensillas if para el siguiente caso Un cliente ordena cierta cantidad de brochas de cerda, rodillos y sellador; las brochas de cerda tienen un 20% de descuento y los rodillos un 15% de descuento. Los datos que se tienen por cada tipo de artículo son: la cantidad pedida y el precio unitario. Además, si se paga de contado todo tiene un descuento del 7%. Elaborar un programa en C++ que calcule y muestre en pantalla el costo total de la orden, tanto para el pago de contado como para el caso de pago de crédito.

    16. zlcanacuant dice:

      ayuda!!!

      Desarrollar un programa que permita administrar un parqueado de motos y
      carros, teniendo en cuenta las siguientes condiciones:
      · El valor por hora para motos es de $1.000 y para autos $2.000
      · Se debe registrar cada vehículo que ingrese
      · Solicitar el tiempo de permanencia y de acuerdo a ello, calcular el
      costo del servicio e imprimirlo en pantalla.
      · El programa debe funcionar para varios vehículos.
      · Al finalizar el día se debe reportar por pantalla:
      o Cantidad de motos registradas
      o Cantidad de autos registrados
      o Subtotal de ingresos por motos
      o Subtotal de ingresos por autos
      o Total de ingresos por autos y motos
      · Incluir en el programa: comentarios aclaratorios, selectiva doble,
      ciclo for, ciclo while y trabajar con funciones.

    17. ramon dice:

      #include
      #include
      #include
      #include
      main();
      {
      int x;
      printf(“ingrese una opcion del 1 al 13″);
      scanf(“%d”, &x);
      if
      }
      else
      {(“x>=0) && (x<=13)");
      {
      switch(x)
      {
      case 1:
      printf("enero");
      break;
      case 2:
      printf("febrero");
      break;
      case 3:
      printf("marzo");
      break;
      case 4:
      printf("abril");
      break;
      case 5:
      printf ("mayo");
      break;
      case 6:
      printf("junio");
      break;
      case 7:
      printf("julio");
      break;
      case 8.
      printf("agosto");
      break;
      case 9.
      printf("septiembre");
      break;
      case 10.
      printf("octubre");
      break;
      case 11.
      printf("noviembre");
      break;
      case 12.
      printf("diciembre");
      }
      {else}
      printf("ERROR EL MES NO EXISTE");
      }
      getch();
      }

    18. Karl dice:

      Buenas, te felicito por la pagina es muy buena guia para nosotros,soy nuevo y quisiera pedirte si pudieran ayudarme para hacer un codigo en C++ muy simple, es que necesito un programa en donde se ingrese un grupo de 4 numeros y que el resultado sea el mismo, y para los siguientes 4 numeros sea uno mas que el anterior. Asi por ejemplo si se ingresa los numeros 5, 6, 7, 8 el resultado final sea 2 y si se ingresa 9, 10, 11, 12 el resultado sea 3. Gracias

    19. laurent dice:

      yo como hago para que los letreros me dalgan aparte;

      #include
      #include
      main()
      {
      int a,ami;
      printf(“digite un numero que usted le califica a un amigo(a) del 1 al 100\n”);
      scanf(“%d\n”,&a);
      if(ami=a)
      {
      if(a<=19)
      {
      printf("no se soportan\n");
      }if(a=39)
      {
      printf("no son muy amigos pero se llevan ahi\n");
      }
      if(a=49)
      {
      printf("son medio amigos\n");
      }
      if(a=89)
      {
      printf("son amigos de verdad pero no los mejores\n");
      }
      if(a=100)
      {
      printf("true friends, best friends, verdadera amistad\n");
      }

      else
      {
      printf("tuno conoces a esa persona\n");
      }
      printf("su amistad es: %d\n",ami);
      }

      getch();
      return 0;
      }

    20. yusneidy montilla dice:

      por favor necesitamos ayuda del siguiente ejercicio en c++ y con estructuras simples como if…
      en un supermercado hay tres departamentos(ropa, comestible, perfumeria)en los cuales se realiza un descuento 8%, 5% y 10% respectivamente por las compras totales mayores de 250bsf. diseñe un programa en c++ que dado el monto de la compra realice los descuentos pertinentes por departamento e indique al usuario su nuevo monto.

      • Julian lokoskap dice:

        Asi lo entendi
        En un supermercado hay tres deaprtamentos ==>ROPA, COMESTIBLE, PERFUMERIA
        en los cuales se realizan descuentos de ==>8%, 5%, 10 RESPECTIVAMENTE
        por las compras totales, MAYORES a 250.
        *Realizar los descuentos por departamentos e indicar al usuario su nuevo monto a pagar(dato de salida).
        (datos de entrada DEPARTEMENTO y MONTO de COMPRA)

        PSEUDOCODIGO:SUPERMERCADO
        variables:
        int op;
        float monc,desc;
        INICIO
        Escribir “****ELIJA UNA DE LAS SIGUIENTES OPCIONES**** ”
        Escribir “1)Departamento de Ropa”
        Escribir “2)Departamento de Comestibles”
        Escribir “3)Departamento de Perfumeria”
        Leer op;
        Escribir “Ingrese monto de la compra: ”
        Leer monc;
        si(op>0 and op250)
        {
        switch(op)
        {
        case 1:
        desc=monc*0.08
        case 2:
        desc=monc*0.05
        case 3:
        desc=monc*0.10
        }
        }sino{desc=0}
        }sino{Escribir “OPCION INCORRECTA”}
        Escribir “Monto a pagar es: “,monc-desc
        FIN

        Lo ise en un block de notas…. =D

    21. mile dice:

      buenas tardes por favor podrias ayudarme con este programa:

      realizar un programa para la venta de productos de un supermercado. El programa debe calcular los subtotales por producto dependiendo de las cantidades. El sistema conoce previamente los valores por producto, para luego liquidar el total de la compra. Este supermercado tiene fidelidad con los clientes frecuentes y a ellos les otorgara un 10% de descuento mientras que a los ocasionales no les realizara ningún descuento. Por ultimo preguntará cuantas copias de la factura necesitara y mostrará la cantidad de facturas que necesita.

      El nombre del supermercado aparecerá en las pantallas que opera el usuario que liquida la compra. Se necesita que:
      1. Presente el valor libra por producto.
      2. Solicita producto a producto la cantidad que se quiere obtener
      3. Presenta al final el valor por producto y el valor total antes de descuentos por cliente.

      Gracias

    22. Daniel dice:

      E labore un programa en c++ qe por medio de un menú sentencia de control multiple y función getchar permita calcular el monto a pagar de matricula de los estudiantes del san Vicente teniendo en cuenta si la cantidad de estudiantes por familia es igual o menor a 2 calcular monto regular de lo contrario si son 3 o mas estudiantes por familia calcular 25% de descuento
      Imprima cantidad de estudiantes por familia
      Y el monto calculado seria
      250 matricula

    23. desconocido dice:

      gracias porque son de gran ayuda

    24. felipe dice:

      hola x favor nesecito un programa en el q se ingrese la edad y si es menor de 8 imprimer q es niño y si es menor de 18 q diga q es menor de edad y si tiene entre 19 y 60 años adultos y mas de 60 anciano..
      gracias

    25. luis huchy tavo dice:

      como puedo encontrar la definicion de else if jajajaa por favor la ocupo yaaa y gracias ayuda de estos ejemplos le mando un saludo ajesssicaa vergara ramirez te amo por si lleees es esto

    26. Omar dice:

      muchas gracias
      esto me va a servir de mucha ayuda

    27. karen dice:

      me puedes ayudar con este progama porfavor
      Realizar un programa que solicite 5 numeros y los presente en forma descendente, para ordenarlos de forma descendente tendran que enviar los paametros que va a ordenar.

    28. karen dice:

      me falto poner qe es para el programa borlang c++

    29. mayvit garcia dice:

      hola como puedo resolver este algoritmo :
      Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar al fabricante.
       Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante.
       Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante.
      El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito.
      tengo esto pero no me sale cual e mi error

      #include
      #include
      #include
      main()
      {
      float costpza,numpzas,montotot,invprop,Pmobanco,ctofab;
      const double ctoint=.20;
      printf(“valor de cada pieza:”);
      scanf(“%f”,&costpza);
      printf(“cantidad de piezas compradas:”);
      scanf(“%f”,&numpzas);
      if (montotot >500,000){
      montotot=costpza * numpzas;

      }else
      {
      invprop=montotot*.55;
      Pmobanco=montotot*.30;
      ctofab=montotot*.15 +(ctofab*.20);

      if (montotot <=500,000){
      montotot=costpza * numpzas;

      }else
      {
      invprop=montotot*.70;
      ctofab=montotot*.15 +(ctofab*.20);
      }
      }
      printf("montototal de la compra:%.2f\n",montotot);
      printf( "inversion efectivo:%.2f \n",invprop);
      printf("el banco le prestara:%.2f \n",Pmobanco);
      printf("compra a crédito:%.2f \n",ctofab);

      system("pause");

      }

      • Julian lokoskap dice:

        PSEUDOCODIGO:PAGO DE PIEZAS
        VARIABLES:
        float numpiezas,precio,monto,propiodinero,presbanco,credfabrica,icredfabrica;
        INICIO
        Escribir “Ingrese numero de piezas a comprar”
        Leer numpiezas
        Escribir “Ingrese el precio por pieza”
        Leer precio
        monto=numpiezas*precio
        si(monto>10000)
        {
        propiodinero=monto*0.55
        presbanco=monto*0.3
        credfabrica=monto*0.15
        increfabrica=credfabrica*0.2+credfabrica
        }
        sino
        {
        si(montoInversion es : “,propiodinero
        Escribir “==>Banco presta : “,presbanco
        Escribir “==>Cred Fabrica : “,credfabrica
        Escribir “==>Interes Cred : “,icredfabrica
        Escribir ” ==TOTAL====> “,propiodinero+presbanco+credfabrica+icredfabrica
        Escribir “Aumento de un=> : “,(propiodinero+presbanco+credfabrica+icredfabrica )/monto*100, ” % ”
        FIN

        Buen blog.. =D me sirve de mucha ayuda…. gracias…

        • Julian lokoskap dice:

          PSEUDOCODIGO:PAGO DE PIEZAS
          VARIABLES:
          float numpiezas,precio,monto,propiodinero,presbanco,credfabrica,icredfabrica;
          INICIO
          Escribir “Ingrese numero de piezas a comprar”
          Leer numpiezas
          Escribir “Ingrese el precio por pieza”
          Leer precio
          monto=numpiezas*precio
          si(monto>10000)
          {
          propiodinero=monto*0.55
          presbanco=monto*0.3
          credfabrica=monto*0.15
          increfabrica=credfabrica*0.2+credfabrica
          }
          sino
          {
          si(montoInversion es : “,propiodinero
          Escribir “==>Banco presta : “,presbanco
          Escribir “==>Cred Fabrica : “,credfabrica
          Escribir “==>Interes Cred : “,icredfabrica
          Escribir ” ——————”
          Escribir ” ==TOTAL====> “,propiodinero+presbanco+credfabrica+icredfabrica
          Escribir “Aumento de un==> ” ,(propiodinero+presbanco+credfabrica+icredfabrica )/monto*100, ” % ”
          FIN

          No entiendo porque no sale tal como lo pego…. :S

    30. luis antonio dice:

      disculpen alguien me puedo ayudar hacer un grafo en turbo c o que me de un ejmeplo que sea muy simple

    31. Oscar dice:

      Wow!!!
      esto me sirvió mucho
      SE LOS AGRADEZCO Y EN VERDAD GRASIAS

      = )

    32. erick tumbaco dice:

      me pueden decir si este q hice esta bien xfa
      //programa que presente las maravillas del mundo y
      //presente el lugar
      //erick tumbaco
      //administracion de sistema
      //segunda septima seccion
      año lectivo 2012-2013
      #include
      #include>conio.h>
      main()
      {
      int cod;
      clrscr();
      gotoxy(12,5);textcolor(5);textbackground(1998);(“programa de la maravillas del mundo”);
      gotoxy(12,7);textcolor(6);cprintf(****menu****);
      gotoxy(12,9);textcolor(9);cprintf(“1.chichen itza”);
      gotoxy(12,10);textcolor(9);cprintf(“2.coliseo de roma”);
      gotoxy(12,11);textcolor(6);cprintf(“3.cristo redentor”);
      gotoxy(12,12);textcolor(5);cprintf(“4.muralla china”);
      gotoxy(12,13);textcolor(4);cprintf(“5.machu picchu”);
      gotoxy(12,14);textcolor(5);cprintf(“6.petra”);
      gotoxy(12,15);textcolor(3);cprintf(“7.taj mahal”);
      gotoxy(12,17);textcolor(9);cprintf(“ingrese el codigo”);
      gotoxy(52,17);scanf(“%d”,&cod);
      if(cod==1)
      {
      gotoxy(12,19);textcolor(4);cprintf(“chichen itza”);
      gotoxy(12,21);textcolor(7);cprintf(“mexico”);
      }
      else if(==2)
      {
      gotoxy(12,19);textcolor(4);cprintf(“coliseo de roma”);
      gotoxy(12,21);textcolor(7);cprintf(“italaia”);
      }
      else if(==3)
      {
      gotoxy(12,19);textcolor(4);cprintf(“cristo redentor”);
      gotoxy(12,21);textcolor(7);cprintf(“brazil”);
      }
      else if(==4)
      {
      gotoxy(12,19);textcolor(4);cprintf(“muralla china”);
      gotoxy(12,21);textcolor(7);cprintf(“china”);
      }
      else if(==5)
      {
      gotoxy(12,19);textcolor(4);cprintf(“machu picchu”);
      gotoxy(12,21);textcolor(7);cprintf(“peru”);
      }
      else if(==6)
      {
      gotoxy(12,19);textcolor(4);cprintf(“petra”);
      gotoxy(12,21);textcolor(7);cprintf(“jordania”);
      }
      else if(==7)
      {
      gotoxy(12,19);textcolor(4);cprintf(“tal mahal”);
      gotoxy(12,21);textcolor(7);cprintf(“india”);
      }
      else{
      gotoxy(12,19);textcolor(4);cprintf(“el numero ingresadono corresponde al menu”);}
      gotoxy(12,23);textcolor(7);cprintf(“elaborado por:erick tumbaco”);
      getch();
      }

    33. francisco dice:

      gracias me ayudo mucho el saver que puedes ahorrarte las llaves {}

    Hola, escribe aquí tu comentario: