Código C++

  • Blog
  • Acerca
  • Autor
  • Contacto
  • Posts guardados en "goto":

    Programa: Porcentaje de Hombres y Mujeres

    Supongamos que nos preguntan qué porcentaje de hombres y qué porcentaje de mujeres hay un salón de clases. Lo primero que tenemos que hacer es preguntar el total de personas que hay, luego hacer un ciclo que en cada iteración pregunte el sexo de cada alumno. En base a esos datos se calculan los porcentajes.

    El programa en c++ sería así:

    #include<stdio.h>
    #include<conio.h>
    int main()
    {
      float total=0,ciclo=0,conta_h=0,conta_m=0,porc_h=0,porc_m=0;
      char mof;
      gotoxy(5,5);printf("Cuantos alumnos hay en este grupo?: ");scanf("%f",&total);
      for(ciclo=1;ciclo<=total;ciclo++)
      {
        clrscr();
        PREG: gotoxy(10,6);printf("Sexo de alumno %.f? (M o F): ",ciclo);scanf("%c",&mof);
        if(mof=='m' || mof=='M')
          conta_h++;
        else if(mof=='f' || mof=='F')
          conta_m++;
        else
          goto PREG;
       }
      //Calculos
      porc_h=conta_h/total*100;
      porc_m=conta_m/total*100;
      //
      gotoxy(5,5);printf("El porcentaje de hombres es %.1f (%.f de %.f)",porc_h,conta_h,total);
      gotoxy(5,6);printf("El porcentaje de mujeres es %.1f (%.f de %.f)",porc_m,conta_m,total);
      getch();
    }

    Cómo usar goto en C++

    Goto significa ir a y en c++ nos sirve para que mandar al compilador a alguna parte arbitrariamente, es decir nada más porque sí. No se suele usar mucho pero nos puede sacar de algunos apuros.

    Su uso es más o menos así:

    codigo codigo
    
      LUGAR: codigo
      mas codigo
      codigo
    
      goto LUGAR;
    
    codigo

    Primero tenemos que definir un marcador, en este caso yo usé LUGAR (recuerden que ‘LUGAR’ no es lo mismo que ‘lugar’) e inmediatamente después poner dos puntos (:). Cuando sea necesario escribiremos goto seguido de nuestro identificador y punto y como (;).

    ¿Para qué nos podría servir? Pues en el siguiente post veremos un programa que usa goto.